Skip to content
This repository has been archived by the owner on Apr 27, 2022. It is now read-only.

Commit

Permalink
Merge pull request #821 from naved001/node-delete-checks
Browse files Browse the repository at this point in the history
Node delete won't delete a node if it belongs to a project.
  • Loading branch information
SahilTikale authored Jul 7, 2017
2 parents 5ea5dac + 302a598 commit fa415da
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 0 deletions.
4 changes: 4 additions & 0 deletions hil/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -292,6 +292,10 @@ def node_delete(node):
"""
get_auth_backend().require_admin()
node = _must_find(model.Node, node)
if node.project:
raise BlockedError("Node %r is part of project %r; remove from "
"project before deleting"
% (node.label, node.project.label))
if node.nics != []:
raise BlockedError("Node %r has nics; remove them before deleting %r."
% (node.label, node.label))
Expand Down
12 changes: 12 additions & 0 deletions tests/unit/api/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -493,6 +493,18 @@ def test_node_delete_nic_exist(self):
with pytest.raises(api.BlockedError):
api.node_delete('node-99')

def test_node_delete_in_project(self):
"""node_delete should respond with an error if node is in project"""
api.node_register('node-99', obm={
"type": "http://schema.massopencloud.org/haas/v0/obm/ipmi",
"host": "ipmihost",
"user": "root",
"password": "tapeworm"})
api.project_create('skeleton')
api.project_connect_node('skeleton', 'node-99')
with pytest.raises(api.BlockedError):
api.node_delete('node-99')


class TestNodeRegisterDeleteNic:

Expand Down

0 comments on commit fa415da

Please sign in to comment.