def test_transform_ok(self): bindings = YamlBindings() bindings.import_dict({ 'a': { 'b': { 'space': 'WithSpace', 'empty': 'Empty' } }, 'x': { 'unique': True } }) template = """ a: b: space: {space} empty:{empty} unique: b: space: A empty: """ source = template.format(space='SPACE', empty='') expect = template.format(space='WithSpace', empty=' Empty') got = source for key in ['a.b.space', 'a.b.empty']: got = bindings.transform_yaml_source(got, key) self.assertEqual(expect, bindings.transform_yaml_source(expect, 'bogus')) self.assertEqual(expect, got)
def test_transform_ok(self): bindings = YamlBindings() bindings.import_dict({'a': {'b': { 'space': 'WithSpace', 'nospace': 'WithoutSpace', 'empty': 'Empty'}}, 'x' : {'unique': True}}) template = """ a: b: space: {space} nospace:{nospace} empty:{empty} unique: b: space: A nospace:B empty: """ source = template.format(space='SPACE', nospace='NOSPACE', empty='') expect = template.format(space='WithSpace', nospace=' WithoutSpace', empty=' Empty') got = source for key in [ 'a.b.space', 'a.b.nospace', 'a.b.empty' ]: got = bindings.transform_yaml_source(got, key) self.assertEqual(expect, bindings.transform_yaml_source(expect, 'bogus')) self.assertEqual(expect, got)
def populate_google_yml(content): credentials = {'project': '', 'jsonPath': ''} google_dict = { 'enabled': False, 'defaultRegion': 'us-central1', 'defaultZone': 'us-central1-f', } google_dict['primaryCredentials'] = credentials if is_google_instance(): zone = os.path.basename( check_fetch(GOOGLE_INSTANCE_METADATA_URL + '/zone', google=True).content) google_dict['enabled'] = 'true' google_dict['defaultRegion'] = zone[:-2] google_dict['defaultZone'] = zone credentials['project'] = check_fetch(GOOGLE_METADATA_URL + '/project/project-id', google=True).content bindings = YamlBindings() bindings.import_dict({'providers': {'google': google_dict}}) content = bindings.transform_yaml_source(content, 'providers.google.enabled') content = bindings.transform_yaml_source(content, 'providers.google.defaultRegion') content = bindings.transform_yaml_source(content, 'providers.google.defaultZone') content = bindings.transform_yaml_source( content, 'providers.google.primaryCredentials.project') content = bindings.transform_yaml_source( content, 'providers.google.primaryCredentials.jsonPath') return content
def populate_google_yml(content): credentials = {'project': '', 'jsonPath': ''} google_dict = {'enabled': False, 'defaultRegion': 'us-central1', 'defaultZone': 'us-central1-f',} google_dict['primaryCredentials'] = credentials if is_google_instance(): zone = os.path.basename( check_fetch(GOOGLE_INSTANCE_METADATA_URL + '/zone', google=True).content) google_dict['enabled'] = 'true' google_dict['defaultRegion'] = zone[:-2] google_dict['defaultZone'] = zone credentials['project'] = check_fetch( GOOGLE_METADATA_URL + '/project/project-id', google=True).content bindings = YamlBindings() bindings.import_dict({'providers': {'google': google_dict}}) content = bindings.transform_yaml_source(content, 'providers.google.enabled') content = bindings.transform_yaml_source( content, 'providers.google.defaultRegion') content = bindings.transform_yaml_source( content, 'providers.google.defaultZone') content = bindings.transform_yaml_source( content, 'providers.google.primaryCredentials.project') content = bindings.transform_yaml_source( content, 'providers.google.primaryCredentials.jsonPath') return content
def test_transform_fail(self): bindings = YamlBindings() bindings.import_dict({'a': {'b': { 'child': 'Hello, World!'}}, 'x' : {'unique': True}}) yaml = """ a: b: child: Hello """ with self.assertRaises(ValueError): bindings.transform_yaml_source(yaml, 'x.unique')
def test_transform_fail(self): bindings = YamlBindings() bindings.import_dict({'a': {'b': { 'child': 'Hello, World!'}}, 'x' : {'unique': True}}) yaml = """ a: b: child: Hello """ with self.assertRaises(ValueError): bindings.transform_yaml_source(yaml, 'x.unique')
def populate_aws_yml(content): aws_dict = {'enabled': False} if is_aws_instance(): zone = (check_fetch(AWS_METADATA_URL + '/placement/availability-zone') .content) aws_dict['enabled'] = 'true' aws_dict['defaultRegion'] = zone[:-1] elif os.path.exists(os.path.join(os.environ['HOME'], '.aws/credentials')): aws_dict['enabled'] = 'true' aws_dict['defaultRegion'] = 'us-east-1' bindings = YamlBindings() bindings.import_dict({'providers': {'aws': aws_dict}}) content = bindings.transform_yaml_source(content, 'providers.aws.enabled') content = bindings.transform_yaml_source(content, 'providers.aws.defaultRegion') return content
def populate_aws_yml(content): aws_dict = {'enabled': False} if is_aws_instance(): zone = (check_fetch(AWS_METADATA_URL + '/placement/availability-zone').content) aws_dict['enabled'] = 'true' aws_dict['defaultRegion'] = zone[:-1] elif os.path.exists(os.path.join(os.environ['HOME'], '.aws/credentials')): aws_dict['enabled'] = 'true' aws_dict['defaultRegion'] = 'us-east-1' bindings = YamlBindings() bindings.import_dict({'providers': {'aws': aws_dict}}) content = bindings.transform_yaml_source(content, 'providers.aws.enabled') content = bindings.transform_yaml_source(content, 'providers.aws.defaultRegion') return content
def populate_google_yml(content): credentials = {'project': '', 'jsonPath': ''} google_dict = { 'enabled': False, 'defaultRegion': 'us-central1', 'defaultZone': 'us-central1-f', } google_dict['primaryCredentials'] = credentials front50_dict = {} if is_google_instance(): zone = os.path.basename( check_fetch(GOOGLE_INSTANCE_METADATA_URL + '/zone', google=True).content) google_dict['enabled'] = 'true' google_dict['defaultRegion'] = zone[:-2] google_dict['defaultZone'] = zone credentials['project'] = check_fetch(GOOGLE_METADATA_URL + '/project/project-id', google=True).content front50_dict['storage_bucket'] = '${{{env}:{default}}}'.format( env='SPINNAKER_DEFAULT_STORAGE_BUCKET', default=credentials['project'].replace(':', '-').replace('.', '-')) bindings = YamlBindings() bindings.import_dict({'providers': {'google': google_dict}}) bindings.import_dict({'services': {'front50': front50_dict}}) content = bindings.transform_yaml_source(content, 'providers.google.enabled') content = bindings.transform_yaml_source(content, 'providers.google.defaultRegion') content = bindings.transform_yaml_source(content, 'providers.google.defaultZone') content = bindings.transform_yaml_source( content, 'providers.google.primaryCredentials.project') content = bindings.transform_yaml_source( content, 'providers.google.primaryCredentials.jsonPath') content = bindings.transform_yaml_source( content, 'services.front50.storage_bucket') return content
def populate_google_yml(content): credentials = {'project': '', 'jsonPath': ''} google_dict = {'enabled': False, 'defaultRegion': 'us-central1', 'defaultZone': 'us-central1-f',} google_dict['primaryCredentials'] = credentials front50_dict = {} if is_google_instance(): zone = os.path.basename( check_fetch(GOOGLE_INSTANCE_METADATA_URL + '/zone', google=True).content) google_dict['enabled'] = 'true' google_dict['defaultRegion'] = zone[:-2] google_dict['defaultZone'] = zone credentials['project'] = check_fetch( GOOGLE_METADATA_URL + '/project/project-id', google=True).content front50_dict['storage_bucket'] = '${{{env}:{default}}}'.format( env='SPINNAKER_DEFAULT_STORAGE_BUCKET', default=credentials['project'].replace(':', '-').replace('.', '-')) bindings = YamlBindings() bindings.import_dict({'providers': {'google': google_dict}}) bindings.import_dict({'services': {'front50': front50_dict}}) content = bindings.transform_yaml_source(content, 'providers.google.enabled') content = bindings.transform_yaml_source( content, 'providers.google.defaultRegion') content = bindings.transform_yaml_source( content, 'providers.google.defaultZone') content = bindings.transform_yaml_source( content, 'providers.google.primaryCredentials.project') content = bindings.transform_yaml_source( content, 'providers.google.primaryCredentials.jsonPath') content = bindings.transform_yaml_source( content, 'services.front50.storage_bucket') return content