Merge "Rename NovaWrapper to NovaClient"
This commit is contained in:
@@ -20,12 +20,13 @@
|
||||
|
||||
from oslo_config import cfg
|
||||
|
||||
|
||||
from watcher._i18n import _
|
||||
from watcher.applier.primitives.base import BasePrimitive
|
||||
from watcher.applier.primitives.wrapper.nova_wrapper import NovaWrapper
|
||||
from watcher.applier.promise import Promise
|
||||
from watcher.common.exception import IllegalArgumentException
|
||||
from watcher.common.keystone import KeystoneClient
|
||||
from watcher.common.nova import NovaClient
|
||||
from watcher.decision_engine.model.hypervisor_state import HypervisorState
|
||||
|
||||
CONF = cfg.CONF
|
||||
@@ -74,8 +75,8 @@ class ChangeNovaServiceState(BasePrimitive):
|
||||
_("The target state is not defined"))
|
||||
|
||||
keystone = KeystoneClient()
|
||||
wrapper = NovaWrapper(keystone.get_credentials(),
|
||||
session=keystone.get_session())
|
||||
wrapper = NovaClient(keystone.get_credentials(),
|
||||
session=keystone.get_session())
|
||||
if state is True:
|
||||
return wrapper.enable_service_nova_compute(self.host)
|
||||
else:
|
||||
|
||||
@@ -21,11 +21,10 @@ from keystoneclient.auth.identity import v3
|
||||
from keystoneclient import session
|
||||
from oslo_config import cfg
|
||||
|
||||
|
||||
from watcher.applier.primitives.base import BasePrimitive
|
||||
from watcher.applier.primitives.wrapper.nova_wrapper import NovaWrapper
|
||||
from watcher.applier.promise import Promise
|
||||
from watcher.common.keystone import KeystoneClient
|
||||
from watcher.common.nova import NovaClient
|
||||
from watcher.decision_engine.planner.default import Primitives
|
||||
|
||||
CONF = cfg.CONF
|
||||
@@ -44,8 +43,8 @@ class Migrate(BasePrimitive):
|
||||
|
||||
def migrate(self, destination):
|
||||
keystone = KeystoneClient()
|
||||
wrapper = NovaWrapper(keystone.get_credentials(),
|
||||
session=keystone.get_session())
|
||||
wrapper = NovaClient(keystone.get_credentials(),
|
||||
session=keystone.get_session())
|
||||
instance = wrapper.find_instance(self.instance_uuid)
|
||||
if instance:
|
||||
project_id = getattr(instance, "tenant_id")
|
||||
@@ -66,7 +65,7 @@ class Migrate(BasePrimitive):
|
||||
project_domain_name=creds2[
|
||||
'project_domain_name'])
|
||||
sess2 = session.Session(auth=auth2)
|
||||
wrapper2 = NovaWrapper(creds2, session=sess2)
|
||||
wrapper2 = NovaClient(creds2, session=sess2)
|
||||
|
||||
# todo(jed) remove Primitves
|
||||
if self.migration_type is Primitives.COLD_MIGRATE:
|
||||
|
||||
@@ -33,7 +33,7 @@ import novaclient.exceptions as nvexceptions
|
||||
LOG = log.getLogger(__name__)
|
||||
|
||||
|
||||
class NovaWrapper(object):
|
||||
class NovaClient(object):
|
||||
NOVA_CLIENT_API_VERSION = "2"
|
||||
|
||||
def __init__(self, creds, session):
|
||||
@@ -20,8 +20,8 @@
|
||||
from oslo_config import cfg
|
||||
from oslo_log import log
|
||||
|
||||
from watcher.applier.primitives.wrapper.nova_wrapper import NovaWrapper
|
||||
from watcher.common.keystone import KeystoneClient
|
||||
from watcher.common.nova import NovaClient
|
||||
from watcher.metrics_engine.cluster_model_collector.nova import \
|
||||
NovaClusterModelCollector
|
||||
|
||||
@@ -32,6 +32,6 @@ CONF = cfg.CONF
|
||||
class CollectorManager(object):
|
||||
def get_cluster_model_collector(self):
|
||||
keystone = KeystoneClient()
|
||||
wrapper = NovaWrapper(keystone.get_credentials(),
|
||||
session=keystone.get_session())
|
||||
wrapper = NovaClient(keystone.get_credentials(),
|
||||
session=keystone.get_session())
|
||||
return NovaClusterModelCollector(wrapper=wrapper)
|
||||
|
||||
@@ -24,15 +24,15 @@ import keystoneclient.v3.client as ksclient
|
||||
import mock
|
||||
import novaclient.client as nvclient
|
||||
|
||||
from watcher.applier.primitives.wrapper.nova_wrapper import NovaWrapper
|
||||
from watcher.common.nova import NovaClient
|
||||
from watcher.common import utils
|
||||
from watcher.tests import base
|
||||
|
||||
|
||||
class TestNovaWrapper(base.TestCase):
|
||||
class TestNovaClient(base.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(TestNovaWrapper, self).setUp()
|
||||
super(TestNovaClient, self).setUp()
|
||||
self.instance_uuid = "fb5311b7-37f3-457e-9cde-6494a3c59bfe"
|
||||
self.source_hypervisor = "ldev-indeedsrv005"
|
||||
self.destination_hypervisor = "ldev-indeedsrv006"
|
||||
@@ -43,38 +43,38 @@ class TestNovaWrapper(base.TestCase):
|
||||
@mock.patch.object(ksclient, "Client", mock.Mock())
|
||||
@mock.patch.object(nvclient, "Client", mock.Mock())
|
||||
def test_stop_instance(self):
|
||||
wrapper = NovaWrapper(creds=self.creds, session=self.session)
|
||||
nova_client = NovaClient(creds=self.creds, session=self.session)
|
||||
instance_id = utils.generate_uuid()
|
||||
server = mock.MagicMock()
|
||||
server.id = instance_id
|
||||
setattr(server, 'OS-EXT-STS:vm_state', 'stopped')
|
||||
wrapper.nova.servers = mock.MagicMock()
|
||||
wrapper.nova.servers.find.return_value = server
|
||||
wrapper.nova.servers.list.return_value = [server]
|
||||
nova_client.nova.servers = mock.MagicMock()
|
||||
nova_client.nova.servers.find.return_value = server
|
||||
nova_client.nova.servers.list.return_value = [server]
|
||||
|
||||
result = wrapper.stop_instance(instance_id)
|
||||
result = nova_client.stop_instance(instance_id)
|
||||
self.assertEqual(result, True)
|
||||
|
||||
@mock.patch.object(ksclient, "Client", mock.Mock())
|
||||
@mock.patch.object(nvclient, "Client", mock.Mock())
|
||||
def test_set_host_offline(self):
|
||||
wrapper = NovaWrapper(creds=self.creds, session=self.session)
|
||||
nova_client = NovaClient(creds=self.creds, session=self.session)
|
||||
host = mock.MagicMock()
|
||||
wrapper.nova.hosts = mock.MagicMock()
|
||||
wrapper.nova.hosts.get.return_value = host
|
||||
result = wrapper.set_host_offline("rennes")
|
||||
nova_client.nova.hosts = mock.MagicMock()
|
||||
nova_client.nova.hosts.get.return_value = host
|
||||
result = nova_client.set_host_offline("rennes")
|
||||
self.assertEqual(result, True)
|
||||
|
||||
@mock.patch.object(time, 'sleep', mock.Mock())
|
||||
@mock.patch.object(ksclient, "Client", mock.Mock())
|
||||
@mock.patch.object(nvclient, "Client", mock.Mock())
|
||||
def test_live_migrate_instance(self):
|
||||
wrapper = NovaWrapper(creds=self.creds, session=self.session)
|
||||
nova_client = NovaClient(creds=self.creds, session=self.session)
|
||||
server = mock.MagicMock()
|
||||
server.id = self.instance_uuid
|
||||
wrapper.nova.servers = mock.MagicMock()
|
||||
wrapper.nova.servers.list.return_value = [server]
|
||||
instance = wrapper.live_migrate_instance(
|
||||
nova_client.nova.servers = mock.MagicMock()
|
||||
nova_client.nova.servers.list.return_value = [server]
|
||||
instance = nova_client.live_migrate_instance(
|
||||
self.instance_uuid, self.destination_hypervisor
|
||||
)
|
||||
self.assertIsNotNone(instance)
|
||||
@@ -82,11 +82,11 @@ class TestNovaWrapper(base.TestCase):
|
||||
@mock.patch.object(ksclient, "Client", mock.Mock())
|
||||
@mock.patch.object(nvclient, "Client", mock.Mock())
|
||||
def test_watcher_non_live_migrate_instance_not_found(self):
|
||||
wrapper = NovaWrapper(creds=self.creds, session=self.session)
|
||||
wrapper.nova.servers.list.return_value = []
|
||||
wrapper.nova.servers.find.return_value = None
|
||||
nova_client = NovaClient(creds=self.creds, session=self.session)
|
||||
nova_client.nova.servers.list.return_value = []
|
||||
nova_client.nova.servers.find.return_value = None
|
||||
|
||||
is_success = wrapper.watcher_non_live_migrate_instance(
|
||||
is_success = nova_client.watcher_non_live_migrate_instance(
|
||||
self.instance_uuid,
|
||||
self.destination_hypervisor)
|
||||
|
||||
@@ -96,12 +96,12 @@ class TestNovaWrapper(base.TestCase):
|
||||
@mock.patch.object(ksclient, "Client", mock.Mock())
|
||||
@mock.patch.object(nvclient, "Client", mock.Mock())
|
||||
def test_watcher_non_live_migrate_instance_volume(self):
|
||||
wrapper = NovaWrapper(creds=self.creds, session=self.session)
|
||||
nova_client = NovaClient(creds=self.creds, session=self.session)
|
||||
instance = mock.MagicMock(id=self.instance_uuid)
|
||||
setattr(instance, 'OS-EXT-SRV-ATTR:host', self.source_hypervisor)
|
||||
wrapper.nova.servers.list.return_value = [instance]
|
||||
wrapper.nova.servers.find.return_value = instance
|
||||
instance = wrapper.watcher_non_live_migrate_instance(
|
||||
nova_client.nova.servers.list.return_value = [instance]
|
||||
nova_client.nova.servers.find.return_value = instance
|
||||
instance = nova_client.watcher_non_live_migrate_instance(
|
||||
self.instance_uuid,
|
||||
self.destination_hypervisor)
|
||||
self.assertIsNotNone(instance)
|
||||
@@ -110,7 +110,7 @@ class TestNovaWrapper(base.TestCase):
|
||||
@mock.patch.object(ksclient, "Client", mock.Mock())
|
||||
@mock.patch.object(nvclient, "Client", mock.Mock())
|
||||
def test_watcher_non_live_migrate_keep_image(self):
|
||||
wrapper = NovaWrapper(creds=self.creds, session=self.session)
|
||||
nova_client = NovaClient(creds=self.creds, session=self.session)
|
||||
instance = mock.MagicMock(id=self.instance_uuid)
|
||||
setattr(instance, 'OS-EXT-SRV-ATTR:host', self.source_hypervisor)
|
||||
addresses = mock.MagicMock()
|
||||
@@ -122,9 +122,9 @@ class TestNovaWrapper(base.TestCase):
|
||||
setattr(instance, 'addresses', addresses)
|
||||
setattr(instance, "os-extended-volumes:volumes_attached",
|
||||
attached_volumes)
|
||||
wrapper.nova.servers.list.return_value = [instance]
|
||||
wrapper.nova.servers.find.return_value = instance
|
||||
instance = wrapper.watcher_non_live_migrate_instance(
|
||||
nova_client.nova.servers.list.return_value = [instance]
|
||||
nova_client.nova.servers.find.return_value = instance
|
||||
instance = nova_client.watcher_non_live_migrate_instance(
|
||||
self.instance_uuid,
|
||||
self.destination_hypervisor, keep_original_image_name=False)
|
||||
self.assertIsNotNone(instance)
|
||||
@@ -134,20 +134,20 @@ class TestNovaWrapper(base.TestCase):
|
||||
@mock.patch.object(nvclient, "Client", mock.Mock())
|
||||
@mock.patch.object(glclient, "Client")
|
||||
def test_create_image_from_instance(self, m_glance_cls):
|
||||
wrapper = NovaWrapper(creds=self.creds, session=self.session)
|
||||
nova_client = NovaClient(creds=self.creds, session=self.session)
|
||||
instance = mock.MagicMock()
|
||||
image = mock.MagicMock()
|
||||
setattr(instance, 'OS-EXT-SRV-ATTR:host', self.source_hypervisor)
|
||||
wrapper.nova.servers.list.return_value = [instance]
|
||||
wrapper.nova.servers.find.return_value = instance
|
||||
nova_client.nova.servers.list.return_value = [instance]
|
||||
nova_client.nova.servers.find.return_value = instance
|
||||
image_uuid = 'fake-image-uuid'
|
||||
wrapper.nova.servers.create_image.return_value = image
|
||||
nova_client.nova.servers.create_image.return_value = image
|
||||
|
||||
m_glance = mock.MagicMock()
|
||||
m_glance_cls.return_value = m_glance
|
||||
|
||||
m_glance.images = {image_uuid: image}
|
||||
instance = wrapper.create_image_from_instance(
|
||||
instance = nova_client.create_image_from_instance(
|
||||
self.instance_uuid, "Cirros"
|
||||
)
|
||||
self.assertIsNone(instance)
|
||||
Reference in New Issue
Block a user