Virtual Wall Enactor Adaptor

The Virtual Wall 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 Virtual Wall 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_Virtual_Wall_testbed}}/compute/types

It gets the following response from the Virtual Wall site

200

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

<ALLOWED_COMPUTE_TYPES>
        <COMPUTE_TYPE>
                <NAME>medium</NAME>
                <MEMORY>2048</MEMORY>
                <CPU>2</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>medium</name>
                        <memory>2048</memory>
                        <cpu>2</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 Virtual Wall site

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

GET https://{{url_to_Virtual_Wall_testbed}}/compute/

It gets the following response from the Virtual Wall site

200

Content-Type: application/xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<compute_collection>
    <compute name="{{compute_name}}" href="https://{{url_to_VW_testbed}}/compute/{{compute_id}}"/>
    <compute name="{{compute_name}}" href="https://{{url_to_VW_testbed}}/compute/{{compute_id}}"/>
</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 name="{{compute_name}}" href="/locations/{{location_id}}/computes/{{compute_id}}" />
        <compute name="{{compute_name}}" href="/locations/{{location_id}}/computes/{{compute_id}}" />
    </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 Virtual Wall site

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

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

It gets the following response from the Virtual Wall site

200

Content-Type: application/xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<compute name="Test-OCCI" href="https://{{url_to_VW_testbed}}/compute/{{compute_id}}">
    <disk id="{{compute_id}}">
        <storage href="https://bonfire.test.atlantis.ugent.be/storage/1"/>
        <type>DISK</type>
    </disk>
    <host>Test-OCCI.bonfire-65535.BonFIRE.wall2.test</host>
    <name>Test-OCCI</name>
    <nic>
        <network name="BonFIRE WAN" href="https://bonfire.test.atlantis.ugent.be/network/1"/>
    </nic>
    <state>PENDING</state>
</compute>

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

200

Content-Type: application/vnd.bonfire+xml

<compute xmlns="http://api.bonfire-project.eu/doc/schemas/occi" name="Test-OCCI" href="/locations/{{location_id}}/computes/{{compute_id}}">
    <disk id="{{compute_id}}">
        <storage href="/locations/be-ibbt/storages/1" />
        <type>DISK</type>
    </disk>
    <host>Test-OCCI.bonfire-65535.BonFIRE.wall2.test</host>
    <name>Test-OCCI</name>
    <nic>
        <network name="BonFIRE WAN" href="/locations/be-ibbt/networks/1" />
    </nic>
    <state>PENDING</state>
</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 Virtual Wall

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_VW_testbed}}/compute">
    {{compute_characteristics}}
</compute>

Virtual Wall returns the following message to the Enactor Core

201

Content-Type: application/xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<compute name="Test-OCCI" href="https://{{url_to_VW_testbed}}/compute/{{compute_id}}">
    <disk id="{{compute_id}}">
        {{disk_characteristics}}
    </disk>
    {{compute_characteristics}}
</compute>

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

201

Content-Type: application/vnd.bonfire+xml

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

Deletion specific storage

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 Virtual Wall

    DELETE https://{{url_to_Virtual_Wall_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}}

Virtual Wall returns the following message to the Enactor Core

202

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

204

Special PUT modifications for Computes

save_as

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 Virtual Wall

PUT https://{{url_to_Virtual_Wall_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" />
    <groups>dperez</groups>
  </disk>
</compute>

Virtual Wall 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_Virtual_Wall_host}}/storage/{{save_as_storage_id}}"/>
                <storage href="https://{{url_to_Virtual_Wall_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

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 Virtual Wall 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 Virtual Wall site

200

Content-Type: application/xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<storage_collection>
    <storage name="{{storage_name}}" href="https://{{url_to_VW_testbed}}/storage/{{storage_id}}"/>
    <storage name="{{storage_name}}" href="https://{{url_to_VW_testbed}}/storage/{{storage_id}}"/>
</storage_collection>

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

