Open Nebula Enactor Adaptor

The OpenNebula adaptor is an OCCI adaptor. In the case of the OCCI adaptors, the Enactor Core receives OCCI requests from the Resource Manager and transforms them onto suitable OCCI requests for the respective testbeds. This transformation is needed because most the OCCI specification is not stable and different implementations can have important differences. The transformed request is then sent back to the testbeds and when the response is received, it is then transformed into BonFIRE OCCI interface and passed to the Resource Manager.

The following document details one by one each of the different messages that can be sent through the Enactor Core to the OpenNebula detailing their transformations.

This documents describes the translations that the Enactor performs from BonFIRE OCCI to each one of the OCCI implementations specific for each one of the testbeds.

Note

It is important to mention that all urls with this format: /locations/{{location_id}}/{{resources}}/{{resource_id}} will be transformed inside the OCCI message to https://{{url_to_the_testbed_location}}/{{resource}}//{{resource_id}} (yes, there is a conversion from plural: resources to singular: resource)

Configurations / Instance Types

List of available configurations / instance types

The Resource Manager sends the following request to the Enactor Core

GET path/to/enactor/locations/{{location_id}}/configurations
Accept: application/vnd.bonfire+xml
X-Bonfire-Asserted-Id: {{user_id}}
X-Bonfire-Asserted-Groups: {{comma_separated_list_of_user_groups}}

The Enactor Core sends the following request to the ONE site

accept:*/*
x_bonfire_asserted_id:{{user_id}}
x_bonfire_asserted_groups: {{comma_separated_list_of_user_groups}}

GET https://{{url_to_ONE_testbed}}/compute/types

It gets the following response from the ONE site

200

Content-Type: text/html;charset=utf-8

<ALLOWED_COMPUTE_TYPES>
        <COMPUTE_TYPE>
                <NAME>lite</NAME>
                <MEMORY>256</MEMORY>
                <CPU>0.5</CPU>
        </COMPUTE_TYPE>
        <COMPUTE_TYPE>
                <NAME>medium</NAME>
                <MEMORY>2048</MEMORY>
                <CPU>2</CPU>
        </COMPUTE_TYPE>
        <COMPUTE_TYPE>
                <NAME>small</NAME>
                <MEMORY>1024</MEMORY>
                <CPU>1</CPU>
        </COMPUTE_TYPE>
        <COMPUTE_TYPE>
                <NAME>custom</NAME>
                <MEMORY></MEMORY>
                <CPU></CPU>
        </COMPUTE_TYPE>
</ALLOWED_COMPUTE_TYPES>

The Enactor Core parses this response and sends the following one back to the Resource Manager

 200

 Content-Type: application/vnd.bonfire+xml

 <collection xmlns="http://api.bonfire-project.eu/doc/schemas/occi">
        <items>
                <configuration>
                        <name>lite</name>
                        <memory>256</memory>
                        <cpu>0.5</cpu>
                </configuration>
                <configuration>
                        <name>medium</name>
                        <memory>2048</memory>
                        <cpu>2</cpu>
                </configuration>
                <configuration>
                        <name>small</name>
                        <memory>1024</memory>
                        <cpu>1</cpu>
                </configuration>
                <configuration>
                        <name>custom</nam>
                        <memory />
                        <cpu />
                </configuration>
        </items>
</collection>

Computes

List of available computes

The Resource Manager sends the following request to the Enactor Core

GET path/to/enactor/locations/{{location_id}}/computes
Accept: application/vnd.bonfire+xml
X-Bonfire-Asserted-Id: {{user_id}}
X-Bonfire-Asserted-Groups: {{comma_separated_list_of_user_groups}}

The Enactor Core sends the following request to the ONE site

accept:*/*
x_bonfire_asserted_id:{{user_id}}
x_bonfire_asserted_groups: {{comma_separated_list_of_user_groups}}

GET https://{{url_to_ONE_testbed}}/compute/

It gets the following response from the ONE site

200

Content-Type: text/html;charset=utf-8

