tests pass again
This commit is contained in:
parent
ef93d6ffdf
commit
f0c713658f
@ -103,7 +103,7 @@ class OpenStackShell(object):
|
||||
help=help,
|
||||
description=desc,
|
||||
add_help=False,
|
||||
formatter_class=CloudserversHelpFormatter
|
||||
formatter_class=OpenStackHelpFormatter
|
||||
)
|
||||
subparser.add_argument('-h', '--help',
|
||||
action='help',
|
||||
@ -138,7 +138,7 @@ class OpenStackShell(object):
|
||||
self.cs = self._api_class(user, apikey, url)
|
||||
try:
|
||||
self.cs.authenticate()
|
||||
except cloudservers.Unauthorized:
|
||||
except novatools.Unauthorized:
|
||||
raise CommandError("Invalid OpenStack Nova credentials.")
|
||||
|
||||
args.func(args)
|
||||
@ -181,10 +181,10 @@ class OpenStackShell(object):
|
||||
# If we have some flags, update the backup
|
||||
backup = {}
|
||||
if args.daily:
|
||||
backup['daily'] = getattr(cloudservers, 'BACKUP_DAILY_%s' %
|
||||
backup['daily'] = getattr(novatools, 'BACKUP_DAILY_%s' %
|
||||
args.daily.upper())
|
||||
if args.weekly:
|
||||
backup['weekly'] = getattr(cloudservers, 'BACKUP_WEEKLY_%s' %
|
||||
backup['weekly'] = getattr(novatools, 'BACKUP_WEEKLY_%s' %
|
||||
args.weekly.upper())
|
||||
if args.enabled is not None:
|
||||
backup['enabled'] = args.enabled
|
||||
@ -369,8 +369,8 @@ class OpenStackShell(object):
|
||||
@arg('--hard',
|
||||
dest='reboot_type',
|
||||
action='store_const',
|
||||
const=cloudservers.REBOOT_HARD,
|
||||
default=cloudservers.REBOOT_SOFT,
|
||||
const=novatools.REBOOT_HARD,
|
||||
default=novatools.REBOOT_SOFT,
|
||||
help='Perform a hard reboot (instead of a soft one).')
|
||||
@arg('server', metavar='<server>', help='Name or ID of server.')
|
||||
def do_reboot(self, args):
|
||||
@ -508,7 +508,7 @@ class OpenStackShell(object):
|
||||
"""Get a flavor by name, ID, or RAM size."""
|
||||
try:
|
||||
return self._find_resource(self.cs.flavors, flavor)
|
||||
except cloudservers.NotFound:
|
||||
except novatools.NotFound:
|
||||
return self.cs.flavors.find(ram=flavor)
|
||||
|
||||
def _find_resource(self, manager, name_or_id):
|
||||
@ -518,7 +518,7 @@ class OpenStackShell(object):
|
||||
return manager.get(int(name_or_id))
|
||||
else:
|
||||
return manager.find(name=name_or_id)
|
||||
except cloudservers.NotFound:
|
||||
except novatools.NotFound:
|
||||
raise CommandError("No %s with a name or ID of '%s' exists." %
|
||||
(manager.resource_class.__name__.lower(), name_or_id))
|
||||
|
||||
|
@ -39,51 +39,16 @@ class ServerManager(base.ManagerWithFind):
|
||||
"""
|
||||
return self._list("/zones/detail", "zones")
|
||||
|
||||
def create(self, name, image, flavor, ipgroup=None, meta=None, files=None):
|
||||
def create(self, name, auth_url):
|
||||
"""
|
||||
Create a new child zone.
|
||||
|
||||
:param name: Something to name the zone.
|
||||
:param image: The :class:`Image` to boot with.
|
||||
:param flavor: The :class:`Flavor` to boot onto.
|
||||
:param ipgroup: An initial :class:`IPGroup` for this server.
|
||||
:param meta: A dict of arbitrary key/value metadata to store for this
|
||||
server. A maximum of five entries is allowed, and both
|
||||
keys and values must be 255 characters or less.
|
||||
:param files: A dict of files to overrwrite on the server upon boot.
|
||||
Keys are file names (i.e. ``/etc/passwd``) and values
|
||||
are the file contents (either as a string or as a
|
||||
file-like object). A maximum of five entries is allowed,
|
||||
and each file must be 10k or less.
|
||||
|
||||
There's a bunch more info about how a server boots in Rackspace's
|
||||
official API docs, page 23.
|
||||
"""
|
||||
body = {"zone": {
|
||||
"name": name,
|
||||
"imageId": base.getid(image),
|
||||
"flavorId": base.getid(flavor),
|
||||
"auth_url": auth_url,
|
||||
}}
|
||||
if ipgroup:
|
||||
body["zone"]["sharedIpGroupId"] = base.getid(ipgroup)
|
||||
if meta:
|
||||
body["zone"]["metadata"] = meta
|
||||
|
||||
# Files are a slight bit tricky. They're passed in a "personality"
|
||||
# list to the POST. Each item is a dict giving a file name and the
|
||||
# base64-encoded contents of the file. We want to allow passing
|
||||
# either an open file *or* some contents as files here.
|
||||
if files:
|
||||
personality = body['zone']['personality'] = []
|
||||
for filepath, file_or_string in files.items():
|
||||
if hasattr(file_or_string, 'read'):
|
||||
data = file_or_string.read()
|
||||
else:
|
||||
data = file_or_string
|
||||
personality.append({
|
||||
'path': filepath,
|
||||
'contents': data.encode('base64'),
|
||||
})
|
||||
|
||||
return self._create("/zones", body, "zone")
|
||||
|
||||
|
@ -10,12 +10,12 @@ import httplib2
|
||||
import urlparse
|
||||
import urllib
|
||||
from nose.tools import assert_equal
|
||||
from cloudservers import CloudServers
|
||||
from cloudservers.client import CloudServersClient
|
||||
from novatools import OpenStack
|
||||
from novatools.client import OpenStackClient
|
||||
from utils import fail, assert_in, assert_not_in, assert_has_keys
|
||||
|
||||
|
||||
class FakeServer(CloudServers):
|
||||
class FakeServer(OpenStack):
|
||||
def __init__(self, username=None, password=None, auth_url=None):
|
||||
super(FakeServer, self).__init__('username', 'apikey', 'auth_url')
|
||||
self.client = FakeClient()
|
||||
@ -42,7 +42,7 @@ class FakeServer(CloudServers):
|
||||
pass
|
||||
|
||||
|
||||
class FakeClient(CloudServersClient):
|
||||
class FakeClient(OpenStackClient):
|
||||
def __init__(self):
|
||||
self.username = 'username'
|
||||
self.apikey = 'apikey'
|
||||
|
@ -1,11 +1,11 @@
|
||||
import mock
|
||||
import cloudservers
|
||||
import novatools
|
||||
import httplib2
|
||||
from nose.tools import assert_raises, assert_equal
|
||||
|
||||
|
||||
def test_authenticate_success():
|
||||
cs = cloudservers.CloudServers("username", "apikey")
|
||||
cs = novatools.OpenStack("username", "apikey")
|
||||
auth_response = httplib2.Response({
|
||||
'status': 204,
|
||||
'x-server-management-url':
|
||||
@ -31,19 +31,19 @@ def test_authenticate_success():
|
||||
|
||||
|
||||
def test_authenticate_failure():
|
||||
cs = cloudservers.CloudServers("username", "apikey")
|
||||
cs = novatools.OpenStack("username", "apikey")
|
||||
auth_response = httplib2.Response({'status': 401})
|
||||
mock_request = mock.Mock(return_value=(auth_response, None))
|
||||
|
||||
@mock.patch.object(httplib2.Http, "request", mock_request)
|
||||
def test_auth_call():
|
||||
assert_raises(cloudservers.Unauthorized, cs.client.authenticate)
|
||||
assert_raises(novatools.Unauthorized, cs.client.authenticate)
|
||||
|
||||
test_auth_call()
|
||||
|
||||
|
||||
def test_auth_automatic():
|
||||
client = cloudservers.CloudServers("username", "apikey").client
|
||||
client = novatools.OpenStack("username", "apikey").client
|
||||
client.management_url = ''
|
||||
mock_request = mock.Mock(return_value=(None, None))
|
||||
|
||||
@ -58,7 +58,7 @@ def test_auth_automatic():
|
||||
|
||||
|
||||
def test_auth_manual():
|
||||
cs = cloudservers.CloudServers("username", "password")
|
||||
cs = novatools.OpenStack("username", "apikey")
|
||||
|
||||
@mock.patch.object(cs.client, 'authenticate')
|
||||
def test_auth_call(m):
|
||||
|
@ -1,5 +1,5 @@
|
||||
|
||||
from cloudservers.backup_schedules import *
|
||||
from novatools.backup_schedules import *
|
||||
from fakeserver import FakeServer
|
||||
from utils import assert_isinstance
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
|
||||
import mock
|
||||
import cloudservers.base
|
||||
from cloudservers import Flavor
|
||||
from cloudservers.exceptions import NotFound
|
||||
from cloudservers.base import Resource
|
||||
import novatools.base
|
||||
from novatools import Flavor
|
||||
from novatools.exceptions import NotFound
|
||||
from novatools.base import Resource
|
||||
from nose.tools import assert_equal, assert_not_equal, assert_raises
|
||||
from fakeserver import FakeServer
|
||||
|
||||
@ -16,11 +16,11 @@ def test_resource_repr():
|
||||
|
||||
|
||||
def test_getid():
|
||||
assert_equal(cloudservers.base.getid(4), 4)
|
||||
assert_equal(novatools.base.getid(4), 4)
|
||||
|
||||
class O(object):
|
||||
id = 4
|
||||
assert_equal(cloudservers.base.getid(O), 4)
|
||||
assert_equal(novatools.base.getid(O), 4)
|
||||
|
||||
|
||||
def test_resource_lazy_getattr():
|
||||
|
@ -1,6 +1,6 @@
|
||||
import mock
|
||||
import httplib2
|
||||
from cloudservers.client import CloudServersClient
|
||||
from novatools.client import OpenStackClient
|
||||
from nose.tools import assert_equal
|
||||
|
||||
fake_response = httplib2.Response({"status": 200})
|
||||
@ -9,7 +9,7 @@ mock_request = mock.Mock(return_value=(fake_response, fake_body))
|
||||
|
||||
|
||||
def client():
|
||||
cl = CloudServersClient("username", "apikey", "auth_test")
|
||||
cl = OpenStackClient("username", "apikey", "auth_test")
|
||||
cl.management_url = "http://example.com"
|
||||
cl.auth_token = "token"
|
||||
return cl
|
||||
|
@ -1,4 +1,4 @@
|
||||
from cloudservers import Flavor, NotFound
|
||||
from novatools import Flavor, NotFound
|
||||
from fakeserver import FakeServer
|
||||
from utils import assert_isinstance
|
||||
from nose.tools import assert_raises, assert_equal
|
||||
|
@ -1,4 +1,4 @@
|
||||
from cloudservers import Image
|
||||
from novatools import Image
|
||||
from fakeserver import FakeServer
|
||||
from utils import assert_isinstance
|
||||
from nose.tools import assert_equal
|
||||
|
@ -1,4 +1,4 @@
|
||||
from cloudservers import IPGroup
|
||||
from novatools import IPGroup
|
||||
from fakeserver import FakeServer
|
||||
from utils import assert_isinstance
|
||||
from nose.tools import assert_equal
|
||||
|
@ -2,7 +2,7 @@ import StringIO
|
||||
from nose.tools import assert_equal
|
||||
from fakeserver import FakeServer
|
||||
from utils import assert_isinstance
|
||||
from cloudservers import Server
|
||||
from novatools import Server
|
||||
|
||||
cs = FakeServer()
|
||||
|
||||
|
@ -2,7 +2,7 @@ import os
|
||||
import mock
|
||||
import httplib2
|
||||
from nose.tools import assert_raises, assert_equal
|
||||
from cloudservers.shell import CloudserversShell, CommandError
|
||||
from novatools.shell import OpenStackShell, CommandError
|
||||
from fakeserver import FakeServer
|
||||
from utils import assert_in
|
||||
|
||||
@ -11,15 +11,15 @@ from utils import assert_in
|
||||
def setup():
|
||||
global _old_env
|
||||
fake_env = {
|
||||
'CLOUD_SERVERS_USERNAME': 'username',
|
||||
'CLOUD_SERVERS_API_KEY': 'password'
|
||||
'NOVA_TOOLS_USERNAME': 'username',
|
||||
'NOVA_TOOLS_API_KEY': 'password'
|
||||
}
|
||||
_old_env, os.environ = os.environ, fake_env.copy()
|
||||
|
||||
# Make a fake shell object, a helping wrapper to call it, and a quick way
|
||||
# of asserting that certain API calls were made.
|
||||
global shell, _shell, assert_called
|
||||
_shell = CloudserversShell()
|
||||
_shell = OpenStackShell()
|
||||
_shell._api_class = FakeServer
|
||||
assert_called = lambda m, u, b=None: _shell.cs.assert_called(m, u, b)
|
||||
shell = lambda cmd: _shell.main(cmd.split())
|
||||
|
Loading…
x
Reference in New Issue
Block a user