Add Nova delete function
This commit is contained in:
@@ -23,6 +23,7 @@ class Node(object):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def create(self, node_id, image, node_type):
|
def create(self, node_id, image, node_type):
|
||||||
|
""" create a nova node """
|
||||||
url = "/servers"
|
url = "/servers"
|
||||||
body = {"server": {
|
body = {"server": {
|
||||||
"name": 'lbass_{0}'.format(node_id),
|
"name": 'lbass_{0}'.format(node_id),
|
||||||
@@ -34,3 +35,15 @@ class Node(object):
|
|||||||
|
|
||||||
def status(self, node_id):
|
def status(self, node_id):
|
||||||
""" used to keep scanning to see if node is up """
|
""" 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
|
from libra.mgm.nova import Node
|
||||||
|
|
||||||
fake_response = httplib2.Response({"status": 200})
|
fake_response = httplib2.Response({"status": 200})
|
||||||
|
fake_bad_response = httplib2.Response({"status": 500})
|
||||||
|
fake_del_response = httplib2.Response({"status": 204})
|
||||||
fake_body = '{"hi": "there"}'
|
fake_body = '{"hi": "there"}'
|
||||||
mock_request = mock.Mock(return_value=(fake_response, fake_body))
|
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):
|
class TestLBaaSMgmTask(unittest.TestCase):
|
||||||
@@ -39,3 +43,17 @@ class TestLBaaSMgmNova(unittest.TestCase):
|
|||||||
def testCreateCall():
|
def testCreateCall():
|
||||||
data = self.api.create('4321', '123', '321')
|
data = self.api.create('4321', '123', '321')
|
||||||
self.assertEqual(data, {"hi": "there"})
|
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