From ab24a8de07dac62569ec79425241a6b974ed32a9 Mon Sep 17 00:00:00 2001 From: Parker Berberian Date: Thu, 10 Oct 2019 15:07:45 -0400 Subject: Updated LaaS-Reflab 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 --- generate_job.py | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100755 generate_job.py (limited to 'generate_job.py') 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) + )) -- cgit