Skip to content

Commit 11e5c91

Browse files
Terraform Team AutomationMaxrovr
authored andcommitted
Bug Fix - Capacity Management Breaking change fix
1 parent e017cca commit 11e5c91

File tree

4 files changed

+340
-101
lines changed

4 files changed

+340
-101
lines changed
Lines changed: 232 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,232 @@
1+
// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
2+
// Licensed under the Mozilla Public License v2.0
3+
4+
variable "tenancy_ocid" {}
5+
variable "user_ocid" {}
6+
variable "fingerprint" {}
7+
variable "private_key_path" {}
8+
variable "region" {}
9+
variable "compartment_id" {}
10+
11+
variable "occ_customer_group_display_name" {
12+
default = "displayName"
13+
}
14+
15+
variable "occ_customer_group_id" {
16+
default = "id"
17+
}
18+
19+
variable "occ_customer_group_status" {
20+
default = "ENABLED"
21+
}
22+
23+
variable "occ_availability_catalog_base64encoded_catalog_details" {
24+
default = "RmluYWwgQ3VzdG9tZXIgT3JkZXIgRGF0ZSxDYXBhY2l0eSBIYW5kb3ZlciBEYXRlLFJlc291cmNlIFR5cGUsV29ya2xvYWQgVHlwZSxOYW1lLEF2YWlsYWJsZSBRdWFudGl0eSxVbml0CjIwMjUtMDItMjMsMjAyNS0wNC0wNSxDQVBBQ0lUWV9DT05TVFJBSU5ULFVTX1BST0QsVVMtQVNIQlVSTi0xLUFELTIsMTc1NSxTZXJ2ZXJzCjIwMjUtMDItMjMsMjAyNS0wNC0wNSxDQVBBQ0lUWV9DT05TVFJBSU5ULFJPVyxVUy1BU0hCVVJOLTEtQUQtMiwxNzU1LFNlcnZlcnMKMjAyNS0wMi0yMywyMDI1LTA0LTA1LFNFUlZFUl9IVyxVU19QUk9ELEJNLlN0YW5kYXJkMy42NCwxMDgsU2VydmVycwoyMDI1LTAyLTIzLDIwMjUtMDQtMDUsU0VSVkVSX0hXLFJPVyxCTS5TdGFuZGFyZDMuNjQsMTA4LFNlcnZlcnMKMjAyNS0wMi0yMywyMDI1LTA0LTA1LFNFUlZFUl9IVyxST1csQk0uU3RhbmRhcmQzLVdCLjY0LDE2MzA4LFNlcnZlcnMKMjAyNS0wMi0yMywyMDI1LTA0LTA1LFNFUlZFUl9IVyxST1csQk0uU3RhbmRhcmQyVC5FNC1XQi4xMjgsNzM4LFNlcnZlcnMKMjAyNS0wMi0yMywyMDI1LTA0LTA1LFNFUlZFUl9IVyxST1csQk0uU3RhbmRhcmQyVC5BMS1XQi4xNjAsNTgxNCxTZXJ2ZXJzCjIwMjUtMDItMjMsMjAyNS0wNC0wNSxTRVJWRVJfSFcsVVNfUFJPRCxCTS5TdGFuZGFyZDIuNTIsODQsU2VydmVycwoyMDI1LTAyLTIzLDIwMjUtMDQtMDUsU0VSVkVSX0hXLFJPVyxCTS5TdGFuZGFyZDIuNTIsODQsU2VydmVycwoyMDI1LTAyLTIzLDIwMjUtMDQtMDUsU0VSVkVSX0hXLFVTX1BST0QsQk0uU3RhbmRhcmQuRTVULUxNLjE5Miw4NDAsU2VydmVycwoyMDI1LTAyLTIzLDIwMjUtMDQtMDUsU0VSVkVSX0hXLFJPVyxCTS5TdGFuZGFyZC5FNVQtTE0uMTkyLDg0MCxTZXJ2ZXJzCjIwMjUtMDItMjMsMjAyNS0wNC0wNSxTRVJWRVJfSFcsVVNfUFJPRCxCTS5TdGFuZGFyZC5FNS4xOTIsMCxTZXJ2ZXJzCjIwMjUtMDItMjMsMjAyNS0wNC0wNSxTRVJWRVJfSFcsUk9XLEJNLlN0YW5kYXJkLkU1LjE5MiwwLFNlcnZlcnMKMjAyNS0wMi0yMywyMDI1LTA0LTA1LFNFUlZFUl9IVyxVU19QUk9ELEJNLlN0YW5kYXJkLkU0LjEyOCwzNTQ2LFNlcnZlcnMKMjAyNS0wMi0yMywyMDI1LTA0LTA1LFNFUlZFUl9IVyxST1csQk0uU3RhbmRhcmQuRTQuMTI4LDM1NDYsU2VydmVycwoyMDI1LTAyLTIzLDIwMjUtMDQtMDUsU0VSVkVSX0hXLFVTX1BST0QsQk0uU3RhbmRhcmQuQTEuMTYwLDMyNTgsU2VydmVycwoyMDI1LTAyLTIzLDIwMjUtMDQtMDUsU0VSVkVSX0hXLFJPVyxCTS5TdGFuZGFyZC5BMS4xNjAsMzI1OCxTZXJ2ZXJzCjIwMjUtMDItMjMsMjAyNS0wNC0wNSxTRVJWRVJfSFcsUk9XLEJNLlN0YW5kYXJkLkExLVdCLjE2MCw2ODA0LFNlcnZlcnMKMjAyNS0wMi0yMywyMDI1LTA0LTA1LFNFUlZFUl9IVyxVU19QUk9ELEJNLkRlbnNlSU8uRTVULjEyOCw0MzUsU2VydmVycwoyMDI1LTAyLTIzLDIwMjUtMDQtMDUsU0VSVkVSX0hXLFJPVyxCTS5EZW5zZUlPLkU1VC4xMjgsNDM1LFNlcnZlcnMKMjAyNS0wMi0yMywyMDI1LTA0LTA1LFNFUlZFUl9IVyxVU19QUk9ELEJNLkRlbnNlSU8uRTQuMTI4LDI3MDAsU2VydmVycwoyMDI1LTAyLTIzLDIwMjUtMDQtMDUsU0VSVkVSX0hXLFJPVyxCTS5EZW5zZUlPLkU0LjEyOCwyNzAwLFNlcnZlcnMKMjAyNS0wMi0yMywyMDI1LTA0LTA1LFNFUlZFUl9IVyxVU19QUk9ELEJNLkJpZ0RhdGEyLkU0LjEyOCAxNCBUQiwxNTAwLFNlcnZlcnMKMjAyNS0wMi0yMywyMDI1LTA0LTA1LFNFUlZFUl9IVyxST1csQk0uQmlnRGF0YTIuRTQuMTI4IDE0IFRCLDE1MDAsU2VydmVycw=="
25+
}
26+
27+
variable "occ_availability_catalog_display_name" {
28+
default = "testAvailabilityCatalog"
29+
}
30+
31+
variable "occ_availability_catalog_namespace" {
32+
default = "COMPUTE"
33+
}
34+
35+
variable "occ_availability_catalog_freeform_tags" {
36+
default = { "bar-key" = "value" }
37+
}
38+
39+
variable "occ_availability_catalog_description" {
40+
default = "This availability catalog is created via terraform provider"
41+
}
42+
43+
variable "customer_compartment_id" {
44+
default = "ocid1.tenancy.oc1..aaaaaaaa3gmchdtrnbtbdxt23e4vg6teuxdz5p533353tpo3k3jmebhzoklq"
45+
}
46+
47+
variable "occ_availability_catalog_metadata_details_format_version" {
48+
default = "V1"
49+
}
50+
51+
variable "occ_availability_catalog_catalog_state" {
52+
default = "NOT_UPLOADED"
53+
}
54+
55+
variable "occ_availability_catalog_id" {
56+
default = "id"
57+
}
58+
59+
variable "occ_capacity_request_availability_domain" {
60+
default = "US-ASHBURN-1-AD-2"
61+
}
62+
63+
variable "occ_capacity_request_date_expected_capacity_handover" {
64+
default = "2024/06/03"
65+
}
66+
67+
variable "occ_capacity_request_defined_tags_value" {
68+
default = "value"
69+
}
70+
71+
variable "occ_capacity_request_description" {
72+
default = "This is a test capacity request created via terraform provider"
73+
}
74+
75+
variable "occ_capacity_request_details_actual_handover_quantity" {
76+
default = 10
77+
}
78+
79+
variable "occ_capacity_request_details_date_actual_handover" {
80+
default = "dateActualHandover"
81+
}
82+
83+
variable "occ_capacity_request_details_date_expected_handover" {
84+
default = "dateExpectedHandover"
85+
}
86+
87+
variable "occ_capacity_request_details_demand_quantity" {
88+
default = 10
89+
}
90+
91+
variable "occ_capacity_request_details_expected_handover_quantity" {
92+
default = 10
93+
}
94+
95+
variable "occ_capacity_request_details_resource_type" {
96+
default = "SERVER_HW"
97+
}
98+
99+
variable "occ_capacity_request_details_workload_type" {
100+
default = "GENERIC"
101+
}
102+
103+
variable "occ_capacity_request_display_name" {
104+
default = "Test Request"
105+
}
106+
107+
variable "occ_capacity_request_freeform_tags" {
108+
default = { "bar-key" = "value" }
109+
}
110+
111+
variable "occ_capacity_request_id" {
112+
default = "id"
113+
}
114+
115+
variable "occ_capacity_request_lifecycle_details" {
116+
default = "lifecycleDetails"
117+
}
118+
119+
variable "occ_capacity_request_namespace" {
120+
default = "COMPUTE"
121+
}
122+
123+
variable "occ_capacity_request_region" {
124+
default = "US-ASHBURN-1"
125+
}
126+
127+
variable "occ_capacity_request_request_state" {
128+
default = "CREATED"
129+
}
130+
131+
variable "occ_availability_catalog_occ_availability_resource_type" {
132+
default = "SERVER_HW"
133+
}
134+
135+
provider "oci" {
136+
tenancy_ocid = var.tenancy_ocid
137+
user_ocid = var.user_ocid
138+
fingerprint = var.fingerprint
139+
private_key_path = var.private_key_path
140+
region = var.region
141+
}
142+
143+
data "oci_capacity_management_occ_customer_groups" "test_occ_customer_groups" {
144+
#Required
145+
compartment_id = var.compartment_id
146+
147+
#Optional
148+
# display_name = var.occ_customer_group_display_name
149+
# id = var.occ_customer_group_id
150+
# status = var.occ_customer_group_status
151+
}
152+
153+
resource "oci_capacity_management_occ_availability_catalog" "test_occ_availability_catalog" {
154+
#Required
155+
base64encoded_catalog_details = var.occ_availability_catalog_base64encoded_catalog_details
156+
compartment_id = var.compartment_id
157+
display_name = var.occ_availability_catalog_display_name
158+
namespace = var.occ_availability_catalog_namespace
159+
occ_customer_group_id = lookup(data.oci_capacity_management_occ_customer_groups.test_occ_customer_groups.occ_customer_group_collection.0.items[0], "id")
160+
161+
#Optional
162+
# defined_tags = map(oci_identity_tag_namespace.tag-namespace1.name.oci_identity_tag.tag1.name, var.occ_availability_catalog_defined_tags_value)
163+
description = var.occ_availability_catalog_description
164+
freeform_tags = var.occ_availability_catalog_freeform_tags
165+
metadata_details {
166+
#Required
167+
format_version = var.occ_availability_catalog_metadata_details_format_version
168+
}
169+
}
170+
171+
172+
data "oci_capacity_management_occ_availability_catalogs" "published_catalog_collection" {
173+
compartment_id = var.customer_compartment_id
174+
}
175+
176+
data "oci_capacity_management_occ_availability_catalog_occ_availabilities" "published_occ_availability_catalog_occ_availabilities" {
177+
#Required
178+
occ_availability_catalog_id = lookup(data.oci_capacity_management_occ_availability_catalogs.published_catalog_collection.occ_availability_catalog_collection.0.items[0], "id")
179+
180+
#Optional
181+
# date_expected_capacity_handover = var.occ_availability_catalog_occ_availability_date_expected_capacity_handover
182+
# resource_name = oci_usage_proxy_resource.test_resource.name
183+
resource_type = var.occ_availability_catalog_occ_availability_resource_type
184+
# workload_type = var.occ_availability_catalog_occ_availability_workload_type
185+
}
186+
187+
resource "oci_capacity_management_occ_capacity_request" "test_occ_capacity_request" {
188+
#Required
189+
availability_domain = var.occ_capacity_request_availability_domain
190+
compartment_id = var.customer_compartment_id
191+
# date_expected_capacity_handover = lookup(data.oci_capacity_management_occ_availability_catalog_occ_availabilities.published_occ_availability_catalog_occ_availabilities.occ_availability_collection.0.items[0], "date_expected_capacity_handover")
192+
# date_expected_capacity_handover = formatdate("YYYY-MM-DDTHH:MM:SSZ",data.oci_capacity_management_occ_availability_catalog_occ_availabilities.published_occ_availability_catalog_occ_availabilities.occ_availability_collection.0.items[0].date_expected_capacity_handover)
193+
date_expected_capacity_handover = "2124-06-04T00:00:00.00Z"
194+
195+
details {
196+
#Required
197+
demand_quantity = var.occ_capacity_request_details_demand_quantity
198+
resource_name = lookup(data.oci_capacity_management_occ_availability_catalog_occ_availabilities.published_occ_availability_catalog_occ_availabilities.occ_availability_collection.0.items[0], "resource_name")
199+
resource_type = lookup(data.oci_capacity_management_occ_availability_catalog_occ_availabilities.published_occ_availability_catalog_occ_availabilities.occ_availability_collection.0.items[0], "resource_type")
200+
workload_type = lookup(data.oci_capacity_management_occ_availability_catalog_occ_availabilities.published_occ_availability_catalog_occ_availabilities.occ_availability_collection.0.items[0], "workload_type")
201+
202+
#Optional
203+
# actual_handover_quantity = var.occ_capacity_request_details_actual_handover_quantity
204+
# date_actual_handover = var.occ_capacity_request_details_date_actual_handover
205+
# date_expected_handover = var.occ_capacity_request_details_date_expected_handover
206+
# expected_handover_quantity = var.occ_capacity_request_details_expected_handover_quantity
207+
}
208+
display_name = var.occ_capacity_request_display_name
209+
namespace = var.occ_capacity_request_namespace
210+
occ_availability_catalog_id = lookup(data.oci_capacity_management_occ_availability_catalogs.published_catalog_collection.occ_availability_catalog_collection.0.items[0], "id")
211+
# occ_capacity_request_id = var.occ_capacity_request_occ_capacity_request_id
212+
region = var.occ_capacity_request_region
213+
214+
#Optional
215+
# defined_tags = map(oci_identity_tag_namespace.tag-namespace1.name.oci_identity_tag.tag1.name, var.occ_capacity_request_defined_tags_value)
216+
description = var.occ_capacity_request_description
217+
freeform_tags = var.occ_capacity_request_freeform_tags
218+
lifecycle_details = var.occ_capacity_request_lifecycle_details
219+
# patch_operations {
220+
# #Required
221+
# operation = var.occ_capacity_request_patch_operations_operation
222+
# selection = var.occ_capacity_request_patch_operations_selection
223+
#
224+
# #Optional
225+
# from = var.occ_capacity_request_patch_operations_from
226+
# position = var.occ_capacity_request_patch_operations_position
227+
# selected_item = var.occ_capacity_request_patch_operations_selected_item
228+
# value = var.occ_capacity_request_patch_operations_value
229+
# values = var.occ_capacity_request_patch_operations_values
230+
# }
231+
request_state = var.occ_capacity_request_request_state
232+
}

