def dispatchJob(job):
    
    # Eventually, we want to allow the user to specify the desired hostname in the request.
    hostname = "cocreate%d" % (job['sandbox_id'])
    
    if getMode() == "dev":
        return True, {
            "job": job,
            "fqdn": hostname + ".isee.mitre.org",
            "ip_address": "127.0.0.1"
        }
    else:
        try:
            ip, fqdn, err_message, progress = createvm.createVM(job['request_id'], hostname, job['sandbox_recipe'], updateProgress)
            if ip and fqdn:
                return True, {
                    "job": job,
                    "fqdn": fqdn,
                    "ip_address": ip,
                }
            else:
                return False, {
                    "job": job,
                    "err_message": err_message,
                    "progress": progress
                }
        except Exception as e:
            print(e)
            return False, {
                "job": job,
                "err_message": "Error while creating sandbox",
                "progress": 0
            }
Decode JSON from the request and add it as ``data`` parameter for wrapped
dataset/ETHPy150Open ngageoint/cocreate/ccl-cookbook/files/default/cocreatelite/cocreate/worker.py/dispatchJob--crossover with--dataset/ETHPy150Open Bystroushaak/bottle-rest/src/bottle_rest/bottle_rest.py/json_to_data