Пример #1
0
def api_post_link_runbook_schedule(subid, groupid, automationid, rubbookid,
                                   schid):
    # example for the body
    #[{"name":"ResourceGroupName","value":"\"testvms\""},{"name":"VMName","value":"\"*\""}]

    obj = request.data.decode('utf8').replace("'", '"')
    print(obj)
    runbook_parameter = (setting.RUNBOOK_PARAMETER_ENDPOINT %
                         (subid, groupid, automationid, rubbookid))
    schedule_parameter = (setting.SCHEDULE_PARAMETER_ENDPOINT %
                          (subid, groupid, automationid, schid))
    headers = {
        "Authorization": 'Bearer ' + autentication.get_token(),
        "Content-type": "text/plain"
    }
    endpoint_delete = (setting.RUNBOOK_SCHEDULE_DELETE_ENDPOINT %
                       (runbook_parameter.replace("/", "%2F"),
                        schedule_parameter.replace("/", "%2F")))
    endpoint_post = (setting.RUNBOOK_SCHEDULE_ENDPOINT %
                     (runbook_parameter.replace(
                         "/", "%2F"), schedule_parameter.replace("/", "%2F")))

    # We should revisit the code here to make it better
    # run delete first to remove the link
    print(endpoint_delete)
    json_output = requests.post(endpoint_delete, headers=headers).status_code

    #now post
    headers = {
        "Authorization": 'Bearer ' + autentication.get_token(),
        "Content-type": "application/json"
    }
    json_output = requests.post(endpoint_post, data=obj,
                                headers=headers).status_code
    return str(json_output)
Пример #2
0
def api_get_link_runbook_schedules(subid, groupid, automationid, rubbookid):
    runbook_parameter = (setting.RUNBOOK_PARAMETER_ENDPOINT %
                         (subid, groupid, automationid, rubbookid))
    headers = {
        "Authorization": 'Bearer ' + autentication.get_token(),
        "Content-type": "application/json"
    }
    endpoint = (setting.RUNBOOK_SCHEDULES_LIST_ENDPOINT %
                (runbook_parameter.replace("/", "%2F")))
    print(endpoint)
    print(autentication.get_token())
    json_output = requests.get(endpoint, headers=headers).json()
    return str(json_output)
Пример #3
0
def api_delete_schedules(subid, groupid, automationid, schid):

    endpoint = (setting.SCHEDULE_ENDPOINT %
                (subid, groupid, automationid, schid))
    headers = {"Authorization": 'Bearer ' + autentication.get_token()}
    json_output = requests.delete(endpoint, headers=headers).json()
    return str(json_output)
Пример #4
0
def api_subscriptions():
    endpoint = setting.SUBSCRIPTIONS_ENDPOINT
    headers = {"Authorization": 'Bearer ' + autentication.get_token()}
    json_output = requests.get(endpoint, headers=headers).json()
    # get all the subscription

    return str(json_output)
Пример #5
0
def api_get_automation(subid, groupid, automationid):
    print(setting.AUTOMATION_ENDPOINT)
    #endpoint = (autentication.kv_get_secret("automation-endpoint") % (subid,groupid,automationid))
    endpoint = (setting.AUTOMATION_ENDPOINT % (subid, groupid, automationid))
    headers = {"Authorization": 'Bearer ' + autentication.get_token()}
    json_output = requests.get(endpoint, headers=headers).json()
    return str(json_output)
Пример #6
0
def api_resourcegroupRole(subid, groupid, roleid):
    endpoint = (setting.RESOURCEGROUP_ENDPOINT % (subid, groupid, roleid))
    headers = {
        "Authorization": 'Bearer ' + autentication.get_token(),
        "Content-type": "application/json"
    }
    json_output = requests.get(endpoint, headers=headers).json()
    return (json_output)
