def test_get_filename_without_extension(self): self.assertEqual('', fileoperations.get_filename_without_extension('')) self.assertEqual( 'file', fileoperations.get_filename_without_extension('file.zip')) self.assertEqual( 'file', fileoperations.get_filename_without_extension('src/file.zip')) self.assertEqual( 'file', fileoperations.get_filename_without_extension('src/file.zip.app'))
def test_get_filename_without_extension_with_path(self): filepath = '{1}tmp{1}dir{1}test{1}{0}'.format('foo.txt', os.path.sep) actual_file = fileoperations.get_filename_without_extension(filepath) self.assertEqual( 'foo', actual_file, "Expected {0} but got: {1}".format('foo', actual_file))
def put(self): app_name = self.get_app_name() name = self._get_cfg_name('put') platform = solution_stack_ops.get_default_solution_stack() if not PlatformVersion.is_valid_arn(platform): platform = platformops.get_platform_for_platform_string(platform) platform = platform.name saved_configs.update_config(app_name, name) filename = fileoperations.get_filename_without_extension(name) saved_configs.validate_config_file(app_name, filename, platform)
def update_config(app_name, cfg_name): config_location = resolve_config_location(cfg_name) if config_location is None: raise NotFoundError('No local version of ' + cfg_name + ' found.') fileoperations.write_config_setting( 'EnvironmentConfigurationMetadata', 'DateModified', (('%f' % (time.time() * 1000)).split('.')[0]), file=config_location) filename = fileoperations.get_filename_without_extension(config_location) upload_config_file(app_name, filename, config_location)
def resolve_config_name(app_name, cfg_name): """ Resolve the name of the s3 template. If cfg_name is a file, we need to first upload the file. if the cfg_name is not a file, we can assume it is a correct s3 name. We will get an error later if it is invalid. """ config_location = resolve_config_location(cfg_name) if config_location is None: return cfg_name else: name = fileoperations.get_filename_without_extension(config_location) upload_config_file(app_name, name, config_location) return cfg_name
def update_config(app_name, cfg_name): config_location = resolve_config_location(cfg_name) if config_location is None: raise NotFoundError('No local version of ' + cfg_name + ' found.') # Update modified date fileoperations.write_config_setting('EnvironmentConfigurationMetadata', 'DateModified', (('%f' % (time.time() * 1000)).split('.')[0]), file=config_location) # Get just the name of the file filename = fileoperations.get_filename_without_extension(config_location) upload_config_file(app_name, filename, config_location)
def validate_config_file(app_name, cfg_name, platform): filename = fileoperations.get_filename_without_extension(cfg_name) try: result = elasticbeanstalk.validate_template(app_name, filename) except InvalidParameterValueError as e: if e.message == responses['create.noplatform']: result = elasticbeanstalk.validate_template(app_name, cfg_name, platform=platform) else: raise for m in result['Messages']: severity = m['Severity'] message = m['Message'] if severity == 'error': io.log_error(message) elif severity == 'warning': pass
def validate_config_file(app_name, cfg_name, platform): # Get just the name of the file filename = fileoperations.get_filename_without_extension(cfg_name) try: result = elasticbeanstalk.validate_template(app_name, filename) except InvalidParameterValueError as e: # Platform not in Saved config. Try again with default platform if e.message == responses['create.noplatform']: result = elasticbeanstalk.validate_template(app_name, cfg_name, platform=platform) else: raise for m in result['Messages']: severity = m['Severity'] message = m['Message'] if severity == 'error': io.log_error(message) elif severity == 'warning': # Ignore warnings. They are common on partial configurations # and almost always completely irrelevant. # io.log_warning(message) pass
def test_get_filename_without_extension_with_file(self): actual_file = fileoperations.get_filename_without_extension('foo.txt') self.assertEqual( 'foo', actual_file, "Expected {0} but got: {1}".format('foo', actual_file))