server groups - dianaclarke/openstack-notes GitHub Wiki

  • Play with server groups for the first time
$ nova server-group-create RED affinity
+--------------------------------------+------+----------------------------------+----------------------------------+---------------+---------+----------+
| Id                                   | Name | Project Id                       | User Id                          | Policies      | Members | Metadata |
+--------------------------------------+------+----------------------------------+----------------------------------+---------------+---------+----------+
| 71bbcd7f-b953-4cbf-ba63-9866ac1fc5e9 | RED  | 2cc8a61bd7ae442d9f8ec97ec767d960 | d193e7011367424ba891968f749024d6 | [u'affinity'] | []      | {}       |
+--------------------------------------+------+----------------------------------+----------------------------------+---------------+---------+----------+

$ nova server-group-create BLUE affinity
+--------------------------------------+------+----------------------------------+----------------------------------+---------------+---------+----------+
| Id                                   | Name | Project Id                       | User Id                          | Policies      | Members | Metadata |
+--------------------------------------+------+----------------------------------+----------------------------------+---------------+---------+----------+
| b9e343a6-58f3-4d5d-9815-ef640eda4893 | BLUE | 2cc8a61bd7ae442d9f8ec97ec767d960 | d193e7011367424ba891968f749024d6 | [u'affinity'] | []      | {}       |
+--------------------------------------+------+----------------------------------+----------------------------------+---------------+---------+----------+
$ curl -s -H "X-Auth-Token:7044770618054f70be9d16f1a1922e1d" http://192.168.122.172:8774/v2.1/2cc8a61bd7ae442d9f8ec97ec767d960/os-server-groups | python -m json.tool
{
    "server_groups": [
        {
            "id": "71bbcd7f-b953-4cbf-ba63-9866ac1fc5e9",
            "members": [],
            "metadata": {},
            "name": "RED",
            "policies": [
                "affinity"
            ]
        },
        {
            "id": "b9e343a6-58f3-4d5d-9815-ef640eda4893",
            "members": [],
            "metadata": {},
            "name": "BLUE",
            "policies": [
                "affinity"
            ]
        }
    ]
}
  • Does paging work?
$ curl -s -H "X-Auth-Token:7044770618054f70be9d16f1a1922e1d" http://192.168.122.172:8774/v2.1/2cc8a61bd7ae442d9f8ec97ec767d960/os-server-groups?limit=1 | python -m json.tool
{
    "server_groups": [
        {
            "id": "71bbcd7f-b953-4cbf-ba63-9866ac1fc5e9",
            "members": [],
            "metadata": {},
            "name": "RED",
            "policies": [
                "affinity"
            ]
        }
    ]
}

  • How do you get page 2?

    • It looks like this endpoint is using offset
  • Add another server group:

$ nova server-group-create GREEN affinity
+--------------------------------------+-------+----------------------------------+----------------------------------+---------------+---------+----------+
| Id                                   | Name  | Project Id                       | User Id                          | Policies      | Members | Metadata |
+--------------------------------------+-------+----------------------------------+----------------------------------+---------------+---------+----------+
| 06bcad69-1538-40ec-949b-d8d84a901428 | GREEN | 2cc8a61bd7ae442d9f8ec97ec767d960 | d193e7011367424ba891968f749024d6 | [u'affinity'] | []      | {}       |
+--------------------------------------+-------+----------------------------------+----------------------------------+---------------+---------+----------+
  • Test offset:
$ curl -s -H "X-Auth-Token:7044770618054f70be9d16f1a1922e1d" http://192.168.122.172:8774/v2.1/2cc8a61bd7ae442d9f8ec97ec767d960/os-server-groups | python -m json.tool
{
    "server_groups": [
        {
            "id": "71bbcd7f-b953-4cbf-ba63-9866ac1fc5e9",
            "members": [],
            "metadata": {},
            "name": "RED",
            "policies": [
                "affinity"
            ]
        },
        {
            "id": "b9e343a6-58f3-4d5d-9815-ef640eda4893",
            "members": [],
            "metadata": {},
            "name": "BLUE",
            "policies": [
                "affinity"
            ]
        },
        {
            "id": "06bcad69-1538-40ec-949b-d8d84a901428",
            "members": [],
            "metadata": {},
            "name": "GREEN",
            "policies": [
                "affinity"
            ]
        }
    ]
}
$ curl -s -H "X-Auth-Token:7044770618054f70be9d16f1a1922e1d" http://192.168.122.172:8774/v2.1/2cc8a61bd7ae442d9f8ec97ec767d960/os-server-groups?offset=1 | python -m json.tool
{
    "server_groups": [
        {
            "id": "b9e343a6-58f3-4d5d-9815-ef640eda4893",
            "members": [],
            "metadata": {},
            "name": "BLUE",
            "policies": [
                "affinity"
            ]
        },
        {
            "id": "06bcad69-1538-40ec-949b-d8d84a901428",
            "members": [],
            "metadata": {},
            "name": "GREEN",
            "policies": [
                "affinity"
            ]
        }
    ]
}
$ curl -s -H "X-Auth-Token:7044770618054f70be9d16f1a1922e1d" http://192.168.122.172:8774/v2.1/2cc8a61bd7ae442d9f8ec97ec767d960/os-server-groups?offset=2 | python -m json.tool
{
    "server_groups": [
        {
            "id": "06bcad69-1538-40ec-949b-d8d84a901428",
            "members": [],
            "metadata": {},
            "name": "GREEN",
            "policies": [
                "affinity"
            ]
        }
    ]
}
$ curl -s -H "X-Auth-Token:7044770618054f70be9d16f1a1922e1d" http://192.168.122.172:8774/v2.1/2cc8a61bd7ae442d9f8ec97ec767d960/os-server-groups?offset=3 | python -m json.tool
{
    "server_groups": []
}
$ curl -s -H "X-Auth-Token:7044770618054f70be9d16f1a1922e1d" "http://192.168.122.172:8774/v2.1/2cc8a61bd7ae442d9f8ec97ec767d960/os-server-groups?offset=1&limit=1" | python -m json.tool
{
    "server_groups": [
        {
            "id": "b9e343a6-58f3-4d5d-9815-ef640eda4893",
            "members": [],
            "metadata": {},
            "name": "BLUE",
            "policies": [
                "affinity"
            ]
        }
    ]
}