<COMPUTE_COLLECTION>
    <COMPUTE href="https://{{url_to_ONE_testbed}}/compute/{{compute_id}}" name="{{compute_name}}"/>
    <COMPUTE href="https://{{url_to_ONE_testbed}}/compute/{{compute_id}}" name="{{compute_name}}"/>
    <COMPUTE href="https://{{url_to_ONE_testbed}}/compute/{{compute_id}}" name="{{compute_name}}"/>
</COMPUTE_COLLECTION>

The Enactor Core parses this response and sends the following one back to the Resource Manager

200

Content-Type: application/vnd.bonfire+xml

<collection xmlns="http://api.bonfire-project.eu/doc/schemas/occi">
    <items>
        <compute href="/locations/{{location_id}}/computes/{{compute_id}}" name="{{compute_name}}" />
        <compute href="/locations/{{location_id}}/computes/{{compute_id}}" name="{{compute_name}}" />
        <compute href="/locations/{{location_id}}/computes/{{compute_id}}" name="{{compute_name}}" />
    </items>
</collection>

List specific compute

The Resource Manager sends the following request to the Enactor Core

Accept: application/vnd.bonfire+xml
X-Bonfire-Asserted-Id: {{user_id}}
X-Bonfire-Asserted-Groups: {{comma_separated_list_of_user_groups}}

GET path/to/enactor/locations/{{location_id}}/computes/{{compute_id}}

The Enactor Core sends the following request to the ONE site

accept:*/*
x_bonfire_asserted_id:{{user_id}}
x_bonfire_asserted_groups: {{comma_separated_list_of_user_groups}}

GET https://{{url_to_ONE_testbed}}/compute/{{compute_id}}

It gets the following response from the ONE site

200

Content-Type: text/html;charset=utf-8

<COMPUTE href="https://{{url_to_ONE_testbed}}/compute/{{compute_id}}">
    <ID>{{compute_id}}</ID>
    <CPU>1</CPU>
    <MEMORY>1024</MEMORY>
    <NAME>Enactor CP</NAME>
    <INSTANCE_TYPE>small</INSTANCE_TYPE>
    <STATE>RUNNING</STATE>
    <DISK id="0">
        <STORAGE href="https://bonfire.epcc.ed.ac.uk:8443/storage/118" name="BonFIRE Debian Squeeze v3"/>
        <TYPE>DISK</TYPE>
        <TARGET>sda</TARGET>
    </DISK>
    <NIC>
        <NETWORK href="https://bonfire.epcc.ed.ac.uk:8443/network/2" name="BonFIRE WAN"/>
        <IP>172.18.6.136</IP>
        <MAC>02:00:ac:12:06:88</MAC>
    </NIC>
    <HOST>vmhost1</HOST>
</COMPUTE>

The Enactor Core parses this response and sends the following one back to the Resource Manager (all OCCI tags are lowercased and to the name the structure -{{experiment_id}}-{{uuid}} is removed in the storages names if necessary)

200

Content-Type: application/vnd.bonfire+xml

<compute xmlns="http://api.bonfire-project.eu/doc/schemas/occi" href="/locations/{{location_id}}/computes/{{compute_id}}">
    <id>{{compute_id}}</id>
    <cpu>1</cpu>
    <memory>1024</memory>
    <name>Enactor CP</name>
    <instance_type>small</instance_type>
    <state>RUNNING</state>
    <disk id="0">
        <storage href="/locations/uk-uedin/storages/118" name="BonFIRE Debian Squeeze v3" />
        <type>DISK</type>
        <target>sda</target>
    </disk>
    <nic>
        <network href="/locations/uk-uedin/networks/2" name="BonFIRE WAN" />
        <ip>172.18.6.136</ip>
        <mac>02:00:ac:12:06:88</mac>
    </nic>
    <host>vmhost1</host>
</compute>

Creating specific compute

The Resource Manager sends the following request to the Enactor Core

 POST path/to/enactor/locations/{{location_id}}/computes
 Accept: application/vnd.bonfire+xml
 X-Bonfire-Asserted-Id: {{user_id}}
 X-Bonfire-Asserted-Groups: {{comma_separated_list_of_user_groups}}
 X-Bonfire-Experiment-Id: {{experiment_id}}

 <compute href='http://api.bonfire-project.eu/locations/{{location_id}}/computes/'>
        {{compute_characteristics}}
</compute>

The Enactor Core sends the following code to ONE (all OCCI is upercased)

POST https://{{url_to_ONE_testbed}}/compute/
accept:*/*
X-Bonfire-Asserted-Id:{{user_id}}
X-Bonfire-Asserted-Groups: {{comma_separated_list_of_user_groups}}

