10gen / mongo-orchestration

Apache License 2.0
7 stars 11 forks source link

Support mixed-version clusters. #181

Closed ajdavis closed 9 years ago

ajdavis commented 9 years ago

This works but I found it extremely hard to test. I think the existing unittests need a lot of work to be able to test this so I fronted Orchestration with Conduction and wrote a jstest:

https://gist.github.com/ajdavis/79265dd22b1318640219

Examples:

POST to /v1/servers:
{"preset": "basic.json", "version": "master"}

POST to /v1/replica_sets:
{
  "preset": "basic.json",
  "version": "master",
  "members": [
            {},
            {"version": "30-release"},
            {"version": "26-release"}]}}

POST to /v1/sharded_clusters:

{
  "preset": "basic.json",
  "id": "my_id",
  "shards": [
    {
      "id": "sh-rs-01",
      "shardParams": {
        "version": "master",
        "members": [{"version": "30-release"}, {}]
      }
    },
    {
      "id": "sh-rs-02",
      "shardParams": {
        "version": "30-release",
        "members": [{}, {"version": "master"}]}}]}