Skip to content

Commit 306bccd

Browse files
author
Pearl Dsilva
committed
Add terraform import support for several cloudstack resources
1 parent f2c7113 commit 306bccd

30 files changed

Lines changed: 428 additions & 0 deletions

cloudstack/resource_cloudstack_autoscale_policy.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ func resourceCloudStackAutoScalePolicy() *schema.Resource {
3434
Read: resourceCloudStackAutoScalePolicyRead,
3535
Update: resourceCloudStackAutoScalePolicyUpdate,
3636
Delete: resourceCloudStackAutoScalePolicyDelete,
37+
Importer: &schema.ResourceImporter{
38+
State: schema.ImportStatePassthrough,
39+
},
3740

3841
Schema: map[string]*schema.Schema{
3942
"name": {

cloudstack/resource_cloudstack_autoscale_vm_group.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ func resourceCloudStackAutoScaleVMGroup() *schema.Resource {
3535
Read: resourceCloudStackAutoScaleVMGroupRead,
3636
Update: resourceCloudStackAutoScaleVMGroupUpdate,
3737
Delete: resourceCloudStackAutoScaleVMGroupDelete,
38+
Importer: &schema.ResourceImporter{
39+
State: schema.ImportStatePassthrough,
40+
},
3841

3942
Schema: map[string]*schema.Schema{
4043
"lbrule_id": {

cloudstack/resource_cloudstack_autoscale_vm_profile.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ func resourceCloudStackAutoScaleVMProfile() *schema.Resource {
3535
Read: resourceCloudStackAutoScaleVMProfileRead,
3636
Update: resourceCloudStackAutoScaleVMProfileUpdate,
3737
Delete: resourceCloudStackAutoScaleVMProfileDelete,
38+
Importer: &schema.ResourceImporter{
39+
State: schema.ImportStatePassthrough,
40+
},
3841

3942
Schema: map[string]*schema.Schema{
4043
"service_offering": {

cloudstack/resource_cloudstack_autoscale_vm_profile_test.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,27 @@ func TestAccCloudStackAutoscaleVMProfile_update(t *testing.T) {
8585
})
8686
}
8787

88+
func TestAccCloudStackAutoscaleVMProfile_import(t *testing.T) {
89+
t.Skip("Skipping due to bug in cloudstack-go library")
90+
91+
resource.Test(t, resource.TestCase{
92+
PreCheck: func() { testAccPreCheck(t) },
93+
Providers: testAccProviders,
94+
CheckDestroy: testAccCheckCloudStackAutoscaleVMProfileDestroy,
95+
Steps: []resource.TestStep{
96+
{
97+
Config: testAccCloudStackAutoscaleVMProfile_basic,
98+
},
99+
100+
{
101+
ResourceName: "cloudstack_autoscale_vm_profile.foo",
102+
ImportState: true,
103+
ImportStateVerify: true,
104+
},
105+
},
106+
})
107+
}
108+
88109
func testAccCheckResourceMetadata(vmProfile *cloudstack.AutoScaleVmProfile) resource.TestCheckFunc {
89110
return func(s *terraform.State) error {
90111
cs := testAccProvider.Meta().(*cloudstack.CloudStackClient)

cloudstack/resource_cloudstack_condition.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ func resourceCloudStackCondition() *schema.Resource {
3333
Read: resourceCloudStackConditionRead,
3434
Update: resourceCloudStackConditionUpdate,
3535
Delete: resourceCloudStackConditionDelete,
36+
Importer: &schema.ResourceImporter{
37+
State: schema.ImportStatePassthrough,
38+
},
3639

3740
Schema: map[string]*schema.Schema{
3841
"counter_id": {

cloudstack/resource_cloudstack_counter.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ func resourceCloudStackCounter() *schema.Resource {
3232
Create: resourceCloudStackCounterCreate,
3333
Read: resourceCloudStackCounterRead,
3434
Delete: resourceCloudStackCounterDelete,
35+
Importer: &schema.ResourceImporter{
36+
State: schema.ImportStatePassthrough,
37+
},
3538

3639
Schema: map[string]*schema.Schema{
3740
"name": {

cloudstack/resource_cloudstack_host.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ func resourceCloudStackHost() *schema.Resource {
3737
Update: resourceCloudStackHostUpdate,
3838
Create: resourceCloudStackHostCreate,
3939
Delete: resourceCloudStackHostDelete,
40+
Importer: &schema.ResourceImporter{
41+
State: schema.ImportStatePassthrough,
42+
},
4043
Schema: map[string]*schema.Schema{
4144
"hypervisor": {
4245
Type: schema.TypeString,

cloudstack/resource_cloudstack_host_test.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,32 @@ func TestAccCloudStackHost_basic(t *testing.T) {
4949
})
5050
}
5151

52+
func TestAccCloudStackHost_import(t *testing.T) {
53+
resource.Test(t, resource.TestCase{
54+
PreCheck: func() { testAccPreCheck(t) },
55+
Providers: testAccProviders,
56+
Steps: []resource.TestStep{
57+
{
58+
Config: testAccCloudStackHost_basic,
59+
},
60+
61+
{
62+
ResourceName: "cloudstack_host.test",
63+
ImportState: true,
64+
ImportStateVerify: true,
65+
// CloudStack's listHosts API never returns the connection URL or
66+
// credentials, and these timeouts/flags are provider-local knobs that
67+
// aren't part of the host object, so Read can't populate any of them.
68+
ImportStateVerifyIgnore: []string{
69+
"url", "username", "password",
70+
"create_timeout", "destroy_timeout",
71+
"prevent_destroy", "force_destroy",
72+
},
73+
},
74+
},
75+
})
76+
}
77+
5278
const testAccCloudStackHost_basic = `
5379
data "cloudstack_zone" "zone" {
5480
filter {

cloudstack/resource_cloudstack_ipaddress.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ func resourceCloudStackIPAddress() *schema.Resource {
3333
Create: resourceCloudStackIPAddressCreate,
3434
Read: resourceCloudStackIPAddressRead,
3535
Delete: resourceCloudStackIPAddressDelete,
36+
Importer: &schema.ResourceImporter{
37+
State: importStatePassthrough,
38+
},
3639

3740
Schema: map[string]*schema.Schema{
3841
"is_portable": {

cloudstack/resource_cloudstack_ipaddress_test.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,25 @@ func TestAccCloudStackIPAddress_basic(t *testing.T) {
4949
})
5050
}
5151

52+
func TestAccCloudStackIPAddress_import(t *testing.T) {
53+
resource.Test(t, resource.TestCase{
54+
PreCheck: func() { testAccPreCheck(t) },
55+
Providers: testAccProviders,
56+
CheckDestroy: testAccCheckCloudStackIPAddressDestroy,
57+
Steps: []resource.TestStep{
58+
{
59+
Config: testAccCloudStackIPAddress_basic,
60+
},
61+
62+
{
63+
ResourceName: "cloudstack_ipaddress.foo",
64+
ImportState: true,
65+
ImportStateVerify: true,
66+
},
67+
},
68+
})
69+
}
70+
5271
func TestAccCloudStackIPAddress_vpc(t *testing.T) {
5372
var ipaddr cloudstack.PublicIpAddress
5473

0 commit comments

Comments
 (0)