Merge "move physical_id check from engine object to profile layer"
This commit is contained in:
commit
2b05e2c385
|
@ -229,14 +229,13 @@ class Node(object):
|
|||
|
||||
def do_delete(self, context):
|
||||
self.set_status(context, consts.NS_DELETING, _('Deletion in progress'))
|
||||
if self.physical_id:
|
||||
try:
|
||||
# The following operation always return True unless exception
|
||||
# is thrown
|
||||
pb.Profile.delete_object(context, self)
|
||||
except exc.EResourceDeletion as ex:
|
||||
self.set_status(context, consts.NS_ERROR, six.text_type(ex))
|
||||
return False
|
||||
try:
|
||||
# The following operation always return True unless exception
|
||||
# is thrown
|
||||
pb.Profile.delete_object(context, self)
|
||||
except exc.EResourceDeletion as ex:
|
||||
self.set_status(context, consts.NS_ERROR, six.text_type(ex))
|
||||
return False
|
||||
|
||||
no.Node.delete(context, self.id)
|
||||
return True
|
||||
|
|
|
@ -189,6 +189,8 @@ class StackProfile(base.Profile):
|
|||
:raises: `EResourceDeletion` if interaction with heat fails.
|
||||
"""
|
||||
stack_id = obj.physical_id
|
||||
if not stack_id:
|
||||
return True
|
||||
|
||||
ignore_missing = params.get('ignore_missing', True)
|
||||
try:
|
||||
|
|
|
@ -873,10 +873,10 @@ class ServerProfile(base.Profile):
|
|||
caught.
|
||||
:raises: `EResourceDeletion` if interaction with compute service fails.
|
||||
"""
|
||||
if not obj.physical_id:
|
||||
server_id = obj.physical_id
|
||||
if not server_id:
|
||||
return True
|
||||
|
||||
server_id = obj.physical_id
|
||||
ignore_missing = params.get('ignore_missing', True)
|
||||
internal_ports = obj.data.get('internal_ports', [])
|
||||
force = params.get('force', False)
|
||||
|
|
|
@ -306,7 +306,7 @@ class TestNode(base.SenlinTestCase):
|
|||
self.assertTrue(res)
|
||||
mock_status.assert_called_once_with(self.context, consts.NS_DELETING,
|
||||
"Deletion in progress")
|
||||
self.assertFalse(mock_delete.called)
|
||||
self.assertTrue(mock_delete.called)
|
||||
mock_db_delete.assert_called_once_with(self.context, node.id)
|
||||
|
||||
@mock.patch.object(nodem.Node, 'set_status')
|
||||
|
|
|
@ -290,6 +290,20 @@ class TestHeatStackProfile(base.SenlinTestCase):
|
|||
oc.stack_delete.assert_called_once_with('FAKE_ID', True)
|
||||
oc.wait_for_stack_delete.assert_called_once_with('FAKE_ID')
|
||||
|
||||
def test_do_delete_no_physical_id(self):
|
||||
profile = stack.StackProfile('t', self.spec)
|
||||
oc = mock.Mock()
|
||||
test_stack = mock.Mock(physical_id=None)
|
||||
profile._orchestrationclient = oc
|
||||
|
||||
# do it
|
||||
res = profile.do_delete(test_stack, ignore_missing=False)
|
||||
|
||||
# assertions
|
||||
self.assertTrue(res)
|
||||
self.assertFalse(oc.stack_delete.called)
|
||||
self.assertFalse(oc.wait_for_stack_delete.called)
|
||||
|
||||
def test_do_delete_ignore_missing(self):
|
||||
profile = stack.StackProfile('t', self.spec)
|
||||
oc = mock.Mock()
|
||||
|
|
|
@ -542,6 +542,22 @@ class TestNovaServerBasic(base.SenlinTestCase):
|
|||
cc.server_delete.assert_called_once_with('FAKE_ID', True)
|
||||
cc.wait_for_server_delete.assert_called_once_with('FAKE_ID')
|
||||
|
||||
def test_do_delete_no_physical_id(self):
|
||||
profile = server.ServerProfile('t', self.spec)
|
||||
|
||||
cc = mock.Mock()
|
||||
profile._computeclient = cc
|
||||
|
||||
test_server = mock.Mock(physical_id=None)
|
||||
|
||||
# do it
|
||||
res = profile.do_delete(test_server)
|
||||
|
||||
# assertions
|
||||
self.assertTrue(res)
|
||||
self.assertFalse(cc.server_delete.called)
|
||||
self.assertFalse(cc.wait_for_server_delete.called)
|
||||
|
||||
@mock.patch.object(node_ob.Node, 'update')
|
||||
def test_do_delete_ports_ok(self, mock_node_obj):
|
||||
profile = server.ServerProfile('t', self.spec)
|
||||
|
@ -590,14 +606,6 @@ class TestNovaServerBasic(base.SenlinTestCase):
|
|||
cc.server_force_delete.assert_called_once_with('FAKE_ID', False)
|
||||
cc.wait_for_server_delete.assert_called_once_with('FAKE_ID')
|
||||
|
||||
def test_do_delete_no_physical_id(self):
|
||||
profile = server.ServerProfile('t', self.spec)
|
||||
test_server = mock.Mock(physical_id=None)
|
||||
|
||||
res = profile.do_delete(test_server)
|
||||
|
||||
self.assertTrue(res)
|
||||
|
||||
def test_do_delete_with_delete_failure(self):
|
||||
cc = mock.Mock()
|
||||
profile = server.ServerProfile('t', self.spec)
|
||||
|
|
Loading…
Reference in New Issue