Пример #7
0
def api_put_newjob(subid,groupid,automationid,jobid):
    obj = request.data.decode('utf8').replace("'", '"')
    print (obj)
    endpoint = (setting.JOB_ENDPOINT % (subid,groupid,automationid,jobid))
    print(endpoint)
    headers = {"Authorization": 'Bearer ' + autentication.get_token(),"Content-type": "application/json"}
    json_output = requests.put(endpoint,data=obj,headers=headers).json()
    return str(json_output)
Пример #8
0
def check_group_member(groupId, principalId):
    endpoint = "https://graph.microsoft.com/v1.0/groups/" + groupId + "/members"
    print(endpoint)
    headers = {"Authorization": 'Bearer ' + autentication.get_token()}
    userlist = requests.get(endpoint, headers=headers).json()
    if (principalId in userlist):
        return True
    else:
        return False
Пример #9
0
def api_resourcegroup_vmlist_status(subid, groupid):
    endpoint = (setting.RESOURCEGROUP_VMS_ENDPOINT % (subid, groupid))
    #print(headers)
    headers = {
        "Authorization": 'Bearer ' + autentication.get_token(),
        "Content-type": "application/json"
    }
    json_output = requests.get(endpoint, headers=headers).json()
    vms = json.dumps(json_output)
    #vms = str(json_output).replace("'","\"").replace("True","\"True\"").replace("False","\"False\"")
    vms_json = json.loads(vms)
    vms_data = objectpath.Tree(vms_json['value'])
    namelist = tuple(vms_data.execute('$.name'))
    print("========= vm list name =================")
    print(namelist)
    print("============vm status end point =======")
    print(setting.RESOURCEGROUP_VM_STATUS_ENDPOINT)
    vmstatus = []
    for vm in namelist:
        print("processing vm" + vm)
        endpoint = (setting.RESOURCEGROUP_VM_STATUS_ENDPOINT %
                    (subid, groupid, vm))
        headers = {
            "Authorization": 'Bearer ' + autentication.get_token(),
            "Content-type": "application/json"
        }
        json_output = requests.get(endpoint, headers=headers).json()
        detail = json.dumps(json_output)
        #detail = str(json_output).replace("'","\"").replace("True","\"True\"").replace("False","\"False\"")
        print(detail)
        vm_json = json.loads(detail)
        print(json)
        namelist = vm_json["properties"]["instanceView"]["statuses"][1]["code"]
        print(namelist)
        #namelist = tuple(status.execute('$.instanceView.statuses.code'))
        if "PowerState/running" in namelist:
            vmstatus.append({'vm_name': vm, 'status': 'running'})
        else:
            vmstatus.append({'vm_name': vm, 'status': 'stopped'})

        result = json.dumps(vmstatus)

    return result
Пример #10
0
def api_post_control_job(subid,groupid,automationid,jobid,controlid):
    
    control_list = ['stop', 'resume', 'suspend']
    ops = str(controlid).lower()
    if any( ops in s for s in control_list):
        endpoint = (setting.JOB_CONTROL_ENDPOINT % (subid,groupid,automationid,jobid,ops))
        print(endpoint)
        headers = {"Authorization": 'Bearer ' + autentication.get_token(),"Content-type": "application/json"}
        output = str(requests.post(endpoint,headers=headers))
        return (output)
    else:
        return str("Stop, Resume and Suspended are the only valid operations")
Пример #11
0
def api_put_schedule(subid, groupid, automationid, schid):
    obj = request.data.decode('utf8').replace("'", '"')
    print("Reciving the following body")
    print(obj)
    print("")
    endpoint = (setting.SCHEDULE_ENDPOINT %
                (subid, groupid, automationid, schid))
    headers = {
        "Authorization": 'Bearer ' + autentication.get_token(),
        "Content-type": "application/json"
    }
    json_output = requests.put(endpoint, data=obj, headers=headers).json()
    print(json_output)
    return str(json_output)
