Merge "Rework nova_v2 driver"

This commit is contained in:
Jenkins 2015-06-18 09:40:26 +00:00 committed by Gerrit Code Review
commit 936655eb37
2 changed files with 60 additions and 60 deletions

View File

@ -15,7 +15,6 @@ import time
from oslo_config import cfg from oslo_config import cfg
from oslo_log import log from oslo_log import log
from openstack.compute.v2 import server_ip
from openstack.compute.v2 import server_metadata from openstack.compute.v2 import server_metadata
from senlin.common import exception from senlin.common import exception
@ -39,62 +38,61 @@ class NovaClient(base.DriverBase):
except sdk.exc.HttpException as ex: except sdk.exc.HttpException as ex:
raise ex raise ex
def flavor_get(self, **params): def flavor_get(self, flavor_id):
try: try:
return self.conn.compute.get_flavor(**params) return self.conn.compute.get_flavor(flavor_id)
except sdk.exc.HttpException as ex: except sdk.exc.HttpException as ex:
raise ex raise ex
def flavor_get_by_name(self, name): def flavor_get_by_name(self, flavor_name):
try: try:
return self.conn.compute.find_flavor(name_or_id=name) return self.conn.compute.find_flavor(flavor_name)
except sdk.exc.HttpException as ex: except sdk.exc.HttpException as ex:
raise ex raise ex
def flavor_list(self, details=False, **params): def flavor_list(self, details=False, **query):
try: try:
return self.conn.compute.list_flavors(details=details, **params) return self.conn.compute.flavors(details=details, **query)
except sdk.exc.HttpException as ex: except sdk.exc.HttpException as ex:
raise ex raise ex
def flavor_update(self, flavor): def flavor_update(self, flavor_id, **params):
# flavor here can be the ID of flavor or flavor class
try: try:
return self.conn.compute.update_flavor(value=flavor) return self.conn.compute.update_flavor(flavor_id, **params)
except sdk.exc.HttpException as ex: except sdk.exc.HttpException as ex:
raise ex raise ex
def flavor_delete(self, **params): def flavor_delete(self, flavor_id):
try: try:
self.conn.compute.delete_flavor(**params) self.conn.compute.delete_flavor(flavor_id, ignore_missing=True)
except sdk.exc.HttpException as ex: except sdk.exc.HttpException as ex:
sdk.ignore_not_found(ex) raise ex
def image_create(self, **params): def image_create(self, **params):
raise NotImplemented raise NotImplemented
def image_get(self, **params): def image_get(self, image_id):
try: try:
return self.conn.compute.get_image(**params) return self.conn.compute.get_image(image_id)
except sdk.exc.HttpException as ex: except sdk.exc.HttpException as ex:
raise ex raise ex
def image_get_by_name(self, name): def image_get_by_name(self, image_name):
try: try:
return self.conn.compute.find_image(name_or_id=name) return self.conn.compute.find_image(image_name)
except sdk.exc.HttpException as ex: except sdk.exc.HttpException as ex:
raise ex raise ex
def image_list(self, details=False): def image_list(self, details=False, **query):
try: try:
return self.conn.compute.list_images(details=details) return self.conn.compute.images(details=details, **query)
except sdk.exc.HttpException as ex: except sdk.exc.HttpException as ex:
raise ex raise ex
def image_delete(self, image): def image_delete(self, image_id):
# image here can be a ID of image or a image class
try: try:
return self.conn.compute.delete_image(value=image) return self.conn.compute.delete_image(image_id,
ignore_missing=True)
except sdk.exc.HttpException as ex: except sdk.exc.HttpException as ex:
raise ex raise ex
@ -104,30 +102,35 @@ class NovaClient(base.DriverBase):
except sdk.exc.HttpException as ex: except sdk.exc.HttpException as ex:
raise ex raise ex
def keypair_get(self, **params): def keypair_get(self, keypair_id):
try: try:
return self.conn.compute.get_keypair(**params) return self.conn.compute.get_keypair(keypair_id)
except sdk.exc.HttpException as ex: except sdk.exc.HttpException as ex:
raise ex raise ex
def keypair_list(self, **params): def keypair_get_by_name(self, keypair_name):
try: try:
return self.conn.compute.list_keypairs(**params) return self.conn.compute.find_keypair(keypair_name)
except sdk.exc.HttpException as ex: except sdk.exc.HttpException as ex:
raise ex raise ex
def keypair_update(self, **params): def keypair_list(self, details=False, **query):
try: try:
return self.conn.compute.update_keypair(**params) return self.conn.compute.keypairs(details=details, **query)
except sdk.exc.HttpException as ex: except sdk.exc.HttpException as ex:
raise ex raise ex
def keypair_delete(self, keypair): def keypair_update(self, keypair_id, **params):
# keypair here can be the ID of keypair or a keypair class
try: try:
self.conn.compute.delete_keypair(value=keypair) return self.conn.compute.update_keypair(keypair_id, **params)
except sdk.exc.HttpException as ex: except sdk.exc.HttpException as ex:
sdk.ignore_not_found(ex) raise ex
def keypair_delete(self, keypair_id):
try:
self.conn.compute.delete_keypair(keypair_id, ignore_missing=True)
except sdk.exc.HttpException as ex:
raise ex
def server_create(self, **params): def server_create(self, **params):
timeout = cfg.CONF.default_action_timeout timeout = cfg.CONF.default_action_timeout
@ -141,9 +144,7 @@ class NovaClient(base.DriverBase):
raise ex raise ex
try: try:
# wait for new version of openstacksdk to fix this, self.conn.compute.wait_for_server(server_obj, wait=timeout)
# then use self.conn.compute.wait_for_status() instead
server_obj.wait_for_status(self.session, wait=timeout)
except sdk.exc.ResourceFailure as ex: except sdk.exc.ResourceFailure as ex:
raise exception.ProfileOperationFailed(ex.message) raise exception.ProfileOperationFailed(ex.message)
except sdk.exc.ResourceTimeout as ex: except sdk.exc.ResourceTimeout as ex:
@ -151,39 +152,36 @@ class NovaClient(base.DriverBase):
return server_obj return server_obj
def server_get(self, **params): def server_get(self, server_id):
try: try:
return self.conn.compute.get_server(**params) return self.conn.compute.get_server(server_id)
except sdk.exc.HttpException as ex: except sdk.exc.HttpException as ex:
raise ex raise ex
def server_list(self, details=False): def server_list(self, details=False, **query):
try: try:
return self.conn.compute.list_servers(details=details) return self.conn.compute.servers(details=details, **query)
except sdk.exc.HttpException as ex: except sdk.exc.HttpException as ex:
raise ex raise ex
def server_update(self, **params): def server_update(self, server_id, **params):
try: try:
return self.conn.compute.update_server(**params) return self.conn.compute.update_server(server_id, **params)
except sdk.exc.HttpException as ex: except sdk.exc.HttpException as ex:
raise ex raise ex
def server_delete(self, **params): def server_delete(self, server_id):
timeout = cfg.CONF.default_action_timeout timeout = cfg.CONF.default_action_timeout
if 'timeout' in params:
timeout = params.pop('timeout')
try: try:
self.conn.compute.delete_server(**params) self.conn.compute.delete_server(server_id, ignore_missing=True)
except sdk.exc.HttpException as ex: except sdk.exc.HttpException as ex:
sdk.ignore_not_found(ex) raise ex
return
total_sleep = 0 total_sleep = 0
while total_sleep < timeout: while total_sleep < timeout:
try: try:
self.server_get(**params) self.server_get(server_id)
except Exception as ex: except Exception as ex:
sdk.ignore_not_found(ex) sdk.ignore_not_found(ex)
return return
@ -199,33 +197,35 @@ class NovaClient(base.DriverBase):
except sdk.exc.HttpException as ex: except sdk.exc.HttpException as ex:
raise ex raise ex
def server_interface_get(self, **params): def server_interface_get(self, interface_id):
try: try:
return self.conn.compute.get_server_interface(**params) return self.conn.compute.get_server_interface(interface_id)
except sdk.exc.HttpException as ex: except sdk.exc.HttpException as ex:
raise ex raise ex
def server_interface_list(self): def server_interface_list(self):
try: try:
return self.conn.compute.list_server_interfaces() return self.conn.compute.server_interfaces()
except sdk.exc.HttpException as ex: except sdk.exc.HttpException as ex:
raise ex raise ex
def server_interface_update(self, **params): def server_interface_update(self, interface_id, **params):
try: try:
return self.conn.compute.update_server_interface(**params) return self.conn.compute.update_server_interface(interface_id,
**params)
except sdk.exc.HttpException as ex: except sdk.exc.HttpException as ex:
raise ex raise ex
def server_interface_delete(self, interface): def server_interface_delete(self, interface_id):
try: try:
self.conn.compute.delete_server_interface(value=interface) self.conn.compute.delete_server_interface(interface_id,
ignore_missing=True)
except sdk.exc.HttpException as ex: except sdk.exc.HttpException as ex:
sdk.ignore_not_found(ex) raise ex
def server_ip_list(self, **params): def server_ip_list(self, **params):
try: try:
return server_ip.ServerIP.list(self.session, **params) return self.conn.compute.server_ips()
except sdk.exc.HttpException as ex: except sdk.exc.HttpException as ex:
raise ex raise ex

