def run(self): try: _parameter_override_keys = get_template_parameters( template_file=self.template_file) except ValueError as ex: LOG.debug("Failed to parse SAM template", exc_info=ex) raise GuidedDeployFailedError(str(ex)) from ex guided_config = GuidedConfig(template_file=self.template_file, section=self.config_section) guided_config.read_config_showcase( self.config_file or DEFAULT_CONFIG_FILE_NAME, ) self.guided_prompts(_parameter_override_keys) if self.save_to_config: guided_config.save_config( self._parameter_overrides, self.config_env or DEFAULT_ENV, self.config_file or DEFAULT_CONFIG_FILE_NAME, stack_name=self.guided_stack_name, s3_bucket=self.guided_s3_bucket, s3_prefix=self.guided_s3_prefix, image_repositories=self.guided_image_repositories, region=self.guided_region, profile=self.guided_profile, confirm_changeset=self.confirm_changeset, capabilities=self._capabilities, signing_profiles=self.signing_profiles, )
def run(self): try: _parameter_override_keys = get_template_parameters( template_file=self.template_file) except ValueError as ex: LOG.debug("Failed to parse SAM template", exc_info=ex) raise GuidedDeployFailedError(str(ex)) guided_config = GuidedConfig(template_file=self.template_file, section=self.config_section) guided_config.read_config_showcase() self.guided_prompts(_parameter_override_keys) if self.save_to_config: guided_config.save_config( self._parameter_overrides, stack_name=self.guided_stack_name, s3_bucket=self.guided_s3_bucket, s3_prefix=self.guided_s3_prefix, region=self.guided_region, profile=self.guided_profile, confirm_changeset=self.confirm_changeset, capabilities=self._capabilities, )
def test_must_read_file_and_get_parameters(self, pathlib_mock, yaml_parse_mock): filename = "filename" file_data = "contents of the file" parse_result = {"Parameters": {"Myparameter": "String"}} pathlib_mock.Path.return_value.exists.return_value = True # Fake that the file exists m = mock_open(read_data=file_data) yaml_parse_mock.return_value = parse_result with patch("samcli.commands._utils.template.open", m): result = get_template_parameters(filename) self.assertEqual(result, {"Myparameter": "String"}) m.assert_called_with(filename, "r", encoding="utf-8") yaml_parse_mock.assert_called_with(file_data)
def do_cli( template_file, stack_name, s3_bucket, force_upload, s3_prefix, kms_key_id, parameter_overrides, capabilities, no_execute_changeset, role_arn, notification_arns, fail_on_empty_changeset, use_json, tags, metadata, guided, confirm_changeset, region, profile, ): from samcli.commands.package.package_context import PackageContext from samcli.commands.deploy.deploy_context import DeployContext # set capabilities and changeset decision to None, before guided gets input from the user changeset_decision = None _capabilities = None _parameter_overrides = None guided_stack_name = None guided_s3_bucket = None guided_s3_prefix = None guided_region = None if guided: try: _parameter_override_keys = get_template_parameters(template_file=template_file) except ValueError as ex: LOG.debug("Failed to parse SAM template", exc_info=ex) raise GuidedDeployFailedError(str(ex)) read_config_showcase(template_file=template_file) guided_stack_name, guided_s3_bucket, guided_s3_prefix, guided_region, guided_profile, changeset_decision, _capabilities, _parameter_overrides, save_to_config = guided_deploy( stack_name, s3_bucket, region, profile, confirm_changeset, _parameter_override_keys, parameter_overrides ) if save_to_config: save_config( template_file, stack_name=guided_stack_name, s3_bucket=guided_s3_bucket, s3_prefix=guided_s3_prefix, region=guided_region, profile=guided_profile, confirm_changeset=changeset_decision, capabilities=_capabilities, parameter_overrides=_parameter_overrides, ) print_deploy_args( stack_name=guided_stack_name if guided else stack_name, s3_bucket=guided_s3_bucket if guided else s3_bucket, region=guided_region if guided else region, capabilities=_capabilities if guided else capabilities, parameter_overrides=_parameter_overrides if guided else parameter_overrides, confirm_changeset=changeset_decision if guided else confirm_changeset, ) with osutils.tempfile_platform_independent() as output_template_file: with PackageContext( template_file=template_file, s3_bucket=guided_s3_bucket if guided else s3_bucket, s3_prefix=guided_s3_prefix if guided else s3_prefix, output_template_file=output_template_file.name, kms_key_id=kms_key_id, use_json=use_json, force_upload=force_upload, metadata=metadata, on_deploy=True, region=guided_region if guided else region, profile=profile, ) as package_context: package_context.run() with DeployContext( template_file=output_template_file.name, stack_name=guided_stack_name if guided else stack_name, s3_bucket=guided_s3_bucket if guided else s3_bucket, force_upload=force_upload, s3_prefix=guided_s3_prefix if guided else s3_prefix, kms_key_id=kms_key_id, parameter_overrides=sanitize_parameter_overrides(_parameter_overrides) if guided else parameter_overrides, capabilities=_capabilities if guided else capabilities, no_execute_changeset=no_execute_changeset, role_arn=role_arn, notification_arns=notification_arns, fail_on_empty_changeset=fail_on_empty_changeset, tags=tags, region=guided_region if guided else region, profile=profile, confirm_changeset=changeset_decision if guided else confirm_changeset, ) as deploy_context: deploy_context.run()