<COMPUTE href="https://{{url_to_ONE_testbed}}/compute">
  {{compute_characteristics}}
</COMPUTE>

ONE returns the following message to the Enactor Core

201

Content-Type: text/html;charset=utf-8

<COMPUTE href="https://{{url_to_ONE_testbed}}/compute/{{compute_id}}">
    <ID>{{compute_id}}</ID>
    {{compute_characteristics}}
</COMPUTE>

The Enactor Core parses this response and sends the following one back to the Resource Manager (all OCCI tags are lowercased and to the name the structure -{{experiment_id}}-{{uuid}} is removed in the storages names if necessary)

201

Content-Type: application/vnd.bonfire+xml

<compute xmlns="http://api.bonfire-project.eu/doc/schemas/occi" href="/locations/{{location_id}}/computes/{{compute_id}}">
    <id>{{compute_id}}</id>
    {{compute_characteristics}}
</compute>

Modification specific compute

The Resource Manager sends the following request to the Enactor Core (only it is possible to change one characteristic of the compute at the same time)

 PUT path/to/enactor/locations/{{location_id}}/computes/{{compute_id}}
 Accept: application/vnd.bonfire+xml
 X-Bonfire-Asserted-Id: {{user_id}}
 X-Bonfire-Asserted-Groups: {{comma_separated_list_of_user_groups}}
 X-Bonfire-Experiment-Id: {{experiment_id}}

 <compute href='http://api.bonfire-project.eu/locations/{{location_id}}/computes/{{compute_id}}'>
        {{compute_changes}}
</compute>

The Enactor Core sends the following code to ONE (all OCCI is upercased)

PUT https://{{url_to_ONE_testbed}}/compute/{{compute_id}}
accept:*/*
X-Bonfire-Asserted-Id:{{user_id}}
X-Bonfire-Asserted-Groups: {{comma_separated_list_of_user_groups}}

<COMPUTE href="https://{{url_to_ONE_testbed}}/compute/{{compute_id}}">
    {{compute_changes}}
</COMPUTE>

ONE returns the following message to the Enactor Core

202

Content-Type: text/html;charset=utf-8

<COMPUTE href="https://{{url_to_ONE_testbed}}/compute/{{compute_id}}">
    <ID>{{compute_id}}</ID>
    {{storage_characteristics}}
</COMPUTE>

The Enactor Core parses this response and sends the following one back to the Resource Manager (all OCCI tags are lowercased)

202

Content-Type: application/vnd.bonfire+xml
<compute xmlns="http://api.bonfire-project.eu/doc/schemas/occi" href="/locations/{{location_id}}/computes/{{compute_id}}">
  {{compute_characteristics_changed}}
</compute>

Deletion specific compute

The Resource Manager sends the following request to the Enactor Core

DELETE path/to/enactor/locations/{{location_id}}/computes/{{compute_id}}
Accept: application/vnd.bonfire+xml
X-Bonfire-Asserted-Id: {{user_id}}
X-Bonfire-Asserted-Groups: {{comma_separated_list_of_user_groups}}
    X-Bonfire-Experiment-Id: {{experiment_id}}

The Enactor sends the following message to ONE

    DELETE https://{{url_to_ONE_testbed}}/compute/{{compute_id}}
Accept: */*
X-Bonfire-Asserted-Id: {{user_id}}
X-Bonfire-Asserted-Groups: {{comma_separated_list_of_user_groups}}
    X-Bonfire-Experiment-Id: {{experiment_id}}

