Add Nova delete function
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user