def test_load_balancer_metadata_merge(self): """ auto scaling metadata should be merged with user specified metadata. """ test_config = { 'server': {}, 'loadBalancers': [{ 'id': 1, 'port': 80, 'metadata': { 'foo': 'bar' } }] } expected_metadata = { 'rax:auto_scaling_group_id': self.scaling_group_uuid, 'rax:auto_scaling_server_name': 'as000000', 'foo': 'bar' } launch_config = prepare_launch_config(self.scaling_group_uuid, test_config) self.assertEqual(expected_metadata, launch_config['loadBalancers'][0]['metadata'])
def test_launch_config_is_copy(self): """ The input launch config is not mutated by prepare_launch_config. """ test_config = {'server': {}} launch_config = prepare_launch_config(self.scaling_group_uuid, test_config) self.assertNotIdentical(test_config, launch_config)
def test_server_name_no_suffix(self): """ No server name in the launch config means no suffix. """ test_config = {'server': {}} expected_name = 'as000000' launch_config = prepare_launch_config(self.scaling_group_uuid, test_config) self.assertEqual(expected_name, launch_config['server']['name'])
def test_server_name_suffix(self): """ The server name uses the name specified in the launch config as a suffix. """ test_config = {'server': {'name': 'web.example.com'}} expected_name = 'web.example.com-as000000' launch_config = prepare_launch_config(self.scaling_group_uuid, test_config) self.assertEqual(expected_name, launch_config['server']['name'])
def test_server_name_suffix(self): """ The server name uses the name specified in the launch config as a suffix. """ test_config = {'server': {'name': 'web.example.com'}} expected_name = 'as000000-web.example.com' launch_config = prepare_launch_config(self.scaling_group_uuid, test_config) self.assertEqual(expected_name, launch_config['server']['name'])
def test_server_metadata(self): """ The auto scaling group should be added to the server metadata. """ test_config = {'server': {}} expected_metadata = { 'rax:auto_scaling_group_id': self.scaling_group_uuid} launch_config = prepare_launch_config(self.scaling_group_uuid, test_config) self.assertEqual(expected_metadata, launch_config['server']['metadata'])
def test_server_merge_metadata(self): """ The auto scaling metadata should be merged with specified metadata. """ test_config = {'server': {'metadata': {'foo': 'bar'}}} expected_metadata = { 'rax:auto_scaling_group_id': self.scaling_group_uuid, 'foo': 'bar'} launch_config = prepare_launch_config(self.scaling_group_uuid, test_config) self.assertEqual(expected_metadata, launch_config['server']['metadata'])
def test_server_metadata(self): """ The auto scaling group should be added to the server metadata. """ test_config = {'server': {}} expected_metadata = { 'rax:auto_scaling_group_id': self.scaling_group_uuid } launch_config = prepare_launch_config(self.scaling_group_uuid, test_config) self.assertEqual(expected_metadata, launch_config['server']['metadata'])
def test_server_merge_metadata(self): """ The auto scaling metadata should be merged with specified metadata. """ test_config = {'server': {'metadata': {'foo': 'bar'}}} expected_metadata = { 'rax:auto_scaling_group_id': self.scaling_group_uuid, 'foo': 'bar' } launch_config = prepare_launch_config(self.scaling_group_uuid, test_config) self.assertEqual(expected_metadata, launch_config['server']['metadata'])
def test_load_balancer_metadata(self): """ auto scaling group and auto scaling server name should be added to the node metadata for a load balancer. """ test_config = {'server': {}, 'loadBalancers': [{'id': 1, 'port': 80}]} expected_metadata = { 'rax:auto_scaling_group_id': self.scaling_group_uuid, 'rax:auto_scaling_server_name': 'as000000'} launch_config = prepare_launch_config(self.scaling_group_uuid, test_config) self.assertEqual(expected_metadata, launch_config['loadBalancers'][0]['metadata'])
def test_load_balancer_metadata_merge(self): """ auto scaling metadata should be merged with user specified metadata. """ test_config = {'server': {}, 'loadBalancers': [ {'id': 1, 'port': 80, 'metadata': {'foo': 'bar'}}]} expected_metadata = { 'rax:auto_scaling_group_id': self.scaling_group_uuid, 'rax:auto_scaling_server_name': 'as000000', 'foo': 'bar'} launch_config = prepare_launch_config(self.scaling_group_uuid, test_config) self.assertEqual(expected_metadata, launch_config['loadBalancers'][0]['metadata'])
def test_load_balancer_metadata(self): """ auto scaling group and auto scaling server name should be added to the node metadata for a load balancer. """ test_config = {'server': {}, 'loadBalancers': [{'id': 1, 'port': 80}]} expected_metadata = { 'rax:auto_scaling_group_id': self.scaling_group_uuid, 'rax:auto_scaling_server_name': 'as000000' } launch_config = prepare_launch_config(self.scaling_group_uuid, test_config) self.assertEqual(expected_metadata, launch_config['loadBalancers'][0]['metadata'])