Atšķirības starp "Hostnet OpenStack Cloud Compute API" versijām

No ''Hostnet Wiki''
Pārlēkt uz: navigācija, meklēt
84. rindiņa: 84. rindiņa:
  
 
<syntaxhighlight lang=bash>
 
<syntaxhighlight lang=bash>
~ curl -s $ENDPOINT/servers \
+
curl -s $ENDPOINT/servers \
 
   -X POST \
 
   -X POST \
 
   -H "X-Auth-Token: $OS_TOKEN" \
 
   -H "X-Auth-Token: $OS_TOKEN" \

Versija, kas saglabāta 2017. gada 6. jūnijs, plkst. 14.02

Example with using curl.

Once you have these pieces of information, you can pass them into the SDK by replacing {username}, {password} and {projectID} with your info:

  1. {username}, {password} below are placeholders, do not enclose '{}' when you replace them with actual credentials.
curl -i \
  -H "Content-Type: application/json" \
  -d '
{ "auth": {
    "identity": {
      "methods": [
        "password"
      ],
      "password": {
        "user": {
          "name": "{username}",
          "domain": {
            "id": "default"
          },
          "password": "{password}"
        }
      }
    },
    "scope": {
      "project": {
        "id": "{projectID}"
      }
    }
  }
}' \
  https://identity.api.cloud.hostnet.lv/v3/auth/tokens

# From the resulting, set environment variable as X-Subject-Token value:
export OS_TOKEN="{X-Subject-Token}"
  1. Get service endpoints:
curl -s -X GET https://identity.api.cloud.hostnet.lv/v3/auth/catalog \                        
  -H "X-Auth-Token: $OS_TOKEN" | python -m json.tool

# Set env variable for public compute, image and network endpoints:
export ENDPOINT="{computeURL}"
export IMG_ENDPOINT="{imageURL}"
export NET_ENDPOINT="{networkURL}"
  1. List available flavors:
curl -s -X GET $ENDPOINT/flavors \
  -H "X-Auth-Token: $OS_TOKEN" | python -m json.tool

# Choose a flavor from the list and note its id.
export FLAVOR_ID="{flavorId}"

!!!Full list of flavors!!!

  1. List available images:
curl -s -X GET $IMG_ENDPOINT/v2/images \
  -H "X-Auth-Token: $OS_TOKEN" | python -m json.tool

# Choose an image from the list and note its id.
export IMAGE_ID="{imageId}"
  1. List available networks:
curl -s -X GET $NET_ENDPOINT/v2.0/networks \
  -H "X-Auth-Token: $OS_TOKEN" | python -m json.tool

# Choose an network from the list and note its id.
export NET_ID="{networkId}"
  1. Create server:
curl -s $ENDPOINT/servers \
  -X POST \
  -H "X-Auth-Token: $OS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"server": {"name": "MyNewServer", "imageRef": "e689ffc1-3cd5-4e9e-be6f-240fdaac83fd", "flavorRef": "687f86d4-c227-421e-9c32-43519a2b4363"}}' | python -m json.tool

Response:

{
    "server": {
        "OS-DCF:diskConfig": "MANUAL",
        "adminPass": "iH5oE7DSDzwz",
        "id": "57037ac4-4478-4708-bd17-46273bcc3b06",
        "links": [
            {
                "href": "https://compute.api.cloud.hostnet.lv/v2.1/86320c4cde114196a211b49d3ba9c5f3/servers/57037ac4-4478-4708-bd17-46273bcc3b06",
                "rel": "self"
            },
            {
                "href": "https://compute.api.cloud.hostnet.lv/86320c4cde114196a211b49d3ba9c5f3/servers/57037ac4-4478-4708-bd17-46273bcc3b06",
                "rel": "bookmark"
            }
        ],
        "security_groups": [
            {
                "name": "default"
            }
        ]
    }
}
  1. Nova API documentation: https://developer.openstack.org/api-ref/compute/
  2. Nova Python client: https://github.com/openstack/python-novaclient