View File

@ -204,7 +204,7 @@ class ServerProfile(base.Profile):
kwargs['imageRef'] = image.id kwargs['imageRef'] = image.id
if self.FLAVOR in self.spec_data: if self.FLAVOR in self.spec_data:
flavor = self.nova(obj).flavor_get(id=self.spec_data[self.FLAVOR]) flavor = self.nova(obj).flavor_get(self.spec_data[self.FLAVOR])
# wait for new verson of openstacksdk to fix this # wait for new verson of openstacksdk to fix this
kwargs.pop(self.FLAVOR) kwargs.pop(self.FLAVOR)
kwargs['flavorRef'] = flavor.id kwargs['flavorRef'] = flavor.id
@ -230,7 +230,7 @@ class ServerProfile(base.Profile):
return True return True
try: try:
self.nova(obj).server_delete(id=self.server_id) self.nova(obj).server_delete(self.server_id)
except Exception as ex: except Exception as ex:
LOG.error('error: %s' % six.text_type(ex)) LOG.error('error: %s' % six.text_type(ex))
raise ex raise ex
@ -261,7 +261,7 @@ class ServerProfile(base.Profile):
if obj.physical_id is None or obj.physical_id == '': if obj.physical_id is None or obj.physical_id == '':
return {} return {}
server = self.nova(obj).server_get(id=obj.physical_id) server = self.nova(obj).server_get(obj.physical_id)
if server is None: if server is None:
return {} return {}
details = { details = {