ONE returns the following message to the Enactor Core

204

The Enactor Core parses this response and sends the following one back to the Resource Manager

204

Special PUT modifications for Computes

save_as

When perfoming the save_as of a Compute, the name of the new storage is changed in the same way that it is changed at the creation of a storage. At the end of the new storage name we append the following structure: -{{experiment_id}}-{{uuid}} that it is removed when the message comes back to the Resource Manager

The Resource Manager sends the following request to the Enactor Core

PUT path/to/enactor/locations/{{location_id}}/computes/{{compute_id}}
Accept: application/vnd.bonfire+xml
X-Bonfire-Asserted-Id: {{user_id}}
X-Bonfire-Asserted-Groups: {{comma_separated_list_of_user_groups}}
X-Bonfire-Experiment-Id: {{experiment_id}}

<?xml version="1.0" encoding="UTF-8"?>
<compute xmlns="http://api.bonfire-project.eu/doc/schemas/occi">
  <disk id="0">
    <storage href="/locations/{{location_id}}/storages/{{storage_id}}"/>
    <type>FILE</type>
    <target>sda</target>
    <save_as name="moment"/>
    <groups>dperez</groups>
  </disk>
  <link href="/locations/{{location_id}}" rel="location"/>
</compute>

The Enactor Core sends the following code to ONE (all OCCI is upercased and to the name of the save_as storage it is attached the structure: -{{experiment_id}}-{{uuid}} to avoid the limitation that in ONE storage name have to be unique)

PUT https://{{url_to_ONE_testbed}}/compute/{{compute_id}}
accept:*/*
X-Bonfire-Asserted-Id:{{user_id}}
X-Bonfire-Asserted-Groups: {{comma_separated_list_of_user_groups}}
X-Bonfire-Experiment-Id: {{experiment_id}}

<COMPUTE>
  <DISK id="0">
    <STORAGE href="https://{{url_to_one_host}}/storage/{{storage_id}}" />
    <TYPE>FILE</TYPE>
    <TARGET>sda</TARGET>
    <SAVE_AS name="moment-{{experiment_id}}-{{uuid}}" />
    <GROUPS>dperez</GROUPS>
  </DISK>
</COMPUTE>

ONE returns the following message to the Enactor Core

202

Content-Type: text/html;charset=utf-8

<COMPUTE href="https://{{url_to_one_host}}/compute/{{compute_id}}">
        {{other_original_info_about_the_compute}}
        <DISK id="0">
                <SAVE_AS href="https://{{url_to_one_host}}/storage/{{save_as_storage_id}}"/>
                <STORAGE href="https://{{url_to_one_host}}/storage/{{storage_id}}" name="BonFIRE Debian Squeeze v5"/>
                <TYPE>FILE</TYPE>
                <TARGET>sda</TARGET>
        </DISK>
        {{other_original_info_about_the_compute}}
</COMPUTE>

The Enactor Core parses this response and sends the following one back to the Resource Manager (all OCCI tags are lowercased)

201

Content-Type: application/vnd.bonfire+xml

<compute xmlns="http://api.bonfire-project.eu/doc/schemas/occi" href="/locations/uk-epcc/computes/25134">
  {{other_original_info_about_the_compute}}
  <disk id="0">
    <save_as href="/locations/{{location_id}}/storages/{{save_as_storage_id}}" />
    <storage href="/locations/{{location_id}}/storages/{{storage_id}}" name="BonFIRE Debian Squeeze v5" />
    <type>FILE</type>
    <target>sda</target>
  </disk>
{{other_original_info_about_the_compute}}
</compute>

Storages

List of available storages

The Resource Manager sends the following request to the Enactor Core

GET path/to/enactor/locations/{{location_id}}/storages
Accept: application/vnd.bonfire+xml
X-Bonfire-Asserted-Id: {{user_id}}
X-Bonfire-Asserted-Groups: {{comma_separated_list_of_user_groups}}

The Enactor Core sends the following request to the ONE site

accept:*/*
x_bonfire_asserted_id:{{user_id}}
x_bonfire_asserted_groups: {{comma_separated_list_of_user_groups}}

