From d93569b1a6705ab391fcbbf2e2ed28e002bf1fa7 Mon Sep 17 00:00:00 2001 From: Kushal Das Date: Aug 09 2016 06:17:09 +0000 Subject: Lists all instances or the running ones --- diff --git a/brumeclient/brume.py b/brumeclient/brume.py index 43fe55c..f2d1600 100755 --- a/brumeclient/brume.py +++ b/brumeclient/brume.py @@ -41,6 +41,7 @@ key = kdf.derive(b"password") if __name__ == '__main__': parser = argparse.ArgumentParser(description='Brume client tool') + parser.add_argument('--all', help='For all cases.', action="store_true") parser.add_argument('--keyname', help='Name of a new key to be uploaded to the server.') parser.add_argument('--path', help='Path to the file.') parser.add_argument('--create', help='Create a new instance.') @@ -55,7 +56,9 @@ if __name__ == '__main__': if args.list_images: data = {"command": "list_images"} elif args.list_instances: - data = {"command": "list_instances"} + data = {"command": "list_instances", 'filter': 'running'} + if args.all: + data["filter"] = "all" elif args.create: # Create a new instance in ther server instance_name = args.create ssh_key = args.keyname diff --git a/brumecloud/controller/__init__.py b/brumecloud/controller/__init__.py index baff1a7..611996c 100644 --- a/brumecloud/controller/__init__.py +++ b/brumecloud/controller/__init__.py @@ -159,11 +159,15 @@ def get_images() -> List[Tuple[str,str]]: return result -def get_instances(username: str) -> List[Dict[str, str]]: +def get_instances(username: str, status: str) -> List[Dict[str, str]]: "Find all the running instances for a given user" result = [] + instances = None user = SESSION.query(User).filter(User.name==username).first() - instances = SESSION.query(Instance).filter(Instance.owner==user.id).filter(Instance.status=="Started") + if status == 'running': + instances = SESSION.query(Instance).filter(Instance.owner==user.id).filter(Instance.status=="Started") + elif status == 'all': + instances = SESSION.query(Instance).filter(Instance.owner == user.id) for inst in instances: d = {'name': inst.name, 'urn': inst.urn, @@ -246,8 +250,9 @@ def api(): status, key = generate_sshkey(user_input) return json.dumps({'output': status, "message": key}) elif user_input["command"] == 'list_instances': - allimages = get_instances(x_user) - return json.dumps({'output': True, "instances": allimages}) + query_status = str(user_input['filter']) + allinstances = get_instances(x_user, query_status) + return json.dumps({'output': True, "instances": allinstances}) return "All Okay"