def update_stack_set()

in source/aws/services/cloudformation.py [0:0]


    def update_stack_set(self, stack_set_name, parameter, template_url,
                         capabilities):
        try:
            parameters = []
            param_dict = {}
            for key, value in parameter.items():
                """This condition checks if the value is a List and convert
                it  into a Comma-delimited string. Note: Remember to change
                the parameter type from 'List<AWS::EC2::*::*>' (Supported
                AWS-Specific Parameter Types) to 'CommaDelimitedList' in the
                 template."""

                if type(value) == list:
                    value = ",".join(map(str, value))
                param_dict['ParameterKey'] = key
                param_dict['ParameterValue'] = value
                parameters.append(param_dict.copy())

            response = self.cfn_client.update_stack_set(
                StackSetName=stack_set_name,
                TemplateURL=template_url,
                Parameters=parameters,
                Capabilities=json.loads(capabilities),
                AdministrationRoleARN=os.environ.get(
                    'ADMINISTRATION_ROLE_ARN'),
                ExecutionRoleName=os.environ.get('EXECUTION_ROLE_NAME'),
                OperationPreferences={
                    'FailureTolerancePercentage': self.failed_tolerance_percent,
                    'MaxConcurrentPercentage': self.max_concurrent_percent,
                    'RegionConcurrencyType': self.region_concurrency_type
                }
            )
            return response
        except ClientError as e:
            if e.response['Error']['Code'] == 'OperationInProgressException':
                self.logger.info(self.operation_in_progress_except_msg)
                return {"OperationId": "OperationInProgressException"}
            else:
                self.logger.log_unhandled_exception(e)
                raise