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:
@@ -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'] = {}
|
||||
|
@@ -67,7 +67,7 @@ class ConfluentMessage(object):
|
||||
|
||||
|
||||
class DeletedResource(ConfluentMessage):
|
||||
def __init__(self):
|
||||
def __init__(self, resource):
|
||||
self.kvpairs = {}
|
||||
|
||||
|
||||
|
@@ -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:
|
||||
|
Reference in New Issue
Block a user