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')
Example #2
0
 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
Example #5
0
 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')
Example #6
0
    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')