Пример #12
0
def api_resourcegroup_vmlist(subid, groupid):
    endpoint = (setting.RESOURCEGROUP_VMS_ENDPOINT % (subid, groupid))
    #print(headers)
    headers = {
        "Authorization": 'Bearer ' + autentication.get_token(),
        "Content-type": "application/json"
    }
    json_output = requests.get(endpoint, headers=headers).json()
    vms = json.dumps(json_output)
    #vms = str(json_output).replace("'","\"").replace("True","\"True\"").replace("False","\"False\"")
    vms_json = json.loads(vms)
    vms_data = objectpath.Tree(vms_json['value'])
    namelist = tuple(vms_data.execute('$.name'))
    print(namelist)
    return str(namelist)
Пример #13
0
def api_resourcegroup_vm_manage(subid, groupid, vmid, action):
    if (action == "start"):
        endpoint = (setting.RESOURCEGROUP_VM_START_ENDPOINT %
                    (subid, groupid, vmid))

    if (action == "stop"):
        endpoint = (setting.RESOURCEGROUP_VM_STOP_ENDPOINT %
                    (subid, groupid, vmid))

    if (action == "restart"):
        endpoint = (setting.RESOURCEGROUP_VM_RESTART_ENDPOINT %
                    (subid, groupid, vmid))

    headers = {
        "Authorization": 'Bearer ' + autentication.get_token(),
        "Content-type": "application/json"
    }
    print(endpoint)
    json_output = requests.post(endpoint, headers=headers).status_code
    return str(json_output)
Пример #14
0
def api_user_group(subscriptionId, principalId):
    userlist = []
    user_membership = get_user_membership(principalId)
    endpoint = setting.ROLE_ASSIGMENT_ENDPOINT % (subscriptionId, principalId)
    print(endpoint)
    headers = {"Authorization": 'Bearer ' + autentication.get_token()}
    rolename = setting.ROLE_ASSIGMENT_NAME

    respond = requests.get(endpoint, headers=headers)
    status = respond.status_code
    print(status)
    if (status == 200):

        json_output = requests.get(endpoint, headers=headers).json()
        roles = json.loads(str(json_output).replace("'", "\""))

        if rolename in str(json_output):
            roles_data = objectpath.Tree(roles['value'])
            proplist = tuple(roles_data.execute('$.properties'))
            for p in proplist:
                add_group = False
                role = p['roleDefinitionId']
                if (rolename in role) & (principalId == p['principalId']):
                    add_group = True
                else:
                    #add_group=check_group_member(p['principalId'],principalId)
                    if (p['principalId'] in user_membership):
                        add_group = True

                if (add_group):
                    rg = p['scope'].split('/').pop()
                    if (rg != subscriptionId):
                        userlist.append(rg)
                        print(userlist)

            return json.dumps(userlist)
        else:
            return "{}"

    else:
        return "{}"
Пример #15
0
def api_get_jobscheduledetail(subid,groupid,automationid,jobid):
    endpoint = (setting.JOB_SCHEDULE_ENDPOINT % (subid,groupid,automationid,jobid))
    headers = {"Authorization": 'Bearer ' + autentication.get_token()}
    json_output = requests.get(endpoint,headers=headers).json()
    return str(json_output)
Пример #16
0
def api_get_runbook_content(subid, groupid, automationid, runbookid):
    endpoint = (setting.RUNBOOK_CONTENT_ENDPOINT %
                (subid, groupid, automationid, runbookid))
    headers = {"Authorization": 'Bearer ' + autentication.get_token()}
    json_output = requests.get(endpoint, headers=headers).json()
    return str(json_output)
Пример #17
0
def api_resourcegroupInfo(subid, groupid):
    endpoint = (setting.RESOURCEGROUP_ENDPOINT % (subid, groupid))
    headers = {"Authorization": 'Bearer ' + autentication.get_token()}
    json_output = requests.get(endpoint, headers=headers).json()
    return str(json_output)