mirror of
https://github.com/adammck/terraform-inventory
synced 2024-11-23 00:12:13 +01:00
Add Yandex.Cloud provider (#148)
This commit is contained in:
parent
c7e468f33c
commit
e313c510c2
@ -26,6 +26,7 @@ The following providers are supported:
|
|||||||
* VMware
|
* VMware
|
||||||
* Nutanix
|
* Nutanix
|
||||||
* Open Telekom Cloud
|
* Open Telekom Cloud
|
||||||
|
* Yandex.Cloud
|
||||||
|
|
||||||
It's very simple to add support for new providers. See pull requests with the
|
It's very simple to add support for new providers. See pull requests with the
|
||||||
[provider][pv] label for examples.
|
[provider][pv] label for examples.
|
||||||
|
13
parser.go
13
parser.go
@ -287,9 +287,18 @@ func encodeTerraform0Dot12ValuesAsAttributes(rawValues *map[string]interface{})
|
|||||||
case []interface{}:
|
case []interface{}:
|
||||||
ret[k+".#"] = strconv.Itoa(len(v))
|
ret[k+".#"] = strconv.Itoa(len(v))
|
||||||
for kk, vv := range v {
|
for kk, vv := range v {
|
||||||
if str, typeOk := vv.(string); typeOk {
|
switch o := vv.(type) {
|
||||||
ret[k+"."+strconv.Itoa(kk)] = str
|
case string:
|
||||||
|
ret[k+"."+strconv.Itoa(kk)] = o
|
||||||
|
case map[string]interface{}:
|
||||||
|
for kkk, vvv := range o {
|
||||||
|
if str, typeOk := vvv.(string); typeOk {
|
||||||
|
ret[k+"."+strconv.Itoa(kk)+"."+kkk] = str
|
||||||
} else {
|
} else {
|
||||||
|
ret[k+"."+strconv.Itoa(kk)+"."+kkk] = "<error>"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
default:
|
||||||
ret[k+"."+strconv.Itoa(kk)] = "<error>"
|
ret[k+"."+strconv.Itoa(kk)] = "<error>"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
15
resource.go
15
resource.go
@ -36,6 +36,8 @@ func init() {
|
|||||||
"network.0.address", // Packet
|
"network.0.address", // Packet
|
||||||
"primary_ip", // Profitbricks
|
"primary_ip", // Profitbricks
|
||||||
"nic_list.0.ip_endpoint_list.0.ip", // Nutanix
|
"nic_list.0.ip_endpoint_list.0.ip", // Nutanix
|
||||||
|
"network_interface.0.nat_ip_address", // Yandex
|
||||||
|
"network_interface.0.ip_address", // Yandex
|
||||||
}
|
}
|
||||||
|
|
||||||
// Formats:
|
// Formats:
|
||||||
@ -186,7 +188,20 @@ func (r Resource) Tags() map[string]string {
|
|||||||
t[kk] = vv
|
t[kk] = vv
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
case "yandex_compute_instance":
|
||||||
|
for k, v := range r.Attributes() {
|
||||||
|
parts := strings.SplitN(k, ".", 2)
|
||||||
|
// At some point Terraform changed the key for counts of attributes to end with ".%"
|
||||||
|
// instead of ".#". Both need to be considered as Terraform still supports state
|
||||||
|
// files using the old format.
|
||||||
|
if len(parts) == 2 && parts[0] == "labels" && parts[1] != "#" && parts[1] != "%" {
|
||||||
|
kk := strings.ToLower(parts[1])
|
||||||
|
vv := strings.ToLower(v)
|
||||||
|
t[kk] = vv
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return t
|
return t
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user