0
0
mirror of https://github.com/bpg/terraform-provider-proxmox.git synced 2025-08-22 19:38:35 +00:00

Minor refactoring

This commit is contained in:
Dan Petersen 2019-12-14 15:25:10 +01:00
parent 107267f93f
commit 3ba91855cc
27 changed files with 620 additions and 273 deletions

View File

@ -101,11 +101,11 @@ This data source doesn't accept arguments.
###### Attributes ###### Attributes
* `comment` - The pool comment * `comment` - The pool comment
* `members` - The pool members * `members` - The pool members
* `datastore_id` - The datastore id
* `id` - The member id * `id` - The member id
* `node` - The node id * `node_name` - The node name
* `storage` - The storage id
* `type` - The member type * `type` - The member type
* `virtual_machine_id` - The virtual machine id * `vm_id` - The virtual machine id
##### Pools (proxmox_virtual_environment_pools) ##### Pools (proxmox_virtual_environment_pools)
@ -174,7 +174,7 @@ This data source doesn't accept arguments.
This data source doesn't accept arguments. This data source doesn't accept arguments.
###### Attributes ###### Attributes
* `keyboard` - The keyboard layout * `keyboard_layout` - The keyboard layout
* `release` - The release number * `release` - The release number
* `repository_id` - The repository id * `repository_id` - The repository id
* `version` - The version string * `version` - The version string
@ -216,11 +216,11 @@ This data source doesn't accept arguments.
###### Attributes ###### Attributes
* `members` - The pool members * `members` - The pool members
* `datastore_id` - The datastore id
* `id` - The member id * `id` - The member id
* `node` - The node id * `node_name` - The node name
* `storage` - The storage id
* `type` - The member type * `type` - The member type
* `virtual_machine_id` - The virtual machine id * `vm_id` - The virtual machine id
##### Role (proxmox_virtual_environment_role) ##### Role (proxmox_virtual_environment_role)

View File

