summaryrefslogtreecommitdiff
path: root/clusterman/commands/node.py
diff options
context:
space:
mode:
Diffstat (limited to 'clusterman/commands/node.py')
-rw-r--r--clusterman/commands/node.py37
1 files changed, 24 insertions, 13 deletions
diff --git a/clusterman/commands/node.py b/clusterman/commands/node.py
index e949887..24759f0 100644
--- a/clusterman/commands/node.py
+++ b/clusterman/commands/node.py
@@ -2,6 +2,25 @@ import os, json, time, re, sys
from clusterman.config import CONF
+def get_node_in_group(group):
+ nodes_path=CONF.NODE_FILE
+ nodes=None
+ if os.path.exists(nodes_path):
+ with open(nodes_path) as f:
+ nodes=json.load(f)
+ # Search
+ ingroup=list()
+ if nodes is not None and group in CONF["cluster"]["groups"]:
+ patterns=[re.compile(pattern) for pattern in CONF["cluster"]["groups"][group]]
+ for node in nodes:
+ for pattern in patterns:
+ if pattern.match(node):
+ ingroup.append(node)
+ break;
+ return ingroup
+
+
+
def ls(group=None):
nodes_path=CONF.NODE_FILE
nodes=None
@@ -11,20 +30,12 @@ def ls(group=None):
else:
print("Please perform a scan before")
exit(0)
- # Setup group pattern
- pattern=None
- if group is not None:
- if group in CONF["cluster"]["groups"]:
- pattern = re.compile(CONF["cluster"]["groups"][group])
- else:
- print("Group {} not found".format(group))
- sys.exit(1)
# Print nodes
- for node in nodes:
- if pattern is not None:
- if pattern.match(node):
- print(node)
- else:
+ if group is not None:
+ for node in get_node_in_group(group):
+ print(node)
+ else:
+ for node in nodes:
print(node)
def scan(timeout):