Skip to content

Commit 01c2d86

Browse files
feat: image capabilities changes (IBM-Cloud#6366)
1 parent cfd3f71 commit 01c2d86

File tree

67 files changed

+3871
-53
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+3871
-53
lines changed

ibm/provider/provider.go

Lines changed: 48 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -491,50 +491,52 @@ func Provider() *schema.Provider {
491491
"ibm_is_instance_cluster_network_attachment": vpc.DataSourceIBMIsInstanceClusterNetworkAttachment(),
492492
"ibm_is_instance_cluster_network_attachments": vpc.DataSourceIBMIsInstanceClusterNetworkAttachments(),
493493

494-
"ibm_is_dedicated_host": vpc.DataSourceIbmIsDedicatedHost(),
495-
"ibm_is_dedicated_hosts": vpc.DataSourceIbmIsDedicatedHosts(),
496-
"ibm_is_dedicated_host_profile": vpc.DataSourceIbmIsDedicatedHostProfile(),
497-
"ibm_is_dedicated_host_profiles": vpc.DataSourceIbmIsDedicatedHostProfiles(),
498-
"ibm_is_dedicated_host_group": vpc.DataSourceIbmIsDedicatedHostGroup(),
499-
"ibm_is_dedicated_host_groups": vpc.DataSourceIbmIsDedicatedHostGroups(),
500-
"ibm_is_dedicated_host_disk": vpc.DataSourceIbmIsDedicatedHostDisk(),
501-
"ibm_is_dedicated_host_disks": vpc.DataSourceIbmIsDedicatedHostDisks(),
502-
"ibm_is_placement_group": vpc.DataSourceIbmIsPlacementGroup(),
503-
"ibm_is_placement_groups": vpc.DataSourceIbmIsPlacementGroups(),
504-
"ibm_is_floating_ip": vpc.DataSourceIBMISFloatingIP(),
505-
"ibm_is_floating_ips": vpc.DataSourceIBMIsFloatingIps(),
506-
"ibm_is_flow_log": vpc.DataSourceIBMIsFlowLog(),
507-
"ibm_is_flow_logs": vpc.DataSourceIBMISFlowLogs(),
508-
"ibm_is_image": vpc.DataSourceIBMISImage(),
509-
"ibm_is_images": vpc.DataSourceIBMISImages(),
510-
"ibm_is_image_export_job": vpc.DataSourceIBMIsImageExport(),
511-
"ibm_is_image_export_jobs": vpc.DataSourceIBMIsImageExports(),
512-
"ibm_is_endpoint_gateway_targets": vpc.DataSourceIBMISEndpointGatewayTargets(),
513-
"ibm_is_instance_group": vpc.DataSourceIBMISInstanceGroup(),
514-
"ibm_is_instance_groups": vpc.DataSourceIBMISInstanceGroups(),
515-
"ibm_is_instance_group_memberships": vpc.DataSourceIBMISInstanceGroupMemberships(),
516-
"ibm_is_instance_group_membership": vpc.DataSourceIBMISInstanceGroupMembership(),
517-
"ibm_is_instance_group_manager": vpc.DataSourceIBMISInstanceGroupManager(),
518-
"ibm_is_instance_group_managers": vpc.DataSourceIBMISInstanceGroupManagers(),
519-
"ibm_is_instance_group_manager_policies": vpc.DataSourceIBMISInstanceGroupManagerPolicies(),
520-
"ibm_is_instance_group_manager_policy": vpc.DataSourceIBMISInstanceGroupManagerPolicy(),
521-
"ibm_is_instance_group_manager_action": vpc.DataSourceIBMISInstanceGroupManagerAction(),
522-
"ibm_is_instance_group_manager_actions": vpc.DataSourceIBMISInstanceGroupManagerActions(),
523-
"ibm_is_virtual_endpoint_gateways": vpc.DataSourceIBMISEndpointGateways(),
524-
"ibm_is_virtual_endpoint_gateway_ips": vpc.DataSourceIBMISEndpointGatewayIPs(),
525-
"ibm_is_virtual_endpoint_gateway": vpc.DataSourceIBMISEndpointGateway(),
526-
"ibm_is_instance_template": vpc.DataSourceIBMISInstanceTemplate(),
527-
"ibm_is_instance_templates": vpc.DataSourceIBMISInstanceTemplates(),
528-
"ibm_is_instance_profile": vpc.DataSourceIBMISInstanceProfile(),
529-
"ibm_is_instance_profiles": vpc.DataSourceIBMISInstanceProfiles(),
530-
"ibm_is_instance": vpc.DataSourceIBMISInstance(),
531-
"ibm_is_instances": vpc.DataSourceIBMISInstances(),
532-
"ibm_is_instance_network_attachment": vpc.DataSourceIBMIsInstanceNetworkAttachment(),
533-
"ibm_is_instance_network_attachments": vpc.DataSourceIBMIsInstanceNetworkAttachments(),
534-
"ibm_is_instance_network_interface": vpc.DataSourceIBMIsInstanceNetworkInterface(),
535-
"ibm_is_instance_network_interfaces": vpc.DataSourceIBMIsInstanceNetworkInterfaces(),
536-
"ibm_is_instance_disk": vpc.DataSourceIbmIsInstanceDisk(),
537-
"ibm_is_instance_disks": vpc.DataSourceIbmIsInstanceDisks(),
494+
"ibm_is_dedicated_host": vpc.DataSourceIbmIsDedicatedHost(),
495+
"ibm_is_dedicated_hosts": vpc.DataSourceIbmIsDedicatedHosts(),
496+
"ibm_is_dedicated_host_profile": vpc.DataSourceIbmIsDedicatedHostProfile(),
497+
"ibm_is_dedicated_host_profiles": vpc.DataSourceIbmIsDedicatedHostProfiles(),
498+
"ibm_is_dedicated_host_group": vpc.DataSourceIbmIsDedicatedHostGroup(),
499+
"ibm_is_dedicated_host_groups": vpc.DataSourceIbmIsDedicatedHostGroups(),
500+
"ibm_is_dedicated_host_disk": vpc.DataSourceIbmIsDedicatedHostDisk(),
501+
"ibm_is_dedicated_host_disks": vpc.DataSourceIbmIsDedicatedHostDisks(),
502+
"ibm_is_placement_group": vpc.DataSourceIbmIsPlacementGroup(),
503+
"ibm_is_placement_groups": vpc.DataSourceIbmIsPlacementGroups(),
504+
"ibm_is_floating_ip": vpc.DataSourceIBMISFloatingIP(),
505+
"ibm_is_floating_ips": vpc.DataSourceIBMIsFloatingIps(),
506+
"ibm_is_flow_log": vpc.DataSourceIBMIsFlowLog(),
507+
"ibm_is_flow_logs": vpc.DataSourceIBMISFlowLogs(),
508+
"ibm_is_image": vpc.DataSourceIBMISImage(),
509+
"ibm_is_images": vpc.DataSourceIBMISImages(),
510+
"ibm_is_image_bare_metal_server_profiles": vpc.DataSourceIBMIsImageBareMetalServerProfiles(),
511+
"ibm_is_image_instance_profiles": vpc.DataSourceIBMIsImageInstanceProfiles(),
512+
"ibm_is_image_export_job": vpc.DataSourceIBMIsImageExport(),
513+
"ibm_is_image_export_jobs": vpc.DataSourceIBMIsImageExports(),
514+
"ibm_is_endpoint_gateway_targets": vpc.DataSourceIBMISEndpointGatewayTargets(),
515+
"ibm_is_instance_group": vpc.DataSourceIBMISInstanceGroup(),
516+
"ibm_is_instance_groups": vpc.DataSourceIBMISInstanceGroups(),
517+
"ibm_is_instance_group_memberships": vpc.DataSourceIBMISInstanceGroupMemberships(),
518+
"ibm_is_instance_group_membership": vpc.DataSourceIBMISInstanceGroupMembership(),
519+
"ibm_is_instance_group_manager": vpc.DataSourceIBMISInstanceGroupManager(),
520+
"ibm_is_instance_group_managers": vpc.DataSourceIBMISInstanceGroupManagers(),
521+
"ibm_is_instance_group_manager_policies": vpc.DataSourceIBMISInstanceGroupManagerPolicies(),
522+
"ibm_is_instance_group_manager_policy": vpc.DataSourceIBMISInstanceGroupManagerPolicy(),
523+
"ibm_is_instance_group_manager_action": vpc.DataSourceIBMISInstanceGroupManagerAction(),
524+
"ibm_is_instance_group_manager_actions": vpc.DataSourceIBMISInstanceGroupManagerActions(),
525+
"ibm_is_virtual_endpoint_gateways": vpc.DataSourceIBMISEndpointGateways(),
526+
"ibm_is_virtual_endpoint_gateway_ips": vpc.DataSourceIBMISEndpointGatewayIPs(),
527+
"ibm_is_virtual_endpoint_gateway": vpc.DataSourceIBMISEndpointGateway(),
528+
"ibm_is_instance_template": vpc.DataSourceIBMISInstanceTemplate(),
529+
"ibm_is_instance_templates": vpc.DataSourceIBMISInstanceTemplates(),
530+
"ibm_is_instance_profile": vpc.DataSourceIBMISInstanceProfile(),
531+
"ibm_is_instance_profiles": vpc.DataSourceIBMISInstanceProfiles(),
532+
"ibm_is_instance": vpc.DataSourceIBMISInstance(),
533+
"ibm_is_instances": vpc.DataSourceIBMISInstances(),
534+
"ibm_is_instance_network_attachment": vpc.DataSourceIBMIsInstanceNetworkAttachment(),
535+
"ibm_is_instance_network_attachments": vpc.DataSourceIBMIsInstanceNetworkAttachments(),
536+
"ibm_is_instance_network_interface": vpc.DataSourceIBMIsInstanceNetworkInterface(),
537+
"ibm_is_instance_network_interfaces": vpc.DataSourceIBMIsInstanceNetworkInterfaces(),
538+
"ibm_is_instance_disk": vpc.DataSourceIbmIsInstanceDisk(),
539+
"ibm_is_instance_disks": vpc.DataSourceIbmIsInstanceDisks(),
538540

539541
// reserved ips
540542
"ibm_is_instance_network_interface_reserved_ip": vpc.DataSourceIBMISInstanceNICReservedIP(),
@@ -590,6 +592,7 @@ func Provider() *schema.Provider {
590592
"ibm_is_snapshot_consistency_group": vpc.DataSourceIBMIsSnapshotConsistencyGroup(),
591593
"ibm_is_snapshot_consistency_groups": vpc.DataSourceIBMIsSnapshotConsistencyGroups(),
592594
"ibm_is_snapshots": vpc.DataSourceSnapshots(),
595+
"ibm_is_snapshot_instance_profiles": vpc.DataSourceIBMIsSnapshotInstanceProfiles(),
593596
"ibm_is_share": vpc.DataSourceIbmIsShare(),
594597
"ibm_is_source_share": vpc.DataSourceIbmIsSourceShare(),
595598
"ibm_is_shares": vpc.DataSourceIbmIsShares(),
@@ -616,6 +619,7 @@ func Provider() *schema.Provider {
616619
"ibm_is_volumes": vpc.DataSourceIBMIsVolumes(),
617620
"ibm_is_volume_profile": vpc.DataSourceIBMISVolumeProfile(),
618621
"ibm_is_volume_profiles": vpc.DataSourceIBMISVolumeProfiles(),
622+
"ibm_is_volume_instance_profiles": vpc.DataSourceIBMIsVolumeInstanceProfiles(),
619623
"ibm_is_vpc": vpc.DataSourceIBMISVPC(),
620624
"ibm_is_vpc_dns_resolution_binding": vpc.DataSourceIBMIsVPCDnsResolutionBinding(),
621625
"ibm_is_vpc_dns_resolution_bindings": vpc.DataSourceIBMIsVPCDnsResolutionBindings(),

ibm/service/vpc/data_source_ibm_is_bare_metal_server.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,25 @@ func DataSourceIBMIsBareMetalServer() *schema.Resource {
156156
Computed: true,
157157
Description: "The size of the disk in GB (gigabytes)",
158158
},
159+
"allowed_use": &schema.Schema{
160+
Type: schema.TypeList,
161+
Computed: true,
162+
Description: "The usage constraints to be matched against the requested bare metal server properties to determine compatibility.",
163+
Elem: &schema.Resource{
164+
Schema: map[string]*schema.Schema{
165+
"bare_metal_server": &schema.Schema{
166+
Type: schema.TypeString,
167+
Computed: true,
168+
Description: "The expression that must be satisfied by the properties of a bare metal server provisioned using the image data in this disk.",
169+
},
170+
"api_version": &schema.Schema{
171+
Type: schema.TypeString,
172+
Computed: true,
173+
Description: "The API version with which to evaluate the expressions.",
174+
},
175+
},
176+
},
177+
},
159178
},
160179
},
161180
},
@@ -1029,6 +1048,16 @@ func dataSourceIBMISBareMetalServerRead(context context.Context, d *schema.Resou
10291048
isBareMetalServerDiskResourceType: disk.ResourceType,
10301049
isBareMetalServerDiskSize: disk.Size,
10311050
}
1051+
if disk.AllowedUse != nil {
1052+
usageConstraintList := []map[string]interface{}{}
1053+
modelMap, err := ResourceceIBMIsBareMetalServerDiskAllowedUseToMap(disk.AllowedUse)
1054+
if err != nil {
1055+
tfErr := flex.TerraformErrorf(err, err.Error(), "(Resource) ibm_is_bare_metal_server", "read")
1056+
log.Println(tfErr.GetDiag())
1057+
}
1058+
usageConstraintList = append(usageConstraintList, modelMap)
1059+
currentDisk["allowed_use"] = usageConstraintList
1060+
}
10321061
diskList = append(diskList, currentDisk)
10331062
}
10341063
}

