-
Notifications
You must be signed in to change notification settings - Fork 12
Replica Sets
- /replica_sets POST
- /replica_sets/{repl-id} PUT GET DELETE
- /replica_sets/{repl-id}/members POST GET
- /replica_sets/{repl-id}/members/{member-id} GET PUT DELETE
- /replica_sets/{repl-id}/hosts GET
- /replica_sets/{repl-id}/primary GET
- /replica_sets/{repl-id}/secondaries GET
- /replica_sets/{repl-id}/arbiters GET
- /replica_sets/{repl-id}/hidden GET
ReplicaSet collection
Methods:
-
POST - create and get up new ReplicaSet
Example:
{
"preset": "basic.json", // [optional] - configuration file on server, e.g., configurations/rs/basic.json
"id": "default", // [optional] replica set name
"auth_key": "secret phrase", // [optional] - authentication key
"login": "admin", // [optional] - username for the admin collection
"password": "adminpass", // [optional] - password
"timeout": 300, // [optional] - (default: 300), specify how long, in seconds, a command can take before server times out.
"sslParams": { "sslCAFile" : "~/ca.pem" }, // [optional] - SSL options http://docs.mongodb.org/manual/administration/ssl/
"members": // list of member config
[ {"rsParams": {"hidden":true, "priority":0}, "procParams": {"port":3333, "smallfiles": true}},
{"rsParams":{"arbiterOnly":true}, "procParams": {"port": 3334}},
{"sslParams": { "sslCAFile" : "~/ca.pem" }}, // use default parameters with SSL
{} // use default parameters
]
}
If preset
is specified, parameters are first loaded from the server-side configuration file,
e.g., configurations/rs/basic.json
,
and then updated with any other supplied parameters.
The update is a deep merge so that individual leaf values can be overridden by supplied parameters.
Minimal example:
{
"preset": "basic.json", // [optional] - configuration file on server, e.g., configurations/rs/basic.json
}
In this minimal example, all parameters are supplied from the server-side configuration file.
If id
is not specified in the configuration file, a uuid is generated for the id
.
mongo-orchestration uses specific values for members parameters for best performance:
{"noprealloc": true, "nojournal": true, "smallfiles": true, "oplogSize": 10}
Each of members has two type of parameters:
-
rsParams - replicaset specific parameters
-
procParams - instance's specific parameters
available response representations:
-
200 - Returned if create replica set was successful
Example:
-
{
"auth_key": "secret phrase",
"id": "default",
"members": [{"_id": 0,
"host": "localhost:3333",
"host_id": "0438e87a-3487-47a1-96f7-b95f533b6387"},
{"_id": 1,
"host": "localhost:3334",
"host_id": "aa1acb8c-bc8e-4490-acea-945be43cab04"},
{"_id": 2,
"host": "localhost:1025",
"host_id": "bc0bd1fd-826e-401e-8033-f3203e922621"},
{"_id": 3,
"host": "localhost:1026",
"host_id": "c933572d-4824-42a7-a0d9-3386335a945a"}
],
"orchestration": "rs",
"uri": "localhost:3333,localhost:3334,localhost:1025,localhost:1026/?replicaSet=default",
"mongodb_uri": "mongodb://localhost:3333,localhost:3334,localhost:1025,localhost:1026/?replicaSet=default"}
+ 500 - Returned if create replica set was fail
Parameters:
- repl id - string contains the replica set id
Methods:
-
PUT - Create a new Replica Set with the given
repl-id
.
This functions in much the same way as a POST
request to /replica_sets
, except that the id
is given as part of the URI rather than the request body. The response from the server is identical to that of a POST
to /replica_sets
.
-
GET - info about ReplicaSet object
available response representations:
- 200 - application/json
Example:
{
"auth_key": "secret phrase",
"id": "default",
"members": [{"_id": 0,
"host": "localhost:3333",
"host_id": "0438e87a-3487-47a1-96f7-b95f533b6387"},
{"_id": 1,
"host": "localhost:3334",
"host_id": "aa1acb8c-bc8e-4490-acea-945be43cab04"},
{"_id": 2,
"host": "localhost:1025",
"host_id": "bc0bd1fd-826e-401e-8033-f3203e922621"},
{"_id": 3,
"host": "localhost:1026",
"host_id": "c933572d-4824-42a7-a0d9-3386335a945a"}
]
}
+ 404 - Returned if the ReplicaSet does not exist
-
DELETE - remove ReplicaSet
available response representations:
+ 204 - Returned if delete was successful + 400 - Returned if delete was fail
Parameters:
- repl-id - string contains the replica set id
Methods:
-
POST - add new node to replica set
Example:
{ "rsParams": { "hidden": true, "priority":0 }, "procParams": {"port": 4444} }
*available response representations:*
+ 200 - Returned list of all members
Example:
{"_id": 4,
"host_id": "657b7fce-c8bf-4d61-96a3-0d4325e8ee5d",
"procInfo": {"alive": True,
"name": "/usr/bin/mongod",
"optfile": "/tmp/mongo-GNl2Qp",
"params": {"auth": True,
"dbpath": "/tmp/mongo-Doob71",
"keyFile": "/tmp/mongo-Doob71/key",
"nojournal": True,
"noprealloc": True,
"oplogSize": 10,
"port": 4444,
"replSet": "default",
"smallfiles": True},
"pid": 935},
"rsInfo": {"hidden": True, "primary": False, "secondary": True},
"statuses": {"locked": False, "mongos": False, "primary": False},
"uri": "localhost:4444",
"mongodb_uri": "mongodb://localhost:4444"}
+ 500 - Returned if create replica set was fail
-
GET - return list of ReplicaSets members
available response representations:
+ 200 - application/json Example:
[{"member_id": 0,
"uri": "/servers/0438e87a-3487-47a1-96f7-b95f533b6387"},
{"member_id": 1,
"uri": "/servers/aa1acb8c-bc8e-4490-acea-945be43cab04"},
{"member_id": 2,
"uri": "/servers/bc0bd1fd-826e-401e-8033-f3203e922621"},
{"member_id": 3,
"uri": "/servers/c933572d-4824-42a7-a0d9-3386335a945a"},
{"member_id": 4,
"uri": "/servers/657b7fce-c8bf-4d61-96a3-0d4325e8ee5d"}]
+ 404 - Returned if the ReplicaSet not exist
Parameters:
- repl-id - string contains the replica set id
- member-id - string contains the member id
Methods:
-
GET - info about member
available response representations:
- 200 - application/json Example:
{"_id": 0,
"host_id": "0438e87a-3487-47a1-96f7-b95f533b6387",
"procInfo": {"alive": True,
"name": "/usr/bin/mongod",
"optfile": "/tmp/mongo-uG9WXg",
"params": {"auth": True,
"dbpath": "/tmp/mongo-3OsuAx",
"keyFile": "/tmp/mongo-3OsuAx/key",
"nojournal": True,
"noprealloc": True,
"oplogSize": 10,
"port": 3333,
"replSet": "default",
"smallfiles": True},
"pid": 32607},
"rsInfo": {"hidden": True, "primary": False, "secondary": True},
"statuses": {"locked": False, "mongos": False, "primary": False},
"uri": "localhost:3333",
"mongodb_uri": "mongodb://localhost:3333"}
+ 404 - Returned if the member not exist
-
PUT - change member params
Example:
{"rsParams": {"hidden": false, "priority": 5}}
*available response representations:*
+ 200 - application/json
Example
{"_id": 0,
"host_id": "74c74524-b66b-4f04-bbbc-14d78f86961c",
"procInfo": {"alive": True,
"name": "/usr/bin/mongod",
"optfile": "/tmp/mongo-JV_MLO",
"params": {"auth": True,
"dbpath": "/tmp/mongo-Yn2i5o",
"keyFile": "/tmp/mongo-Yn2i5o/key",
"nojournal": True,
"noprealloc": True,
"oplogSize": 10,
"port": 3333,
"replSet": "default",
"smallfiles": True},
"pid": 2521},
"rsInfo": {"primary": True, "secondary": False},
"statuses": {"locked": False, "mongos": False, "primary": True},
"uri": "localhost:3333",
"mongodb_uri": "mongodb://localhost:3333"}
+ 500 - Returned if fail
-
DELETE - remove member from replica set (stopped instances and erase all data)
available response representations:
+ 204 - Returned if delete was successful + 400 - Returned if delete was fail
Parameters:
Methods:
-
GET - return information about each of this Replica Set's hosts (does not include hidden nodes).
Example: Suppose we create a replica set with the following configuration:
{
"members": [
{"name": "mongo_0"},
{"name": "mongo_1"},
{
"name": "secret_mongo",
"rsParams": {
"hidden": true,
"priority": 0
}
}
]
}
Then a GET to this URI would return the following:
[{"uri": "/servers/79ec2446-c856-4325-ac17-7f17edc54264", "member_id": 0},
{"uri": "/servers/53e9e56d-1922-411e-9a8a-f3cc35308889", "member_id": 1}]
Parameters:
- repl-id - string contains the replica set id
Methods:
-
GET - return info about primary member
Example:
{"_id": 2,
"host_id": "7be3c58c-823e-447d-b2f7-e197a96255b2",
"procInfo": {"alive": True,
"name": "/usr/bin/mongod",
"optfile": "/tmp/mongo-4DfJHa",
"params": {"auth": True,
"dbpath": "/tmp/mongo-Ysc3IY",
"keyFile": "/tmp/mongo-Ysc3IY/key",
"nojournal": True,
"noprealloc": True,
"oplogSize": 10,
"port": 1025,
"replSet": "default",
"smallfiles": True},
"pid": 2613},
"rsInfo": {"primary": True, "secondary": False},
"statuses": {"locked": False, "mongos": False, "primary": True},
"uri": "localhost:1025",
"mongodb_uri": "mongodb://localhost:1025"}
Parameters:
- repl-id - string contains the replica set id
Methods:
-
GET - return list of secondaries hosts
available response representations:
- 200 - application/json Example:
[{"_id": 3,
"host": "localhost:1026",
"host_id": "0606d2e7-0a09-4841-a5a5-95dd44f067cb"},
{"_id": 4,
"host": "localhost:4444",
"host_id": "c1466b1b-7b93-481d-8747-4cf5ea32d3c1"}]
*available response representations:*
+ 200 - if the primary stepdown successfully
+ 500 - if an error occurred when stepdown primary host
Parameters:
- repl-id - string contains the replica set id
Methods:
-
GET - return list of all arbiters for ReplicaSet
available response representations:
- 200 - application/json Example:
[{"_id": 1,
"host": "localhost:3334",
"host_id": "18792b23-269b-4508-a54f-dc47639e26ee"
}]
*available response representations:*
+ 200 - if the primary stepdown successfully
+ 500 - if an error occurred when stepdown primary host
Parameters:
- repl-id - string contains the replica set id
Methods:
-
GET - returl list of all hidden hosts from ReplicaSet
available response representations:- 200 - application/json Example:
[{"_id": 4,
"host": "localhost:4444",
"host_id": "dda3d844-3633-4279-bbf5-a79a58661b60"
}]
*available response representations:*
+ 200 - if the primary stepdown successfully
+ 500 - if an error occurred when stepdown primary host