|  | 
| 139 | 139 |     type: bool | 
| 140 | 140 |     required: False | 
| 141 | 141 |     default: False | 
|  | 142 | +  multi_az: | 
|  | 143 | +    description: | 
|  | 144 | +      - Flag indicating if the datalake is deployed across multi-availability zones. | 
|  | 145 | +      - Only applies to AWS datalakes. | 
|  | 146 | +    type: bool | 
|  | 147 | +    required: False | 
|  | 148 | +    default: False     | 
| 142 | 149 | extends_documentation_fragment: | 
| 143 | 150 |   - cloudera.cloud.cdp_sdk_options | 
| 144 | 151 |   - cloudera.cloud.cdp_auth_options | 
| @@ -405,6 +412,7 @@ def __init__(self, module): | 
| 405 | 412 |         self.timeout = self._get_param('timeout') | 
| 406 | 413 |         self.force = self._get_param('force') | 
| 407 | 414 |         self.raz = self._get_param("raz") | 
|  | 415 | +        self.multi_az = self._get_param("multi_az") | 
| 408 | 416 | 
 | 
| 409 | 417 |         # Initialize the return values | 
| 410 | 418 |         self.datalake = dict() | 
| @@ -556,6 +564,14 @@ def _configure_payload(self, environment): | 
| 556 | 564 |         elif environment['cloudPlatform'] != 'GCP' : | 
| 557 | 565 |             payload.update(enableRangerRaz=self.raz) | 
| 558 | 566 | 
 | 
|  | 567 | +        if self.multi_az: | 
|  | 568 | +            if environment['cloudPlatform'] == 'AWS': | 
|  | 569 | +                payload.update(multiAz=self.multi_az) | 
|  | 570 | +            else: | 
|  | 571 | +                self.module.fail_json(msg='Multi-AZ Datalakes are not supported on GCP and Azure') | 
|  | 572 | +        elif environment['cloudPlatform'] == 'AWS': | 
|  | 573 | +            payload.update(multiAz=self.multi_az) | 
|  | 574 | + | 
| 559 | 575 |         if self.tags is not None: | 
| 560 | 576 |             payload['tags'] = list() | 
| 561 | 577 |             for k in self.tags: | 
| @@ -601,6 +617,12 @@ def _reconcile_existing_state(self, existing): | 
| 601 | 617 |                              "need to change the enableRangerRaz, explicitly delete " | 
| 602 | 618 |                              "and recreate the Datalake.") | 
| 603 | 619 | 
 | 
|  | 620 | +        if self.multi_az: | 
|  | 621 | +            self.module.warn("Updating an existing Datalake's 'multiAz' " | 
|  | 622 | +                             "directly is not supported at this time. If you " | 
|  | 623 | +                             "need to change the multiAz, explicitly delete " | 
|  | 624 | +                             "and recreate the Datalake.") | 
|  | 625 | + | 
| 604 | 626 |         return mismatched | 
| 605 | 627 | 
 | 
| 606 | 628 |     def _validate_datalake_name(self): | 
| @@ -629,7 +651,8 @@ def main(): | 
| 629 | 651 |             wait=dict(required=False, type='bool', default=True), | 
| 630 | 652 |             delay=dict(required=False, type='int', aliases=['polling_delay'], default=15), | 
| 631 | 653 |             timeout=dict(required=False, type='int', aliases=['polling_timeout'], default=3600), | 
| 632 |  | -            raz=dict(required=False, type="bool", default=False) | 
|  | 654 | +            raz=dict(required=False, type="bool", default=False), | 
|  | 655 | +            multi_az=dict(required=False, type="bool", default=False) | 
| 633 | 656 |         ), | 
| 634 | 657 |         supports_check_mode=True | 
| 635 | 658 |     ) | 
|  | 
0 commit comments