def test_generate_agents_pair_mixed_room(self): unique = 'UU1D' expected = { 'UU1D_master_0': { 'id': 'UU1D_master_0', 'mode': 'master', 'availability_zone': '%s:uno' % ZONE, 'zone': ZONE, 'node': 'uno', 'slave_id': 'UU1D_slave_0' }, 'UU1D_slave_0': { 'id': 'UU1D_slave_0', 'master_id': 'UU1D_master_0', 'mode': 'slave', 'availability_zone': '%s:dos' % ZONE, 'zone': ZONE, 'node': 'dos' }, 'UU1D_master_1': { 'id': 'UU1D_master_1', 'mode': 'master', 'availability_zone': '%s:dos' % ZONE, 'zone': ZONE, 'node': 'dos', 'slave_id': 'UU1D_slave_1' }, 'UU1D_slave_1': { 'id': 'UU1D_slave_1', 'master_id': 'UU1D_master_1', 'mode': 'slave', 'availability_zone': '%s:uno' % ZONE, 'zone': ZONE, 'node': 'uno' }, } accommodation = deploy.normalize_accommodation(['pair', 'mixed_room']) actual = deploy.generate_agents(nodes_helper('uno', 'dos'), accommodation, unique) self.assertEqual(expected, actual)
def test_generate_agents_zones_specified(self): unique = 'UU1D' expected = { 'UU1D_master_0': { 'id': 'UU1D_master_0', 'slave_id': 'UU1D_slave_0', 'mode': 'master', 'availability_zone': '%s:uno' % ZONE, 'zone': ZONE, 'node': 'uno' }, 'UU1D_slave_0': { 'id': 'UU1D_slave_0', 'master_id': 'UU1D_master_0', 'mode': 'slave', 'availability_zone': '%s:tre' % ZONE, 'zone': ZONE, 'node': 'tre' }, } nodes = [ { 'host': 'uno', 'zone': ZONE }, { 'host': 'duo', 'zone': 'other-zone' }, { 'host': 'tre', 'zone': ZONE }, ] accommodation = deploy.normalize_accommodation( ['pair', 'single_room', { 'zones': [ZONE] }]) actual = deploy.generate_agents(nodes, accommodation, unique) self.assertEqual(expected, actual)
def test_generate_agents_alone_single_room(self): unique = 'UU1D' expected = { 'UU1D_agent_0': { 'id': 'UU1D_agent_0', 'mode': 'alone', 'availability_zone': '%s:uno' % ZONE, 'zone': ZONE, 'node': 'uno' }, 'UU1D_agent_1': { 'id': 'UU1D_agent_1', 'mode': 'alone', 'availability_zone': '%s:dos' % ZONE, 'zone': ZONE, 'node': 'dos' }, } accommodation = deploy.normalize_accommodation(['single_room']) actual = deploy.generate_agents(nodes_helper('uno', 'dos'), accommodation, unique) self.assertEqual(expected, actual)
def test_generate_agents_alone_single_room_density_compute_nodes(self, mr): unique = 'UU1D' expected = { 'UU1D_agent_0': { 'id': 'UU1D_agent_0', 'mode': 'alone', 'availability_zone': '%s:uno' % ZONE, 'zone': ZONE, 'node': 'uno'}, 'UU1D_agent_1': { 'id': 'UU1D_agent_1', 'mode': 'alone', 'availability_zone': '%s:uno' % ZONE, 'zone': ZONE, 'node': 'uno'}, } compute_nodes = nodes_helper('uno', 'duo', 'tre') mr.side_effect = lambda x, n: x[:n] accommodation = deploy.normalize_accommodation( ['single_room', {'compute_nodes': 1}, {'density': 2}]) actual = deploy.generate_agents(compute_nodes, accommodation, unique) self.assertEqual(expected, actual)
def test_generate_agents_pair_single_room_compute_nodes_best_effort(self): unique = 'UU1D' expected = { 'UU1D_master_0': { 'id': 'UU1D_master_0', 'mode': 'master', 'availability_zone': '%s:uno' % ZONE, 'node': 'uno', 'zone': ZONE, 'slave_id': 'UU1D_slave_0'}, 'UU1D_slave_0': { 'id': 'UU1D_slave_0', 'master_id': 'UU1D_master_0', 'mode': 'slave', 'availability_zone': '%s:uno' % ZONE, 'zone': ZONE, 'node': 'uno'}, } accommodation = deploy.normalize_accommodation( ['pair', 'single_room', 'best_effort', {'compute_nodes': 2}]) actual = deploy.generate_agents(nodes_helper('uno'), accommodation, unique) self.assertEqual(expected, actual)
def test_generate_agents_pair_single_room(self): unique = 'UU1D' expected = { 'UU1D_primary_0': { 'id': 'UU1D_primary_0', 'mode': 'primary', 'availability_zone': '%s:uno' % ZONE, 'node': 'uno', 'zone': ZONE, 'minion_id': 'UU1D_minion_0' }, 'UU1D_minion_0': { 'id': 'UU1D_minion_0', 'primary_id': 'UU1D_primary_0', 'mode': 'minion', 'availability_zone': '%s:dos' % ZONE, 'zone': ZONE, 'node': 'dos' }, } accommodation = deploy.normalize_accommodation(['pair', 'single_room']) actual = deploy.generate_agents(nodes_helper('uno', 'dos', 'tre'), accommodation, unique) self.assertEqual(expected, actual)
def test_generate_agents_pair_single_room_not_enough(self): unique = 'UU1D' accommodation = deploy.normalize_accommodation(['pair', 'single_room']) self.assertRaises(deploy.DeploymentException, deploy.generate_agents, ['uno'], accommodation, unique)
def test_generate_agents_cross_zones(self): unique = 'UU1D' expected = { 'UU1D_master_0': { 'id': 'UU1D_master_0', 'slave_id': 'UU1D_slave_0', 'mode': 'master', 'availability_zone': 'nova:uno', 'zone': 'nova', 'node': 'uno' }, 'UU1D_slave_0': { 'id': 'UU1D_slave_0', 'master_id': 'UU1D_master_0', 'mode': 'slave', 'availability_zone': 'vcenter:tre', 'zone': 'vcenter', 'node': 'tre' }, 'UU1D_master_1': { 'id': 'UU1D_master_1', 'slave_id': 'UU1D_slave_1', 'mode': 'master', 'availability_zone': 'nova:duo', 'zone': 'nova', 'node': 'duo' }, 'UU1D_slave_1': { 'id': 'UU1D_slave_1', 'master_id': 'UU1D_master_1', 'mode': 'slave', 'availability_zone': 'vcenter:cinco', 'zone': 'vcenter', 'node': 'cinco' }, } nodes = [ { 'host': 'uno', 'zone': 'nova' }, { 'host': 'duo', 'zone': 'nova' }, { 'host': 'tre', 'zone': 'vcenter' }, { 'host': 'quattro', 'zone': 'nova' }, { 'host': 'cinco', 'zone': 'vcenter' }, ] accommodation = deploy.normalize_accommodation([ 'pair', 'single_room', { 'zones': ['nova', 'vcenter'] }, 'cross_az' ]) actual = deploy.generate_agents(nodes, accommodation, unique) self.assertEqual(expected, actual)