ibm/service/vpc/data_source_ibm_is_bare_metal_server_disk.go

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,25 @@ func DataSourceIBMIsBareMetalServerDisk() *schema.Resource {
6767
Computed: true,
6868
Description: "The size of the disk in GB (gigabytes)",
6969
},
70+
"allowed_use": &schema.Schema{
71+
Type: schema.TypeList,
72+
Computed: true,
73+
Description: "The usage constraints to be matched against the requested bare metal server properties to determine compatibility.",
74+
Elem: &schema.Resource{
75+
Schema: map[string]*schema.Schema{
76+
"bare_metal_server": &schema.Schema{
77+
Type: schema.TypeString,
78+
Computed: true,
79+
Description: "The expression that must be satisfied by the properties of a bare metal server provisioned using the image data in this disk.",
80+
},
81+
"api_version": &schema.Schema{
82+
Type: schema.TypeString,
83+
Computed: true,
84+
Description: "The API version with which to evaluate the expressions.",
85+
},
86+
},
87+
},
88+
},
7089
},
7190
}
7291
}
@@ -107,6 +126,16 @@ func dataSourceIBMISBareMetalServerDiskRead(context context.Context, d *schema.R
107126
if err = d.Set("size", flex.IntValue(bareMetalServerDisk.Size)); err != nil {
108127
return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting size: %s", err), "(Data) ibm_is_bare_metal_server_disk", "read", "set-size").GetDiag()
109128
}
110-
129+
allowedUses := []map[string]interface{}{}
130+
if bareMetalServerDisk.AllowedUse != nil {
131+
modelMap, err := ResourceceIBMIsBareMetalServerDiskAllowedUseToMap(bareMetalServerDisk.AllowedUse)
132+
if err != nil {
133+
return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting allowed_use: %s", err), "(Data) ibm_is_bare_metal_server_disk", "read", "set-allowed_use").GetDiag()
134+
}
135+
allowedUses = append(allowedUses, modelMap)
136+
}
137+
if err = d.Set("allowed_use", allowedUses); err != nil {
138+
return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting allowed_use: %s", err), "(Data) ibm_is_bare_metal_server_disk", "read", "set-allowed_use").GetDiag()
139+
}
111140
return nil
112141
}