GET https://{{url_to_ONE_testbed}}/storage/

It gets the following response from the ONE site

200

Content-Type: text/html;charset=utf-8

<STORAGE_COLLECTION>
    <STORAGE href="https://{{url_to_ONE_testbed}}/storage/{{storage_id}}" name="{{storage_name}}"/>
    <STORAGE href="https://{{url_to_ONE_testbed}}/storage/{{storage_id}}" name="{{storage_name}}"/>
    <STORAGE href="https://{{url_to_ONE_testbed}}/storage/{{storage_id}}" name="{{storage_name}}"/>
</STORAGE_COLLECTION>

The Enactor Core parses this response and sends the following one back to the Resource Manager

200

<collection xmlns="http://api.bonfire-project.eu/doc/schemas/occi">
  <items>
    <storage href="/locations/{{location_id}}/storages/{{storage_id}}" name="{{storage_name}}" />
    <storage href="/locations/{{location_id}}/storages/{{storage_id}}" name="{{storage_name}}" />
    <storage href="/locations/{{location_id}}/storages/{{storage_id}}" name="{{storage_name}}" />
  </items>
</collection>

List specific storage

The Resource Manager sends the following request to the Enactor Core

Accept: application/vnd.bonfire+xml
X-Bonfire-Asserted-Id: {{user_id}}
X-Bonfire-Asserted-Groups: {{comma_separated_list_of_user_groups}}

GET path/to/enactor/locations/{{location_id}}/storages/{{storage_id}}

The Enactor Core sends the following request to the ONE site

accept:*/*
x_bonfire_asserted_id:{{user_id}}
x_bonfire_asserted_groups: {{comma_separated_list_of_user_groups}}

GET https://{{url_to_ONE_testbed}}/storage/{{storage_id}}

It gets the following response from the ONE site

200

Content-Type: text/html;charset=utf-8

<STORAGE href="https://{{url_to_ONE_testbed}}/storage/{{storage_id}}">
    <ID>{{storage_id}}</ID>
    <NAME>BonFIRE Debian Squeeze v3</NAME>
    <STATE>USED</STATE>
    <DESCRIPTION>Debian Squeeze created at 2011-11-09, described at http://wiki.bonfire-project.eu/index.php/DebianSqueezeVmi</DESCRIPTION>
    <SIZE>604</SIZE>
    <PUBLIC>YES</PUBLIC>
    <PERSISTENT>NO</PERSISTENT>
</STORAGE>

The Enactor Core parses this response and sends the following one back to the Resource Manager

200

Content-Type: application/vnd.bonfire+xml

<storage xmlns="http://api.bonfire-project.eu/doc/schemas/occi" href="/locations/{{location_id}}/storages/{{storage_id}}">
    <id>{{storage_id}}</id>
    <name>BonFIRE Debian Squeeze v3</name>
    <state>USED</state>
    <description>Debian Squeeze created at 2011-11-09, described at http://wiki.bonfire-project.eu/index.php/DebianSqueezeVmi</description>
    <size>604</size>
    <public>YES</public>
    <persistent>NO</persistent>
</storage>

Creating specific storage

The Resource Manager sends the following request to the Enactor Core

POST path/to/enactor/locations/{{location_id}}/storages
Accept: application/vnd.bonfire+xml
X-Bonfire-Asserted-Id: {{user_id}}
X-Bonfire-Asserted-Groups: {{comma_separated_list_of_user_groups}}
X-Bonfire-Experiment-Id: {{experiment_id}}

<storage href='http://api.bonfire-project.eu/locations/{{location_id}}/storages/'>
       <name>NameStorage</name>
   {{storage_characteristics}}
</storage>

The Enactor Core sends the following code to ONE (all OCCI is upercased and to the name of the storage it is attached the structure: -{{experiment_id}}-{{uuid}} to avoid the limitation that in ONE storage name have to be unique)

POST https://{{url_to_ONE_testbed}}/storage/
accept:*/*
X-Bonfire-Asserted-Id:{{user_id}}
X-Bonfire-Asserted-Groups: {{comma_separated_list_of_user_groups}}
X-Bonfire-Experiment-Id: {{experiment_id}}

