occi-api 4.0.0.alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +15 -0
- data/.rspec +1 -0
- data/.travis.yml +43 -0
- data/.yardopts +1 -0
- data/AUTHORS +9 -0
- data/Gemfile +16 -0
- data/LICENSE +13 -0
- data/README.md +344 -0
- data/Rakefile +37 -0
- data/examples/dsl_example.rb +167 -0
- data/examples/x509auth_example.rb +161 -0
- data/ext/mkrf_conf.rb +34 -0
- data/features/cassettes/Create_an_OCCI_Resource/_http_http___141_5_99_69__text_plain_201_.yml +288 -0
- data/features/cassettes/Delete_an_OCCI_Resource/_http_http___141_5_99_69__text_plain_201_.yml +288 -0
- data/features/cassettes/Discovery_Interface/Retrieving_all_OCCI_Categories_supported_by_the_OCCI_Server/_http_http___141_5_99_69__application_json_200_.yml +333 -0
- data/features/cassettes/Discovery_Interface/Retrieving_all_OCCI_Categories_supported_by_the_OCCI_Server/_http_http___141_5_99_69__text_plain_200_.yml +529 -0
- data/features/cassettes/Discovery_Interface/Retrieving_all_OCCI_Categories_supported_by_the_OCCI_Server/_http_http___141_5_99_69__text_plain_200_action_.yml +288 -0
- data/features/cassettes/Miscellaneous_operation_on_an_OCCI_Resource/_http_http___141_5_99_69__text_plain_201_.yml +288 -0
- data/features/cassettes/Read_an_OCCI_Resource/_http_http___141_5_99_69__text_plain_201_.yml +288 -0
- data/features/cassettes/Update_an_OCCI_Resource/_http_http___141_5_99_69__text_plain_201_.yml +288 -0
- data/features/common/step_definitions/common_steps.rb +32 -0
- data/features/occi/core/create/create.feature +18 -0
- data/features/occi/core/create/step_definitions/create_steps.rb +0 -0
- data/features/occi/core/delete/delete.feature +18 -0
- data/features/occi/core/delete/step_definitions/delete_steps.rb +0 -0
- data/features/occi/core/discovery_interface/discovery_interface.feature +37 -0
- data/features/occi/core/discovery_interface/step_definitions/discovery_interface_steps.rb +19 -0
- data/features/occi/core/miscellaneous/miscellaneous.feature +18 -0
- data/features/occi/core/miscellaneous/step_definitions/miscellaneous_steps.rb +0 -0
- data/features/occi/core/read/read.feature +18 -0
- data/features/occi/core/read/step_definitions/read_steps.rb +0 -0
- data/features/occi/core/update/step_definitions/update_steps.rb +0 -0
- data/features/occi/core/update/update.feature +18 -0
- data/features/occi/infrastructure/create/create.feature +18 -0
- data/features/occi/infrastructure/create/step_definitions/create_steps.rb +0 -0
- data/features/support/env.rb +16 -0
- data/lib/occi/api/client/client_amqp.rb +766 -0
- data/lib/occi/api/client/client_base.rb +689 -0
- data/lib/occi/api/client/client_http.rb +541 -0
- data/lib/occi/api/client/errors/authn_error.rb +7 -0
- data/lib/occi/api/client/errors.rb +1 -0
- data/lib/occi/api/client/http/authn_plugins/base.rb +27 -0
- data/lib/occi/api/client/http/authn_plugins/basic.rb +22 -0
- data/lib/occi/api/client/http/authn_plugins/digest.rb +22 -0
- data/lib/occi/api/client/http/authn_plugins/dummy.rb +13 -0
- data/lib/occi/api/client/http/authn_plugins/keystone.rb +61 -0
- data/lib/occi/api/client/http/authn_plugins/x509.rb +46 -0
- data/lib/occi/api/client/http/authn_plugins.rb +6 -0
- data/lib/occi/api/client/http/authn_utils.rb +87 -0
- data/lib/occi/api/client/http/httparty_fix.rb +53 -0
- data/lib/occi/api/client/http/net_http_fix.rb +21 -0
- data/lib/occi/api/dsl.rb +146 -0
- data/lib/occi/api/version.rb +5 -0
- data/lib/occi-api.rb +14 -0
- data/occi-api.gemspec +38 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/creates_a_new_compute_resource.yml +266 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/creates_a_new_network_resource.yml +266 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/creates_a_new_storage_resource.yml +266 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/deletes_a_compute_resource.yml +266 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/deletes_a_network_resource.yml +266 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/deletes_a_storage_resource.yml +266 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/deploys_an_instance_based_on_OVF_OVA_file.yml +266 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/describes_compute_resources.yml +368 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/describes_network_resources.yml +370 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/describes_storage_resources.yml +430 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/establishes_connection.yml +266 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/finds_and_describes_scoped_os_tpl_mixin.yml +266 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/finds_and_describes_scoped_resource_tpl_mixin.yml +266 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/finds_and_describes_unscoped_mixin.yml +266 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/instantiates_a_compute_resource_using_type_identifier.yml +266 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/instantiates_a_compute_resource_using_type_name.yml +266 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/instantiates_a_network_resource_using_type_identifier.yml +266 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/instantiates_a_network_resource_using_type_name.yml +266 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/instantiates_a_storage_resource_using_type_identifier.yml +266 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/instantiates_a_storage_resource_using_type_name.yml +266 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/lists_all_available_entity_type_identifiers.yml +266 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/lists_all_available_entity_types.yml +266 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/lists_all_available_link_type_identifiers.yml +266 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/lists_all_available_link_types.yml +266 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/lists_all_available_mixin_type_identifiers.yml +266 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/lists_all_available_mixin_types.yml +266 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/lists_all_available_mixins.yml +266 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/lists_all_available_resource_type_identifiers.yml +266 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/lists_all_available_resource_types.yml +266 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/lists_compute_resources.yml +308 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/lists_network_resources.yml +308 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/lists_os_tpl_mixins.yml +266 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/lists_resource_tpl_mixins.yml +266 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/lists_storage_resources.yml +310 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/refreshes_its_model.yml +485 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/triggers_an_action_on_a_compute_resource.yml +266 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/triggers_an_action_on_a_network_resource.yml +266 -0
- data/spec/cassettes/Occi_Api_Client_ClientHttp/using_media_type_text_plain/triggers_an_action_on_a_storage_resource.yml +266 -0
- data/spec/occi/api/client/client_amqp_spec.rb +158 -0
- data/spec/occi/api/client/client_http_spec.rb +292 -0
- data/spec/occi/api/client/http/authn_utils_spec.rb +55 -0
- data/spec/occi/api/client/http/httparty_fix_spec.rb +0 -0
- data/spec/occi/api/client/http/net_http_fix_spec.rb +0 -0
- data/spec/occi/api/client/http/rocci-cred-cert.pem +3 -0
- data/spec/occi/api/client/http/rocci-cred-key-jruby.pem +3 -0
- data/spec/occi/api/client/http/rocci-cred-key.pem +3 -0
- data/spec/occi/api/client/http/rocci-cred.p12 +0 -0
- data/spec/occi/api/dsl_spec.rb +21 -0
- data/spec/spec_helper.rb +38 -0
- metadata +379 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# language: en
|
|
2
|
+
|
|
3
|
+
Feature: Discovery Interface
|
|
4
|
+
In order to discover the capabilities of an OCCI Server
|
|
5
|
+
As an OCCI Client
|
|
6
|
+
I want to receive all OCCI Categories supported by the OCCI Server
|
|
7
|
+
|
|
8
|
+
@vcr_record
|
|
9
|
+
Scenario Outline: Retrieving all OCCI Categories supported by the OCCI Server
|
|
10
|
+
Given endpoint : <endpoint>
|
|
11
|
+
And transfer_protocol : <protocol>
|
|
12
|
+
And accept type : <accept_type>
|
|
13
|
+
And category filter : <category_filter>
|
|
14
|
+
And have an initialize Client
|
|
15
|
+
When OCCI Client request all OCCI Categories supported by the OCCI Server
|
|
16
|
+
Then the Client should have the response code <response_code>
|
|
17
|
+
And OCCI Client should display the OCCI Categories received from the OCCI Server
|
|
18
|
+
|
|
19
|
+
@vcr_record
|
|
20
|
+
Scenarios:
|
|
21
|
+
| protocol | endpoint | accept_type | response_code | category_filter |
|
|
22
|
+
| http | http://141.5.99.69/ | application/json | 200 | |
|
|
23
|
+
#| http | http://141.5.99.69/ | text/occi | 200 | |
|
|
24
|
+
| http | http://141.5.99.69/ | text/plain | 200 | |
|
|
25
|
+
#| http | http://46.231.128.85:8086/| text/occi | 200 | |
|
|
26
|
+
| http | http://141.5.99.69/ | text/plain | 200 | action |
|
|
27
|
+
|
|
28
|
+
#Scenario: Retrieving the OCCI Categories with an OCCI Category filter from the OCCI Server
|
|
29
|
+
# Given an "http" OCCI Server with endpoint "http://141.5.99.69/"
|
|
30
|
+
# And the client accept "text/plain"
|
|
31
|
+
# And OCCI Client requests all OCCI Categories supported by the OCCI Server
|
|
32
|
+
# And select "action" Category from the OCCI Server
|
|
33
|
+
# When OCCI Client requests from the OCCI Server the OCCI Categories related to the selected OCCI Category
|
|
34
|
+
# Then OCCI Client should display the OCCI Categories received from the OCCI Server
|
|
35
|
+
# And displayed Categories should related to the selected OCCI Category
|
|
36
|
+
# And should be some
|
|
37
|
+
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
When /^OCCI Client request all OCCI Categories supported by the OCCI Server$/ do
|
|
2
|
+
if @category_filter.length > 0
|
|
3
|
+
@category_filter = @category_filter.pluralize
|
|
4
|
+
@selected_category = @client.model.send @category_filter.to_sym
|
|
5
|
+
@selected_category.should have_at_least(1).bla
|
|
6
|
+
pending
|
|
7
|
+
else
|
|
8
|
+
@client.refresh
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
Then /^OCCI Client should display the OCCI Categories received from the OCCI Server$/ do
|
|
13
|
+
@client.model.should_not be_empty
|
|
14
|
+
|
|
15
|
+
# @client.model.actions .should have_at_least(1).actions
|
|
16
|
+
@client.model.kinds .should have_at_least(4).kinds
|
|
17
|
+
@client.model.links .should be_empty
|
|
18
|
+
@client.model.resources.should be_empty
|
|
19
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
Feature:
|
|
2
|
+
In order to manipulate an OCCI Resource on the OCCI Server
|
|
3
|
+
As an OCCI Client
|
|
4
|
+
I want to get an success report of the miscellaneous operation
|
|
5
|
+
|
|
6
|
+
@vcr_record
|
|
7
|
+
Scenario Outline: Miscellaneous operation on an OCCI Resource
|
|
8
|
+
Given endpoint : <endpoint>
|
|
9
|
+
And transfer_protocol : <protocol>
|
|
10
|
+
And accept type : <accept_type>
|
|
11
|
+
And have an initialize Client
|
|
12
|
+
When the Client makes a miscellaneous request
|
|
13
|
+
Then the Client should have the response code <response_code>
|
|
14
|
+
|
|
15
|
+
@vcr_record
|
|
16
|
+
Scenarios:
|
|
17
|
+
| protocol | endpoint | accept_type | response_code |
|
|
18
|
+
| http | http://141.5.99.69/ | text/plain | 201 |
|
|
File without changes
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
Feature:
|
|
2
|
+
In order to read an OCCI Resource on the OCCI Server
|
|
3
|
+
As an OCCI Client
|
|
4
|
+
I want to get an success report of the read operation and receive Resource data from the OCCI Server
|
|
5
|
+
|
|
6
|
+
@vcr_record
|
|
7
|
+
Scenario Outline: Read an OCCI Resource
|
|
8
|
+
Given endpoint : <endpoint>
|
|
9
|
+
And transfer_protocol : <protocol>
|
|
10
|
+
And accept type : <accept_type>
|
|
11
|
+
And have an initialize Client
|
|
12
|
+
When the Client makes a read request
|
|
13
|
+
Then the Client should have the response code <response_code>
|
|
14
|
+
|
|
15
|
+
@vcr_record
|
|
16
|
+
Scenarios:
|
|
17
|
+
| protocol | endpoint | accept_type | response_code |
|
|
18
|
+
| http | http://141.5.99.69/ | text/plain | 201 |
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
Feature:
|
|
2
|
+
In order to update an OCCI Resource on the OCCI Server
|
|
3
|
+
As an OCCI Client
|
|
4
|
+
I want to get an success report of the update operation
|
|
5
|
+
|
|
6
|
+
@vcr_record
|
|
7
|
+
Scenario Outline: Update an OCCI Resource
|
|
8
|
+
Given endpoint : <endpoint>
|
|
9
|
+
And transfer_protocol : <protocol>
|
|
10
|
+
And accept type : <accept_type>
|
|
11
|
+
And have an initialize Client
|
|
12
|
+
When the Client makes an update request
|
|
13
|
+
Then the Client should have the response code <response_code>
|
|
14
|
+
|
|
15
|
+
@vcr_record
|
|
16
|
+
Scenarios:
|
|
17
|
+
| protocol | endpoint | accept_type | response_code |
|
|
18
|
+
| http | http://141.5.99.69/ | text/plain | 201 |
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
Feature:
|
|
2
|
+
In order to create an OCCI Resource on the OCCI Server
|
|
3
|
+
As an OCCI Client
|
|
4
|
+
I want to get an success report of the create operation and receive the URI of the new Resource by the OCCI Server
|
|
5
|
+
|
|
6
|
+
@vcr_record
|
|
7
|
+
Scenario Outline: Create an OCCI Resource
|
|
8
|
+
Given endpoint : <endpoint>
|
|
9
|
+
And transfer_protocol : <protocol>
|
|
10
|
+
And accept type : <accept_type>
|
|
11
|
+
And have an initialize Client
|
|
12
|
+
When the Client makes a create request
|
|
13
|
+
Then the Client should have the response code <response_code>
|
|
14
|
+
|
|
15
|
+
@vcr_record
|
|
16
|
+
Scenarios:
|
|
17
|
+
| protocol | endpoint | accept_type | response_code |
|
|
18
|
+
| http | http://141.5.99.69/ | text/plain | 201 |
|
|
File without changes
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
$:.unshift(File.dirname(__FILE__) + '/../../lib')
|
|
2
|
+
|
|
3
|
+
require 'rubygems'
|
|
4
|
+
require 'occi-api'
|
|
5
|
+
|
|
6
|
+
require 'vcr'
|
|
7
|
+
|
|
8
|
+
VCR.configure do |c|
|
|
9
|
+
c.hook_into :webmock
|
|
10
|
+
c.cassette_library_dir = 'features/cassettes'
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
VCR.cucumber_tags do |t|
|
|
14
|
+
t.tags '@vcr_ignore', :record => :none
|
|
15
|
+
t.tag '@vcr_record', {:use_scenario_name => true, :record => :new_episodes}
|
|
16
|
+
end
|