Haben Sie eine Funktion, um ein Feld in Netbox über API zu aktualisieren. Die gleichen Daten funktionieren auf der Django-Weboberfläche, also weiß ich, dass es nicht das ist, nur etwas in meinem Skript, das ich falsch mache.PATCH-Aufruf aktualisiert Feld nicht über 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
Der Ausgang des Druck change_results ist
{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 nicht einge geändert wird. Doing ein change.status_code Druck 200, so kehrt Ich weiß, ich bin die API ohne Authentifizierungsproblem trifft, kann nur raten einfach etwas, es ist mir persönlich fehlt