<STORAGE href="https://{{url_to_ONE_testbed}}/storage">
  <NAME>NameStorage-experiment_id-uuid</NAME>
  {{storage_characteristics}}
</STORAGE>

ONE returns the following message to the Enactor Core

201

Content-Type: text/html;charset=utf-8

<STORAGE href="https://{{url_to_ONE_testbed}}/storage/{{storage_id}}">
    <ID>{{storage_id}}</ID>
        <NAME>NameStorage-experiment_id-uuid</NAME>
    {{storage_characteristics}}
</STORAGE>

The Enactor Core parses this response and sends the following one back to the Resource Manager (all OCCI tags are lowercased and to the name the structure -{{experiment_id}}-{{uuid}} is removed)

201

Content-Type: application/vnd.bonfire+xml
<storage xmlns="http://api.bonfire-project.eu/doc/schemas/occi" href="/locations/{{location_id}}/storages/{{storage_id}}">
    <id>{{storage_id}}</id>
    {{storage_characteristics}}
</storage>

Modification specific storage

The Resource Manager sends the following request to the Enactor Core (only it is possible to change one characteristic of the storage at the same time)

PUT path/to/enactor/locations/{{location_id}}/storages/{{storage_id}}
Accept: application/vnd.bonfire+xml
X-Bonfire-Asserted-Id: {{user_id}}
X-Bonfire-Asserted-Groups: {{comma_separated_list_of_user_groups}}
X-Bonfire-Experiment-Id: {{experiment_id}}

<storage href='http://api.bonfire-project.eu/locations/{{location_id}}/storages/{{storage_is}}'>
   {{storage_change}}
</storage>

The Enactor Core sends the following code to ONE (all OCCI is upercased)

PUT https://{{url_to_ONE_testbed}}/storage/{{storage_id}}
accept:*/*
X-Bonfire-Asserted-Id:{{user_id}}
X-Bonfire-Asserted-Groups: {{comma_separated_list_of_user_groups}}
X-Bonfire-Experiment-Id: {{experiment_id}}

<STORAGE href="https://{{url_to_ONE_testbed}}/storage/{{storage_id}}">
  {{storage_change}}
</STORAGE>

ONE returns the following message to the Enactor Core

202

Content-Type: text/html;charset=utf-8

<STORAGE href="https://{{url_to_ONE_testbed}}/storage/{{storage_id}}">
    <ID>{{storage_id}}</ID>
    {{storage_characteristics}}
</STORAGE>

The Enactor Core parses this response and sends the following one back to the Resource Manager (all OCCI tags are lowercased)

202

Content-Type: application/vnd.bonfire+xml
<storage xmlns="http://api.bonfire-project.eu/doc/schemas/occi" href="/locations/{{location_id}}/storages/{{storage_id}}">
    <id>{{storage_id}}</id>
    {{storage_characteristics}}
</storage>

Deletion specific storage

The Resource Manager sends the following request to the Enactor Core

DELETE path/to/enactor/locations/{{location_id}}/storages/{{storage_id}}
Accept: application/vnd.bonfire+xml
X-Bonfire-Asserted-Id: {{user_id}}
X-Bonfire-Asserted-Groups: {{comma_separated_list_of_user_groups}}
    X-Bonfire-Experiment-Id: {{experiment_id}}

The Enactor sends the following message to ONE

    DELETE https://{{url_to_ONE_testbed}}/storage/{{storage_id}}
Accept: */*
X-Bonfire-Asserted-Id: {{user_id}}
X-Bonfire-Asserted-Groups: {{comma_separated_list_of_user_groups}}
    X-Bonfire-Experiment-Id: {{experiment_id}}

