aboutsummaryrefslogtreecommitdiffstats
path: root/generate_job.py
diff options
context:
space:
mode:
Diffstat (limited to 'generate_job.py')
-rwxr-xr-xgenerate_job.py96
1 files changed, 96 insertions, 0 deletions
diff --git a/generate_job.py b/generate_job.py
new file mode 100755
index 0000000..53a9e9b
--- /dev/null
+++ b/generate_job.py
@@ -0,0 +1,96 @@
+#!/usr/bin/python
+
+
+import json
+import sys
+
+
+USER = 1
+
+
+def make_job(host):
+ return {
+ "hardware": make_hardware_task(host),
+ "software": make_software_task(host),
+ "network": make_network_task(host),
+ "access": make_access_task(host),
+ }
+
+
+def make_network_task(host):
+ network_task = {
+ "test_network_task_id": {
+ "lab_token": "null"
+ }
+ }
+
+ interface_config = {mac: [] for mac in host['interfaces'].keys()} # all interfaces are empty
+ for key in interface_config.keys():
+ interface_config[key].append({
+ "tagged": False,
+ "vlan_id": 100
+ })
+ break # we only want to set one interface, and we dont care which
+
+ network_task["test_network_task_id"][host["hostname"]] = interface_config
+
+ return network_task
+
+
+def make_hardware_task(host):
+ hardware_task = {
+ "test_hardware_task_id": {
+ "lab_token": "null",
+ "image": host['centos_image'],
+ "power": "on",
+ "hostname": "some_hostname",
+ "id": host['hostname'],
+ "ipmi_create": True
+ }
+ }
+
+ return hardware_task
+
+
+def make_software_task(host):
+ return {
+ "test_software_task_id": {
+ "lab_token": "null",
+ "opnfv": {}
+ }
+ }
+
+
+def make_access_task(host):
+ return {
+ "test_access_task_id": {
+ "lab_token": "null",
+ "access_type": "ssh",
+ "revoke": False,
+ "context": {
+ "hosts": [host['hostname']],
+ "key": "my_fake_ssh_key"
+ },
+ "user": USER
+ },
+ "test_access_task_id2": {
+ "lab_token": "null",
+ "access_type": "vpn",
+ "revoke": False,
+ "user": USER
+ }
+ }
+
+
+if __name__ == "__main__":
+ if len(sys.argv) < 2:
+ print("Must provide Host definition from st2 datastore!")
+ sys.exit(1)
+ try:
+ host_json = json.loads(sys.argv[1])
+ except Exception as e:
+ print("Host description is not valid JSON: " + str(e))
+ sys.exit(2)
+ print(json.dumps(
+ make_job(host_json)
+ ))