internal/service/capacity_management/capacity_management_occ_availability_catalog_occ_availabilities_data_source.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -140,13 +140,15 @@ func (s *CapacityManagementOccAvailabilityCatalogOccAvailabilitiesDataSourceCrud
140140
request.ResourceName = &tmp
141141
}
142142

143-
// if resourceType, ok := s.D.GetOkExists("resource_type"); ok {
144-
// request.ResourceType = oci_capacity_management.OccAvailabilitySummaryResourceTypeEnum(resourceType.(string))
145-
// }
143+
if resourceType, ok := s.D.GetOkExists("resource_type"); ok {
144+
tmp := resourceType.(string)
145+
request.ResourceType = &tmp
146+
}
146147

147-
// if workloadType, ok := s.D.GetOkExists("workload_type"); ok {
148-
// request.WorkloadType = oci_capacity_management.OccAvailabilitySummaryWorkloadTypeEnum(workloadType.(string))
149-
// }
148+
if workloadType, ok := s.D.GetOkExists("workload_type"); ok {
149+
tmp := workloadType.(string)
150+
request.WorkloadType = &tmp
151+
}
150152

151153
request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "capacity_management")
152154

internal/service/capacity_management/capacity_management_occ_availability_catalog_resource.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -537,13 +537,17 @@ func OccAvailabilitySummaryToMap(obj oci_capacity_management.OccAvailabilitySumm
537537
result["resource_name"] = string(*obj.ResourceName)
538538
}
539539

540-
// result["resource_type"] = string(obj.ResourceType)
540+
if obj.ResourceType != nil {
541+
result["resource_type"] = string(*obj.ResourceType)
542+
}
541543

542544
if obj.Unit != nil {
543545
result["unit"] = string(*obj.Unit)
544546
}
545547

546-
// result["workload_type"] = string(obj.WorkloadType)
548+
if obj.WorkloadType != nil {
549+
result["workload_type"] = string(*obj.WorkloadType)
550+
}
547551

548552
return result
549553
}

0 commit comments

Comments
 (0)