From e2063594c2df1144b5491eccd0f506ae4d94439e Mon Sep 17 00:00:00 2001 From: nixar Date: Thu, 31 May 2018 18:10:16 +0200 Subject: [PATCH 1/7] Add support for terraform-provider-libvirt See https://github.com/dmacvicar/terraform-provider-libvirt --- parser_test.go | 24 +++++++++++++++++++++++- resource.go | 1 + 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/parser_test.go b/parser_test.go index 001eaeb..e291dbb 100644 --- a/parser_test.go +++ b/parser_test.go @@ -292,6 +292,18 @@ const exampleStateFile = ` "default_ip_address": "10.20.30.50" } } + }, + "libvirt_domain.thirteen": { + "type": "libvirt_domain", + "primary": { + "id": "824c29be-2164-44c8-83e0-787705571d95", + "attributes": { + "network_interface.#": "1", + "network_interface.0.addresses.#": "1", + "network_interface.0.addresses.0": "192.168.102.12", + "network_interface.0.mac": "96:EE:4D:BD:B2:45" + } + } } } } @@ -315,7 +327,8 @@ const expectedListOutput = ` "10.20.30.40", "192.168.0.3", "50.0.0.1", - "10.20.30.50" + "10.20.30.50", + "192.168.102.12" ], "vars": { "datacenter": "mydc", @@ -337,6 +350,7 @@ const expectedListOutput = ` "ten": ["10.0.0.10"], "eleven": ["10.0.0.11"], "twelve": ["10.20.30.50"], + "thirteen": ["192.168.102.12"], "one.0": ["10.0.0.1"], "dup.0": ["10.0.0.1"], @@ -352,6 +366,7 @@ const expectedListOutput = ` "ten.0": ["10.0.0.10"], "eleven.0": ["10.0.0.11"], "twelve.0": ["10.20.30.50"], + "thirteen.0": ["192.168.102.12"], "type_aws_instance": ["10.0.0.1", "10.0.1.1", "50.0.0.1"], "type_digitalocean_droplet": ["192.168.0.3"], @@ -363,6 +378,7 @@ const expectedListOutput = ` "type_google_compute_instance": ["10.0.0.8"], "type_triton_machine": ["10.0.0.10"], "type_scaleway_server": ["10.0.0.11"], + "type_libvirt_domain": ["192.168.102.12"], "role_rrrrrrrr": ["10.20.30.40"], "role_web": ["10.0.0.1"], @@ -481,6 +497,12 @@ olddatacenter="\u003c0.7_format" [ten.0] 10.0.0.10 +[thirteen] +192.168.102.12 + +[thirteen.0] +192.168.102.12 + [three] 192.168.0.3 diff --git a/resource.go b/resource.go index 9cadb51..8903093 100644 --- a/resource.go +++ b/resource.go @@ -32,6 +32,7 @@ func init() { "ipv4_address_private", // SoftLayer "networks.0.ip4address", // Exoscale "primaryip", // Joyent Triton + "network_interface.0.addresses.0", // Libvirt } // type.name.0 From 9533ebb2f592fb6d9ddb4a0377bc9ae37a814c22 Mon Sep 17 00:00:00 2001 From: nixar Date: Fri, 1 Jun 2018 14:00:37 +0200 Subject: [PATCH 2/7] fix test for libvirt --- parser_test.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/parser_test.go b/parser_test.go index e291dbb..56823c5 100644 --- a/parser_test.go +++ b/parser_test.go @@ -326,9 +326,9 @@ const expectedListOutput = ` "10.2.1.5", "10.20.30.40", "192.168.0.3", + "192.168.102.12", "50.0.0.1", - "10.20.30.50", - "192.168.102.12" + "10.20.30.50" ], "vars": { "datacenter": "mydc", @@ -403,6 +403,7 @@ const expectedInventoryOutput = `[all] 10.2.1.5 10.20.30.40 192.168.0.3 +192.168.102.12 50.0.0.1 10.20.30.50 @@ -538,6 +539,9 @@ olddatacenter="\u003c0.7_format" [type_google_compute_instance] 10.0.0.8 +[type_libvirt_domain] +192.168.102.12 + [type_openstack_compute_instance_v2] 10.120.0.226 From 3b39ed0c4575fb5399e112631464850b5de1dadf Mon Sep 17 00:00:00 2001 From: Adam Mckaig Date: Fri, 1 Jun 2018 10:12:30 -0400 Subject: [PATCH 3/7] Update resource.go --- resource.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resource.go b/resource.go index e2107bc..8eb5751 100644 --- a/resource.go +++ b/resource.go @@ -32,7 +32,7 @@ func init() { "ipv4_address_private", // SoftLayer "networks.0.ip4address", // Exoscale "primaryip", // Joyent Triton - "network_interface.0.addresses.0", // Libvirt + "network_interface.0.addresses.0", // Libvirt "network.0.address", // Packet } From b21f85ccad1ca9dfd14e8f5962204ebf804f6988 Mon Sep 17 00:00:00 2001 From: Adam Mckaig Date: Fri, 1 Jun 2018 10:13:09 -0400 Subject: [PATCH 4/7] Update parser_test.go --- parser_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parser_test.go b/parser_test.go index f48b337..5ecf277 100644 --- a/parser_test.go +++ b/parser_test.go @@ -304,7 +304,7 @@ const exampleStateFile = ` "network_interface.0.mac": "96:EE:4D:BD:B2:45" } } - }, + }, "packet_device.fourteen": { "type": "packet_device", "depends_on": [], From 65d79063e269018d312dc36c48374b4921a7aa3c Mon Sep 17 00:00:00 2001 From: Adam Mckaig Date: Fri, 1 Jun 2018 10:23:44 -0400 Subject: [PATCH 5/7] Try to fix test again --- parser_test.go | 52 +++++++++++++++++++++++++------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/parser_test.go b/parser_test.go index 5ecf277..8651e76 100644 --- a/parser_test.go +++ b/parser_test.go @@ -293,19 +293,7 @@ const exampleStateFile = ` } } }, - "libvirt_domain.thirteen": { - "type": "libvirt_domain", - "primary": { - "id": "824c29be-2164-44c8-83e0-787705571d95", - "attributes": { - "network_interface.#": "1", - "network_interface.0.addresses.#": "1", - "network_interface.0.addresses.0": "192.168.102.12", - "network_interface.0.mac": "96:EE:4D:BD:B2:45" - } - } - }, - "packet_device.fourteen": { + "packet_device.thirteen": { "type": "packet_device", "depends_on": [], "primary": { @@ -335,6 +323,18 @@ const exampleStateFile = ` }, "deposed": [], "provider": "" + }, + "libvirt_domain.fourteen": { + "type": "libvirt_domain", + "primary": { + "id": "824c29be-2164-44c8-83e0-787705571d95", + "attributes": { + "network_interface.#": "1", + "network_interface.0.addresses.#": "1", + "network_interface.0.addresses.0": "192.168.102.14", + "network_interface.0.mac": "96:EE:4D:BD:B2:45" + } + } } } } @@ -382,8 +382,8 @@ const expectedListOutput = ` "ten": ["10.0.0.10"], "eleven": ["10.0.0.11"], "twelve": ["10.20.30.50"], - "thirteen": ["192.168.102.12"], - "fourteen": ["10.0.0.13"], + "thirteen": ["10.0.0.13"], + "fourteen": ["192.168.102.14"], "one.0": ["10.0.0.1"], "dup.0": ["10.0.0.1"], @@ -399,8 +399,8 @@ const expectedListOutput = ` "ten.0": ["10.0.0.10"], "eleven.0": ["10.0.0.11"], "twelve.0": ["10.20.30.50"], - "thirteen.0": ["192.168.102.12"], - "fourteen.0": ["10.0.0.13"], + "thirteen.0": ["10.0.0.13"], + "fourteen.0": ["192.168.102.14"], "type_aws_instance": ["10.0.0.1", "10.0.1.1", "50.0.0.1"], "type_digitalocean_droplet": ["192.168.0.3"], @@ -412,8 +412,8 @@ const expectedListOutput = ` "type_google_compute_instance": ["10.0.0.8"], "type_triton_machine": ["10.0.0.10"], "type_scaleway_server": ["10.0.0.11"], - "type_libvirt_domain": ["192.168.102.12"], "type_packet_device": ["10.0.0.13"], + "type_libvirt_domain": ["192.168.102.14"], "role_rrrrrrrr": ["10.20.30.40"], "role_web": ["10.0.0.1"], @@ -482,6 +482,12 @@ olddatacenter="\u003c0.7_format" [four.0] 10.2.1.5 +[fourteen] +192.168.102.14 + +[fourteen.0] +192.168.102.14 + [nine] 10.0.0.9 @@ -535,15 +541,9 @@ olddatacenter="\u003c0.7_format" 10.0.0.10 [thirteen] -192.168.102.12 - -[thirteen.0] -192.168.102.12 - -[fourteen] 10.0.0.13 -[fourteen.0] +[thirteen.0] 10.0.0.13 [three] @@ -582,7 +582,7 @@ olddatacenter="\u003c0.7_format" 10.0.0.8 [type_libvirt_domain] -192.168.102.12 +192.168.102.14 [type_openstack_compute_instance_v2] 10.120.0.226 From 216b858aca267ed3a3b6c8633cb55cac90a4c074 Mon Sep 17 00:00:00 2001 From: Adam Mckaig Date: Fri, 1 Jun 2018 10:36:35 -0400 Subject: [PATCH 6/7] One more fix... --- parser_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/parser_test.go b/parser_test.go index 8651e76..9e4370f 100644 --- a/parser_test.go +++ b/parser_test.go @@ -358,7 +358,7 @@ const expectedListOutput = ` "10.2.1.5", "10.20.30.40", "192.168.0.3", - "192.168.102.12", + "192.168.102.14", "50.0.0.1", "10.20.30.50" ], @@ -439,7 +439,7 @@ const expectedInventoryOutput = `[all] 10.2.1.5 10.20.30.40 192.168.0.3 -192.168.102.12 +192.168.102.14 50.0.0.1 10.20.30.50 From d46207306562054acd40cd3c283d6cfbdfcc54d3 Mon Sep 17 00:00:00 2001 From: Adam Mckaig Date: Fri, 1 Jun 2018 10:45:28 -0400 Subject: [PATCH 7/7] Update README.md --- README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 691bbee..d3c10a1 100644 --- a/README.md +++ b/README.md @@ -11,16 +11,17 @@ Terraform, then (re-)provision them with Ansible. The following providers are supported: * AWS -* CloudStack -* DigitalOcean +* CloudStack +* DigitalOcean * Docker * Exoscale -* Google Compute Engine -* OpenStack +* Google Compute Engine +* [libvirt](https://github.com/dmacvicar/terraform-provider-libvirt) +* OpenStack * Packet * Scaleway * SoftLayer -* VMware +* VMware It's very simple to add support for new providers. See pull requests with the [provider][pv] label for examples.