diff options
author | 2019-10-10 15:07:45 -0400 | |
---|---|---|
committer | 2019-10-10 15:07:45 -0400 | |
commit | ab24a8de07dac62569ec79425241a6b974ed32a9 (patch) | |
tree | 55cc7ed4f570f36f777650f4fab2d1a60d25e218 /generate_job.py | |
parent | f5025949a43415ae92b0885f3e61c43538f5c7b7 (diff) |
We have had divergent repositories for the code that
runs in UNH because of difficulties with Gerrit and
developer laziness. This incorporates the previous change
(removing all references to pharos) and updates everything to
what is currently running.
Change-Id: I5c83c70d5ca686dfa03d49936fdce1603cdac16c
Signed-off-by: Parker Berberian <pberberian@iol.unh.edu>
Diffstat (limited to 'generate_job.py')
-rwxr-xr-x | generate_job.py | 96 |
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) + )) |