200

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<collection xmlns="http://api.bonfire-project.eu/doc/schemas/occi">
  <items>
    <storage name="{{storage_name}}" href="/locations/{{location_id}}/storages/{{storage_id}}" />
    <storage name="{{storage_name}}" href="/locations/{{location_id}}/storages/{{storage_id}}" />
  </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_Virtual_Wall_testbed}}/storage/{{storage_id}}

It gets the following response from the Virtual Wall site

200

Content-Type: application/xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<storage name="BonFIRE Debian Squeeze 2G v3" href="https://{{url_to_VW_testbed}}/storage/{{storage_id}}">
    <description>Debian Squeeze created at 2011-12-08, based on the image described at http://wiki.bonfire-project.eu/index.php/DebianSqueezeVmi</description>
    <persistent>NO</persistent>
    <type>OS</type>
</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" name="BonFIRE Debian Squeeze 2G v3" href="/locations/{{location_id}}/storages/{{storage_id}}">
  <description>Debian Squeeze created at 2011-12-08, based on the image described at http://wiki.bonfire-project.eu/index.php/DebianSqueezeVmi</description>
  <persistent>NO</persistent>
  <type>OS</type>
</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 Virtual Wall.

POST https://{{url_to_Virtual_Wall_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_Virtual_Wall_testbed}}/storage">
    {{storage_characteristics}}
</storage>

Virtual Wall returns the following message to the Enactor Core

201

Content-Type: application/xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<storage href="https://{{url_to_VW_testbed}}/storage/{{storage_id}}">
    {{storage_characteristics}}
</storage>

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

201

Content-Type: application/vnd.bonfire+xml

<storage xmlns="http://api.bonfire-project.eu/doc/schemas/occi" href="/locations/{{location_id}}/storages/{{storage_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 Virtual Wall

PUT https://{{url_to_Virtual_Wall_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_VW_testbed}}/storage">
    {{storage_changes}}
</storage>

Virtual Wall returns the following message to the Enactor Core

200

Content-Type: application/xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<storage href="https://{{url_to_VW_testbed}}/storage/{{storage_id}}">
    {{storage_characteristics_changed}}
</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}}">
  {{storage_characteristics_changed}}
</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 Virtual Wall

    DELETE https://{{url_to_Virtual_Wall_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}}

Virtual Wall returns the following message to the Enactor Core

202

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

204

Experiments

Virtual Wall it is the only testbed aware of the concept of a BonFIRE experiment, and it is the only one that reacts to specific events created at Resource Manager level.

Change an experimetn to RUNNING state

For Virtual Wall be able to start creating the different resources of an experiment, it is necessary to notify to it that the experiment is active.

The Resource Manager sends the following request to the Enactor Core

PUT path/to/enactor/locations/{{location_id}}/experiments/{{experiment_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}}

action=run

Enactor Core sends the following message to the Virtual Wall:

PUT https://{{url_to_VW_testbed}}/experiments/{{experiment_id}}
accept:*/*
X-Bonfire-Asserted-Id:{{user_id}}
X-Bonfire-Asserted-Groups: {{comma_separated_list_of_user_groups}}
X-Bonfire-Experiment-Id:{{experiment_id}}

<experiment>
        <state>ACTIVE</state>
</experiment>

Virtual Wall returns the following message to the Enactor Core

200

Enactor Core returns the following message to the Resource Manager

201

Change an experimetn to SHUTDOWN state

For Virtual Wall be able to stop nicely computes, the experiment must be SHUTDOWN

The Resource Manager sends the following request to the Enactor Core

PUT path/to/enactor/locations/{{location_id}}/experiments/{{experiment_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}}

action=shutdown

Enactor Core sends the following message to the Virtual Wall:

PUT https://{{url_to_VW_testbed}}/experiments/{{experiment_id}}
accept:*/*
X-Bonfire-Asserted-Id:{{user_id}}
X-Bonfire-Asserted-Groups: {{comma_separated_list_of_user_groups}}
X-Bonfire-Experiment-Id:{{experiment_id}}

<experiment>
        <state>SHUTDOWN</state>
</experiment>

Virtual Wall returns the following message to the Enactor Core

200

