CloudFormation CreateChangeset requires a value for every parameter from the template, either specifying a new value or use previous value. For convenience, this method will accept new parameter values and generates a dict of all parameters in a format that ChangeSet
(self, template_dict, parameter_overrides)
| 437 | return 0 |
| 438 | |
| 439 | def merge_parameters(self, template_dict, parameter_overrides): |
| 440 | """ |
| 441 | CloudFormation CreateChangeset requires a value for every parameter |
| 442 | from the template, either specifying a new value or use previous value. |
| 443 | For convenience, this method will accept new parameter values and |
| 444 | generates a dict of all parameters in a format that ChangeSet API |
| 445 | will accept |
| 446 | |
| 447 | :param parameter_overrides: |
| 448 | :return: |
| 449 | """ |
| 450 | parameter_values = [] |
| 451 | |
| 452 | if not isinstance(template_dict.get("Parameters", None), dict): |
| 453 | return parameter_values |
| 454 | |
| 455 | for key, value in template_dict["Parameters"].items(): |
| 456 | obj = {"ParameterKey": key} |
| 457 | |
| 458 | if key in parameter_overrides: |
| 459 | obj["ParameterValue"] = parameter_overrides[key] |
| 460 | else: |
| 461 | obj["UsePreviousValue"] = True |
| 462 | |
| 463 | parameter_values.append(obj) |
| 464 | |
| 465 | return parameter_values |
| 466 | |
| 467 | def _parse_input_as_json(self, arg_value): |
| 468 | # In case of reading from file it'll be string and in case |
no outgoing calls