Add Nova delete function

This commit is contained in:
Andrew Hutchings
2012-09-27 17:24:06 -07:00
parent a3f2b29818
commit 34ee842947
2 changed files with 31 additions and 0 deletions

View File

@@ -23,6 +23,7 @@ class Node(object):
)
def create(self, node_id, image, node_type):
""" create a nova node """
url = "/servers"
body = {"server": {
"name": 'lbass_{0}'.format(node_id),
@@ -34,3 +35,15 @@ class Node(object):
def status(self, node_id):
""" used to keep scanning to see if node is up """
url = "/servers/{0}".format(node_id)
resp, body = self.nova.get(url)
return body['server']['status']
def delete(self, node_id):
""" delete a nova node, return 1 if fail, 0 if succeed """
url = "/servers/{0}".format(node_id)
resp, body = self.nova.delete(url)
if resp.status != 204:
return 1
return 0

View File

@@ -7,8 +7,12 @@ import mock_objects
from libra.mgm.nova import Node
fake_response = httplib2.Response({"status": 200})
fake_bad_response = httplib2.Response({"status": 500})
fake_del_response = httplib2.Response({"status": 204})
fake_body = '{"hi": "there"}'
mock_request = mock.Mock(return_value=(fake_response, fake_body))
mock_bad_request = mock.Mock(return_value=(fake_bad_response, fake_body))
mock_del_request = mock.Mock(return_value=(fake_del_response, fake_body))
class TestLBaaSMgmTask(unittest.TestCase):
@@ -39,3 +43,17 @@ class TestLBaaSMgmNova(unittest.TestCase):
def testCreateCall():
data = self.api.create('4321', '123', '321')
self.assertEqual(data, {"hi": "there"})
def testDeleteNodeFail(self):
@mock.patch.object(httplib2.Http, "request", mock_bad_request)
@mock.patch('time.time', mock.Mock(return_value=1234))
def testDeleteCall():
resp = self.api.delete('1234')
self.assertEqual(resp, 1)
def testDeleteNodeSucceed(self):
@mock.patch.object(httplib2.Http, "request", mock_del_request)
@mock.patch('time.time', mock.Mock(return_value=1234))
def testDeleteCall():
resp = self.api.delete('1234')
self.assertEqual(resp, 0)