def test_generate_agents_pair_mixed_room(self): unique = 'UU1D' expected = { 'UU1D_master_0': { 'id': 'UU1D_master_0', 'mode': 'master', 'node': 'uno', 'slave_id': 'UU1D_slave_0'}, 'UU1D_slave_0': { 'id': 'UU1D_slave_0', 'master_id': 'UU1D_master_0', 'mode': 'slave', 'node': 'dos'}, 'UU1D_master_1': { 'id': 'UU1D_master_1', 'mode': 'master', 'node': 'dos', 'slave_id': 'UU1D_slave_1'}, 'UU1D_slave_1': { 'id': 'UU1D_slave_1', 'master_id': 'UU1D_master_1', 'mode': 'slave', 'node': 'uno'}, } actual = deploy.generate_agents(['uno', 'dos'], ['pair', 'mixed_room'], unique) self.assertEqual(expected, actual)
def test_generate_agents_pair_single_room_density_compute_nodes(self): unique = 'UU1D' actual = deploy.generate_agents(['uno', 'duo', 'tre'], ['pair', 'single_room', {'density': 4}, {'compute_nodes': 2}], unique) self.assertEqual(8, len(actual))
def test_generate_agents_alone_single_room_double_density(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:uno' % ZONE, 'zone': ZONE, 'node': 'uno' }, } accommodation = deploy.normalize_accommodation( ['single_room', { 'density': 2 }]) actual = deploy.generate_agents(nodes_helper('uno'), 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_az_host(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:dos' % ZONE, 'zone': ZONE, 'node': 'dos'}, } zones = ['%s:uno' % ZONE, '%s:dos' % ZONE] accommodation = deploy.normalize_accommodation( ['pair', 'single_room', {'zones': zones}]) actual = deploy.generate_agents(nodes_helper('uno', 'dos', 'tre'), accommodation, unique) self.assertEqual(expected, actual)
def test_generate_agents_zones_and_compute_nodes_specified(self, mr): mr.side_effect = lambda x, n: x[:n] 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}, {'host': 'cuattro', 'zone': ZONE}, {'host': 'cinco', 'zone': ZONE}, ] accommodation = deploy.normalize_accommodation( ['pair', 'single_room', {'zones': [ZONE]}, {'compute_nodes': 2}]) actual = deploy.generate_agents(nodes, accommodation, unique) self.assertEqual(expected, actual)
def test_generate_agents_pair_single_room_compute_nodes_best_effort(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: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_double_room(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' }, 'UU1D_master_1': { 'id': 'UU1D_master_1', 'mode': 'master', 'availability_zone': '%s:dos' % ZONE, 'node': 'dos', 'zone': ZONE, 'slave_id': 'UU1D_slave_1' }, 'UU1D_slave_1': { 'id': 'UU1D_slave_1', 'master_id': 'UU1D_master_1', 'mode': 'slave', 'availability_zone': '%s:dos' % ZONE, 'zone': ZONE, 'node': 'dos' }, 'UU1D_master_2': { 'id': 'UU1D_master_2', 'mode': 'master', 'availability_zone': '%s:tre' % ZONE, 'node': 'tre', 'zone': ZONE, 'slave_id': 'UU1D_slave_2' }, 'UU1D_slave_2': { 'id': 'UU1D_slave_2', 'master_id': 'UU1D_master_2', 'mode': 'slave', 'availability_zone': '%s:tre' % ZONE, 'zone': ZONE, 'node': 'tre' }, } accommodation = deploy.normalize_accommodation(['pair', 'double_room']) actual = deploy.generate_agents(nodes_helper('uno', 'dos', 'tre'), accommodation, unique) self.assertEqual(expected, actual)
def test_generate_agents_pair_single_room_density_compute_nodes(self, mr): unique = 'UU1D' compute_nodes = nodes_helper('uno', 'duo', 'tre') mr.side_effect = lambda x, n: x[:n] accommodation = deploy.normalize_accommodation( ['pair', 'single_room', {'density': 4}, {'compute_nodes': 2}]) actual = deploy.generate_agents(compute_nodes, accommodation, unique) self.assertEqual(8, len(actual))
def test_generate_agents_alone_single_room(self): unique = 'UU1D' expected = { 'UU1D_agent_0': { 'id': 'UU1D_agent_0', 'mode': 'alone', 'node': 'uno'}, 'UU1D_agent_1': { 'id': 'UU1D_agent_1', 'mode': 'alone', 'node': 'dos'}, } actual = deploy.generate_agents(['uno', 'dos'], ['single_room'], unique) self.assertEqual(expected, actual)
def test_generate_agents_alone_single_room_density_compute_nodes(self): unique = 'UU1D' expected = { 'UU1D_agent_0': { 'id': 'UU1D_agent_0', 'mode': 'alone', 'node': 'uno'}, 'UU1D_agent_1': { 'id': 'UU1D_agent_1', 'mode': 'alone', 'node': 'uno'}, } actual = deploy.generate_agents(['uno', 'duo', 'tre'], ['single_room', {'compute_nodes': 1}, {'density': 2}], unique) self.assertEqual(expected, actual)
def test_generate_agents_alone_single_room_az_host(self): unique = 'UU1D' expected = { 'UU1D_agent_0': { 'id': 'UU1D_agent_0', 'mode': 'alone', 'availability_zone': '%s:uno' % ZONE, 'zone': ZONE, 'node': 'uno'}, } zones = ['%s:uno' % ZONE] accommodation = deploy.normalize_accommodation( ['single_room', {'zones': zones}]) actual = deploy.generate_agents(nodes_helper('uno', 'dos'), accommodation, unique) self.assertEqual(expected, actual)
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)
def test_generate_agents_pair_double_room_az_host(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:uno' % ZONE, 'zone': ZONE, 'node': 'uno' }, 'UU1D_primary_1': { 'id': 'UU1D_primary_1', 'mode': 'primary', 'availability_zone': '%s:dos' % ZONE, 'node': 'dos', 'zone': ZONE, 'minion_id': 'UU1D_minion_1' }, 'UU1D_minion_1': { 'id': 'UU1D_minion_1', 'primary_id': 'UU1D_primary_1', 'mode': 'minion', 'availability_zone': '%s:dos' % ZONE, 'zone': ZONE, 'node': 'dos' }, } zones = ['%s:uno' % ZONE, '%s:dos' % ZONE] accommodation = deploy.normalize_accommodation( ['pair', 'double_room', { 'zones': zones }]) actual = deploy.generate_agents(nodes_helper('uno', 'dos', 'tre'), accommodation, unique) self.assertEqual(expected, actual)
def test_generate_agents_zones_specified(self): unique = 'UU1D' expected = { 'UU1D_primary_0': { 'id': 'UU1D_primary_0', 'minion_id': 'UU1D_minion_0', 'mode': 'primary', 'availability_zone': '%s:uno' % ZONE, 'zone': ZONE, 'node': 'uno' }, 'UU1D_minion_0': { 'id': 'UU1D_minion_0', 'primary_id': 'UU1D_primary_0', 'mode': 'minion', '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_pair_single_room_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']) actual = deploy.generate_agents(nodes_helper('uno'), accommodation, unique) self.assertEqual(expected, actual)