使用mongodb ops Manager REST API执行切换

时间:2018-10-30 09:52:15

标签: python mongodb mms mongodb-mms

我写了一个python脚本(由于无法使脚本正常工作,所以编写了一个可笑的剧本,但这是另外一回事了),目的是在由ops经理管理的mongodb副本集中执行切换,版本3.6。我有两个站点,一个站点中有3个服务器,另一个站点中有2个站点,该脚本所做的基本上是发送一个PUT请求以编辑副本集的自动化配置,并根据给定的站点来更改所需服务器的优先级至2,同时将其他仲裁器保留为1,然后添加仲裁器,然后在必要时将其删除。现在,目的只是更改put请求的优先级以使其生效,这就是PUT请求的样子:

data = {"replicaSets": [
{
     "_id"_: "PP_ATLAS",
     "members": [
          {
               "_id": 2,
              "host": "*servername*",
              "priority": 2,
          },
          {
              "_id": 3,
              "host": "*servername*",
          },
          {
              "_id": 4,
              "host": "*servername*",
          }
     ]
   }
],
}
headers = {'Content-Type': 'application/json'}
js = requests.put(url, auth=HTTPDigestAuth (MMS_User, MMS_API), data=json.dumps(data), headers=headers, verify=False)

MMS_User和MMS_API是用于访问操作管理器(也称为MMS)的标识令牌。

当我尝试执行此操作(脚本请求服务器名称作为参数切换到)时,我收到:

{"detail":"Invalid automation config: Process *servername that was given as an argument* referenced in one or more deployment items but not found in configuration.","error":400,"errorCode":null,"parameters":null,"reason":"Bad Request"}
400

它是说作为参数给出的服务器名,而不是实际的引号“作为参数给出的服务器名”。

0 个答案:

没有答案