2017-09-11 61 views
0

有通過API更新Netbox中的字段的功能。相同的數據在Django的Web界面上工作,所以我知道這不是,只是在我的腳本中,我做錯了。PATCH調用不通過API更新字段

def change_allocated_server_status(api_token="", limit="",jira_access=""): 
    api_token_here = "Token " + api_token 
    headers = {'Authorization': api_token_here} 
    params = {'limit': limit} 

    sites = "https://my-url.com/api/dcim/devices/?role=server-planned" 
    session = requests.Session() 
    site_response = session.get(sites, headers=headers, params=params) 
    site_results = site_response.json()['results'] 

    allocated_servers = get_devices_by_dc_loca(api_token, limit, jira_access) 

    url = "https://my-url.com/api/dcim/devices/239" 


    update = { 
      "device_role": 41 
    } 

    change = requests.patch(url, headers=headers, data=update) 
    change_results = change.json() 
    print change_results 

打印change_results輸出是

{u'status': 2, u'device_role': 40, u'name': u'device-name', u'site': 1, u'comments': u'', u'rack': 4, u'asset_tag': None, u'platform': None, u'primary_ip4': None, u'device_type': 7, u'primary_ip6': None, u'custom_fields': {}, u'position': 5, u'serial': u'', u'face': 0, u'id': 239, u'tenant': 1} 

device_role不被改變。做一個打印change.status_code返回200,所以我知道我打的API沒有身份驗證問題,只是猜測這是一些簡單的我失蹤

回答

0

缺少一個「/」從我的URL的末尾,阻止PATCH被調用,但不拋出錯誤。

相關問題