def test_get_unit_name_from_host_name_maas(self): self.assertEqual( juju_utils.get_unit_name_from_host_name('juju-model-1', 'app'), 'app/1') self.machine2_mock.display_name = 'node-jaeger.maas' self.assertEqual( juju_utils.get_unit_name_from_host_name('node-jaeger.maas', 'app'), 'app/2')
def test_get_unit_name_from_host_name(self): self.patch_object(juju_utils, "get_application_status") self.get_application_status.side_effect = self._get_application_status self.assertEqual( juju_utils.get_unit_name_from_host_name('juju-model-1', self.application), 'app/1') self.assertEqual( juju_utils.get_unit_name_from_host_name( 'juju-model-1.project.serverstack', self.application), 'app/1')
def test_get_unit_name_from_host_name_subordinate(self): self.patch_object(juju_utils, "get_application_status") self.get_application_status.side_effect = self._get_application_status self.assertEqual( juju_utils.get_unit_name_from_host_name( 'juju-model-1', self.subordinate_application), self.subordinate_application_unit)
def get_placement(nova_client, application_name): """Find which hypervisor each unit is on. :param nova_client: Nova client :type nova_client: novaclient.v2.client.Client :param application_name: Name of application :type application_name: Str :returns: Map of units on each hypervisor :rtype: Dict[str, List[Unit]] """ unit_map = {h.hypervisor_hostname.split('.')[0]:[] for h in nova_client.hypervisors.list()} for machine in zaza.model.get_machines(application_name=application_name): server = nova_client.servers.get(machine.data['instance-id']) hypervisor = getattr( server, 'OS-EXT-SRV-ATTR:hypervisor_hostname').split('.')[0] unt_name = zaza_juju.get_unit_name_from_host_name( server.name, application=application_name) unit_map[hypervisor].append( Unit( unt_name, server)) return unit_map
def test_get_unit_name_from_host_name(self): unit_mock1 = mock.MagicMock() unit_mock1.data = {'machine-id': 12} unit_mock1.entity_id = 'myapp/2' unit_mock2 = mock.MagicMock() unit_mock2.data = {'machine-id': 15} unit_mock2.entity_id = 'myapp/5' self.model.get_units.return_value = [unit_mock1, unit_mock2] self.assertEqual( juju_utils.get_unit_name_from_host_name('juju-model-12', 'myapp'), 'myapp/2')
def get_guests_compute_info(self, vm_name): """Return the hostname & juju unit of compute host hosting vm. :param vm_name: Name of guest to lookup :type vm_name: str :returns: Hypervisor name and juju unit name :rtype: (str, str) """ current_hypervisor = zaza.utilities.openstack.get_hypervisor_for_guest( self.nova_client, vm_name) unit_name = juju_utils.get_unit_name_from_host_name( current_hypervisor, 'nova-compute') return current_hypervisor, unit_name
def test_get_unit_name_from_host_name_bad_app(self): self.assertIsNone( juju_utils.get_unit_name_from_host_name('juju-model-12', 'madeup-app'))
def test_get_unit_name_from_host_name(self): self.assertEqual( juju_utils.get_unit_name_from_host_name('juju-model-1', 'app'), 'app/1')