def test_repeated_base_names(self): """Ensures duplicate base names reject the entire config.""" template_config = config_pb2.InstanceTemplateConfig( templates=[ config_pb2.InstanceTemplateConfig.InstanceTemplate( base_name='base-name-1', ), config_pb2.InstanceTemplateConfig.InstanceTemplate( base_name='base-name-2', ), config_pb2.InstanceTemplateConfig.InstanceTemplate( base_name='base-name-3', ), config_pb2.InstanceTemplateConfig.InstanceTemplate( base_name='base-name-4', ), config_pb2.InstanceTemplateConfig.InstanceTemplate( base_name='base-name-2', ), config_pb2.InstanceTemplateConfig.InstanceTemplate( base_name='base-name-3', ), ], ) self.install_mock(template_config=template_config) config.update_template_configs() self.failIf(config.Configuration.cached().template_config) self.failIf(config.Configuration.cached().manager_config) self.failIf(config.Configuration.cached().revision)
def test_empty_configs(self): """Ensures empty configs are successfully stored.""" self.install_mock() config.update_template_configs() self.failIf(config.Configuration.cached().template_config) self.failIf(config.Configuration.cached().manager_config) self.assertEqual(config.Configuration.cached().revision, 'mock-revision')
def test_too_many_instance_templates(self): template_config = config_pb2.InstanceTemplateConfig( templates=[ config_pb2.InstanceTemplateConfig.InstanceTemplate( base_name='base-name-%d', ) for d in xrange(21) ], ) self.install_mock(template_config=template_config) config.update_template_configs() self.failIf(config.Configuration.cached().template_config) self.failIf(config.Configuration.cached().manager_config) self.failIf(config.Configuration.cached().revision)
def test_maximum_size_exceeds_maximum_allowed(self): """Ensures repeated zones in a base name reject the entire config.""" manager_config = config_pb2.InstanceGroupManagerConfig( managers=[ config_pb2.InstanceGroupManagerConfig.InstanceGroupManager( maximum_size=9999, template_base_name='base-name-1', zone='us-central1-a', ), ], ) self.install_mock(manager_config=manager_config) config.update_template_configs() self.failIf(config.Configuration.cached().template_config) self.failIf(config.Configuration.cached().manager_config) self.failIf(config.Configuration.cached().revision)
def test_too_many_instance_templates(self): template_config = config_pb2.InstanceTemplateConfig( templates=[ config_pb2.InstanceTemplateConfig.InstanceTemplate( base_name='base-name-1', ), config_pb2.InstanceTemplateConfig.InstanceTemplate( base_name='base-name-2', ), config_pb2.InstanceTemplateConfig.InstanceTemplate( base_name='base-name-3', ), config_pb2.InstanceTemplateConfig.InstanceTemplate( base_name='base-name-4', ), config_pb2.InstanceTemplateConfig.InstanceTemplate( base_name='base-name-5', ), config_pb2.InstanceTemplateConfig.InstanceTemplate( base_name='base-name-6', ), config_pb2.InstanceTemplateConfig.InstanceTemplate( base_name='base-name-7', ), config_pb2.InstanceTemplateConfig.InstanceTemplate( base_name='base-name-8', ), config_pb2.InstanceTemplateConfig.InstanceTemplate( base_name='base-name-9', ), config_pb2.InstanceTemplateConfig.InstanceTemplate( base_name='base-name-10', ), config_pb2.InstanceTemplateConfig.InstanceTemplate( base_name='base-name-11', ), ], ) self.install_mock(template_config=template_config) config.update_template_configs() self.failIf(config.Configuration.cached().template_config) self.failIf(config.Configuration.cached().manager_config) self.failIf(config.Configuration.cached().revision)
def test_metadata_from_file(self): key = "startup-script" content = "./cmd.sh" template_config = config_pb2.InstanceTemplateConfig( templates=[ config_pb2.InstanceTemplateConfig.InstanceTemplate( base_name='base-name-1', metadata_from_file=[ '%s:metadata_file' % key, ], ), ], ) self.install_mock(template_config=template_config, metadata_file=content) config.update_template_configs() self.failUnless(config.Configuration.cached().template_config) self.assertEqual(len(template_config.templates[0].metadata), 0) cfg, _ = config.Configuration.load() self.assertEqual(len(cfg.templates), 1) self.assertEqual(len(cfg.templates[0].metadata), 1) self.assertEqual(cfg.templates[0].metadata[0], '%s:%s' % (key, content))
def test_update_template_configs_same_revision(self): """Ensures config is not updated when revision doesn't change.""" manager_config = config_pb2.InstanceGroupManagerConfig( managers=[config_pb2.InstanceGroupManagerConfig.InstanceGroupManager()], ) self.install_mock(manager_config=manager_config) config.update_template_configs() self.failIf(config.Configuration.cached().template_config) self.failUnless(config.Configuration.cached().manager_config) self.assertEqual(config.Configuration.cached().revision, 'mock-revision') template_config = config_pb2.InstanceTemplateConfig( templates=[config_pb2.InstanceTemplateConfig.InstanceTemplate()], ) self.install_mock(template_config=template_config) config.update_template_configs() self.failIf(config.Configuration.cached().template_config) self.failUnless(config.Configuration.cached().manager_config) self.assertEqual(config.Configuration.cached().revision, 'mock-revision')
def test_update_template_configs(self): """Ensures config is updated when revision changes.""" manager_config = config_pb2.InstanceGroupManagerConfig( managers=[config_pb2.InstanceGroupManagerConfig.InstanceGroupManager()], ) self.install_mock(revision='revision-1', manager_config=manager_config) config.update_template_configs() self.failIf(config.Configuration.cached().template_config) self.failUnless(config.Configuration.cached().manager_config) self.assertEqual(config.Configuration.cached().revision, 'revision-1') template_config = config_pb2.InstanceTemplateConfig( templates=[config_pb2.InstanceTemplateConfig.InstanceTemplate()], ) self.install_mock(revision='revision-2', template_config=template_config) config.update_template_configs() self.failUnless(config.Configuration.cached().template_config) self.failIf(config.Configuration.cached().manager_config) self.assertEqual(config.Configuration.cached().revision, 'revision-2')
def test_repeated_zone_same_base_name(self): """Ensures repeated zones in a base name reject the entire config.""" manager_config = config_pb2.InstanceGroupManagerConfig( managers=[ config_pb2.InstanceGroupManagerConfig.InstanceGroupManager( template_base_name='base-name-1', zone='us-central1-a', ), config_pb2.InstanceGroupManagerConfig.InstanceGroupManager( template_base_name='base-name-2', zone='us-central1-b', ), config_pb2.InstanceGroupManagerConfig.InstanceGroupManager( template_base_name='base-name-1', zone='us-central1-a', ), ], ) self.install_mock(manager_config=manager_config) config.update_template_configs() self.failIf(config.Configuration.cached().template_config) self.failIf(config.Configuration.cached().manager_config) self.failIf(config.Configuration.cached().revision)
def test_repeated_zone_different_base_name(self): """Ensures repeated zones in different base names are valid.""" manager_config = config_pb2.InstanceGroupManagerConfig( managers=[ config_pb2.InstanceGroupManagerConfig.InstanceGroupManager( template_base_name='base-name-1', zone='us-central1-a', ), config_pb2.InstanceGroupManagerConfig.InstanceGroupManager( template_base_name='base-name-2', zone='us-central1-a', ), config_pb2.InstanceGroupManagerConfig.InstanceGroupManager( template_base_name='base-name-3', zone='us-central1-a', ), ], ) self.install_mock(manager_config=manager_config) config.update_template_configs() self.failIf(config.Configuration.cached().template_config) self.failUnless(config.Configuration.cached().manager_config) self.assertEqual(config.Configuration.cached().revision, 'mock-revision')
def get(self): config.update_template_configs()