summaryrefslogtreecommitdiffstats
path: root/cli/objects/modes.py
diff options
context:
space:
mode:
authorRoberto Hueso Gómez <rhueso@soleta.eu>2020-07-03 14:27:29 +0200
committerRoberto Hueso Gómez <rhueso@soleta.eu>2020-07-06 13:32:02 +0200
commit8961937329940e41219f0a32c4aec0aad9d81636 (patch)
tree5be63b67bbede2f22ec88320f7d0c7c6a8cda816 /cli/objects/modes.py
parent4dddd359e73d96eba4c472138ea70064d0f39616 (diff)
Add ogcli set mode command
This requests POST /modes and changes a scope mode by calling something like: ogcli set modes --scope-id=1 --scope-type=computer --mode=pxe
Diffstat (limited to 'cli/objects/modes.py')
-rw-r--r--cli/objects/modes.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/cli/objects/modes.py b/cli/objects/modes.py
index 04e281d..983175f 100644
--- a/cli/objects/modes.py
+++ b/cli/objects/modes.py
@@ -6,9 +6,33 @@
# Free Software Foundation, version 3.
#
+import argparse
+
class OgModes():
@staticmethod
def list_available_modes(rest):
r = rest.get('/modes')
print(r.json())
+
+ @staticmethod
+ def set_modes(rest, args):
+ parser = argparse.ArgumentParser()
+ parser.add_argument('--scope-id',
+ nargs=1,
+ required=True,
+ help='ID of the scope')
+ parser.add_argument('--scope-type',
+ nargs=1,
+ required=True,
+ help='Type of the scope')
+ parser.add_argument('--mode',
+ nargs=1,
+ required=True,
+ help='Mode for the scope')
+ parsed_args = parser.parse_args(args)
+
+ payload = {'scope': {'id': int(parsed_args.scope_id[0]),
+ 'type': parsed_args.scope_type[0]},
+ 'mode': parsed_args.mode[0]}
+ r = rest.post('/modes', payload=payload)