@ -5,6 +5,7 @@
package main package main
import ( import (
"github.com/hashicorp/terraform/helper/schema"
"testing" "testing"
) )
@ -21,7 +22,11 @@ func TestDataSourceVirtualEnvironmentDatastoresInstantiation(t *testing.T) {
func TestDataSourceVirtualEnvironmentDatastoresSchema(t *testing.T) { func TestDataSourceVirtualEnvironmentDatastoresSchema(t *testing.T) {
s := dataSourceVirtualEnvironmentDatastores() s := dataSourceVirtualEnvironmentDatastores()
attributeKeys := []string{ testRequiredArguments(t, s, []string{
mkDataSourceVirtualEnvironmentDatastoresNodeName,
})
testComputedAttributes(t, s, []string{
mkDataSourceVirtualEnvironmentDatastoresActive, mkDataSourceVirtualEnvironmentDatastoresActive,
mkDataSourceVirtualEnvironmentDatastoresContentTypes, mkDataSourceVirtualEnvironmentDatastoresContentTypes,
mkDataSourceVirtualEnvironmentDatastoresDatastoreIDs, mkDataSourceVirtualEnvironmentDatastoresDatastoreIDs,
@ -31,15 +36,29 @@ func TestDataSourceVirtualEnvironmentDatastoresSchema(t *testing.T) {
mkDataSourceVirtualEnvironmentDatastoresSpaceTotal, mkDataSourceVirtualEnvironmentDatastoresSpaceTotal,
mkDataSourceVirtualEnvironmentDatastoresSpaceUsed, mkDataSourceVirtualEnvironmentDatastoresSpaceUsed,
mkDataSourceVirtualEnvironmentDatastoresTypes, mkDataSourceVirtualEnvironmentDatastoresTypes,
} })
for _, v := range attributeKeys { testSchemaValueTypes(t, s, []string{
if s.Schema[v] == nil { mkDataSourceVirtualEnvironmentDatastoresActive,
t.Fatalf("Error in dataSourceVirtualEnvironmentDatastores.Schema: Missing attribute \"%s\"", v) mkDataSourceVirtualEnvironmentDatastoresContentTypes,
} mkDataSourceVirtualEnvironmentDatastoresDatastoreIDs,
mkDataSourceVirtualEnvironmentDatastoresEnabled,
if s.Schema[v].Computed != true { mkDataSourceVirtualEnvironmentDatastoresNodeName,
t.Fatalf("Error in dataSourceVirtualEnvironmentDatastores.Schema: Attribute \"%s\" is not computed", v) mkDataSourceVirtualEnvironmentDatastoresShared,
} mkDataSourceVirtualEnvironmentDatastoresSpaceAvailable,
} mkDataSourceVirtualEnvironmentDatastoresSpaceTotal,
mkDataSourceVirtualEnvironmentDatastoresSpaceUsed,
mkDataSourceVirtualEnvironmentDatastoresTypes,
}, []schema.ValueType{
schema.TypeList,
schema.TypeList,
schema.TypeList,
schema.TypeList,
schema.TypeString,
schema.TypeList,
schema.TypeList,
schema.TypeList,
schema.TypeList,
schema.TypeList,
})
} }

View File

@ -24,26 +24,22 @@ func dataSourceVirtualEnvironmentGroup() *schema.Resource {
mkDataSourceVirtualEnvironmentGroupACL: &schema.Schema{ mkDataSourceVirtualEnvironmentGroupACL: &schema.Schema{
Type: schema.TypeSet, Type: schema.TypeSet,
Description: "The access control list", Description: "The access control list",
Optional: true, Computed: true,
DefaultFunc: func() (interface{}, error) {
return make([]interface{}, 0), nil
},
Elem: &schema.Resource{ Elem: &schema.Resource{
Schema: map[string]*schema.Schema{ Schema: map[string]*schema.Schema{
mkDataSourceVirtualEnvironmentGroupACLPath: { mkDataSourceVirtualEnvironmentGroupACLPath: {
Type: schema.TypeString, Type: schema.TypeString,
Required: true, Computed: true,
Description: "The path", Description: "The path",
}, },
mkDataSourceVirtualEnvironmentGroupACLPropagate: { mkDataSourceVirtualEnvironmentGroupACLPropagate: {
Type: schema.TypeBool, Type: schema.TypeBool,
Optional: true, Computed: true,
Description: "Whether to propagate to child paths", Description: "Whether to propagate to child paths",
Default: false,
}, },
mkDataSourceVirtualEnvironmentGroupACLRoleID: { mkDataSourceVirtualEnvironmentGroupACLRoleID: {
Type: schema.TypeString, Type: schema.TypeString,
Required: true, Computed: true,
Description: "The role id", Description: "The role id",
}, },
}, },

View File

@ -6,6 +6,8 @@ package main
import ( import (
"testing" "testing"
"github.com/hashicorp/terraform/helper/schema"
) )
// TestDataSourceVirtualEnvironmentGroupInstantiation tests whether the DataSourceVirtualEnvironmentGroup instance can be instantiated. // TestDataSourceVirtualEnvironmentGroupInstantiation tests whether the DataSourceVirtualEnvironmentGroup instance can be instantiated.
@ -21,18 +23,43 @@ func TestDataSourceVirtualEnvironmentGroupInstantiation(t *testing.T) {
func TestDataSourceVirtualEnvironmentGroupSchema(t *testing.T) { func TestDataSourceVirtualEnvironmentGroupSchema(t *testing.T) {
s := dataSourceVirtualEnvironmentGroup() s := dataSourceVirtualEnvironmentGroup()
attributeKeys := []string{ testRequiredArguments(t, s, []string{
mkDataSourceVirtualEnvironmentGroupID,
})
testComputedAttributes(t, s, []string{
mkDataSourceVirtualEnvironmentGroupACL,
mkDataSourceVirtualEnvironmentGroupComment, mkDataSourceVirtualEnvironmentGroupComment,
mkDataSourceVirtualEnvironmentGroupMembers, mkDataSourceVirtualEnvironmentGroupMembers,
} })
for _, v := range attributeKeys { testSchemaValueTypes(t, s, []string{
if s.Schema[v] == nil { mkDataSourceVirtualEnvironmentGroupACL,
t.Fatalf("Error in dataSourceVirtualEnvironmentGroup.Schema: Missing attribute \"%s\"", v) mkDataSourceVirtualEnvironmentGroupID,
} mkDataSourceVirtualEnvironmentGroupComment,
mkDataSourceVirtualEnvironmentGroupMembers,
}, []schema.ValueType{
schema.TypeSet,
schema.TypeString,
schema.TypeString,
schema.TypeSet,
})
if s.Schema[v].Computed != true { aclSchema := testNestedSchemaExistence(t, s, mkDataSourceVirtualEnvironmentGroupACL)
t.Fatalf("Error in dataSourceVirtualEnvironmentGroup.Schema: Attribute \"%s\" is not computed", v)
} testComputedAttributes(t, aclSchema, []string{
} mkDataSourceVirtualEnvironmentGroupACLPath,
mkDataSourceVirtualEnvironmentGroupACLPropagate,
mkDataSourceVirtualEnvironmentGroupACLRoleID,
})
testSchemaValueTypes(t, aclSchema, []string{
mkDataSourceVirtualEnvironmentGroupACLPath,
mkDataSourceVirtualEnvironmentGroupACLPropagate,
mkDataSourceVirtualEnvironmentGroupACLRoleID,
}, []schema.ValueType{
schema.TypeString,
schema.TypeBool,
schema.TypeString,
})
} }

View File

@ -5,6 +5,7 @@
package main package main
import ( import (
"github.com/hashicorp/terraform/helper/schema"
"testing" "testing"
) )
@ -21,18 +22,16 @@ func TestDataSourceVirtualEnvironmentGroupsInstantiation(t *testing.T) {
func TestDataSourceVirtualEnvironmentGroupsSchema(t *testing.T) { func TestDataSourceVirtualEnvironmentGroupsSchema(t *testing.T) {
s := dataSourceVirtualEnvironmentGroups() s := dataSourceVirtualEnvironmentGroups()
attributeKeys := []string{ testComputedAttributes(t, s, []string{
mkDataSourceVirtualEnvironmentGroupsComments, mkDataSourceVirtualEnvironmentGroupsComments,
mkDataSourceVirtualEnvironmentGroupsGroupIDs, mkDataSourceVirtualEnvironmentGroupsGroupIDs,
} })
for _, v := range attributeKeys { testSchemaValueTypes(t, s, []string{
if s.Schema[v] == nil { mkDataSourceVirtualEnvironmentGroupsComments,
t.Fatalf("Error in dataSourceVirtualEnvironmentGroups.Schema: Missing attribute \"%s\"", v) mkDataSourceVirtualEnvironmentGroupsGroupIDs,
} }, []schema.ValueType{
schema.TypeList,
if s.Schema[v].Computed != true { schema.TypeList,
t.Fatalf("Error in dataSourceVirtualEnvironmentGroups.Schema: Attribute \"%s\" is not computed", v) })
}
}
} }

View File

@ -6,6 +6,8 @@ package main
import ( import (
"testing" "testing"
"github.com/hashicorp/terraform/helper/schema"
) )
// TestDataSourceVirtualEnvironmentNodesInstantiation tests whether the DataSourceVirtualEnvironmentNodes instance can be instantiated. // TestDataSourceVirtualEnvironmentNodesInstantiation tests whether the DataSourceVirtualEnvironmentNodes instance can be instantiated.
@ -21,7 +23,7 @@ func TestDataSourceVirtualEnvironmentNodesInstantiation(t *testing.T) {
func TestDataSourceVirtualEnvironmentNodesSchema(t *testing.T) { func TestDataSourceVirtualEnvironmentNodesSchema(t *testing.T) {
s := dataSourceVirtualEnvironmentNodes() s := dataSourceVirtualEnvironmentNodes()
attributeKeys := []string{ testComputedAttributes(t, s, []string{
mkDataSourceVirtualEnvironmentNodesCPUCount, mkDataSourceVirtualEnvironmentNodesCPUCount,
mkDataSourceVirtualEnvironmentNodesCPUUtilization, mkDataSourceVirtualEnvironmentNodesCPUUtilization,
mkDataSourceVirtualEnvironmentNodesMemoryAvailable, mkDataSourceVirtualEnvironmentNodesMemoryAvailable,
@ -31,15 +33,27 @@ func TestDataSourceVirtualEnvironmentNodesSchema(t *testing.T) {
mkDataSourceVirtualEnvironmentNodesSSLFingerprints, mkDataSourceVirtualEnvironmentNodesSSLFingerprints,
mkDataSourceVirtualEnvironmentNodesSupportLevels, mkDataSourceVirtualEnvironmentNodesSupportLevels,
mkDataSourceVirtualEnvironmentNodesUptime, mkDataSourceVirtualEnvironmentNodesUptime,
} })
for _, v := range attributeKeys { testSchemaValueTypes(t, s, []string{
if s.Schema[v] == nil { mkDataSourceVirtualEnvironmentNodesCPUCount,
t.Fatalf("Error in dataSourceVirtualEnvironmentNodes.Schema: Missing attribute \"%s\"", v) mkDataSourceVirtualEnvironmentNodesCPUUtilization,
} mkDataSourceVirtualEnvironmentNodesMemoryAvailable,
mkDataSourceVirtualEnvironmentNodesMemoryUsed,
if s.Schema[v].Computed != true { mkDataSourceVirtualEnvironmentNodesNames,
t.Fatalf("Error in dataSourceVirtualEnvironmentNodes.Schema: Attribute \"%s\" is not computed", v) mkDataSourceVirtualEnvironmentNodesOnline,
} mkDataSourceVirtualEnvironmentNodesSSLFingerprints,
} mkDataSourceVirtualEnvironmentNodesSupportLevels,
mkDataSourceVirtualEnvironmentNodesUptime,
}, []schema.ValueType{
schema.TypeList,
schema.TypeList,
schema.TypeList,
schema.TypeList,
schema.TypeList,
schema.TypeList,
schema.TypeList,
schema.TypeList,
schema.TypeList,
})
} }

View File

@ -9,9 +9,14 @@ import (
) )
const ( const (
mkDataSourceVirtualEnvironmentPoolComment = "comment" mkDataSourceVirtualEnvironmentPoolComment = "comment"
mkDataSourceVirtualEnvironmentPoolMembers = "members" mkDataSourceVirtualEnvironmentPoolMembers = "members"
mkDataSourceVirtualEnvironmentPoolPoolID = "pool_id" mkDataSourceVirtualEnvironmentPoolMembersDatastoreID = "datastore_id"
mkDataSourceVirtualEnvironmentPoolMembersID = "id"
mkDataSourceVirtualEnvironmentPoolMembersNodeName = "node_name"
mkDataSourceVirtualEnvironmentPoolMembersType = "type"
mkDataSourceVirtualEnvironmentPoolMembersVMID = "vm_id"
mkDataSourceVirtualEnvironmentPoolPoolID = "pool_id"
) )
func dataSourceVirtualEnvironmentPool() *schema.Resource { func dataSourceVirtualEnvironmentPool() *schema.Resource {
@ -28,32 +33,30 @@ func dataSourceVirtualEnvironmentPool() *schema.Resource {
Computed: true, Computed: true,
Elem: &schema.Resource{ Elem: &schema.Resource{
Schema: map[string]*schema.Schema{ Schema: map[string]*schema.Schema{
mkResourceVirtualEnvironmentPoolMembersID: { mkDataSourceVirtualEnvironmentPoolMembersDatastoreID: {
Type: schema.TypeString, Type: schema.TypeString,
Required: true, Computed: true,
Description: "The datastore id",
},
mkDataSourceVirtualEnvironmentPoolMembersID: {
Type: schema.TypeString,
Computed: true,
Description: "The member id", Description: "The member id",
}, },
mkResourceVirtualEnvironmentPoolMembersNode: { mkDataSourceVirtualEnvironmentPoolMembersNodeName: {
Type: schema.TypeString, Type: schema.TypeString,
Required: true, Computed: true,
Description: "The node id", Description: "The node name",
}, },
mkResourceVirtualEnvironmentPoolMembersStorage: { mkDataSourceVirtualEnvironmentPoolMembersType: {
Type: schema.TypeString, Type: schema.TypeString,
Optional: true, Computed: true,
Description: "The storage id",
Default: "",
},
mkResourceVirtualEnvironmentPoolMembersType: {
Type: schema.TypeString,
Required: true,
Description: "The member type", Description: "The member type",
}, },
mkResourceVirtualEnvironmentPoolMembersVirtualMachineID: { mkDataSourceVirtualEnvironmentPoolMembersVMID: {
Type: schema.TypeInt, Type: schema.TypeInt,
Optional: true, Computed: true,
Description: "The virtual machine id", Description: "The virtual machine id",
Default: 0,
}, },
}, },
}, },
@ -96,27 +99,27 @@ func dataSourceVirtualEnvironmentPoolRead(d *schema.ResourceData, m interface{})
for i, v := range pool.Members { for i, v := range pool.Members {
values := make(map[string]interface{}) values := make(map[string]interface{})
values[mkResourceVirtualEnvironmentPoolMembersID] = v.ID values[mkDataSourceVirtualEnvironmentPoolMembersID] = v.ID
values[mkResourceVirtualEnvironmentPoolMembersNode] = v.Node values[mkDataSourceVirtualEnvironmentPoolMembersNodeName] = v.Node
if v.Storage != nil { if v.DatastoreID != nil {
values[mkResourceVirtualEnvironmentPoolMembersStorage] = v.Storage values[mkDataSourceVirtualEnvironmentPoolMembersDatastoreID] = v.DatastoreID
} else { } else {
values[mkResourceVirtualEnvironmentPoolMembersStorage] = "" values[mkDataSourceVirtualEnvironmentPoolMembersDatastoreID] = ""
} }
values[mkResourceVirtualEnvironmentPoolMembersType] = v.Type values[mkDataSourceVirtualEnvironmentPoolMembersType] = v.Type
if v.VirtualMachineID != nil { if v.VMID != nil {
values[mkResourceVirtualEnvironmentPoolMembersVirtualMachineID] = v.VirtualMachineID values[mkDataSourceVirtualEnvironmentPoolMembersVMID] = v.VMID
} else { } else {
values[mkResourceVirtualEnvironmentPoolMembersVirtualMachineID] = 0 values[mkDataSourceVirtualEnvironmentPoolMembersVMID] = 0
} }
members[i] = values members[i] = values
} }
d.Set(mkResourceVirtualEnvironmentPoolMembers, members) d.Set(mkDataSourceVirtualEnvironmentPoolMembers, members)
return nil return nil
} }

View File

@ -6,6 +6,8 @@ package main
import ( import (
"testing" "testing"
"github.com/hashicorp/terraform/helper/schema"
) )
// TestDataSourceVirtualEnvironmentPoolInstantiation tests whether the DataSourceVirtualEnvironmentPool instance can be instantiated. // TestDataSourceVirtualEnvironmentPoolInstantiation tests whether the DataSourceVirtualEnvironmentPool instance can be instantiated.
@ -21,18 +23,46 @@ func TestDataSourceVirtualEnvironmentPoolInstantiation(t *testing.T) {
func TestDataSourceVirtualEnvironmentPoolSchema(t *testing.T) { func TestDataSourceVirtualEnvironmentPoolSchema(t *testing.T) {
s := dataSourceVirtualEnvironmentPool() s := dataSourceVirtualEnvironmentPool()
attributeKeys := []string{ testRequiredArguments(t, s, []string{
mkDataSourceVirtualEnvironmentPoolPoolID,
})
testComputedAttributes(t, s, []string{
mkDataSourceVirtualEnvironmentPoolComment, mkDataSourceVirtualEnvironmentPoolComment,
mkDataSourceVirtualEnvironmentPoolMembers, mkDataSourceVirtualEnvironmentPoolMembers,
} })
for _, v := range attributeKeys { testSchemaValueTypes(t, s, []string{
if s.Schema[v] == nil { mkDataSourceVirtualEnvironmentPoolComment,
t.Fatalf("Error in dataSourceVirtualEnvironmentPool.Schema: Missing attribute \"%s\"", v) mkDataSourceVirtualEnvironmentPoolMembers,
} mkDataSourceVirtualEnvironmentPoolPoolID,
}, []schema.ValueType{
schema.TypeString,
schema.TypeList,
schema.TypeString,
})
if s.Schema[v].Computed != true { membersSchema := testNestedSchemaExistence(t, s, mkDataSourceVirtualEnvironmentPoolMembers)
t.Fatalf("Error in dataSourceVirtualEnvironmentPool.Schema: Attribute \"%s\" is not computed", v)
} testComputedAttributes(t, membersSchema, []string{
} mkDataSourceVirtualEnvironmentPoolMembersDatastoreID,
mkDataSourceVirtualEnvironmentPoolMembersID,
mkDataSourceVirtualEnvironmentPoolMembersNodeName,
mkDataSourceVirtualEnvironmentPoolMembersType,
mkDataSourceVirtualEnvironmentPoolMembersVMID,
})
testSchemaValueTypes(t, membersSchema, []string{
mkDataSourceVirtualEnvironmentPoolMembersDatastoreID,
mkDataSourceVirtualEnvironmentPoolMembersID,
mkDataSourceVirtualEnvironmentPoolMembersNodeName,
mkDataSourceVirtualEnvironmentPoolMembersType,
mkDataSourceVirtualEnvironmentPoolMembersVMID,
}, []schema.ValueType{
schema.TypeString,
schema.TypeString,
schema.TypeString,
schema.TypeString,
schema.TypeInt,
})
} }

View File

@ -6,6 +6,8 @@ package main
import ( import (
"testing" "testing"
"github.com/hashicorp/terraform/helper/schema"
) )
// TestDataSourceVirtualEnvironmentPoolsInstantiation tests whether the DataSourceVirtualEnvironmentPools instance can be instantiated. // TestDataSourceVirtualEnvironmentPoolsInstantiation tests whether the DataSourceVirtualEnvironmentPools instance can be instantiated.
@ -21,17 +23,13 @@ func TestDataSourceVirtualEnvironmentPoolsInstantiation(t *testing.T) {
func TestDataSourceVirtualEnvironmentPoolsSchema(t *testing.T) { func TestDataSourceVirtualEnvironmentPoolsSchema(t *testing.T) {
s := dataSourceVirtualEnvironmentPools() s := dataSourceVirtualEnvironmentPools()
attributeKeys := []string{ testComputedAttributes(t, s, []string{
mkDataSourceVirtualEnvironmentPoolsPoolIDs, mkDataSourceVirtualEnvironmentPoolsPoolIDs,
} })
for _, v := range attributeKeys { testSchemaValueTypes(t, s, []string{
if s.Schema[v] == nil { mkDataSourceVirtualEnvironmentPoolsPoolIDs,
t.Fatalf("Error in dataSourceVirtualEnvironmentPools.Schema: Missing attribute \"%s\"", v) }, []schema.ValueType{
} schema.TypeList,
})
if s.Schema[v].Computed != true {
t.Fatalf("Error in dataSourceVirtualEnvironmentPools.Schema: Attribute \"%s\" is not computed", v)
}
}
} }

View File

@ -6,6 +6,8 @@ package main
import ( import (
"testing" "testing"
"github.com/hashicorp/terraform/helper/schema"
) )
// TestDataSourceVirtualEnvironmentRoleInstantiation tests whether the DataSourceVirtualEnvironmentRole instance can be instantiated. // TestDataSourceVirtualEnvironmentRoleInstantiation tests whether the DataSourceVirtualEnvironmentRole instance can be instantiated.
@ -21,17 +23,19 @@ func TestDataSourceVirtualEnvironmentRoleInstantiation(t *testing.T) {
func TestDataSourceVirtualEnvironmentRoleSchema(t *testing.T) { func TestDataSourceVirtualEnvironmentRoleSchema(t *testing.T) {
s := dataSourceVirtualEnvironmentRole() s := dataSourceVirtualEnvironmentRole()
attributeKeys := []string{ testRequiredArguments(t, s, []string{
mkDataSourceVirtualEnvironmentRoleID,
})
testComputedAttributes(t, s, []string{
mkDataSourceVirtualEnvironmentRolePrivileges, mkDataSourceVirtualEnvironmentRolePrivileges,
} })
for _, v := range attributeKeys { testSchemaValueTypes(t, s, []string{
if s.Schema[v] == nil { mkDataSourceVirtualEnvironmentRoleID,
t.Fatalf("Error in dataSourceVirtualEnvironmentRole.Schema: Missing attribute \"%s\"", v) mkDataSourceVirtualEnvironmentRolePrivileges,
} }, []schema.ValueType{
schema.TypeString,
if s.Schema[v].Computed != true { schema.TypeSet,
t.Fatalf("Error in dataSourceVirtualEnvironmentRole.Schema: Attribute \"%s\" is not computed", v) })
}
}
} }

View File

@ -5,6 +5,7 @@
package main package main
import ( import (
"github.com/hashicorp/terraform/helper/schema"
"testing" "testing"
) )
@ -21,19 +22,19 @@ func TestDataSourceVirtualEnvironmentRolesInstantiation(t *testing.T) {
func TestDataSourceVirtualEnvironmentRolesSchema(t *testing.T) { func TestDataSourceVirtualEnvironmentRolesSchema(t *testing.T) {
s := dataSourceVirtualEnvironmentRoles() s := dataSourceVirtualEnvironmentRoles()
attributeKeys := []string{ testComputedAttributes(t, s, []string{
mkDataSourceVirtualEnvironmentRolesPrivileges, mkDataSourceVirtualEnvironmentRolesPrivileges,
mkDataSourceVirtualEnvironmentRolesRoleIDs, mkDataSourceVirtualEnvironmentRolesRoleIDs,
mkDataSourceVirtualEnvironmentRolesSpecial, mkDataSourceVirtualEnvironmentRolesSpecial,
} })
for _, v := range attributeKeys { testSchemaValueTypes(t, s, []string{
if s.Schema[v] == nil { mkDataSourceVirtualEnvironmentRolesPrivileges,
t.Fatalf("Error in dataSourceVirtualEnvironmentRoles.Schema: Missing attribute \"%s\"", v) mkDataSourceVirtualEnvironmentRolesRoleIDs,
} mkDataSourceVirtualEnvironmentRolesSpecial,
}, []schema.ValueType{
if s.Schema[v].Computed != true { schema.TypeList,
t.Fatalf("Error in dataSourceVirtualEnvironmentRoles.Schema: Attribute \"%s\" is not computed", v) schema.TypeList,
} schema.TypeList,
} })
} }

View File

@ -32,26 +32,22 @@ func dataSourceVirtualEnvironmentUser() *schema.Resource {
mkDataSourceVirtualEnvironmentUserACL: &schema.Schema{ mkDataSourceVirtualEnvironmentUserACL: &schema.Schema{
Type: schema.TypeSet, Type: schema.TypeSet,
Description: "The access control list", Description: "The access control list",
Optional: true, Computed: true,
DefaultFunc: func() (interface{}, error) {
return make([]interface{}, 0), nil
},
Elem: &schema.Resource{ Elem: &schema.Resource{
Schema: map[string]*schema.Schema{ Schema: map[string]*schema.Schema{
mkDataSourceVirtualEnvironmentUserACLPath: { mkDataSourceVirtualEnvironmentUserACLPath: {
Type: schema.TypeString, Type: schema.TypeString,
Required: true, Computed: true,
Description: "The path", Description: "The path",
}, },
mkDataSourceVirtualEnvironmentUserACLPropagate: { mkDataSourceVirtualEnvironmentUserACLPropagate: {
Type: schema.TypeBool, Type: schema.TypeBool,
Optional: true, Computed: true,
Description: "Whether to propagate to child paths", Description: "Whether to propagate to child paths",
Default: false,
}, },
mkDataSourceVirtualEnvironmentUserACLRoleID: { mkDataSourceVirtualEnvironmentUserACLRoleID: {
Type: schema.TypeString, Type: schema.TypeString,
Required: true, Computed: true,
Description: "The role id", Description: "The role id",
}, },
}, },

View File

@ -6,6 +6,8 @@ package main
import ( import (
"testing" "testing"
"github.com/hashicorp/terraform/helper/schema"
) )
// TestDataSourceVirtualEnvironmentUserInstantiation tests whether the DataSourceVirtualEnvironmentUser instance can be instantiated. // TestDataSourceVirtualEnvironmentUserInstantiation tests whether the DataSourceVirtualEnvironmentUser instance can be instantiated.
@ -21,7 +23,12 @@ func TestDataSourceVirtualEnvironmentUserInstantiation(t *testing.T) {
func TestDataSourceVirtualEnvironmentUserSchema(t *testing.T) { func TestDataSourceVirtualEnvironmentUserSchema(t *testing.T) {
s := dataSourceVirtualEnvironmentUser() s := dataSourceVirtualEnvironmentUser()
attributeKeys := []string{ testRequiredArguments(t, s, []string{
mkDataSourceVirtualEnvironmentUserUserID,
})
testComputedAttributes(t, s, []string{
mkDataSourceVirtualEnvironmentUserACL,
mkDataSourceVirtualEnvironmentUserComment, mkDataSourceVirtualEnvironmentUserComment,
mkDataSourceVirtualEnvironmentUserEmail, mkDataSourceVirtualEnvironmentUserEmail,
mkDataSourceVirtualEnvironmentUserEnabled, mkDataSourceVirtualEnvironmentUserEnabled,
@ -30,15 +37,45 @@ func TestDataSourceVirtualEnvironmentUserSchema(t *testing.T) {
mkDataSourceVirtualEnvironmentUserGroups, mkDataSourceVirtualEnvironmentUserGroups,
mkDataSourceVirtualEnvironmentUserKeys, mkDataSourceVirtualEnvironmentUserKeys,
mkDataSourceVirtualEnvironmentUserLastName, mkDataSourceVirtualEnvironmentUserLastName,
} })
for _, v := range attributeKeys { testSchemaValueTypes(t, s, []string{
if s.Schema[v] == nil { mkDataSourceVirtualEnvironmentUserACL,
t.Fatalf("Error in dataSourceVirtualEnvironmentUser.Schema: Missing attribute \"%s\"", v) mkDataSourceVirtualEnvironmentUserComment,
} mkDataSourceVirtualEnvironmentUserEmail,
mkDataSourceVirtualEnvironmentUserEnabled,
mkDataSourceVirtualEnvironmentUserExpirationDate,
mkDataSourceVirtualEnvironmentUserFirstName,
mkDataSourceVirtualEnvironmentUserGroups,
mkDataSourceVirtualEnvironmentUserKeys,
mkDataSourceVirtualEnvironmentUserLastName,
}, []schema.ValueType{
schema.TypeSet,
schema.TypeString,
schema.TypeString,
schema.TypeBool,
schema.TypeString,
schema.TypeString,
schema.TypeList,
schema.TypeString,
schema.TypeString,
})
if s.Schema[v].Computed != true { aclSchema := testNestedSchemaExistence(t, s, mkDataSourceVirtualEnvironmentGroupACL)
t.Fatalf("Error in dataSourceVirtualEnvironmentUser.Schema: Attribute \"%s\" is not computed", v)
} testComputedAttributes(t, aclSchema, []string{
} mkDataSourceVirtualEnvironmentUserACLPath,
mkDataSourceVirtualEnvironmentUserACLPropagate,
mkDataSourceVirtualEnvironmentUserACLRoleID,
})
testSchemaValueTypes(t, aclSchema, []string{
mkDataSourceVirtualEnvironmentUserACLPath,
mkDataSourceVirtualEnvironmentUserACLPropagate,
mkDataSourceVirtualEnvironmentUserACLRoleID,
}, []schema.ValueType{
schema.TypeString,
schema.TypeBool,
schema.TypeString,
})
} }

View File

@ -6,6 +6,8 @@ package main
import ( import (
"testing" "testing"
"github.com/hashicorp/terraform/helper/schema"
) )
// TestDataSourceVirtualEnvironmentUsersInstantiation tests whether the DataSourceVirtualEnvironmentUsers instance can be instantiated. // TestDataSourceVirtualEnvironmentUsersInstantiation tests whether the DataSourceVirtualEnvironmentUsers instance can be instantiated.
@ -21,7 +23,7 @@ func TestDataSourceVirtualEnvironmentUsersInstantiation(t *testing.T) {
func TestDataSourceVirtualEnvironmentUsersSchema(t *testing.T) { func TestDataSourceVirtualEnvironmentUsersSchema(t *testing.T) {
s := dataSourceVirtualEnvironmentUsers() s := dataSourceVirtualEnvironmentUsers()
attributeKeys := []string{ testComputedAttributes(t, s, []string{
mkDataSourceVirtualEnvironmentUsersComments, mkDataSourceVirtualEnvironmentUsersComments,
mkDataSourceVirtualEnvironmentUsersEmails, mkDataSourceVirtualEnvironmentUsersEmails,
mkDataSourceVirtualEnvironmentUsersEnabled, mkDataSourceVirtualEnvironmentUsersEnabled,
@ -31,15 +33,27 @@ func TestDataSourceVirtualEnvironmentUsersSchema(t *testing.T) {
mkDataSourceVirtualEnvironmentUsersKeys, mkDataSourceVirtualEnvironmentUsersKeys,
mkDataSourceVirtualEnvironmentUsersLastNames, mkDataSourceVirtualEnvironmentUsersLastNames,
mkDataSourceVirtualEnvironmentUsersUserIDs, mkDataSourceVirtualEnvironmentUsersUserIDs,
} })
for _, v := range attributeKeys { testSchemaValueTypes(t, s, []string{
if s.Schema[v] == nil { mkDataSourceVirtualEnvironmentUsersComments,
t.Fatalf("Error in dataSourceVirtualEnvironmentUsers.Schema: Missing attribute \"%s\"", v) mkDataSourceVirtualEnvironmentUsersEmails,
} mkDataSourceVirtualEnvironmentUsersEnabled,
mkDataSourceVirtualEnvironmentUsersExpirationDates,
if s.Schema[v].Computed != true { mkDataSourceVirtualEnvironmentUsersFirstNames,
t.Fatalf("Error in dataSourceVirtualEnvironmentUsers.Schema: Attribute \"%s\" is not computed", v) mkDataSourceVirtualEnvironmentUsersGroups,
} mkDataSourceVirtualEnvironmentUsersKeys,
} mkDataSourceVirtualEnvironmentUsersLastNames,
mkDataSourceVirtualEnvironmentUsersUserIDs,
}, []schema.ValueType{
schema.TypeList,
schema.TypeList,
schema.TypeList,
schema.TypeList,
schema.TypeList,
schema.TypeList,
schema.TypeList,
schema.TypeList,
schema.TypeList,
})
} }

View File

@ -9,16 +9,16 @@ import (
) )
const ( const (
mkDataSourceVirtualEnvironmentVersionKeyboard = "keyboard" mkDataSourceVirtualEnvironmentVersionKeyboardLayout = "keyboard_layout"
mkDataSourceVirtualEnvironmentVersionRelease = "release" mkDataSourceVirtualEnvironmentVersionRelease = "release"
mkDataSourceVirtualEnvironmentVersionRepositoryID = "repository_id" mkDataSourceVirtualEnvironmentVersionRepositoryID = "repository_id"
mkDataSourceVirtualEnvironmentVersionVersion = "version" mkDataSourceVirtualEnvironmentVersionVersion = "version"
) )
func dataSourceVirtualEnvironmentVersion() *schema.Resource { func dataSourceVirtualEnvironmentVersion() *schema.Resource {
return &schema.Resource{ return &schema.Resource{
Schema: map[string]*schema.Schema{ Schema: map[string]*schema.Schema{
mkDataSourceVirtualEnvironmentVersionKeyboard: &schema.Schema{ mkDataSourceVirtualEnvironmentVersionKeyboardLayout: &schema.Schema{
Type: schema.TypeString, Type: schema.TypeString,
Description: "The keyboard layout", Description: "The keyboard layout",
Computed: true, Computed: true,
@ -63,7 +63,7 @@ func dataSourceVirtualEnvironmentVersionRead(d *schema.ResourceData, m interface
d.SetId("version") d.SetId("version")
d.Set(mkDataSourceVirtualEnvironmentVersionKeyboard, version.Keyboard) d.Set(mkDataSourceVirtualEnvironmentVersionKeyboardLayout, version.Keyboard)
d.Set(mkDataSourceVirtualEnvironmentVersionRelease, version.Release) d.Set(mkDataSourceVirtualEnvironmentVersionRelease, version.Release)
d.Set(mkDataSourceVirtualEnvironmentVersionRepositoryID, version.RepositoryID) d.Set(mkDataSourceVirtualEnvironmentVersionRepositoryID, version.RepositoryID)
d.Set(mkDataSourceVirtualEnvironmentVersionVersion, version.Version) d.Set(mkDataSourceVirtualEnvironmentVersionVersion, version.Version)

View File

@ -6,6 +6,8 @@ package main
import ( import (
"testing" "testing"
"github.com/hashicorp/terraform/helper/schema"
) )
// TestDataSourceVirtualEnvironmentVersionInstantiation tests whether the DataSourceVirtualEnvironmentVersion instance can be instantiated. // TestDataSourceVirtualEnvironmentVersionInstantiation tests whether the DataSourceVirtualEnvironmentVersion instance can be instantiated.
@ -21,20 +23,22 @@ func TestDataSourceVirtualEnvironmentVersionInstantiation(t *testing.T) {
func TestDataSourceVirtualEnvironmentVersionSchema(t *testing.T) { func TestDataSourceVirtualEnvironmentVersionSchema(t *testing.T) {
s := dataSourceVirtualEnvironmentVersion() s := dataSourceVirtualEnvironmentVersion()
attributeKeys := []string{ testComputedAttributes(t, s, []string{
mkDataSourceVirtualEnvironmentVersionKeyboard, mkDataSourceVirtualEnvironmentVersionKeyboardLayout,
mkDataSourceVirtualEnvironmentVersionRelease, mkDataSourceVirtualEnvironmentVersionRelease,
mkDataSourceVirtualEnvironmentVersionRepositoryID, mkDataSourceVirtualEnvironmentVersionRepositoryID,
mkDataSourceVirtualEnvironmentVersionVersion, mkDataSourceVirtualEnvironmentVersionVersion,
} })
for _, v := range attributeKeys { testSchemaValueTypes(t, s, []string{
if s.Schema[v] == nil { mkDataSourceVirtualEnvironmentVersionKeyboardLayout,
t.Fatalf("Error in dataSourceVirtualEnvironmentVersion.Schema: Missing attribute \"%s\"", v) mkDataSourceVirtualEnvironmentVersionRelease,
} mkDataSourceVirtualEnvironmentVersionRepositoryID,
mkDataSourceVirtualEnvironmentVersionVersion,
if s.Schema[v].Computed != true { }, []schema.ValueType{
t.Fatalf("Error in dataSourceVirtualEnvironmentVersion.Schema: Attribute \"%s\" is not computed", v) schema.TypeString,
} schema.TypeString,
} schema.TypeString,
schema.TypeString,
})
} }

View File

@ -2,7 +2,7 @@ data "proxmox_virtual_environment_version" "example" {}
output "data_proxmox_virtual_environment_version" { output "data_proxmox_virtual_environment_version" {
value = "${map( value = "${map(
"keyboard", data.proxmox_virtual_environment_version.example.keyboard, "keyboard_layout", data.proxmox_virtual_environment_version.example.keyboard_layout,
"release", data.proxmox_virtual_environment_version.example.release, "release", data.proxmox_virtual_environment_version.example.release,
"repository_id", data.proxmox_virtual_environment_version.example.repository_id, "repository_id", data.proxmox_virtual_environment_version.example.repository_id,
"version", data.proxmox_virtual_environment_version.example.version, "version", data.proxmox_virtual_environment_version.example.version,

View File

@ -20,11 +20,11 @@ type VirtualEnvironmentAuthenticationResponseBody struct {
// VirtualEnvironmentAuthenticationResponseCapabilities contains the supported capabilities for a session. // VirtualEnvironmentAuthenticationResponseCapabilities contains the supported capabilities for a session.
type VirtualEnvironmentAuthenticationResponseCapabilities struct { type VirtualEnvironmentAuthenticationResponseCapabilities struct {
Access *CustomPrivileges `json:"access,omitempty"` Access *CustomPrivileges `json:"access,omitempty"`
Datacenter *CustomPrivileges `json:"dc,omitempty"` Datacenter *CustomPrivileges `json:"dc,omitempty"`
Nodes *CustomPrivileges `json:"nodes,omitempty"` Nodes *CustomPrivileges `json:"nodes,omitempty"`
Storage *CustomPrivileges `json:"storage,omitempty"` Storage *CustomPrivileges `json:"storage,omitempty"`
VirtualMachines *CustomPrivileges `json:"vms,omitempty"` VMs *CustomPrivileges `json:"vms,omitempty"`
} }
// VirtualEnvironmentAuthenticationResponseData contains the data from an authentication response. // VirtualEnvironmentAuthenticationResponseData contains the data from an authentication response.

View File

@ -22,13 +22,13 @@ type VirtualEnvironmentDatastoreFileListResponseBody struct {
// VirtualEnvironmentDatastoreFileListResponseData contains the data from a datastore content list response. // VirtualEnvironmentDatastoreFileListResponseData contains the data from a datastore content list response.
type VirtualEnvironmentDatastoreFileListResponseData struct { type VirtualEnvironmentDatastoreFileListResponseData struct {
ContentType string `json:"content"` ContentType string `json:"content"`
FileFormat string `json:"format"` FileFormat string `json:"format"`
FileSize int `json:"size"` FileSize int `json:"size"`
ParentVolumeID *string `json:"parent,omitempty"` ParentVolumeID *string `json:"parent,omitempty"`
SpaceUsed *int `json:"used,omitempty"` SpaceUsed *int `json:"used,omitempty"`
VirtualMachineID *int `json:"vmid,omitempty"` VMID *int `json:"vmid,omitempty"`
VolumeID string `json:"volid"` VolumeID string `json:"volid"`
} }
// VirtualEnvironmentDatastoreListRequestBody contains the body for a datastore list request. // VirtualEnvironmentDatastoreListRequestBody contains the body for a datastore list request.

View File

@ -30,11 +30,11 @@ type VirtualEnvironmentPoolGetResponseData struct {
// VirtualEnvironmentPoolGetResponseMembers contains the members data from an pool get response. // VirtualEnvironmentPoolGetResponseMembers contains the members data from an pool get response.
type VirtualEnvironmentPoolGetResponseMembers struct { type VirtualEnvironmentPoolGetResponseMembers struct {
ID string `json:"id"` ID string `json:"id"`
Node string `json:"node"` Node string `json:"node"`
Storage *string `json:"storage,omitempty"` DatastoreID *string `json:"storage,omitempty"`
Type string `json:"type"` Type string `json:"type"`
VirtualMachineID *int `json:"vmid"` VMID *int `json:"vmid"`
} }
// VirtualEnvironmentPoolListResponseBody contains the body from an pool list response. // VirtualEnvironmentPoolListResponseBody contains the body from an pool list response.

View File

@ -6,6 +6,8 @@ package main
import ( import (
"testing" "testing"
"github.com/hashicorp/terraform/helper/schema"
) )
// TestResourceVirtualEnvironmentFileInstantiation tests whether the ResourceVirtualEnvironmentFile instance can be instantiated. // TestResourceVirtualEnvironmentFileInstantiation tests whether the ResourceVirtualEnvironmentFile instance can be instantiated.
@ -21,17 +23,34 @@ func TestResourceVirtualEnvironmentFileInstantiation(t *testing.T) {
func TestResourceVirtualEnvironmentFileSchema(t *testing.T) { func TestResourceVirtualEnvironmentFileSchema(t *testing.T) {
s := resourceVirtualEnvironmentFile() s := resourceVirtualEnvironmentFile()
attributeKeys := []string{ testRequiredArguments(t, s, []string{
mkResourceVirtualEnvironmentFileDatastoreID,
mkResourceVirtualEnvironmentFileNodeName,
mkResourceVirtualEnvironmentFileSource,
mkResourceVirtualEnvironmentFileTemplate,
})
testOptionalArguments(t, s, []string{
mkResourceVirtualEnvironmentFileOverrideFileName,
})
testComputedAttributes(t, s, []string{
mkResourceVirtualEnvironmentFileFileName, mkResourceVirtualEnvironmentFileFileName,
} })
for _, v := range attributeKeys { testSchemaValueTypes(t, s, []string{
if s.Schema[v] == nil { mkResourceVirtualEnvironmentFileDatastoreID,
t.Fatalf("Error in resourceVirtualEnvironmentFile.Schema: Missing attribute \"%s\"", v) mkResourceVirtualEnvironmentFileFileName,
} mkResourceVirtualEnvironmentFileOverrideFileName,
mkResourceVirtualEnvironmentFileNodeName,
if s.Schema[v].Computed != true { mkResourceVirtualEnvironmentFileSource,
t.Fatalf("Error in resourceVirtualEnvironmentFile.Schema: Attribute \"%s\" is not computed", v) mkResourceVirtualEnvironmentFileTemplate,
} }, []schema.ValueType{
} schema.TypeString,
schema.TypeString,
schema.TypeString,
schema.TypeString,
schema.TypeString,
schema.TypeBool,
})
} }

View File

@ -6,6 +6,8 @@ package main
import ( import (
"testing" "testing"
"github.com/hashicorp/terraform/helper/schema"
) )
// TestResourceVirtualEnvironmentGroupInstantiation tests whether the ResourceVirtualEnvironmentGroup instance can be instantiated. // TestResourceVirtualEnvironmentGroupInstantiation tests whether the ResourceVirtualEnvironmentGroup instance can be instantiated.
@ -21,17 +23,49 @@ func TestResourceVirtualEnvironmentGroupInstantiation(t *testing.T) {
func TestResourceVirtualEnvironmentGroupSchema(t *testing.T) { func TestResourceVirtualEnvironmentGroupSchema(t *testing.T) {
s := resourceVirtualEnvironmentGroup() s := resourceVirtualEnvironmentGroup()
attributeKeys := []string{ testRequiredArguments(t, s, []string{
mkResourceVirtualEnvironmentGroupID,
})
testOptionalArguments(t, s, []string{
mkResourceVirtualEnvironmentGroupACL,
mkResourceVirtualEnvironmentGroupComment,
})
testComputedAttributes(t, s, []string{
mkResourceVirtualEnvironmentGroupMembers, mkResourceVirtualEnvironmentGroupMembers,
} })
for _, v := range attributeKeys { testSchemaValueTypes(t, s, []string{
if s.Schema[v] == nil { mkResourceVirtualEnvironmentGroupACL,
t.Fatalf("Error in resourceVirtualEnvironmentGroup.Schema: Missing attribute \"%s\"", v) mkResourceVirtualEnvironmentGroupComment,
} mkResourceVirtualEnvironmentGroupID,
mkResourceVirtualEnvironmentGroupMembers,
}, []schema.ValueType{
schema.TypeSet,
schema.TypeString,
schema.TypeString,
schema.TypeSet,
})
if s.Schema[v].Computed != true { aclSchema := testNestedSchemaExistence(t, s, mkResourceVirtualEnvironmentGroupACL)
t.Fatalf("Error in resourceVirtualEnvironmentGroup.Schema: Attribute \"%s\" is not computed", v)
} testRequiredArguments(t, aclSchema, []string{
} mkResourceVirtualEnvironmentGroupACLPath,
mkResourceVirtualEnvironmentGroupACLRoleID,
})
testOptionalArguments(t, aclSchema, []string{
mkResourceVirtualEnvironmentGroupACLPropagate,
})
testSchemaValueTypes(t, aclSchema, []string{
mkResourceVirtualEnvironmentGroupACLPath,
mkResourceVirtualEnvironmentGroupACLPropagate,
mkResourceVirtualEnvironmentGroupACLRoleID,
}, []schema.ValueType{
schema.TypeString,
schema.TypeBool,
schema.TypeString,
})
} }

View File

@ -12,14 +12,14 @@ import (
) )
const ( const (
mkResourceVirtualEnvironmentPoolComment = "comment" mkResourceVirtualEnvironmentPoolComment = "comment"
mkResourceVirtualEnvironmentPoolMembers = "members" mkResourceVirtualEnvironmentPoolMembers = "members"
mkResourceVirtualEnvironmentPoolMembersID = "id" mkResourceVirtualEnvironmentPoolMembersDatastoreID = "datastore_id"
mkResourceVirtualEnvironmentPoolMembersNode = "node" mkResourceVirtualEnvironmentPoolMembersID = "id"
mkResourceVirtualEnvironmentPoolMembersStorage = "storage" mkResourceVirtualEnvironmentPoolMembersNodeName = "node_name"
mkResourceVirtualEnvironmentPoolMembersType = "type" mkResourceVirtualEnvironmentPoolMembersType = "type"
mkResourceVirtualEnvironmentPoolMembersVirtualMachineID = "virtual_machine_id" mkResourceVirtualEnvironmentPoolMembersVMID = "vm_id"
mkResourceVirtualEnvironmentPoolPoolID = "pool_id" mkResourceVirtualEnvironmentPoolPoolID = "pool_id"
) )
func resourceVirtualEnvironmentPool() *schema.Resource { func resourceVirtualEnvironmentPool() *schema.Resource {
@ -37,32 +37,30 @@ func resourceVirtualEnvironmentPool() *schema.Resource {
Computed: true, Computed: true,
Elem: &schema.Resource{ Elem: &schema.Resource{
Schema: map[string]*schema.Schema{ Schema: map[string]*schema.Schema{
mkResourceVirtualEnvironmentPoolMembersDatastoreID: {
Type: schema.TypeString,
Computed: true,
Description: "The datastore id",
},
mkResourceVirtualEnvironmentPoolMembersID: { mkResourceVirtualEnvironmentPoolMembersID: {
Type: schema.TypeString, Type: schema.TypeString,
Required: true, Computed: true,
Description: "The member id", Description: "The member id",
}, },
mkResourceVirtualEnvironmentPoolMembersNode: { mkResourceVirtualEnvironmentPoolMembersNodeName: {
Type: schema.TypeString, Type: schema.TypeString,
Required: true, Computed: true,
Description: "The node id", Description: "The node name",
},
mkResourceVirtualEnvironmentPoolMembersStorage: {
Type: schema.TypeString,
Optional: true,
Description: "The storage id",
Default: "",
}, },
mkResourceVirtualEnvironmentPoolMembersType: { mkResourceVirtualEnvironmentPoolMembersType: {
Type: schema.TypeString, Type: schema.TypeString,
Required: true, Computed: true,
Description: "The member type", Description: "The member type",
}, },
mkResourceVirtualEnvironmentPoolMembersVirtualMachineID: { mkResourceVirtualEnvironmentPoolMembersVMID: {
Type: schema.TypeInt, Type: schema.TypeInt,
Optional: true, Computed: true,
Description: "The virtual machine id", Description: "The virtual machine id",
Default: 0,
}, },
}, },
}, },
@ -143,20 +141,20 @@ func resourceVirtualEnvironmentPoolRead(d *schema.ResourceData, m interface{}) e
values := make(map[string]interface{}) values := make(map[string]interface{})
values[mkResourceVirtualEnvironmentPoolMembersID] = v.ID values[mkResourceVirtualEnvironmentPoolMembersID] = v.ID
values[mkResourceVirtualEnvironmentPoolMembersNode] = v.Node values[mkResourceVirtualEnvironmentPoolMembersNodeName] = v.Node
if v.Storage != nil { if v.DatastoreID != nil {
values[mkResourceVirtualEnvironmentPoolMembersStorage] = v.Storage values[mkResourceVirtualEnvironmentPoolMembersDatastoreID] = v.DatastoreID
} else { } else {
values[mkResourceVirtualEnvironmentPoolMembersStorage] = "" values[mkResourceVirtualEnvironmentPoolMembersDatastoreID] = ""
} }
values[mkResourceVirtualEnvironmentPoolMembersType] = v.Type values[mkResourceVirtualEnvironmentPoolMembersType] = v.Type
if v.VirtualMachineID != nil { if v.VMID != nil {
values[mkResourceVirtualEnvironmentPoolMembersVirtualMachineID] = v.VirtualMachineID values[mkResourceVirtualEnvironmentPoolMembersVMID] = v.VMID
} else { } else {
values[mkResourceVirtualEnvironmentPoolMembersVirtualMachineID] = 0 values[mkResourceVirtualEnvironmentPoolMembersVMID] = 0
} }
members[i] = values members[i] = values

View File

@ -6,6 +6,8 @@ package main
import ( import (
"testing" "testing"
"github.com/hashicorp/terraform/helper/schema"
) )
// TestResourceVirtualEnvironmentPoolInstantiation tests whether the ResourceVirtualEnvironmentPool instance can be instantiated. // TestResourceVirtualEnvironmentPoolInstantiation tests whether the ResourceVirtualEnvironmentPool instance can be instantiated.
@ -21,15 +23,39 @@ func TestResourceVirtualEnvironmentPoolInstantiation(t *testing.T) {
func TestResourceVirtualEnvironmentPoolSchema(t *testing.T) { func TestResourceVirtualEnvironmentPoolSchema(t *testing.T) {
s := resourceVirtualEnvironmentPool() s := resourceVirtualEnvironmentPool()
attributeKeys := []string{} testRequiredArguments(t, s, []string{
mkResourceVirtualEnvironmentPoolPoolID,
})
for _, v := range attributeKeys { testOptionalArguments(t, s, []string{
if s.Schema[v] == nil { mkResourceVirtualEnvironmentPoolComment,
t.Fatalf("Error in resourceVirtualEnvironmentPool.Schema: Missing attribute \"%s\"", v) })
}
if s.Schema[v].Computed != true { testComputedAttributes(t, s, []string{
t.Fatalf("Error in resourceVirtualEnvironmentPool.Schema: Attribute \"%s\" is not computed", v) mkResourceVirtualEnvironmentPoolMembers,
} })
}
membersSchema := testNestedSchemaExistence(t, s, mkResourceVirtualEnvironmentPoolMembers)
testComputedAttributes(t, membersSchema, []string{
mkResourceVirtualEnvironmentPoolMembersDatastoreID,
mkResourceVirtualEnvironmentPoolMembersID,
mkResourceVirtualEnvironmentPoolMembersNodeName,
mkResourceVirtualEnvironmentPoolMembersType,
mkResourceVirtualEnvironmentPoolMembersVMID,
})
testSchemaValueTypes(t, membersSchema, []string{
mkResourceVirtualEnvironmentPoolMembersDatastoreID,
mkResourceVirtualEnvironmentPoolMembersID,
mkResourceVirtualEnvironmentPoolMembersNodeName,
mkResourceVirtualEnvironmentPoolMembersType,
mkResourceVirtualEnvironmentPoolMembersVMID,
}, []schema.ValueType{
schema.TypeString,
schema.TypeString,
schema.TypeString,
schema.TypeString,
schema.TypeInt,
})
} }

View File

@ -6,6 +6,8 @@ package main
import ( import (
"testing" "testing"
"github.com/hashicorp/terraform/helper/schema"
) )
// TestResourceVirtualEnvironmentRoleInstantiation tests whether the ResourceVirtualEnvironmentRole instance can be instantiated. // TestResourceVirtualEnvironmentRoleInstantiation tests whether the ResourceVirtualEnvironmentRole instance can be instantiated.
@ -21,15 +23,16 @@ func TestResourceVirtualEnvironmentRoleInstantiation(t *testing.T) {
func TestResourceVirtualEnvironmentRoleSchema(t *testing.T) { func TestResourceVirtualEnvironmentRoleSchema(t *testing.T) {
s := resourceVirtualEnvironmentRole() s := resourceVirtualEnvironmentRole()
attributeKeys := []string{} testRequiredArguments(t, s, []string{
mkResourceVirtualEnvironmentRolePrivileges,
mkResourceVirtualEnvironmentRoleRoleID,
})
for _, v := range attributeKeys { testSchemaValueTypes(t, s, []string{
if s.Schema[v] == nil { mkResourceVirtualEnvironmentRolePrivileges,
t.Fatalf("Error in resourceVirtualEnvironmentRole.Schema: Missing attribute \"%s\"", v) mkResourceVirtualEnvironmentRoleRoleID,
} }, []schema.ValueType{
schema.TypeSet,
if s.Schema[v].Computed != true { schema.TypeString,
t.Fatalf("Error in resourceVirtualEnvironmentRole.Schema: Attribute \"%s\" is not computed", v) })
}
}
} }

View File

@ -6,6 +6,8 @@ package main
import ( import (
"testing" "testing"
"github.com/hashicorp/terraform/helper/schema"
) )
// TestResourceVirtualEnvironmentUserInstantiation tests whether the ResourceVirtualEnvironmentUser instance can be instantiated. // TestResourceVirtualEnvironmentUserInstantiation tests whether the ResourceVirtualEnvironmentUser instance can be instantiated.
@ -21,15 +23,67 @@ func TestResourceVirtualEnvironmentUserInstantiation(t *testing.T) {
func TestResourceVirtualEnvironmentUserSchema(t *testing.T) { func TestResourceVirtualEnvironmentUserSchema(t *testing.T) {
s := resourceVirtualEnvironmentUser() s := resourceVirtualEnvironmentUser()
attributeKeys := []string{} testRequiredArguments(t, s, []string{
mkResourceVirtualEnvironmentUserPassword,
mkResourceVirtualEnvironmentUserUserID,
})
for _, v := range attributeKeys { testOptionalArguments(t, s, []string{
if s.Schema[v] == nil { mkResourceVirtualEnvironmentUserACL,
t.Fatalf("Error in resourceVirtualEnvironmentUser.Schema: Missing attribute \"%s\"", v) mkResourceVirtualEnvironmentUserComment,
} mkResourceVirtualEnvironmentUserEmail,
mkResourceVirtualEnvironmentUserEnabled,
mkResourceVirtualEnvironmentUserExpirationDate,
mkResourceVirtualEnvironmentUserFirstName,
mkResourceVirtualEnvironmentUserGroups,
mkResourceVirtualEnvironmentUserKeys,
mkResourceVirtualEnvironmentUserLastName,
})
if s.Schema[v].Computed != true { testSchemaValueTypes(t, s, []string{
t.Fatalf("Error in resourceVirtualEnvironmentUser.Schema: Attribute \"%s\" is not computed", v) mkResourceVirtualEnvironmentUserACL,
} mkResourceVirtualEnvironmentUserComment,
} mkResourceVirtualEnvironmentUserEmail,
mkResourceVirtualEnvironmentUserEnabled,
mkResourceVirtualEnvironmentUserExpirationDate,
mkResourceVirtualEnvironmentUserFirstName,
mkResourceVirtualEnvironmentUserGroups,
mkResourceVirtualEnvironmentUserKeys,
mkResourceVirtualEnvironmentUserLastName,
mkResourceVirtualEnvironmentUserPassword,
mkResourceVirtualEnvironmentUserUserID,
}, []schema.ValueType{
schema.TypeSet,
schema.TypeString,
schema.TypeString,
schema.TypeBool,
schema.TypeString,
schema.TypeString,
schema.TypeSet,
schema.TypeString,
schema.TypeString,
schema.TypeString,
schema.TypeString,
})
aclSchema := testNestedSchemaExistence(t, s, mkResourceVirtualEnvironmentUserACL)
testRequiredArguments(t, aclSchema, []string{
mkResourceVirtualEnvironmentUserACLPath,
mkResourceVirtualEnvironmentUserACLRoleID,
})
testOptionalArguments(t, aclSchema, []string{
mkResourceVirtualEnvironmentUserACLPropagate,
})
testSchemaValueTypes(t, aclSchema, []string{
mkResourceVirtualEnvironmentUserACLPath,
mkResourceVirtualEnvironmentUserACLPropagate,
mkResourceVirtualEnvironmentUserACLRoleID,
}, []schema.ValueType{
schema.TypeString,
schema.TypeBool,
schema.TypeString,
})
} }

71
utils.go Normal file
View File

@ -0,0 +1,71 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
package main
import (
"testing"
"github.com/hashicorp/terraform/helper/schema"
)
func testComputedAttributes(t *testing.T, s *schema.Resource, keys []string) {
for _, v := range keys {
if s.Schema[v] == nil {
t.Fatalf("Error in Schema: Missing definition for \"%s\"", v)
}
if s.Schema[v].Computed != true {
t.Fatalf("Error in Schema: Attribute \"%s\" is not computed", v)
}
}
}
func testNestedSchemaExistence(t *testing.T, s *schema.Resource, key string) *schema.Resource {
schema, ok := s.Schema[key].Elem.(*schema.Resource)
if !ok {
t.Fatalf("Error in Schema: Missing nested schema for \"%s\"", key)
return nil
}
return schema
}
func testOptionalArguments(t *testing.T, s *schema.Resource, keys []string) {
for _, v := range keys {
if s.Schema[v] == nil {
t.Fatalf("Error in Schema: Missing definition for \"%s\"", v)
}
if s.Schema[v].Optional != true {
t.Fatalf("Error in Schema: Argument \"%s\" is not optional", v)
}
}
}
func testRequiredArguments(t *testing.T, s *schema.Resource, keys []string) {
for _, v := range keys {
if s.Schema[v] == nil {
t.Fatalf("Error in Schema: Missing definition for \"%s\"", v)
}
if s.Schema[v].Required != true {
t.Fatalf("Error in Schema: Argument \"%s\" is not required", v)
}
}
}
func testSchemaValueTypes(t *testing.T, s *schema.Resource, keys []string, types []schema.ValueType) {
for i, v := range keys {
if s.Schema[v] == nil {
t.Fatalf("Error in Schema: Missing definition for \"%s\"", v)
}
if s.Schema[v].Type != types[i] {
t.Fatalf("Error in Schema: Argument \"%s\" is not of type \"%v\"", v, types[i])
}
}
}