mirror of
https://github.com/adammck/terraform-inventory
synced 2024-11-22 20:01:58 +01:00
Add Linode support (#111)
This commit is contained in:
parent
dd5c915c19
commit
42037e5b2e
@ -17,6 +17,7 @@ The following providers are supported:
|
|||||||
* Exoscale
|
* Exoscale
|
||||||
* Google Compute Engine
|
* Google Compute Engine
|
||||||
* [libvirt](https://github.com/dmacvicar/terraform-provider-libvirt)
|
* [libvirt](https://github.com/dmacvicar/terraform-provider-libvirt)
|
||||||
|
* Linode
|
||||||
* OpenStack
|
* OpenStack
|
||||||
* Packet
|
* Packet
|
||||||
* ProfitBricks
|
* ProfitBricks
|
||||||
|
@ -407,6 +407,19 @@ const exampleStateFile = `
|
|||||||
"tags.Role": "worker"
|
"tags.Role": "worker"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"linode_instance.eighteen": {
|
||||||
|
"type": "linode_instance",
|
||||||
|
"depends_on": [],
|
||||||
|
"primary": {
|
||||||
|
"id": "123456789",
|
||||||
|
"attributes": {
|
||||||
|
"ip_address": "80.80.100.124",
|
||||||
|
"private_ip": "true",
|
||||||
|
"private_ip_address": "192.168.167.23",
|
||||||
|
"tags.#": "0"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -434,6 +447,7 @@ const expectedListOutput = `
|
|||||||
"192.168.102.14",
|
"192.168.102.14",
|
||||||
"50.0.0.1",
|
"50.0.0.1",
|
||||||
"50.0.0.17",
|
"50.0.0.17",
|
||||||
|
"80.80.100.124",
|
||||||
"10.20.30.50"
|
"10.20.30.50"
|
||||||
],
|
],
|
||||||
"vars": {
|
"vars": {
|
||||||
@ -461,6 +475,7 @@ const expectedListOutput = `
|
|||||||
"fourteen": ["192.168.102.14"],
|
"fourteen": ["192.168.102.14"],
|
||||||
"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"],
|
||||||
|
|
||||||
"one.0": ["10.0.0.1"],
|
"one.0": ["10.0.0.1"],
|
||||||
"dup.0": ["10.0.0.1"],
|
"dup.0": ["10.0.0.1"],
|
||||||
@ -480,6 +495,7 @@ const expectedListOutput = `
|
|||||||
"fourteen.0": ["192.168.102.14"],
|
"fourteen.0": ["192.168.102.14"],
|
||||||
"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"],
|
||||||
|
|
||||||
"type_aws_instance": ["10.0.0.1", "10.0.1.1", "50.0.0.1"],
|
"type_aws_instance": ["10.0.0.1", "10.0.1.1", "50.0.0.1"],
|
||||||
"type_digitalocean_droplet": ["192.168.0.3"],
|
"type_digitalocean_droplet": ["192.168.0.3"],
|
||||||
@ -495,6 +511,7 @@ const expectedListOutput = `
|
|||||||
"type_packet_device": ["10.0.0.13"],
|
"type_packet_device": ["10.0.0.13"],
|
||||||
"type_libvirt_domain": ["192.168.102.14"],
|
"type_libvirt_domain": ["192.168.102.14"],
|
||||||
"type_aws_spot_instance_request": ["50.0.0.17"],
|
"type_aws_spot_instance_request": ["50.0.0.17"],
|
||||||
|
"type_linode_instance": ["80.80.100.124"],
|
||||||
|
|
||||||
"role_rrrrrrrr": ["10.20.30.40"],
|
"role_rrrrrrrr": ["10.20.30.40"],
|
||||||
"role_web": ["10.0.0.1"],
|
"role_web": ["10.0.0.1"],
|
||||||
@ -525,6 +542,7 @@ const expectedInventoryOutput = `[all]
|
|||||||
192.168.102.14
|
192.168.102.14
|
||||||
50.0.0.1
|
50.0.0.1
|
||||||
50.0.0.17
|
50.0.0.17
|
||||||
|
80.80.100.124
|
||||||
10.20.30.50
|
10.20.30.50
|
||||||
|
|
||||||
[all:vars]
|
[all:vars]
|
||||||
@ -548,6 +566,12 @@ olddatacenter="\u003c0.7_format"
|
|||||||
[eight.0]
|
[eight.0]
|
||||||
10.0.0.8
|
10.0.0.8
|
||||||
|
|
||||||
|
[eighteen]
|
||||||
|
80.80.100.124
|
||||||
|
|
||||||
|
[eighteen.0]
|
||||||
|
80.80.100.124
|
||||||
|
|
||||||
[eleven]
|
[eleven]
|
||||||
10.0.0.11
|
10.0.0.11
|
||||||
|
|
||||||
@ -689,6 +713,9 @@ olddatacenter="\u003c0.7_format"
|
|||||||
[type_libvirt_domain]
|
[type_libvirt_domain]
|
||||||
192.168.102.14
|
192.168.102.14
|
||||||
|
|
||||||
|
[type_linode_instance]
|
||||||
|
80.80.100.124
|
||||||
|
|
||||||
[type_openstack_compute_instance_v2]
|
[type_openstack_compute_instance_v2]
|
||||||
10.120.0.226
|
10.120.0.226
|
||||||
|
|
||||||
|
22
resource.go
22
resource.go
@ -16,16 +16,16 @@ var nameParser *regexp.Regexp
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
keyNames = []string{
|
keyNames = []string{
|
||||||
"ipv4_address", // DO and SoftLayer
|
"ipv4_address", // DO and SoftLayer
|
||||||
"public_ip", // AWS
|
"public_ip", // AWS
|
||||||
"public_ipv6", // Scaleway
|
"public_ipv6", // Scaleway
|
||||||
"private_ip", // AWS
|
"ipaddress", // CS
|
||||||
"ipaddress", // CS
|
"ip_address", // VMware, Docker, Linode
|
||||||
"ip_address", // VMware, Docker
|
"private_ip", // AWS
|
||||||
"network_interface.0.ipv4_address", // VMware
|
"network_interface.0.ipv4_address", // VMware
|
||||||
"default_ip_address", // provider.vsphere v1.1.1
|
"default_ip_address", // provider.vsphere v1.1.1
|
||||||
"access_ip_v4", // OpenStack
|
"access_ip_v4", // OpenStack
|
||||||
"floating_ip", // OpenStack
|
"floating_ip", // OpenStack
|
||||||
"network_interface.0.access_config.0.nat_ip", // GCE
|
"network_interface.0.access_config.0.nat_ip", // GCE
|
||||||
"network_interface.0.access_config.0.assigned_nat_ip", // GCE
|
"network_interface.0.access_config.0.assigned_nat_ip", // GCE
|
||||||
"network_interface.0.address", // GCE
|
"network_interface.0.address", // GCE
|
||||||
@ -112,7 +112,7 @@ func (r Resource) Tags() map[string]string {
|
|||||||
t[kk] = vv
|
t[kk] = vv
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case "aws_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)
|
||||||
// At some point Terraform changed the key for counts of attributes to end with ".%"
|
// At some point Terraform changed the key for counts of attributes to end with ".%"
|
||||||
|
Loading…
Reference in New Issue
Block a user