ServerCreate

(Difference between revisions)
Jump to: navigation, search
(JSON)
Line 1: Line 1:
This operation will create a new server. The server creation is asynchronous, the progress can be checked with the URL in the response Location header or the self link in the body.
+
This operation will create a new server. Server creation is asynchronous, the progress can be checked with the URL in the response Location header or the self link in the body.
  
 
='''POST''' /servers=
 
='''POST''' /servers=
This operation will create a new server. The server creation is asynchronous, the progress can be checked with the URL in the response Location header or the self link in the body.
+
This operation will create a new server. Server creation is asynchronous, the progress can be checked with the URL in the response Location header or the self link in the body.
  
 
== Parameters ==
 
== Parameters ==
No parameters
 
 
 
=== JSON ===
 
=== JSON ===
<big><source lang="javascript">
+
<nowiki>
 
{
 
{
 
   "server":{
 
   "server":{
 
       "name":"{display_server_name}",
 
       "name":"{display_server_name}",
 
       "imageRef":"http://{server_name}/images/{image_id}/",
 
       "imageRef":"http://{server_name}/images/{image_id}/",
       "flavorRef":"http://{server_name}/flavors/{flavor_id}/"
+
       "flavorRef":"http://{server_name}/flavors/{flavor_id}/",
 +
      "adminPass":"{initial_password}"
 
   }
 
   }
 
}
 
}
</source></big>
+
</nowiki>
  
 
; name - ''string''
 
; name - ''string''
Line 26: Line 25:
 
; flavorRef - ''string''
 
; flavorRef - ''string''
 
: Absolute URL of the [[Flavor]] to use
 
: Absolute URL of the [[Flavor]] to use
 +
 +
; adminPass - ''string''
 +
: Initial admin password. If not specified, the automatically generated password would be returned.
  
 
== Result ==
 
== Result ==
 
=== JSON ===
 
=== JSON ===
<big><source lang="javascript">
+
<nowiki>
 
{
 
{
 
   "server":{
 
   "server":{
Line 78: Line 80:
 
       "id":"{server_id}",
 
       "id":"{server_id}",
 
       "name":"{display_server_name}",
 
       "name":"{display_server_name}",
 +
      "adminPass": "{initial_password}"
 
       "created":"",
 
       "created":"",
 
       "tenantId":null,
 
       "tenantId":null,
Line 84: Line 87:
 
       "progress":0,
 
       "progress":0,
 
       "metadata":{
 
       "metadata":{
       }
+
       },
 
   }
 
   }
 
}
 
}
</source></big>
+
</nowiki>
* When a server is still pending (has not completed the provisioning process), the creation timestamp and hostId that are returned will be empty string.
+
* When a server is in pending status (has not completed the provisioning process), the creation timestamp and hostId that are returned will be empty strings.
 
==== server ====
 
==== server ====
 
; id - ''string''
 
; id - ''string''
Line 116: Line 119:
 
; progress - ''number''
 
; progress - ''number''
 
: The progress of the current this server while in the BUILD status. The value is in the range of 0 - 100, but currently will only even be 0, 50, 100.
 
: The progress of the current this server while in the BUILD status. The value is in the range of 0 - 100, but currently will only even be 0, 50, 100.
 +
 +
; adminPass - ''string''
 +
: The admin password. Not null only in the creating server response.
  
 
; metadata - ''object''
 
; metadata - ''object''
Line 248: Line 254:
 
           "id": "167",  
 
           "id": "167",  
 
           "name": "test_server_create",  
 
           "name": "test_server_create",  
 +
          "adminPass": "{auto_generated_password}"
 
           "created": "",  
 
           "created": "",  
 
           "tenantId": null,  
 
           "tenantId": null,  
Line 257: Line 264:
 
  }
 
  }
 
</nowiki>
 
</nowiki>
* When a server is still pending (has not completed the provisioning process), the creation timestamp and hostId that are returned will be empty string.
+
* When a server is in pending status (has not completed the provisioning process), the creation timestamp and hostId that are returned will be empty strings.
  
  
'''Failure create a server with bad request body'''
+
'''Failure while trying to create a server with a bad request body'''
 
:'''POST''' <nowiki>http://{api_server}/servers</nowiki>
 
:'''POST''' <nowiki>http://{api_server}/servers</nowiki>
  

Revision as of 16:07, 4 July 2012

This operation will create a new server. Server creation is asynchronous, the progress can be checked with the URL in the response Location header or the self link in the body.

Contents

POST /servers

This operation will create a new server. Server creation is asynchronous, the progress can be checked with the URL in the response Location header or the self link in the body.

Parameters

JSON

{
   "server":{
      "name":"{display_server_name}",
      "imageRef":"http://{server_name}/images/{image_id}/",
      "flavorRef":"http://{server_name}/flavors/{flavor_id}/",
      "adminPass":"{initial_password}"
   }
}

name - string
Display name for this server
imageRef - string
Absolute URL of the Image to use
flavorRef - string
Absolute URL of the Flavor to use
adminPass - string
Initial admin password. If not specified, the automatically generated password would be returned.

Result

JSON

