1
1
mirror of https://github.com/adammck/terraform-inventory synced 2024-11-22 20:01:58 +01:00

Add OpenTelekomCloud provider (#112)

This commit is contained in:
Jakob 2019-05-21 16:01:43 +02:00 committed by Adam Mckaig
parent 2417ce8c1f
commit 3a1f433061
3 changed files with 45 additions and 1 deletions

@ -25,6 +25,7 @@ The following providers are supported:
* SoftLayer * SoftLayer
* VMware * VMware
* Nutanix * Nutanix
* Open Telekom 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.

@ -395,6 +395,19 @@ const exampleStateFile = `
} }
} }
}, },
"opentelekomcloud_compute_instance_v2.nineteen": {
"type": "opentelekomcloud_compute_instance_v2",
"primary": {
"id": "00000000-0000-0000-0000-000000000015",
"attributes": {
"id": "00000000-0000-0000-0000-000000000015",
"access_ip_v4": "10.0.0.19",
"access_ip_v6": "",
"tag.%": "1",
"tag.tfinventory": "rocks"
}
}
},
"profitbricks_server.sixteen": { "profitbricks_server.sixteen": {
"type": "profitbricks_server", "type": "profitbricks_server",
"primary": { "primary": {
@ -444,6 +457,7 @@ const expectedListOutput = `
"10.0.0.11", "10.0.0.11",
"10.0.0.13", "10.0.0.13",
"10.0.0.16", "10.0.0.16",
"10.0.0.19",
"10.0.0.7", "10.0.0.7",
"10.0.0.8", "10.0.0.8",
"10.0.0.9", "10.0.0.9",
@ -481,6 +495,7 @@ const expectedListOutput = `
"testTag1": ["10.20.30.50"], "testTag1": ["10.20.30.50"],
"thirteen": ["10.0.0.13"], "thirteen": ["10.0.0.13"],
"fourteen": ["192.168.102.14"], "fourteen": ["192.168.102.14"],
"nineteen": ["10.0.0.19"],
"sixteen": ["10.0.0.16"], "sixteen": ["10.0.0.16"],
"seventeen": ["50.0.0.17"], "seventeen": ["50.0.0.17"],
"eighteen": ["80.80.100.124"], "eighteen": ["80.80.100.124"],
@ -501,6 +516,7 @@ const expectedListOutput = `
"twelve.0": ["10.20.30.50"], "twelve.0": ["10.20.30.50"],
"thirteen.0": ["10.0.0.13"], "thirteen.0": ["10.0.0.13"],
"fourteen.0": ["192.168.102.14"], "fourteen.0": ["192.168.102.14"],
"nineteen.0": ["10.0.0.19"],
"sixteen.0": ["10.0.0.16"], "sixteen.0": ["10.0.0.16"],
"seventeen.0": ["50.0.0.17"], "seventeen.0": ["50.0.0.17"],
"eighteen.0": ["80.80.100.124"], "eighteen.0": ["80.80.100.124"],
@ -510,6 +526,7 @@ const expectedListOutput = `
"type_cloudstack_instance": ["10.2.1.5"], "type_cloudstack_instance": ["10.2.1.5"],
"type_vsphere_virtual_machine": ["10.20.30.40", "10.20.30.50"], "type_vsphere_virtual_machine": ["10.20.30.40", "10.20.30.50"],
"type_openstack_compute_instance_v2": ["10.120.0.226"], "type_openstack_compute_instance_v2": ["10.120.0.226"],
"type_opentelekomcloud_compute_instance_v2": ["10.0.0.19"],
"type_profitbricks_server": ["10.0.0.16"], "type_profitbricks_server": ["10.0.0.16"],
"type_softlayer_virtual_guest": ["10.0.0.7"], "type_softlayer_virtual_guest": ["10.0.0.7"],
"type_exoscale_compute": ["10.0.0.9"], "type_exoscale_compute": ["10.0.0.9"],
@ -530,7 +547,8 @@ const expectedListOutput = `
"staging": ["192.168.0.3"], "staging": ["192.168.0.3"],
"status_superserver": ["10.120.0.226"], "status_superserver": ["10.120.0.226"],
"database": ["10.0.0.8"], "database": ["10.0.0.8"],
"scw_test": ["10.0.0.11"] "scw_test": ["10.0.0.11"],
"tfinventory_rocks": ["10.0.0.19"]
} }
` `
@ -540,6 +558,7 @@ const expectedInventoryOutput = `[all]
10.0.0.11 10.0.0.11
10.0.0.13 10.0.0.13
10.0.0.16 10.0.0.16
10.0.0.19
10.0.0.7 10.0.0.7
10.0.0.8 10.0.0.8
10.0.0.9 10.0.0.9
@ -611,6 +630,12 @@ olddatacenter="\u003c0.7_format"
[nine.0] [nine.0]
10.0.0.9 10.0.0.9
[nineteen]
10.0.0.19
[nineteen.0]
10.0.0.19
[one] [one]
10.0.0.1 10.0.0.1
10.0.1.1 10.0.1.1
@ -678,6 +703,9 @@ olddatacenter="\u003c0.7_format"
[testTag1] [testTag1]
10.20.30.50 10.20.30.50
[tfinventory_rocks]
10.0.0.19
[thirteen] [thirteen]
10.0.0.13 10.0.0.13
@ -731,6 +759,9 @@ olddatacenter="\u003c0.7_format"
[type_openstack_compute_instance_v2] [type_openstack_compute_instance_v2]
10.120.0.226 10.120.0.226
[type_opentelekomcloud_compute_instance_v2]
10.0.0.19
[type_packet_device] [type_packet_device]
10.0.0.13 10.0.0.13

@ -112,6 +112,18 @@ func (r Resource) Tags() map[string]string {
t[kk] = vv t[kk] = vv
} }
} }
case "opentelekomcloud_compute_instance_v2":
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] == "tag" && parts[1] != "#" && parts[1] != "%" {
kk := strings.ToLower(parts[1])
vv := strings.ToLower(v)
t[kk] = vv
}
}
case "aws_instance", "linode_instance": case "aws_instance", "linode_instance":
for k, v := range r.Attributes() { for k, v := range r.Attributes() {
parts := strings.SplitN(k, ".", 2) parts := strings.SplitN(k, ".", 2)