Enactor Core returns the following message to the Resource Manager

201

Deletion specific experiment

The Resource Manager sends the following request to the Enactor Core

DELETE path/to/enactor/locations/{{location_id}}/experiments/{{experiment_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 Virtual Wall

    DELETE https://{{url_to_Virtual_Wall_testbed}}/experiments/{{experiment_id}}
Accept: */*
X-Bonfire-Asserted-Id: {{user_id}}
X-Bonfire-Asserted-Groups: {{comma_separated_list_of_user_groups}}
    X-Bonfire-Experiment-Id: {{experiment_id}}

Virtual Wall returns the following message to the Enactor Core

202

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 Virtual Wall site

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

GET https://{{url_to_Virtual_Wall_testbed}}/network/

It gets the following response from the Virtual Wall site

200

Content-Type: application/xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<network_collection>
    <network name="{{network_name}}" href="https://{{url_to_VW_testbed}}/network/{{network_id}}"/>
</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 name="{{network_name}}" href="/locations/{{location_id}}/networks/{{network_id}}" />
    </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 Virtual Wall site

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

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

It gets the following response from the Virtual Wall site

200

Content-Type: application/xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<network name="{{network_name}}" href="https://{{url_to_VW_testbed}}/network/{{network_id}}">
    <address>10.0.0.0</address>
    <bandwidth>1000</bandwidth>
    <id>{{network_id}}</id>
    <latency>0</latency>
    <lossrate>0</lossrate>
    <name>BonFIRE WAN</name>
    <public>YES</public>
    <size>16</size>
    <state>up</state>
</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" name="{{network_name}}" href="/locations/{{location_id}}/networks/{{network_id}}">
    <address>10.0.0.0</address>
    <bandwidth>1000</bandwidth>
    <id>{{network_id}}</id>
    <latency>0</latency>
    <lossrate>0</lossrate>
    <name>BonFIRE WAN</name>
    <public>YES</public>
    <size>16</size>
    <state>up</state>
</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>

Enactor Core sends the following message to the Virtual Wall:

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

<network href="https://{{url_to_VW_testbed}}/network">
    {{network_characteristics}}
</network>

Virtual Wall returns the following message to the Enactor Core

201

Content-Type: application/xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<network name="{{network_name}}" href="https://{{url_to_VW_testbed}}/network/{{network_id}}">
    {{network_characteristics}}
    <state>{{network_state}}</state>
</network>

Enactor Core returns the following message to the Resource Manager

201

Content-Type: application/vnd.bonfire+xml

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

Modification specific network

The Resource Manager sends the following request to the Enactor Core

PUT 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}}

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

Enactor Core sends the following message to the Virtual Wall:

PUT https://{{url_to_VW_testbed}}/network/{{network_id}}
accept:*/*
X-Bonfire-Asserted-Id:{{user_id}}
X-Bonfire-Asserted-Groups: {{comma_separated_list_of_user_groups}}
X-Bonfire-Experiment-Id:{{experiment_id}}

<network href="https://{{url_to_VW_testbed}}/network/{{network_id}}">
    {{network_changes}}
</network>

Virtual Wall returns the following message to the Enactor Core

200

Content-Type: application/xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<network name="{{network_name}}" href="https://{{url_to_VW_testbed}}/network/{{network_id}}">
    {{network_characteristics}}
    <state>{{network_state}}</state>
</network>

Enactor Core returns the following message to the Resource Manager

201

Content-Type: application/vnd.bonfire+xml

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

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}}

The Enactor sends the following message to Virtual Wall

    DELETE https://{{url_to_Virtual_Wall_testbed}}/network/{{network_id}}
Accept: */*
X-Bonfire-Asserted-Id: {{user_id}}
X-Bonfire-Asserted-Groups: {{comma_separated_list_of_user_groups}}
    X-Bonfire-Experiment-Id: {{experiment_id}}

Virtual Wall returns the following message to the Enactor Core

202

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

204

Table Of Contents

Previous topic

Open Nebula Enactor Adaptor

Next topic

HP Enactor Adaptor

This Page