diff --git a/README.md b/README.md index be933a4..b06f63b 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,8 @@ ooi is an implementation the Open Grid Forum's [Open Cloud Computing Interface (OCCI)](http://www.occi-wg.org) for [OpenStack](http://www.openstack.org). +Currently, it implements the version 1.2 (OCCI 1.2) of the standard. + The documentation for OOI is available at http://ooi.readthedocs.org/en/latest diff --git a/doc/source/index.rst b/doc/source/index.rst index f663a0c..2a14873 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -4,6 +4,8 @@ Welcome to ooi's documentation! ooi is an implementation the Open Grid Forum's `Open Cloud Computing Interface (OCCI)`_ for `OpenStack`_. +Currently, it implements the version 1.2 (OCCI 1.2) of the standard. + .. _Open Cloud Computing Interface (OCCI): http://www.occi-wg.org .. _OpenStack: http://www.openstack.org diff --git a/doc/source/user/configuration.rst b/doc/source/user/configuration.rst index f568cba..a9e7a67 100644 --- a/doc/source/user/configuration.rst +++ b/doc/source/user/configuration.rst @@ -28,6 +28,7 @@ Moreover, the following options are available: Paste Configuration ******************* +.. _paste-configuration: TL;DR. ------ @@ -65,12 +66,12 @@ by default it will take the ``/v2.1`` value. The next step is to create a ``composite`` section for the OCCI interface. It is needed to duplicate the :ref:`corresponding OpenStack API ``composite``` section, -renaming it to ``occi_api_v11``. Once duplicated, the ``occi`` middleware needs +renaming it to ``occi_api_v12``. Once duplicated, the ``occi`` middleware needs to be added just before the last component of the pipeline. So, in the example above where ``/v2`` has been configured, we need to duplicate the ``[composite:openstack_compute_api_v2]`` as follows:: - [composite:occi_api_11] + [composite:occi_api_12] use = call:nova.api.auth:pipeline_factory noauth = compute_req_id faultwrap sizelimit noauth ratelimit occi osapi_compute_app_v2 keystone = compute_req_id faultwrap sizelimit occi authtoken keystonecontext ratelimit occi osapi_compute_app_v2 @@ -81,7 +82,8 @@ The last step regarding the API configuration is to add it to create the [composite:ooi] use = call:nova.api.openstack.urlmap:urlmap_factory - /occi1.1: occi_api_11 + /occi1.1: occi_api_12 + /occi1.2: occi_api_12 Finally, you need to enable it in the OpenStack nova configuration, so that it is loaded properly. Add ``ooi`` to the ``enabled_apis`` option in the diff --git a/doc/source/user/index.rst b/doc/source/user/index.rst index 10dc8be..f4a2143 100644 --- a/doc/source/user/index.rst +++ b/doc/source/user/index.rst @@ -8,6 +8,7 @@ infrastructure. :maxdepth: 2 installation + upgrade configuration usage pipelines/index diff --git a/doc/source/user/pipelines/juno.rst b/doc/source/user/pipelines/juno.rst index 29b6e52..c47f4b3 100644 --- a/doc/source/user/pipelines/juno.rst +++ b/doc/source/user/pipelines/juno.rst @@ -5,13 +5,14 @@ Juno (2014.2) [composite:ooi] use = call:nova.api.openstack.urlmap:urlmap_factory - /occi1.1: occi_api_11 + /occi1.2: occi_api_12 + /occi1.1: occi_api_12 [filter:occi] paste.filter_factory = ooi.wsgi:OCCIMiddleware.factory openstack_version = /v2.0 - [composite:occi_api_11] + [composite:occi_api_12] [composite:openstack_compute_api_v2] use = call:nova.api.auth:pipeline_factory noauth = compute_req_id faultwrap sizelimit noauth ratelimit occi osapi_compute_app_v2 diff --git a/doc/source/user/pipelines/kilo.rst b/doc/source/user/pipelines/kilo.rst index 394eaef..7e2529b 100644 --- a/doc/source/user/pipelines/kilo.rst +++ b/doc/source/user/pipelines/kilo.rst @@ -5,13 +5,14 @@ Kilo (2015.1) [composite:ooi] use = call:nova.api.openstack.urlmap:urlmap_factory - /occi1.1: occi_api_11 + /occi1.2: occi_api_12 + /occi1.1: occi_api_12 [filter:occi] paste.filter_factory = ooi.wsgi:OCCIMiddleware.factory openstack_version = /v2.1 - [composite:occi_api_11] + [composite:occi_api_12] use = call:nova.api.auth:pipeline_factory_v21 noauth = compute_req_id faultwrap sizelimit noauth occi osapi_compute_app_v21 noauth2 = compute_req_id faultwrap sizelimit noauth2 occi osapi_compute_app_v21 diff --git a/doc/source/user/pipelines/liberty.rst b/doc/source/user/pipelines/liberty.rst index 2952135..c8d9851 100644 --- a/doc/source/user/pipelines/liberty.rst +++ b/doc/source/user/pipelines/liberty.rst @@ -5,13 +5,14 @@ Liberty (12) [composite:ooi] use = call:nova.api.openstack.urlmap:urlmap_factory - /occi1.1: occi_api_11 + /occi1.2: occi_api_12 + /occi1.1: occi_api_12 [filter:occi] paste.filter_factory = ooi.wsgi:OCCIMiddleware.factory openstack_version = /v2.1 - [composite:occi_api_11] + [composite:occi_api_12] use = call:nova.api.auth:pipeline_factory_v21 noauth2 = compute_req_id faultwrap sizelimit noauth2 occi osapi_compute_app_v21 keystone = compute_req_id faultwrap sizelimit authtoken keystonecontext occi osapi_compute_app_v21 diff --git a/doc/source/user/pipelines/mitaka.rst b/doc/source/user/pipelines/mitaka.rst index 9ffa718..1484ad0 100644 --- a/doc/source/user/pipelines/mitaka.rst +++ b/doc/source/user/pipelines/mitaka.rst @@ -5,13 +5,14 @@ Mitaka (13) [composite:ooi] use = call:nova.api.openstack.urlmap:urlmap_factory - /occi1.1: occi_api_11 + /occi1.2: occi_api_12 + /occi1.1: occi_api_12 [filter:occi] paste.filter_factory = ooi.wsgi:OCCIMiddleware.factory openstack_version = /v2.1 - [composite:occi_api_11] + [composite:occi_api_12] use = call:nova.api.auth:pipeline_factory_v21 noauth2 = cors compute_req_id faultwrap sizelimit noauth2 occi osapi_compute_app_v21 keystone = cors compute_req_id faultwrap sizelimit authtoken keystonecontext occi osapi_compute_app_v21 diff --git a/doc/source/user/pipelines/newton.rst b/doc/source/user/pipelines/newton.rst index 1a8b144..de9859e 100644 --- a/doc/source/user/pipelines/newton.rst +++ b/doc/source/user/pipelines/newton.rst @@ -5,13 +5,14 @@ Netwon (14) [composite:ooi] use = call:nova.api.openstack.urlmap:urlmap_factory - /occi1.1: occi_api_11 + /occi1.2: occi_api_12 + /occi1.1: occi_api_12 [filter:occi] paste.filter_factory = ooi.wsgi:OCCIMiddleware.factory openstack_version = /v2.1 - [composite:occi_api_11] + [composite:occi_api_12] use = call:nova.api.auth:pipeline_factory_v21 noauth2 = cors http_proxy_to_wsgi compute_req_id faultwrap sizelimit noauth2 occi osapi_compute_app_v21 keystone = cors http_proxy_to_wsgi compute_req_id faultwrap sizelimit authtoken keystonecontext occi osapi_compute_app_v21 diff --git a/doc/source/user/upgrade.rst b/doc/source/user/upgrade.rst new file mode 100644 index 0000000..58e3546 --- /dev/null +++ b/doc/source/user/upgrade.rst @@ -0,0 +1,9 @@ +Upgrade Notes +============= + +Upgrading from version 0.X.X to version 1.X.X +--------------------------------------------- + +When upgrading from a version in the ``0.X.X`` series to ``1.X.X`` you need to +replace the old ``api-paste.ini`` configuration (as described in :ref:`pipeline-examples`) + diff --git a/doc/source/user/usage.rst b/doc/source/user/usage.rst index 7da2f25..5ba3e8a 100644 --- a/doc/source/user/usage.rst +++ b/doc/source/user/usage.rst @@ -7,7 +7,7 @@ Discovery In order to discover the available resources in the system, OOI provides a view of the relevant resources for its usage:: - curl -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.1/-/ + curl -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.2/-/ It will show the OCCI and OpenStack resources related to OOI. @@ -22,53 +22,53 @@ List compute It lists VMs:: - curl -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.1/compute + curl -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.2/compute It returns a HTTP 200 with output:: - X-OCCI-Location: http://127.0.0.23:8787/occi1.1/compute/703910d7-97f7-4e3e-9243-30830591f624 - X-OCCI-Location: http://127.0.0.23:8787/occi1.1/compute/0ce5df96-7e61-4a8e-b821-9ebb88e77e07 + X-OCCI-Location: http://127.0.0.23:8787/occi1.2/compute/703910d7-97f7-4e3e-9243-30830591f624 + X-OCCI-Location: http://127.0.0.23:8787/occi1.2/compute/0ce5df96-7e61-4a8e-b821-9ebb88e77e07 Show compute ------------ It shows details of a VM:: - curl -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.1/compute/703910d7-97f7-4e3e-9243-30830591f624 + curl -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.2/compute/703910d7-97f7-4e3e-9243-30830591f624 It returns a HTTP 200 with output:: - Category: compute; scheme="http://schemas.ogf.org/occi/infrastructure#"; class="kind"; title="compute resource"; rel="http://schemas.ogf.org/occi/core#resource"; location="http://127.0.0.23:8787/occi1.1/compute/" - Category: 5f4311da-2ee2-47a6-913b-5d8496486c62; scheme="http://schemas.openstack.org/template/os#"; class="mixin"; title="cirros-0.3.4-x86_64-uec"; rel="http://schemas.ogf.org/occi/infrastructure#os_tpl"; location="http://127.0.0.23:8787/occi1.1/os_tpl/5f4311da-2ee2-47a6-913b-5d8496486c62" - Category: 42; scheme="http://schemas.openstack.org/template/resource#"; class="mixin"; title="Flavor: m1.nano"; rel="http://schemas.ogf.org/occi/infrastructure#resource_tpl"; location="http://127.0.0.23:8787/occi1.1/resource_tpl/42" + Category: compute; scheme="http://schemas.ogf.org/occi/infrastructure#"; class="kind"; title="compute resource"; rel="http://schemas.ogf.org/occi/core#resource"; location="http://127.0.0.23:8787/occi1.2/compute/" + Category: 5f4311da-2ee2-47a6-913b-5d8496486c62; scheme="http://schemas.openstack.org/template/os#"; class="mixin"; title="cirros-0.3.4-x86_64-uec"; rel="http://schemas.ogf.org/occi/infrastructure#os_tpl"; location="http://127.0.0.23:8787/occi1.2/os_tpl/5f4311da-2ee2-47a6-913b-5d8496486c62" + Category: 42; scheme="http://schemas.openstack.org/template/resource#"; class="mixin"; title="Flavor: m1.nano"; rel="http://schemas.ogf.org/occi/infrastructure#resource_tpl"; location="http://127.0.0.23:8787/occi1.2/resource_tpl/42" X-OCCI-Attribute: occi.core.title="vm_assig_2" X-OCCI-Attribute: occi.compute.state="inactive" X-OCCI-Attribute: occi.compute.memory=64 X-OCCI-Attribute: occi.compute.cores=1 X-OCCI-Attribute: occi.compute.hostname="vm_assig_2" X-OCCI-Attribute: occi.core.id="703910d7-97f7-4e3e-9243-30830591f624" - Link: ; rel="http://schemas.ogf.org/occi/infrastructure/compute/action#start" - Link: ; rel="http://schemas.ogf.org/occi/infrastructure/compute/action#stop" - Link: ; rel="http://schemas.ogf.org/occi/infrastructure/compute/action#restart" - Link: ; rel="http://schemas.ogf.org/occi/infrastructure/compute/action#suspend" - Link: ; + Link: ; rel="http://schemas.ogf.org/occi/infrastructure/compute/action#start" + Link: ; rel="http://schemas.ogf.org/occi/infrastructure/compute/action#stop" + Link: ; rel="http://schemas.ogf.org/occi/infrastructure/compute/action#restart" + Link: ; rel="http://schemas.ogf.org/occi/infrastructure/compute/action#suspend" + Link: ; rel="http://schemas.ogf.org/occi/infrastructure#network"; - self="http://127.0.0.23:8787/occi1.1/networklink/703910d7-97f7-4e3e-9243-30830591f624_cd48b7dd-9ac8-44fc-aec0-5ea679941ced_12.0.0.87"; + self="http://127.0.0.23:8787/occi1.2/networklink/703910d7-97f7-4e3e-9243-30830591f624_cd48b7dd-9ac8-44fc-aec0-5ea679941ced_12.0.0.87"; occi.networkinterface.mac="fa:16:3e:20:14:f2"; occi.networkinterface.interface="eth0"; occi.networkinterface.state="active"; occi.networkinterface.allocation="dynamic"; occi.networkinterface.address="12.0.0.87"; - occi.core.source="http://127.0.0.23:8787/occi1.1/compute/703910d7-97f7-4e3e-9243-30830591f624"; - occi.core.target="http://127.0.0.23:8787/occi1.1/network/cd48b7dd-9ac8-44fc-aec0-5ea679941ced"; + occi.core.source="http://127.0.0.23:8787/occi1.2/compute/703910d7-97f7-4e3e-9243-30830591f624"; + occi.core.target="http://127.0.0.23:8787/occi1.2/network/cd48b7dd-9ac8-44fc-aec0-5ea679941ced"; occi.core.id="703910d7-97f7-4e3e-9243-30830591f624_cd48b7dd-9ac8-44fc-aec0-5ea679941ced_12.0.0.87" - Link: ; - rel="http://schemas.ogf.org/occi/infrastructure#network"; self="http://127.0.0.23:8787/occi1.1/networklink/703910d7-97f7-4e3e-9243-30830591f624_PUBLIC_11.0.0.44"; + Link: ; + rel="http://schemas.ogf.org/occi/infrastructure#network"; self="http://127.0.0.23:8787/occi1.2/networklink/703910d7-97f7-4e3e-9243-30830591f624_PUBLIC_11.0.0.44"; occi.networkinterface.mac="fa:16:3e:20:14:f2"; occi.networkinterface.interface="eth0"; occi.networkinterface.state="active"; occi.networkinterface.allocation="dynamic"; - occi.networkinterface.address="11.0.0.44"; occi.core.source="http://127.0.0.23:8787/occi1.1/compute/703910d7-97f7-4e3e-9243-30830591f624"; - occi.core.target="http://127.0.0.23:8787/occi1.1/network/PUBLIC"; occi.core.id="703910d7-97f7-4e3e-9243-30830591f624_PUBLIC_11.0.0.44" - Link: ; + occi.networkinterface.address="11.0.0.44"; occi.core.source="http://127.0.0.23:8787/occi1.2/compute/703910d7-97f7-4e3e-9243-30830591f624"; + occi.core.target="http://127.0.0.23:8787/occi1.2/network/PUBLIC"; occi.core.id="703910d7-97f7-4e3e-9243-30830591f624_PUBLIC_11.0.0.44" + Link: ; rel="http://schemas.ogf.org/occi/infrastructure#storage"; - self="https://127.0.0.23:8787/occi1.1/storagelink/703910d7-97f7-4e3e-9243-30830591f624_f551d92d-1992-4625-91ff-5e48d96d03c9"; - occi.storagelink.deviceid="/dev/xvdb"; occi.core.source="https://127.0.0.23:8787/occi1.1/compute/703910d7-97f7-4e3e-9243-30830591f624"; - occi.core.target="https://127.0.0.23:8787/occi1.1/storage/f551d92d-1992-4625-91ff-5e48d96d03c9"; + self="https://127.0.0.23:8787/occi1.2/storagelink/703910d7-97f7-4e3e-9243-30830591f624_f551d92d-1992-4625-91ff-5e48d96d03c9"; + occi.storagelink.deviceid="/dev/xvdb"; occi.core.source="https://127.0.0.23:8787/occi1.2/compute/703910d7-97f7-4e3e-9243-30830591f624"; + occi.core.target="https://127.0.0.23:8787/occi1.2/storage/f551d92d-1992-4625-91ff-5e48d96d03c9"; occi.core.id="703910d7-97f7-4e3e-9243-30830591f624_f551d92d-1992-4625-91ff-5e48d96d03c9" Create compute @@ -76,7 +76,7 @@ Create compute It creates a VM using the default resources, including links to storage and private networks:: - curl -X POST http://127.0.0.23:8787/occi1.1/compute/ \ + curl -X POST http://127.0.0.23:8787/occi1.2/compute/ \ -H 'X-Auth-Token: '$OS_TOKEN \ -H 'Category: compute; scheme="http://schemas.ogf.org/occi/infrastructure#"; class="kind", \ -H 'Category: 5f4311da-2ee2-47a6-913b-5d8496486c62; scheme="http://schemas.openstack.org/template/os#"; class="mixin" \ @@ -85,36 +85,36 @@ It creates a VM using the default resources, including links to storage and priv Also we can specify the network to be linked:: - curl -X POST http://127.0.0.23:8787/occi1.1/compute/ \ + curl -X POST http://127.0.0.23:8787/occi1.2/compute/ \ -H 'X-Auth-Token: '$OS_TOKEN \ -H 'Category: compute; scheme="http://schemas.ogf.org/occi/infrastructure#"; class="kind", \ -H 'Category: 5f4311da-2ee2-47a6-913b-5d8496486c62; scheme="http://schemas.openstack.org/template/os#"; class="mixin" \ -H 'Category: 42; scheme="http://schemas.openstack.org/template/resource#"; class="mixin"' \ -H 'Link: ; rel="http://schemas.ogf.org/occi/infrastructure#network"; \ - occi.core.target="http://127.0.0.23:8787/occi1.1/network/f8186fda-a389-468b-9c13-24b8eda65d77"' \ + occi.core.target="http://127.0.0.23:8787/occi1.2/network/f8186fda-a389-468b-9c13-24b8eda65d77"' \ -H 'Content-Type: text/occi' -H 'X-OCCI-Attribute: occi.core.title="OOI_VM_1"' Links to storage can be also specified:: - curl -X POST http://127.0.0.23:8787/occi1.1/compute/ \ + curl -X POST http://127.0.0.23:8787/occi1.2/compute/ \ -H 'X-Auth-Token: '$OS_TOKEN \ -H 'Category: compute; scheme="http://schemas.ogf.org/occi/infrastructure#"; class="kind" \ -H 'Category: 5f4311da-2ee2-47a6-913b-5d8496486c62; scheme="http://schemas.openstack.org/template/os#"; class="mixin" \ -H 'Category: 42; scheme="http://schemas.openstack.org/template/resource#"; class="mixin"' \ -H 'Link: ; rel="http://schemas.ogf.org/occi/infrastructure#storage"; \ - occi.core.target="http://127.0.0.23:8787/occi1.1/storage/567ed104-3ddf-11e6-ad65-00219702a0b8"' \ + occi.core.target="http://127.0.0.23:8787/occi1.2/storage/567ed104-3ddf-11e6-ad65-00219702a0b8"' \ -H 'Content-Type: text/occi' -H 'X-OCCI-Attribute: occi.core.title="OOI_VM_1"' It returns a HTTP 201 with output:: - X-OCCI-Location: http://127.0.0.23:8787/occi1.1/compute/4a7dc666-33d2-495e-93fe-ccd224c98c11 + X-OCCI-Location: http://127.0.0.23:8787/occi1.2/compute/4a7dc666-33d2-495e-93fe-ccd224c98c11 Delete compute -------------- It deletes a VM, including all the links associated to it:: - curl -X DELETE -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.1/compute/703910d7-97f7-4e3e-9243-30830591f624 + curl -X DELETE -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.2/compute/703910d7-97f7-4e3e-9243-30830591f624 It returns a 204 empty response. @@ -129,39 +129,39 @@ List storage It lists volumes:: - curl -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.1/storage + curl -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.2/storage It returns a HTTP 200 with output:: - X-OCCI-Location: http://127.0.0.23:8787/occi1.1/storage/91bb7532-3ddb-11e6-9770-00219702a0b8 - X-OCCI-Location: http://127.0.0.23:8787/occi1.1/storage/a10abe94-3ddb-11e6-bc5d-00219702a0b8 + X-OCCI-Location: http://127.0.0.23:8787/occi1.2/storage/91bb7532-3ddb-11e6-9770-00219702a0b8 + X-OCCI-Location: http://127.0.0.23:8787/occi1.2/storage/a10abe94-3ddb-11e6-bc5d-00219702a0b8 Show storage ------------ It shows details of a volume:: - curl -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.1/storage/f551d92d-1992-4625-91ff-5e48d96d03c9 + curl -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.2/storage/f551d92d-1992-4625-91ff-5e48d96d03c9 It returns a HTTP 200 with output:: - Category: storage; scheme="http://schemas.ogf.org/occi/infrastructure#"; class="kind"; title="compute resource"; rel="http://schemas.ogf.org/occi/core#resource"; location="http://127.0.0.23:8787/occi1.1/storage/" + Category: storage; scheme="http://schemas.ogf.org/occi/infrastructure#"; class="kind"; title="compute resource"; rel="http://schemas.ogf.org/occi/core#resource"; location="http://127.0.0.23:8787/occi1.2/storage/" X-OCCI-Attribute: occi.storage.state="online" X-OCCI-Attribute: occi.core.id="f551d92d-1992-4625-91ff-5e48d96d03c9" X-OCCI-Attribute: occi.storage.size=1 X-OCCI-Attribute: occi.core.title="vol1" - Link: ; rel="http://schemas.ogf.org/occi/infrastructure/storage/action#online" - Link: ; rel="http://schemas.ogf.org/occi/infrastructure/storage/action#offline" - Link: ; rel="http://schemas.ogf.org/occi/infrastructure/storage/action#backup" - Link: ; rel="http://schemas.ogf.org/occi/infrastructure/storage/action#snapshot" - Link: ; rel="http://schemas.ogf.org/occi/infrastructure/storage/action#resize" + Link: ; rel="http://schemas.ogf.org/occi/infrastructure/storage/action#online" + Link: ; rel="http://schemas.ogf.org/occi/infrastructure/storage/action#offline" + Link: ; rel="http://schemas.ogf.org/occi/infrastructure/storage/action#backup" + Link: ; rel="http://schemas.ogf.org/occi/infrastructure/storage/action#snapshot" + Link: ; rel="http://schemas.ogf.org/occi/infrastructure/storage/action#resize" Delete storage -------------- It deletes a volume, including all the links associated to it:: - curl -X DELETE -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.1/storage/f551d92d-1992-4625-91ff-5e48d96d03c9 + curl -X DELETE -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.2/storage/f551d92d-1992-4625-91ff-5e48d96d03c9 It returns a 204 empty response. @@ -175,26 +175,26 @@ List storage links It lists links between VMs and volumes:: - curl -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.1/storagelink + curl -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.2/storagelink It returns a HTTP 200 with output:: - X-OCCI-Location: http://127.0.0.23:8787/occi1.1/storagelink/8a97b403-3ec6-4002-988b-1f34dd836eff_f551d92d-1992-4625-91ff-5e48d96d03c9 - X-OCCI-Location: http://127.0.0.23:8787/occi1.1/storagelink/e9bf4d1e-3dde-11e6-8479-00219702a0b8_f382628c-3dde-11e6-9697-00219702a0b8 + X-OCCI-Location: http://127.0.0.23:8787/occi1.2/storagelink/8a97b403-3ec6-4002-988b-1f34dd836eff_f551d92d-1992-4625-91ff-5e48d96d03c9 + X-OCCI-Location: http://127.0.0.23:8787/occi1.2/storagelink/e9bf4d1e-3dde-11e6-8479-00219702a0b8_f382628c-3dde-11e6-9697-00219702a0b8 Show storage link ----------------- It shows the storage attachemet featuresr:: - curl -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.1/storagelink/8a97b403-3ec6-4002-988b-1f34dd836eff_f551d92d-1992-4625-91ff-5e48d96d03c9 + curl -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.2/storagelink/8a97b403-3ec6-4002-988b-1f34dd836eff_f551d92d-1992-4625-91ff-5e48d96d03c9 It returns a HTTP 200 with output:: - Category: storagelink; scheme="http://schemas.ogf.org/occi/infrastructure#"; class="kind"; title="storage link resource"; rel="http://schemas.ogf.org/occi/core#link"; location="http://127.0.0.23:8787/occi1.1/storagelink/" + Category: storagelink; scheme="http://schemas.ogf.org/occi/infrastructure#"; class="kind"; title="storage link resource"; rel="http://schemas.ogf.org/occi/core#link"; location="http://127.0.0.23:8787/occi1.2/storagelink/" X-OCCI-Attribute: occi.storagelink.deviceid="/dev/xvdb" - X-OCCI-Attribute: occi.core.source="http://127.0.0.23:8787/occi1.1/compute/8a97b403-3ec6-4002-988b-1f34dd836eff" - X-OCCI-Attribute: occi.core.target="http://127.0.0.23:8787/occi1.1/storage/f551d92d-1992-4625-91ff-5e48d96d03c9" + X-OCCI-Attribute: occi.core.source="http://127.0.0.23:8787/occi1.2/compute/8a97b403-3ec6-4002-988b-1f34dd836eff" + X-OCCI-Attribute: occi.core.target="http://127.0.0.23:8787/occi1.2/storage/f551d92d-1992-4625-91ff-5e48d96d03c9" X-OCCI-Attribute: occi.core.id="8a97b403-3ec6-4002-988b-1f34dd836eff_f551d92d-1992-4625-91ff-5e48d96d03c9" Create storage link @@ -202,22 +202,22 @@ Create storage link It allows you to attach volumes to VMs:: - curl -X POST http://127.0.0.23:8787/occi1.1/storagelink/ \ + curl -X POST http://127.0.0.23:8787/occi1.2/storagelink/ \ -H 'X-Auth-Token: '$OS_TOKEN \ -H 'Content-Type: text/occi' \ -H 'Category: storagelink;scheme="http://schemas.ogf.org/occi/infrastructure#";class="kind";' \ - -H 'X-OCCI-Attribute: occi.core.target=/occi1.1/storage/f551d92d-1992-4625-91ff-5e48d96d03c9, \ - occi.core.source="/occi1.1/compute/8a97b403-3ec6-4002-988b-1f34dd836eff"' + -H 'X-OCCI-Attribute: occi.core.target=/occi1.2/storage/f551d92d-1992-4625-91ff-5e48d96d03c9, \ + occi.core.source="/occi1.2/compute/8a97b403-3ec6-4002-988b-1f34dd836eff"' It returns a HTTP 200 with output:: - http://127.0.0.23:8787/occi1.1/storagelink/8a97b403-3ec6-4002-988b-1f34dd836eff_f551d92d-1992-4625-91ff-5e48d96d03c9 + http://127.0.0.23:8787/occi1.2/storagelink/8a97b403-3ec6-4002-988b-1f34dd836eff_f551d92d-1992-4625-91ff-5e48d96d03c9 Delete storage link ------------------- It detaches a volume from VM:: - curl -X DELETE -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.1/storagelink/8a97b403-3ec6-4002-988b-1f34dd836eff_f551d92d-1992-4625-91ff-5e48d96d03c9 + curl -X DELETE -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.2/storagelink/8a97b403-3ec6-4002-988b-1f34dd836eff_f551d92d-1992-4625-91ff-5e48d96d03c9 It returns a 204 empty response. @@ -232,26 +232,26 @@ List networks It lists all networks available for connecting virtual machines:: - curl -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.1/network + curl -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.2/network It returns a HTTP 200 with output:: - X-OCCI-Location: http://127.0.0.23:8787/occi1.1/network/2c9868b4-f71a-45d2-ba8c-dbf42f0b3120 - X-OCCI-Location: http://127.0.0.23:8787/occi1.1/network/4213c7ef-68d4-42e8-a3cd-1c5bab3abe6 - X-OCCI-Location: http://127.0.0.23:8787/occi1.1/network/PUBLIC + X-OCCI-Location: http://127.0.0.23:8787/occi1.2/network/2c9868b4-f71a-45d2-ba8c-dbf42f0b3120 + X-OCCI-Location: http://127.0.0.23:8787/occi1.2/network/4213c7ef-68d4-42e8-a3cd-1c5bab3abe6 + X-OCCI-Location: http://127.0.0.23:8787/occi1.2/network/PUBLIC Show network ------------ It shows the network features:: - curl -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.1/network/b8a3d813-65da-4910-a80c-f97b4ba31fd4 + curl -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.2/network/b8a3d813-65da-4910-a80c-f97b4ba31fd4 It returns a HTTP 200 with output:: Category: network; scheme="http://schemas.ogf.org/occi/infrastructure#"; class="kind"; title="network resource"; - rel="http://schemas.ogf.org/occi/core#resource"; location="http://127.0.0.23:8787/occi1.1/network/" + rel="http://schemas.ogf.org/occi/core#resource"; location="http://127.0.0.23:8787/occi1.2/network/" Category: ipnetwork; scheme="http://schemas.ogf.org/occi/infrastructure/network#"; class="mixin"; title="IP Networking Mixin" Category: osnetwork; scheme="http://schemas.openstack.org/infrastructure/network#"; class="mixin"; @@ -261,9 +261,9 @@ It returns a HTTP 200 with output:: X-OCCI-Attribute: occi.core.title="CommandLineOCCI" X-OCCI-Attribute: occi.network.gateway="20.0.0.1" X-OCCI-Attribute: occi.core.id="4a7dc666-33d2-495e-93fe-ccd224c98c11" - Link: ; + Link: ; rel="http://schemas.ogf.org/occi/infrastructure/network/action#up" - Link: ; + Link: ; rel="http://schemas.ogf.org/occi/infrastructure/network/action#down" Create network @@ -271,7 +271,7 @@ Create network It creates a network:: - curl -X POST http://127.0.0.23:8787/occi1.1/network/ \ + curl -X POST http://127.0.0.23:8787/occi1.2/network/ \ -H 'X-Auth-Token: '$OS_TOKEN \ -H 'Category: network; scheme="http://schemas.ogf.org/occi/infrastructure#"; class="kind", \ ipnetwork; scheme="http://schemas.ogf.org/occi/infrastructure/network#"; class="mixin"' \ @@ -280,14 +280,14 @@ It creates a network:: It returns a HTTP 201 with output:: - X-OCCI-Location: http://127.0.0.23:8787/occi1.1/network/4a7dc666-33d2-495e-93fe-ccd224c98c11 + X-OCCI-Location: http://127.0.0.23:8787/occi1.2/network/4a7dc666-33d2-495e-93fe-ccd224c98c11 Delete network -------------- It deletes a network:: - curl -X DELETE -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.1/network/cb94496e-7e8e-4cb6-841d-30f38bc375e6 + curl -X DELETE -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.2/network/cb94496e-7e8e-4cb6-841d-30f38bc375e6 It returns a 204 empty response. @@ -302,12 +302,12 @@ List network links It lists links between VMs and networks:: - curl -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.1/networklink + curl -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.2/networklink It returns a HTTP 200 with output:: - X-OCCI-Location: http://127.0.0.23:8787/occi1.1/networklink/9524a622-5d1a-4c7c-bb83-e0d539e2c69b_PUBLIC_192.168.1.132 - X-OCCI-Location: http://127.0.0.23:8787/occi1.1/networklink/703910d7-97f7-4e3e-9243-30830591f624_cd48b7dd-9ac8-44fc-aec0-5ea679941ced_12.0.0.87 + X-OCCI-Location: http://127.0.0.23:8787/occi1.2/networklink/9524a622-5d1a-4c7c-bb83-e0d539e2c69b_PUBLIC_192.168.1.132 + X-OCCI-Location: http://127.0.0.23:8787/occi1.2/networklink/703910d7-97f7-4e3e-9243-30830591f624_cd48b7dd-9ac8-44fc-aec0-5ea679941ced_12.0.0.87 Show network link ----------------- @@ -315,13 +315,13 @@ Show network link It shows the network link features. It could be with a private or public network. In case of private network:: - curl -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.1/networklink/703910d7-97f7-4e3e-9243-30830591f624_cd48b7dd-9ac8-44fc-aec0-5ea679941ced_12.0.0.87 + curl -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.2/networklink/703910d7-97f7-4e3e-9243-30830591f624_cd48b7dd-9ac8-44fc-aec0-5ea679941ced_12.0.0.87 It returns a HTTP 200 with output:: - curl -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.1/networklink/703910d7-97f7-4e3e-9243-30830591f624_cd48b7dd-9ac8-44fc-aec0-5ea679941ced_12.0.0.87 + curl -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.2/networklink/703910d7-97f7-4e3e-9243-30830591f624_cd48b7dd-9ac8-44fc-aec0-5ea679941ced_12.0.0.87 Category: networkinterface; scheme="http://schemas.ogf.org/occi/infrastructure#"; class="kind"; \ - title="network link resource"; rel="http://schemas.ogf.org/occi/core#link"; location="http://127.0.0.23:8787/occi1.1/networklink/" \ + title="network link resource"; rel="http://schemas.ogf.org/occi/core#link"; location="http://127.0.0.23:8787/occi1.2/networklink/" \ Category: ipnetworkinterface; scheme="http://schemas.ogf.org/occi/infrastructure/networkinterface#"; \ class="mixin"; title="IP Network interface Mixin" X-OCCI-Attribute: occi.networkinterface.mac="fa:16:3e:20:14:f2" @@ -329,27 +329,27 @@ It returns a HTTP 200 with output:: X-OCCI-Attribute: occi.networkinterface.state="active" X-OCCI-Attribute: occi.networkinterface.allocation="dynamic" X-OCCI-Attribute: occi.networkinterface.address="12.0.0.87" - X-OCCI-Attribute: occi.core.source="http://127.0.0.23:8787/occi1.1/compute/703910d7-97f7-4e3e-9243-30830591f624" - X-OCCI-Attribute: occi.core.target="http://127.0.0.23:8787/occi1.1/network/cd48b7dd-9ac8-44fc-aec0-5ea679941ced" + X-OCCI-Attribute: occi.core.source="http://127.0.0.23:8787/occi1.2/compute/703910d7-97f7-4e3e-9243-30830591f624" + X-OCCI-Attribute: occi.core.target="http://127.0.0.23:8787/occi1.2/network/cd48b7dd-9ac8-44fc-aec0-5ea679941ced" X-OCCI-Attribute: occi.core.id="703910d7-97f7-4e3e-9243-30830591f624_cd48b7dd-9ac8-44fc-aec0-5ea679941ced_12.0.0.87" In case of public network:: - curl -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.1/networklink/4f11383c-b104-40d4-a17c-d223e450d15d_b8a3d813-65da-4910-a80c-f97b4ba31fd4_20.0.0.5 + curl -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.2/networklink/4f11383c-b104-40d4-a17c-d223e450d15d_b8a3d813-65da-4910-a80c-f97b4ba31fd4_20.0.0.5 It returns a HTTP 200 with output:: Category: networkinterface; scheme="http://schemas.ogf.org/occi/infrastructure#"; class="kind"; title="network link resource"; rel="http://schemas.ogf.org/occi/core#link"; - location="http://127.0.0.23:8787/occi1.1/networklink/" + location="http://127.0.0.23:8787/occi1.2/networklink/" Category: ipnetworkinterface; scheme="http://schemas.ogf.org/occi/infrastructure/networkinterface#"; class="mixin"; title="IP Network interface Mixin" X-OCCI-Attribute: occi.networkinterface.mac="fa:16:3e:81:52:b9" X-OCCI-Attribute: occi.networkinterface.interface="eth0" X-OCCI-Attribute: occi.networkinterface.state="active" X-OCCI-Attribute: occi.networkinterface.allocation="dynamic" X-OCCI-Attribute: occi.networkinterface.address="20.0.0.5" - X-OCCI-Attribute: occi.core.source="http://127.0.0.23:8787/occi1.1/compute/4f11383c-b104-40d4-a17c-d223e450d15d" - X-OCCI-Attribute: occi.core.target="http://127.0.0.23:8787/occi1.1/network/b8a3d813-65da-4910-a80c-f97b4ba31fd4" + X-OCCI-Attribute: occi.core.source="http://127.0.0.23:8787/occi1.2/compute/4f11383c-b104-40d4-a17c-d223e450d15d" + X-OCCI-Attribute: occi.core.target="http://127.0.0.23:8787/occi1.2/network/b8a3d813-65da-4910-a80c-f97b4ba31fd4" X-OCCI-Attribute: occi.core.id="4f11383c-b104-40d4-a17c-d223e450d15d_b8a3d813-65da-4910-a80c-f97b4ba31fd4_20.0.0.5" Create network link @@ -358,27 +358,27 @@ Create network link It allows you to create link between VMs and networks. It could be with a private or public network: In case of private network:: - curl -X POST http://127.0.0.23:8787/occi1.1/networklink/ \ + curl -X POST http://127.0.0.23:8787/occi1.2/networklink/ \ -H 'X-Auth-Token: '$OS_TOKEN \ -H 'Category: networkinterface; scheme="http://schemas.ogf.org/occi/infrastructure#"; class="kind"' \ -H 'Content-Type: text/occi' \ - -H 'X-OCCI-Attribute: occi.core.target=http://127.0.0.23:8787/occi1.1/network/PUBLIC, \ - occi.core.source=http://127.0.0.23:8787/occi1.1/compute/cb83a70a-5202-4b9e-a525-649c72005300' + -H 'X-OCCI-Attribute: occi.core.target=http://127.0.0.23:8787/occi1.2/network/PUBLIC, \ + occi.core.source=http://127.0.0.23:8787/occi1.2/compute/cb83a70a-5202-4b9e-a525-649c72005300' In case of private network:: - curl -X POST http://127.0.0.23:8787/occi1.1/networklink/ \ + curl -X POST http://127.0.0.23:8787/occi1.2/networklink/ \ -H 'X-Auth-Token: '$OS_TOKEN \ -H 'Category: networkinterface; scheme="http://schemas.ogf.org/occi/infrastructure#"; class="kind"' \ -H 'Content-Type: text/occi' \ - -H 'X-OCCI-Attribute: occi.core.target=http://127.0.0.23:8787/occi1.1/network/d856c264-1999-489d-888e-f84db9093979, \ - occi.core.source=http://127.0.0.23:8787/occi1.1/compute/cb83a70a-5202-4b9e-a525-649c72005300' + -H 'X-OCCI-Attribute: occi.core.target=http://127.0.0.23:8787/occi1.2/network/d856c264-1999-489d-888e-f84db9093979, \ + occi.core.source=http://127.0.0.23:8787/occi1.2/compute/cb83a70a-5202-4b9e-a525-649c72005300' Delete network link ------------------- It deletes a network link:: - curl -X DELETE -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.1/networklink/703910d7-97f7-4e3e-9243-30830591f624_cd48b7dd-9ac8-44fc-aec0-5ea679941ced_12.0.0.87 + curl -X DELETE -H "X-Auth-token: "$OS_TOKEN http://127.0.0.23:8787/occi1.2/networklink/703910d7-97f7-4e3e-9243-30830591f624_cd48b7dd-9ac8-44fc-aec0-5ea679941ced_12.0.0.87 It returns a 204 empty response.