{
   "server":{
      "status":"{state_status}",
      "updated":null,
      "hostId":"",
      "addresses":{
         "public":[
            {
               "version":4,
               "addr":"{ip_address}"
            }
         ],
         "private":[
            {
               "version":4,
               "addr":"{ip_address}"
            }
         ]
      },
      "links":[
         {
            "href":"http://{server_name}/servers/{server_id}/",
            "rel":"self"
         }
      ],
      "image":{
         "name":"{display_image_name}",
         "links":[
            {
               "href":"http://{server_name}/images/{image_id}/",
               "rel":"self"
            }
         ],
         "id":"{image_id}"
      },
      "userId":"{user_account_id}",
      "flavor":{
         "name":"{display_flavor_name}",
         "links":[
            {
               "href":"{server_name}/flavors/{flavor_id}/",
               "rel":"self"
            }
         ],
         "id":{flavor_id}
      },
      "id":"{server_id}",
      "name":"{display_server_name}",
      "adminPass": "{initial_password}"
      "created":"",
      "tenantId":null,
      "accessIPv4":"{ip_address}",
      "accessIPv6":null,
      "progress":0,
      "metadata":{
      },
   }
}

  • When a server is in pending status (has not completed the provisioning process), the creation timestamp and hostId that are returned will be empty strings.

server

id - string
Unique identifier for this server.
links - list
Hypermedia for this resource.
status - string
Current state of the server. Values: BUILD, ACTIVE, SUSPENDED, DELETED, UNKNOWN
hostId - string
Id of the physical host this virtual machine is running on.
userId - string
Unique identifier for the owner of this server.
name - string
Display name for this server.
created - string
The date and time this server was created. ISO 8601 format, YYYY-MM-DDTHH:MM:SS.
accessIPv4 - string
The default included public IPv4 address.
progress - number
The progress of the current this server while in the BUILD status. The value is in the range of 0 - 100, but currently will only even be 0, 50, 100.
adminPass - string
The admin password. Not null only in the creating server response.
metadata - object
Unused always an empty object.
tenantId
Unused always always null.
accessIPv6
Unused always null.
updated
Unused always null.

addresses

addresses.public.version - number
IP version of this address. Values: 4
addresses.public.addr = string
Public IP address of this server
addresses.private.version - number
IP version of this address. Values: 4
addresses.private.addr - string
Private IP address of this server

image

image.name - string
The display name of the image this server is based on.
image.links - list
Hypermedia for the image.
image.id - string
Unique identifier for image this server is based on.

flavor

flavor.name - string
The display name of the flavor this server is based on.
flavor.links - list
Hypermedia for the flavor.
flavor.id - string
Unique identifier for flavor this server is based on.

Response Codes

Success
HTTP/1.1 202 Accepted
Request is accepted.
Failure
HTTP/1.1 400 Bad Request
The resource used for creating server is not found.

Examples

Successfully create a new server

POST http://{api_server}/servers

Request Headers:

   Content-Type:application/json
   Charset=UTF-8
   Authorization:Base64-encoded username & password string

Request Body:

 {
    "server" : 
       {
          "flavorRef" : "http://{api_server}//flavors/1",
          "name" : "test_server_create", 
          "imageRef" : "http://{api_server}//images/test_public_image" 
       }
 }
 

Response Code:

HTTP/1.1 202 Accepted

Response Body:

 {
    "server": 
       {
          "status": "BUILD", 
          "updated": null, 
          "hostId": "", 
          "addresses": 
             {
                "public": [
                   {
                      "version": 4, 
                      "addr": "{ip_address}"
                   }
                ],
                "private": [
                   {
                      "version": 4, 
                      "addr":  "{ip_address}"
                   }
                ]
             }, 
          "links": [
             {
                "href": "http://{api_server}/servers/167/", 
                "rel": "self"
             }
          ], 
          "imageRef": 
             {
                "name": "CentOS 5 Plesk", 
                "links": [
                   {
                      "href": "http://{api_server}/images/test_public_image/", 
                      "rel": "self"
                   }
                ],
                "id": "test_public_image"
          }, 
          "userId": "{user_account_id}", 
          "flavorRef":  
             {
                "name": "", 
                "links": [
                   {
                      "href": "http://{api_server}/flavors/1/", 
                      "rel": "self"
                   } 
                ], 
                "id": "1"
             }, 
          "id": "167", 
          "name": "test_server_create", 
          "adminPass": "{auto_generated_password}"
          "created": "", 
          "tenantId": null, 
          "accessIPv4": "{ip_address}", 
          "accessIPv6": null,
          "progress": 0, 
          "metadata": {}
       }
 }

  • When a server is in pending status (has not completed the provisioning process), the creation timestamp and hostId that are returned will be empty strings.


Failure while trying to create a server with a bad request body

POST http://{api_server}/servers

Request Headers:

   Content-Type:application/json
   Charset=UTF-8
   Authorization:Base64-encoded username & password string

Request Body:

 {
    "server" : 
       { 
          "flavorRef" : "http://{api_server}//flavors/{flavor_id}",
          "name" : "{display_server_name}",
          "imageRef" : "http://{api_server}//images/{fake_image_id}"
       }
 }

Response Code:

HTTP/1.1 400 Bad Request

Response Body:

{
   "computeFault": 
      {
         "message": "Bad imageRef", 
         "code": 400, 
         "details": ""
      }
}


blog comments powered by Disqus


Personal tools
Namespaces
Variants
Actions
APIs
Navigation
Toolbox