我有一个像这样的JSON主体:
'\n{\n"users" : \n[\n\n{\n"dn" : null,\n"dns_domain" : null,\n"domain" : "UNIX_USERS",\n"email" : null,\n"enabled" : true,\n"expired" : false,\n"expiry" : null,\n"gecos" : "InsightIQ User",\n"generated_gid" : false,\n"generated_uid" : false,\n"generated_upn" : true,\n"gid" : \n{\n"id" : "GID:15",\n"name" : "insightiq",\n"type" : "group"\n},\n"home_directory" : "/ifs/home/insightiq",\n"id" : "insightiq",\n"locked" : false,\n"max_password_age" : null,\n"member_of" : null,\n"name" : "insightiq",\n"object_history" : [],\n"on_disk_group_identity" : \n{\n"id" : "GID:15",\n"name" : "insightiq",\n"type" : "group"\n},\n"on_disk_user_identity" : \n{\n"id" : "UID:15",\n"name" : "insightiq",\n"type" : "user"\n},\n"password_expired" : false,\n"password_expires" : true,\n"password_expiry" : null,\n"password_last_set" : null,\n"primary_group_sid" : \n{\n"id" : "SID:S-1-22-2-15",\n"name" : "insightiq",\n"type" : "group"\n},\n"prompt_password_change" : false,\n"provider" : "lsa-file-provider:System",\n"sam_account_name" : "insightiq",\n"shell" : "/sbin/nologin",\n"sid" : \n{\n"id" : "SID:S-1-22-1-15",\n"name" : "insightiq",\n"type" : "user"\n},\n"type" : "user",\n"uid" : \n{\n"id" : "UID:15",\n"name" : "insightiq",\n"type" : "user"\n},\n"upn" : "insightiq@UNIX_USERS",\n"user_can_change_password" : false\n}\n]\n}\n')
现在我想在python中创建一个PUT请求,以便更改" enabled"的值。为假。 这就是我所拥有的,但我一直得到400个不好的请求。
def revert_insightIQ_user_account(self):
''' Revert insightIQ_user_account'''
print "Reverting insightIQ user to default... "
req_url = "/platform/1/auth/users/insightiq"
default = {}
default['users'] = []
default['users'].append({})
default["users"][0]["enabled"] = False
self.http_papi.httpPut(self.base_url, self.port, self.username, self.password, req_url, req_body=default)
print "Settings reverted successfully.."
我认为我错误地创建了JSON主体格式,因为URL和所有内容都是正确的(我已经仔细检查过了)但是我无法弄清楚什么是正确的并且已经达到了死胡同。有人可以帮忙吗?
编辑:
http_papi是一个创建的库,其中包含所有API事务,如GET PUT定义,因此每当我使用API请求时,我都会从该库中调用它(它已被导入)
JSON字符串源是提到的URI:/ platform / 1 / auth / users / insightiq(这与我用于测试的集群IP一起)
当我执行原始CURL put请求以启用用户时,发布的JSON字符串是我得到的。我必须在我的python代码中创建一个相同的JSON格式,并在那里传递enabled = false。
答案 0 :(得分:0)
这只是通过更改列表对象"启用"没有必要从头开始创建DS。
def revert_insightIQ_user_account(self): '''还原insightIQ_user_account'''
print
print "Reverting insightIQ user to default... "
default = {}
req_url = "/platform/1/auth/users/insightiq"
default['enabled'] = False
self.http_papi.httpPut(self.base_url, self.port, self.username, self.password, req_url, req_body=default)
print "Settings reverted successfully..