ibm/service/vpc/data_source_ibm_is_bare_metal_server_disks.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,25 @@ func DataSourceIBMIsBareMetalServerDisks() *schema.Resource {
7171
Computed: true,
7272
Description: "The size of the disk in GB (gigabytes)",
7373
},
74+
"allowed_use": &schema.Schema{
75+
Type: schema.TypeList,
76+
Computed: true,
77+
Description: "The usage constraints to be matched against the requested bare metal server properties to determine compatibility.",
78+
Elem: &schema.Resource{
79+
Schema: map[string]*schema.Schema{
80+
"bare_metal_server": &schema.Schema{
81+
Type: schema.TypeString,
82+
Computed: true,
83+
Description: "The expression that must be satisfied by the properties of a bare metal server provisioned using the image data in this disk.",
84+
},
85+
"api_version": &schema.Schema{
86+
Type: schema.TypeString,
87+
Computed: true,
88+
Description: "The API version with which to evaluate the expressions.",
89+
},
90+
},
91+
},
92+
},
7493
},
7594
},
7695
},
@@ -107,8 +126,18 @@ func dataSourceIBMISBareMetalServerDisksRead(context context.Context, d *schema.
107126
isBareMetalServerDiskResourceType: disk.ResourceType,
108127
isBareMetalServerDiskSize: disk.Size,
109128
}
129+
if disk.AllowedUse != nil {
130+
usageConstraintList := []map[string]interface{}{}
131+
modelMap, err := ResourceceIBMIsBareMetalServerDiskAllowedUseToMap(disk.AllowedUse)
132+
if err != nil {
133+
return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting allowed_use: %s", err), "(Data) ibm_is_bare_metal_server_disks", "read", "set-allowed_use").GetDiag()
134+
}
135+
usageConstraintList = append(usageConstraintList, modelMap)
136+
l["allowed_use"] = usageConstraintList
137+
}
110138
disksInfo = append(disksInfo, l)
111139
}
140+
112141
d.SetId(dataSourceIBMISBMSDisksID(d))
113142
if err = d.Set(isBareMetalServerDisks, disksInfo); err != nil {
114143
return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting disks: %s", err), "(Data) ibm_is_bare_metal_server_disks", "read", "set-disks").GetDiag()

ibm/service/vpc/data_source_ibm_is_bare_metal_servers.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,25 @@ func DataSourceIBMIsBareMetalServers() *schema.Resource {
199199
Computed: true,
200200
Description: "The size of the disk in GB (gigabytes)",
201201
},
202+
"allowed_use": &schema.Schema{
203+
Type: schema.TypeList,
204+
Computed: true,
205+
Description: "The usage constraints to be matched against the requested bare metal server properties to determine compatibility.",
206+
Elem: &schema.Resource{
207+
Schema: map[string]*schema.Schema{
208+
"bare_metal_server": &schema.Schema{
209+
Type: schema.TypeString,
210+
Computed: true,
211+
Description: "The expression that must be satisfied by the properties of a bare metal server provisioned using the image data in this disk.",
212+
},
213+
"api_version": &schema.Schema{
214+
Type: schema.TypeString,
215+
Computed: true,
216+
Description: "The API version with which to evaluate the expressions.",
217+
},
218+
},
219+
},
220+
},
202221
},
203222
},
204223
},
@@ -1045,6 +1064,16 @@ func dataSourceIBMISBareMetalServersRead(context context.Context, d *schema.Reso
10451064
isBareMetalServerDiskResourceType: disk.ResourceType,
10461065
isBareMetalServerDiskSize: disk.Size,
10471066
}
1067+
if disk.AllowedUse != nil {
1068+
usageConstraintList := []map[string]interface{}{}
1069+
modelMap, err := ResourceceIBMIsBareMetalServerDiskAllowedUseToMap(disk.AllowedUse)
1070+
if err != nil {
1071+
tfErr := flex.TerraformErrorf(err, err.Error(), "(Resource) ibm_is_bare_metal_server", "read")
1072+
log.Println(tfErr.GetDiag())
1073+
}
1074+
usageConstraintList = append(usageConstraintList, modelMap)
1075+
currentDisk["allowed_use"] = usageConstraintList
1076+
}
10481077
diskList = append(diskList, currentDisk)
10491078
}
10501079
}

0 commit comments

Comments
 (0)