summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nova/api/openstack/views/servers.py4
-rw-r--r--nova/exception.py2
-rw-r--r--nova/tests/api/openstack/test_servers.py34
-rw-r--r--nova/tests/test_exception.py4
-rw-r--r--nova/tests/test_virt.py5
-rw-r--r--nova/virt/libvirt_conn.py3
6 files changed, 40 insertions, 12 deletions
diff --git a/nova/api/openstack/views/servers.py b/nova/api/openstack/views/servers.py
index 0abb79f49..0be468edc 100644
--- a/nova/api/openstack/views/servers.py
+++ b/nova/api/openstack/views/servers.py
@@ -63,8 +63,8 @@ class ViewBuilder(object):
power_state.BLOCKED: 'ACTIVE',
power_state.SUSPENDED: 'SUSPENDED',
power_state.PAUSED: 'PAUSED',
- power_state.SHUTDOWN: 'ACTIVE',
- power_state.SHUTOFF: 'ACTIVE',
+ power_state.SHUTDOWN: 'SHUTDOWN',
+ power_state.SHUTOFF: 'SHUTOFF',
power_state.CRASHED: 'ERROR',
power_state.FAILED: 'ERROR',
power_state.BUILDING: 'BUILD',
diff --git a/nova/exception.py b/nova/exception.py
index 624b533f5..5caad4cf3 100644
--- a/nova/exception.py
+++ b/nova/exception.py
@@ -50,7 +50,7 @@ class Error(Exception):
class ApiError(Error):
def __init__(self, message='Unknown', code=None):
- self.message = message
+ self.msg = message
self.code = code
if code:
outstr = '%s: %s' % (code, message)
diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py
index c44e42b72..e35eff966 100644
--- a/nova/tests/api/openstack/test_servers.py
+++ b/nova/tests/api/openstack/test_servers.py
@@ -31,9 +31,9 @@ from nova import flags
from nova import test
import nova.api.openstack
from nova.api.openstack import servers
-from nova.compute import power_state
import nova.compute.api
from nova.compute import instance_types
+from nova.compute import power_state
import nova.db.api
from nova.db.sqlalchemy.models import Instance
from nova.db.sqlalchemy.models import InstanceMetadata
@@ -57,9 +57,9 @@ def return_server_with_addresses(private, public):
return _return_server
-def return_server_with_state(state):
+def return_server_with_power_state(power_state):
def _return_server(context, id):
- return stub_instance(id, state=state)
+ return stub_instance(id, power_state=power_state)
return _return_server
@@ -80,7 +80,7 @@ def instance_address(context, instance_id):
def stub_instance(id, user_id=1, private_address=None, public_addresses=None,
- host=None, state=0):
+ host=None, power_state=0):
metadata = []
metadata.append(InstanceMetadata(key='seq', value=id))
@@ -103,7 +103,7 @@ def stub_instance(id, user_id=1, private_address=None, public_addresses=None,
"launch_index": 0,
"key_name": "",
"key_data": "",
- "state": state,
+ "state": power_state,
"state_description": "",
"memory_mb": 0,
"vcpus": 0,
@@ -1054,7 +1054,8 @@ class ServersTest(test.TestCase):
},
}
- new_return_server = return_server_with_state(power_state.BUILDING)
+ state = power_state.BUILDING
+ new_return_server = return_server_with_power_state(state)
self.stubs.Set(nova.db.api, 'instance_get', new_return_server)
req = webob.Request.blank('/v1.0/servers/1/action')
@@ -1101,7 +1102,8 @@ class ServersTest(test.TestCase):
},
}
- new_return_server = return_server_with_state(power_state.BUILDING)
+ state = power_state.BUILDING
+ new_return_server = return_server_with_power_state(state)
self.stubs.Set(nova.db.api, 'instance_get', new_return_server)
req = webob.Request.blank('/v1.1/servers/1/action')
@@ -1320,6 +1322,24 @@ class ServersTest(test.TestCase):
res = req.get_response(fakes.wsgi_app())
self.assertEqual(res.status_int, 400)
+ def test_shutdown_status(self):
+ new_server = return_server_with_power_state(power_state.SHUTDOWN)
+ self.stubs.Set(nova.db.api, 'instance_get', new_server)
+ req = webob.Request.blank('/v1.0/servers/1')
+ res = req.get_response(fakes.wsgi_app())
+ self.assertEqual(res.status_int, 200)
+ res_dict = json.loads(res.body)
+ self.assertEqual(res_dict['server']['status'], 'SHUTDOWN')
+
+ def test_shutoff_status(self):
+ new_server = return_server_with_power_state(power_state.SHUTOFF)
+ self.stubs.Set(nova.db.api, 'instance_get', new_server)
+ req = webob.Request.blank('/v1.0/servers/1')
+ res = req.get_response(fakes.wsgi_app())
+ self.assertEqual(res.status_int, 200)
+ res_dict = json.loads(res.body)
+ self.assertEqual(res_dict['server']['status'], 'SHUTOFF')
+
class TestServerCreateRequestXMLDeserializer(unittest.TestCase):
diff --git a/nova/tests/test_exception.py b/nova/tests/test_exception.py
index 1b0e41d9a..4d3b9cc73 100644
--- a/nova/tests/test_exception.py
+++ b/nova/tests/test_exception.py
@@ -26,9 +26,9 @@ class ApiErrorTestCase(test.TestCase):
err = exception.ApiError('fake error')
self.assertEqual(err.__str__(), 'fake error')
self.assertEqual(err.code, None)
- self.assertEqual(err.message, 'fake error')
+ self.assertEqual(err.msg, 'fake error')
# with 'code' arg
err = exception.ApiError('fake error', 'blah code')
self.assertEqual(err.__str__(), 'blah code: fake error')
self.assertEqual(err.code, 'blah code')
- self.assertEqual(err.message, 'fake error')
+ self.assertEqual(err.msg, 'fake error')
diff --git a/nova/tests/test_virt.py b/nova/tests/test_virt.py
index 47432baef..1311ba361 100644
--- a/nova/tests/test_virt.py
+++ b/nova/tests/test_virt.py
@@ -646,6 +646,11 @@ class LibvirtConnTestCase(test.TestCase):
self.assertTrue(count)
+ def test_get_host_ip_addr(self):
+ conn = libvirt_conn.LibvirtConnection(False)
+ ip = conn.get_host_ip_addr()
+ self.assertEquals(ip, FLAGS.my_ip)
+
def tearDown(self):
self.manager.delete_project(self.project)
self.manager.delete_user(self.user)
diff --git a/nova/virt/libvirt_conn.py b/nova/virt/libvirt_conn.py
index 46643ce73..9780c69a6 100644
--- a/nova/virt/libvirt_conn.py
+++ b/nova/virt/libvirt_conn.py
@@ -735,6 +735,9 @@ class LibvirtConnection(driver.ComputeDriver):
subprocess.Popen(cmd, shell=True)
return {'token': token, 'host': host, 'port': port}
+ def get_host_ip_addr(self):
+ return FLAGS.my_ip
+
@exception.wrap_exception
def get_vnc_console(self, instance):
def get_vnc_port_for_instance(instance_name):