ONE returns the following message to the Enactor Core

204

The Enactor Core parses this response and sends the following one back to the Resource Manager (all OCCI tags are lowercased)

204

Networks

List of available networks

The Resource Manager sends the following request to the Enactor Core

GET path/to/enactor/locations/{{location_id}}/networks
Accept: application/vnd.bonfire+xml
X-Bonfire-Asserted-Id: {{user_id}}
X-Bonfire-Asserted-Groups: {{comma_separated_list_of_user_groups}}

The Enactor Core sends the following request to the ONE site

accept:*/*
x_bonfire_asserted_id:{{user_id}}
x_bonfire_asserted_groups: {{comma_separated_list_of_user_groups}}

GET https://{{url_to_ONE_testbed}}/network/

It gets the following response from the ONE site

200

Content-Type: text/html;charset=utf-8

<NETWORK_COLLECTION>
    <NETWORK href="https://{{url_to_ONE_testbed}}/network/{{network_id}}" name="{{network_name}}"/>
</NETWORK_COLLECTION>

The Enactor Core parses this response and sends the following one back to the Resource Manager

200

Content-Type: application/vnd.bonfire+xml

<collection xmlns="http://api.bonfire-project.eu/doc/schemas/occi">
    <items>
        <network href="/locations/{{location_id}}/networks/{{network_id}}" name="{{network_name}}" />
    </items>
</collection>

List specific network

The Resource Manager sends the following request to the Enactor Core

Accept: application/vnd.bonfire+xml
X-Bonfire-Asserted-Id: {{user_id}}
X-Bonfire-Asserted-Groups: {{comma_separated_list_of_user_groups}}

GET path/to/enactor/locations/{{location_id}}/networks/{{network_id}}

The Enactor Core sends the following request to the ONE site

accept:*/*
x_bonfire_asserted_id:{{user_id}}
x_bonfire_asserted_groups: {{comma_separated_list_of_user_groups}}

GET https://{{url_to_ONE_testbed}}/network/{{network_id}}

It gets the following response from the ONE site

200

Content-Type: text/html;charset=utf-8

<NETWORK href="https://{{url_to_ONE_testbed}}/network/{{network_id}}">
    <ID>{{network_id}}</ID>
    <NAME>BonFIRE WAN</NAME>
    <ADDRESS></ADDRESS>
    <PUBLIC>YES</PUBLIC>
</NETWORK>

The Enactor Core parses this response and sends the following one back to the Resource Manager

200

Content-Type: application/vnd.bonfire+xml

<network xmlns="http://api.bonfire-project.eu/doc/schemas/occi" href="/locations/{{location_id}}/networks/{{network_id}}">
    <id>{{network_id}}</id>
    <name>BonFIRE WAN</name>
    <address />
    <public>YES</public>
</network>

Creating specific network

The Resource Manager sends the following request to the Enactor Core

POST path/to/enactor/locations/{{location_id}}/networks
Accept: application/vnd.bonfire+xml
X-Bonfire-Asserted-Id: {{user_id}}
X-Bonfire-Asserted-Groups: {{comma_separated_list_of_user_groups}}
X-Bonfire-Experiment-Id: {{experiment_id}}

<network href='http://api.bonfire-project.eu/locations/{{location_id}}/networks/'>
       {{network_characteristics}}
</network>

ONE does not support network creation (nor network modification), so the Resource Manager receives the following response:

Deletion specific network

The Resource Manager sends the following request to the Enactor Core

DELETE path/to/enactor/locations/{{location_id}}/networks/{{network_id}}
Accept: application/vnd.bonfire+xml
X-Bonfire-Asserted-Id: {{user_id}}
X-Bonfire-Asserted-Groups: {{comma_separated_list_of_user_groups}}
X-Bonfire-Experiment-Id: {{experiment_id}}

ONE does not support network deletion (nor network modification), so the Resource Manager receives the following response:

Table Of Contents

Previous topic

Enactor Core

Next topic

Virtual Wall Enactor Adaptor

This Page