7272 description: Configurations that are applied to every application in the service.
7373 type: dict
7474 required: False
75- contains :
75+ suboptions :
7676 configBlocks: List of ConfigBlocks for the application.
7777 type: list
7878 required: False
79- contains:
79+ elements: dict
80+ suboptions:
8081 id:
8182 description: ID of the ConfigBlock. Unique within an ApplicationConfig.
8283 type: str
8384 required: False
8485 format:
8586 description: Format of ConfigBlock.
8687 type: str
87- required: False
88+ required: False
8889 content:
8990 description: Contents of a ConfigBlock.
90- type: obj
91+ type: dict
9192 required: False
92- contains :
93+ suboptions :
9394 keyValues:
9495 description: Key-value type configurations.
95- type: obj
96+ type: dict
9697 required: False
97- contains:
98- additionalProperties:
99- description: Key-value type configurations.
100- type: str
101- required: False
10298 text:
10399 description: Text type configuration.
104100 type: str
111107 description: Configurations that are applied to every application in the service.
112108 type: dict
113109 required: False
114- contains:
115- configBlocks: List of ConfigBlocks for the application.
116- type: list
117- required: False
118- contains:
119- id:
120- description: ID of the ConfigBlock. Unique within an ApplicationConfig.
121- type: str
122- required: False
123- format:
124- description: Format of ConfigBlock.
125- type: str
126- required: False
127- content:
128- description: Contents of a ConfigBlock.
129- type: obj
130- required: False
131- contains:
132- keyValues:
133- description: Key-value type configurations.
134- type: obj
135- required: False
136- contains:
137- additionalProperties:
138- description: Key-value type configurations.
139- type: str
140- required: False
141- text:
142- description: Text type configuration.
143- type: str
144- required: False
145- json:
146- description: JSON type configuration.
147- type: str
148- required: False
110+ suboptions:
111+ required: False
112+ type: dict
113+ suboptions:
114+ configBlocks: List of ConfigBlocks for the application.
115+ type: list
116+ required: False
117+ elements: dict
118+ suboptions:
119+ id:
120+ description: ID of the ConfigBlock. Unique within an ApplicationConfig.
121+ type: str
122+ required: False
123+ format:
124+ description: Format of ConfigBlock.
125+ type: str
126+ required: False
127+ content:
128+ description: Contents of a ConfigBlock.
129+ type: dict
130+ required: False
131+ suboptions:
132+ keyValues:
133+ description: Key-value type configurations.
134+ type: dict
135+ required: False
136+ text:
137+ description: Text type configuration.
138+ type: str
139+ required: False
140+ json:
141+ description: JSON type configuration.
142+ type: str
143+ required: False
149144 ldap_groups:
150145 description: LDAP Groupnames to be enabled for auth.
151146 type: list
152147 required: False
148+ elements: str
153149 enable_sso:
154150 description: Should SSO be enabled for this VW.
155151 type: bool
211207 tag-key: "tag-value"
212208 enable_sso: true
213209 ldap_groups: ['group1','group2','group3']
210+
211+ - cloudera.cloud.dw_virtual_warehouse:
212+ cluster_id: "example-cluster-id"
213+ name: "example-virtual-warehouse"
214+ type: "hive"
215+ template: "xsmall"
216+ enable_sso: true
217+ ldap_groups: ['group1','group2','group3']
218+ common_configs: "{
219+ 'configBlocks': [
220+ {
221+ 'id': 'das-ranger-policymgr',
222+ 'format': 'HADOOP_XML',
223+ 'content': {
224+ 'keyValues' : {
225+ 'xasecure.policymgr.clientssl.truststore': '/path_to_ca_cert/cacerts'
226+ }
227+ }
228+ }
229+ ]
230+ }"
231+ application_configs: "{
232+ "das-webapp": {
233+ "configBlocks": [
234+ {
235+ "id": "hive-kerberos-config",
236+ "format": "TEXT",
237+ "content": {
238+ "text": "\n[libdefaults]\n\trenew_lifetime = 7d"
239+ }
240+ }
241+ ]
242+ }
243+ }"
244+
214245
215246# Delete Virtual Warehouse
216247- cloudera.cloud.dw_virtual_warehouse:
226257 type: list
227258 returned: always
228259 elements: complex
229- contains :
260+ suboptions :
230261 vws:
231262 type: dict
232- contains :
263+ suboptions :
233264 id:
234265 description: Id of the Virtual Warehouse created.
235266 returned: always
258289 description: The CRN of the cluster creator.
259290 returned: always
260291 type: dict
261- contains :
292+ suboptions :
262293 crn:
263294 type: str
264295 description: Actor CRN
@@ -315,6 +346,7 @@ def __init__(self, module):
315346
316347 # Initialize internal values
317348 self .target = None
349+ self .changed = False
318350
319351 # Execute logic process
320352 self .process ()
@@ -340,6 +372,7 @@ def process(self):
340372 'status' ])
341373 else :
342374 _ = self .cdpy .dw .delete_vw (cluster_id = self .cluster_id , vw_id = self .target ['id' ])
375+ self .changed = True
343376 if self .wait :
344377 self .cdpy .sdk .wait_for_state (
345378 describe_func = self .cdpy .dw .describe_vw ,
@@ -383,6 +416,7 @@ def process(self):
383416 application_configs = self .application_configs ,
384417 ldap_groups = self .ldap_groups , enable_sso = self .enable_sso ,
385418 tags = self .tags )
419+ self .changed = True
386420 if self .wait :
387421 self .target = self .cdpy .sdk .wait_for_state (
388422 describe_func = self .cdpy .dw .describe_vw ,
@@ -399,29 +433,51 @@ def process(self):
399433def main ():
400434 module = AnsibleModule (
401435 argument_spec = CdpModule .argument_spec (
402- id = dict (required = False , type = 'str' , default = None ),
436+ id = dict (type = 'str' ),
403437 cluster_id = dict (required = True , type = 'str' ),
404- dbc_id = dict (required = False , type = 'str' , default = None ),
405- type = dict (required = False , type = 'str' , default = None ),
406- name = dict (required = False , type = 'str' , default = None ),
407- template = dict (required = False , type = 'str' , default = None ),
408- autoscaling_min_nodes = dict (required = False , type = 'int' , default = None ),
409- autoscaling_max_nodes = dict (required = False , type = 'int' , default = None ),
410- common_configs = dict (required = False , type = 'dict' , default = None ),
411- application_configs = dict (required = False , type = 'dict' , default = None ),
412- ldap_groups = dict (required = False , type = 'list' , default = None ),
413- enable_sso = dict (required = False , type = 'bool' , default = False ),
414- tags = dict (required = False , type = 'dict' , default = None ),
415- state = dict (required = False , type = 'str' , choices = ['present' , 'absent' ], default = 'present' ),
416- wait = dict (required = False , type = 'bool' , default = True ),
417- delay = dict (required = False , type = 'int' , aliases = ['polling_delay' ], default = 15 ),
418- timeout = dict (required = False , type = 'int' , aliases = ['polling_timeout' ], default = 3600 )
438+ dbc_id = dict (type = 'str' ),
439+ type = dict (type = 'str' ),
440+ name = dict (type = 'str' ),
441+ template = dict (type = 'str' ),
442+ autoscaling_min_nodes = dict (type = 'int' ),
443+ autoscaling_max_nodes = dict (type = 'int' ),
444+ common_configs = dict (type = 'dict' ,
445+ options = dict (
446+ configBlocks = dict (
447+ type = 'list' ,
448+ elements = 'dict' ,
449+ options = dict (
450+ dict (
451+ id = dict (type = 'str' ),
452+ format = dict (type = 'str' , choices = ['HADOOP_XML' , 'PROPERTIES' , 'TEXT' , 'JSON' , 'BINARY' , 'ENV' , 'FLAGFILE' ]),
453+ content = dict (type = 'dict' ,
454+ options = dict (
455+ dict (
456+ keyValues = dict (type = 'dict' ),
457+ text = dict (type = 'str' ),
458+ json = dict (type = 'json' )
459+ )
460+ )
461+ )
462+ )
463+ )
464+ )
465+ )
466+ ),
467+ application_configs = dict (type = 'dict' ),
468+ ldap_groups = dict (type = 'list' ),
469+ enable_sso = dict (type = 'bool' ),
470+ tags = dict (type = 'dict' ),
471+ state = dict (type = 'str' , choices = ['present' , 'absent' ], default = 'present' ),
472+ wait = dict (type = 'bool' , default = True ),
473+ delay = dict (type = 'int' , aliases = ['polling_delay' ], default = 15 ),
474+ timeout = dict (type = 'int' , aliases = ['polling_timeout' ], default = 3600 )
419475 ),
420476 supports_check_mode = True
421477 )
422478
423479 result = DwVw (module )
424- output = dict (changed = False , virtual_warehouses = result .virtual_warehouses )
480+ output = dict (changed = result . changed , virtual_warehouses = result .virtual_warehouses )
425481
426482 if result .debug :
427483 output .update (sdk_out = result .log_out , sdk_out_lines = result .log_lines )
0 commit comments