2
0
mirror of https://github.com/xcat2/confluent.git synced 2025-07-31 00:31:35 +00:00

Implement nodegroup deletion

Nodegroup deletion is now enabled.
This commit is contained in:
Jarrod Johnson
2014-02-13 16:57:03 -05:00
parent b75b959bf4
commit e01c96e534
3 changed files with 25 additions and 3 deletions

View File

@@ -561,6 +561,15 @@ class ConfigManager(object):
del self._cfgstore['nodes'][node]
self._bg_sync_to_file()
def del_groups(self, groups):
if 'groups' not in self._cfgstore:
return
for group in groups:
if group in self._cfgstore['groups']:
self._sync_nodes_to_group(group=group, nodes=[])
del self._cfgstore['groups'][group]
self._bg_sync_to_file()
def set_node_attributes(self, attribmap):
if 'nodes' not in self._cfgstore:
self._cfgstore['nodes'] = {}

View File

@@ -67,7 +67,7 @@ class ConfluentMessage(object):
class DeletedResource(ConfluentMessage):
def __init__(self):
def __init__(self, resource):
self.kvpairs = {}

View File

@@ -114,11 +114,19 @@ def iterate_resources(fancydict):
yield msg.ChildCollection(resource)
def delete_nodegroup_collection(collectionpath, configmanager):
if len(collectionpath) == 2: # just the nodegroup
group = collectionpath[-1]
configmanager.del_groups([group])
yield msg.DeletedResource(group)
else:
raise Exception("Not implemented")
def delete_node_collection(collectionpath, configmanager):
if len(collectionpath) == 2: # just node
node = collectionpath[-1]
configmanager.del_nodes([node])
yield msg.DeletedResource()
configmanager.del_groups([node])
yield msg.DeletedResource(node)
else:
raise Exception("Not implemented")
@@ -169,6 +177,11 @@ def handle_path(path, operation, configmanager, inputdata=None):
group = pathcomponents[1]
except IndexError:
return iterate_collections(configmanager.get_groups())
if iscollection:
if operation == "delete":
return delete_nodegroup_collection(pathcomponents, configmanager)
else:
raise Exception("TODO")
elif pathcomponents[0] in ('node', 'system', 'vm'):
#single node request of some sort
try: