Adds OS API 1.1 support
This commit is contained in:
@@ -16,3 +16,4 @@ export NOVA_API_KEY="%(access)s"
|
|||||||
export NOVA_USERNAME="%(user)s"
|
export NOVA_USERNAME="%(user)s"
|
||||||
export NOVA_PROJECT_ID="%(project)s"
|
export NOVA_PROJECT_ID="%(project)s"
|
||||||
export NOVA_URL="%(os)s"
|
export NOVA_URL="%(os)s"
|
||||||
|
export NOVA_VERSION="1.1"
|
||||||
|
|||||||
@@ -317,7 +317,7 @@ DEFINE_string('osapi_extensions_path', '/var/lib/nova/extensions',
|
|||||||
DEFINE_string('osapi_host', '$my_ip', 'ip of api server')
|
DEFINE_string('osapi_host', '$my_ip', 'ip of api server')
|
||||||
DEFINE_string('osapi_scheme', 'http', 'prefix for openstack')
|
DEFINE_string('osapi_scheme', 'http', 'prefix for openstack')
|
||||||
DEFINE_integer('osapi_port', 8774, 'OpenStack API port')
|
DEFINE_integer('osapi_port', 8774, 'OpenStack API port')
|
||||||
DEFINE_string('osapi_path', '/v1.0/', 'suffix for openstack')
|
DEFINE_string('osapi_path', '/v1.1/', 'suffix for openstack')
|
||||||
DEFINE_integer('osapi_max_limit', 1000,
|
DEFINE_integer('osapi_max_limit', 1000,
|
||||||
'max number of items returned in a collection response')
|
'max number of items returned in a collection response')
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,8 @@
|
|||||||
Handles all requests relating to schedulers.
|
Handles all requests relating to schedulers.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import novaclient
|
from novaclient import v1_1 as novaclient
|
||||||
|
from novaclient import exceptions as novaclient_exceptions
|
||||||
|
|
||||||
from nova import db
|
from nova import db
|
||||||
from nova import exception
|
from nova import exception
|
||||||
@@ -112,7 +113,7 @@ def _wrap_method(function, self):
|
|||||||
def _process(func, zone):
|
def _process(func, zone):
|
||||||
"""Worker stub for green thread pool. Give the worker
|
"""Worker stub for green thread pool. Give the worker
|
||||||
an authenticated nova client and zone info."""
|
an authenticated nova client and zone info."""
|
||||||
nova = novaclient.OpenStack(zone.username, zone.password, None,
|
nova = novaclient.Client(zone.username, zone.password, None,
|
||||||
zone.api_url)
|
zone.api_url)
|
||||||
nova.authenticate()
|
nova.authenticate()
|
||||||
return func(nova, zone)
|
return func(nova, zone)
|
||||||
@@ -132,10 +133,10 @@ def call_zone_method(context, method_name, errors_to_ignore=None,
|
|||||||
zones = db.zone_get_all(context)
|
zones = db.zone_get_all(context)
|
||||||
for zone in zones:
|
for zone in zones:
|
||||||
try:
|
try:
|
||||||
nova = novaclient.OpenStack(zone.username, zone.password, None,
|
nova = novaclient.Client(zone.username, zone.password, None,
|
||||||
zone.api_url)
|
zone.api_url)
|
||||||
nova.authenticate()
|
nova.authenticate()
|
||||||
except novaclient.exceptions.BadRequest, e:
|
except novaclient_exceptions.BadRequest, e:
|
||||||
url = zone.api_url
|
url = zone.api_url
|
||||||
LOG.warn(_("Failed request to zone; URL=%(url)s: %(e)s")
|
LOG.warn(_("Failed request to zone; URL=%(url)s: %(e)s")
|
||||||
% locals())
|
% locals())
|
||||||
@@ -188,7 +189,7 @@ def _issue_novaclient_command(nova, zone, collection,
|
|||||||
if method_name in ['find', 'findall']:
|
if method_name in ['find', 'findall']:
|
||||||
try:
|
try:
|
||||||
return getattr(manager, method_name)(**kwargs)
|
return getattr(manager, method_name)(**kwargs)
|
||||||
except novaclient.NotFound:
|
except novaclient_exceptions.NotFound:
|
||||||
url = zone.api_url
|
url = zone.api_url
|
||||||
LOG.debug(_("%(collection)s.%(method_name)s didn't find "
|
LOG.debug(_("%(collection)s.%(method_name)s didn't find "
|
||||||
"anything matching '%(kwargs)s' on '%(url)s'" %
|
"anything matching '%(kwargs)s' on '%(url)s'" %
|
||||||
@@ -200,7 +201,7 @@ def _issue_novaclient_command(nova, zone, collection,
|
|||||||
item = args.pop(0)
|
item = args.pop(0)
|
||||||
try:
|
try:
|
||||||
result = manager.get(item)
|
result = manager.get(item)
|
||||||
except novaclient.NotFound:
|
except novaclient_exceptions.NotFound:
|
||||||
url = zone.api_url
|
url = zone.api_url
|
||||||
LOG.debug(_("%(collection)s '%(item)s' not found on '%(url)s'" %
|
LOG.debug(_("%(collection)s '%(item)s' not found on '%(url)s'" %
|
||||||
locals()))
|
locals()))
|
||||||
|
|||||||
@@ -24,7 +24,9 @@ import operator
|
|||||||
import json
|
import json
|
||||||
|
|
||||||
import M2Crypto
|
import M2Crypto
|
||||||
import novaclient
|
|
||||||
|
from novaclient import v1_1 as novaclient
|
||||||
|
from novaclient import exceptions as novaclient_exceptions
|
||||||
|
|
||||||
from nova import crypto
|
from nova import crypto
|
||||||
from nova import db
|
from nova import db
|
||||||
@@ -118,10 +120,9 @@ class ZoneAwareScheduler(driver.Scheduler):
|
|||||||
% locals())
|
% locals())
|
||||||
nova = None
|
nova = None
|
||||||
try:
|
try:
|
||||||
nova = novaclient.OpenStack(zone.username, zone.password, None,
|
nova = novaclient.Client(zone.username, zone.password, None, url)
|
||||||
url)
|
|
||||||
nova.authenticate()
|
nova.authenticate()
|
||||||
except novaclient.exceptions.BadRequest, e:
|
except novaclient_exceptions.BadRequest, e:
|
||||||
raise exception.NotAuthorized(_("Bad credentials attempting "
|
raise exception.NotAuthorized(_("Bad credentials attempting "
|
||||||
"to talk to zone at %(url)s.") % locals())
|
"to talk to zone at %(url)s.") % locals())
|
||||||
|
|
||||||
|
|||||||
@@ -18,10 +18,11 @@ ZoneManager oversees all communications with child Zones.
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
import datetime
|
import datetime
|
||||||
import novaclient
|
|
||||||
import thread
|
import thread
|
||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
|
from novaclient import v1_1 as novaclient
|
||||||
|
|
||||||
from eventlet import greenpool
|
from eventlet import greenpool
|
||||||
|
|
||||||
from nova import db
|
from nova import db
|
||||||
@@ -89,7 +90,7 @@ class ZoneState(object):
|
|||||||
|
|
||||||
def _call_novaclient(zone):
|
def _call_novaclient(zone):
|
||||||
"""Call novaclient. Broken out for testing purposes."""
|
"""Call novaclient. Broken out for testing purposes."""
|
||||||
client = novaclient.OpenStack(zone.username, zone.password, None,
|
client = novaclient.Client(zone.username, zone.password, None,
|
||||||
zone.api_url)
|
zone.api_url)
|
||||||
return client.zones.info()._info
|
return client.zones.info()._info
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ Tests For ZoneManager
|
|||||||
|
|
||||||
import datetime
|
import datetime
|
||||||
import mox
|
import mox
|
||||||
import novaclient
|
|
||||||
|
|
||||||
from nova import context
|
from nova import context
|
||||||
from nova import db
|
from nova import db
|
||||||
|
|||||||
Reference in New Issue
Block a user