fog-openstack 0.1.5 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -0
- data/.travis.yml +6 -2
- data/README.md +4 -0
- data/Rakefile +10 -2
- data/fog-openstack.gemspec +2 -3
- data/gemfiles/Gemfile-1.9 +1 -1
- data/lib/fog/openstack.rb +14 -6
- data/lib/fog/openstack/baremetal.rb +1 -1
- data/lib/fog/openstack/common.rb +0 -2
- data/lib/fog/openstack/compute.rb +78 -75
- data/lib/fog/openstack/core.rb +2 -1
- data/lib/fog/openstack/docs/compute.md +1 -1
- data/lib/fog/openstack/docs/network.md +283 -0
- data/lib/fog/openstack/docs/nfv.md +144 -0
- data/lib/fog/openstack/examples/compute/block_device_mapping_v2.rb +4 -4
- data/lib/fog/openstack/examples/network/network_add_port.rb +21 -0
- data/lib/fog/openstack/examples/network/network_rbac.rb +69 -0
- data/lib/fog/openstack/identity.rb +14 -22
- data/lib/fog/openstack/identity_v2.rb +1 -1
- data/lib/fog/openstack/image_v1.rb +13 -28
- data/lib/fog/openstack/image_v2.rb +15 -17
- data/lib/fog/openstack/introspection.rb +1 -1
- data/lib/fog/openstack/metering.rb +1 -1
- data/lib/fog/openstack/models/collection.rb +4 -1
- data/lib/fog/openstack/models/compute/availability_zone.rb +5 -0
- data/lib/fog/openstack/models/compute/flavor.rb +21 -9
- data/lib/fog/openstack/models/compute/server.rb +64 -77
- data/lib/fog/openstack/models/compute/snapshot.rb +6 -6
- data/lib/fog/openstack/models/compute/volume_attachment.rb +15 -0
- data/lib/fog/openstack/models/compute/volume_attachments.rb +20 -0
- data/lib/fog/openstack/models/identity_v3/projects.rb +1 -1
- data/lib/fog/openstack/models/identity_v3/users.rb +2 -2
- data/lib/fog/openstack/models/image_v2/image.rb +41 -22
- data/lib/fog/openstack/models/network/floating_ip.rb +1 -0
- data/lib/fog/openstack/models/network/rbac_policies.rb +33 -0
- data/lib/fog/openstack/models/network/rbac_policy.rb +35 -0
- data/lib/fog/openstack/models/nfv/vnf.rb +58 -0
- data/lib/fog/openstack/models/nfv/vnfd.rb +53 -0
- data/lib/fog/openstack/models/nfv/vnfds.rb +28 -0
- data/lib/fog/openstack/models/nfv/vnfs.rb +28 -0
- data/lib/fog/openstack/models/volume/snapshot.rb +38 -0
- data/lib/fog/openstack/models/volume/snapshots.rb +26 -0
- data/lib/fog/openstack/models/volume/volume.rb +32 -2
- data/lib/fog/openstack/models/volume/volume_type.rb +3 -4
- data/lib/fog/openstack/models/volume_v1/snapshot.rb +43 -0
- data/lib/fog/openstack/models/volume_v1/snapshots.rb +16 -0
- data/lib/fog/openstack/models/volume_v1/volume.rb +12 -2
- data/lib/fog/openstack/models/volume_v2/snapshot.rb +43 -0
- data/lib/fog/openstack/models/volume_v2/snapshots.rb +16 -0
- data/lib/fog/openstack/models/volume_v2/volume.rb +12 -3
- data/lib/fog/openstack/network.rb +53 -46
- data/lib/fog/openstack/nfv.rb +158 -0
- data/lib/fog/openstack/orchestration.rb +1 -1
- data/lib/fog/openstack/planning.rb +1 -1
- data/lib/fog/openstack/requests/compute/create_server.rb +1 -1
- data/lib/fog/openstack/requests/compute/{create_volume_snapshot.rb → create_snapshot.rb} +16 -16
- data/lib/fog/openstack/requests/compute/delete_flavor_metadata.rb +30 -0
- data/lib/fog/openstack/requests/compute/evacuate_server.rb +8 -7
- data/lib/fog/openstack/requests/compute/get_key_pair.rb +49 -0
- data/lib/fog/openstack/requests/compute/list_availability_zones.rb +23 -0
- data/lib/fog/openstack/requests/compute/list_volume_attachments.rb +31 -0
- data/lib/fog/openstack/requests/compute/update_flavor_metadata.rb +33 -0
- data/lib/fog/openstack/requests/network/create_rbac_policy.rb +42 -0
- data/lib/fog/openstack/requests/network/delete_rbac_policy.rb +28 -0
- data/lib/fog/openstack/requests/network/get_rbac_policy.rb +28 -0
- data/lib/fog/openstack/requests/network/list_rbac_policies.rb +25 -0
- data/lib/fog/openstack/requests/network/update_port.rb +8 -7
- data/lib/fog/openstack/requests/network/update_rbac_policy.rb +41 -0
- data/lib/fog/openstack/requests/nfv/create_vnf.rb +37 -0
- data/lib/fog/openstack/requests/nfv/create_vnfd.rb +35 -0
- data/lib/fog/openstack/requests/nfv/delete_vnf.rb +23 -0
- data/lib/fog/openstack/requests/nfv/delete_vnfd.rb +23 -0
- data/lib/fog/openstack/requests/nfv/get_vnf.rb +24 -0
- data/lib/fog/openstack/requests/nfv/get_vnfd.rb +24 -0
- data/lib/fog/openstack/requests/nfv/list_vnfds.rb +25 -0
- data/lib/fog/openstack/requests/nfv/list_vnfs.rb +25 -0
- data/lib/fog/openstack/requests/nfv/update_vnf.rb +35 -0
- data/lib/fog/openstack/requests/volume/action.rb +16 -0
- data/lib/fog/openstack/requests/volume/create_snapshot.rb +18 -0
- data/lib/fog/openstack/requests/volume/delete_metadata.rb +15 -0
- data/lib/fog/openstack/requests/volume/delete_snapshot.rb +5 -5
- data/lib/fog/openstack/requests/volume/delete_snapshot_metadata.rb +15 -0
- data/lib/fog/openstack/requests/volume/replace_metadata.rb +20 -0
- data/lib/fog/openstack/requests/volume/update_metadata.rb +20 -0
- data/lib/fog/openstack/requests/volume/update_snapshot.rb +37 -0
- data/lib/fog/openstack/requests/volume/update_snapshot_metadata.rb +20 -0
- data/lib/fog/openstack/requests/volume/update_volume.rb +25 -0
- data/lib/fog/openstack/requests/volume_v1/action.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/create_snapshot.rb +45 -0
- data/lib/fog/openstack/requests/volume_v1/delete_metadata.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/delete_snapshot_metadata.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/replace_metadata.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/update_metadata.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/update_snapshot.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/update_snapshot_metadata.rb +2 -0
- data/lib/fog/openstack/requests/volume_v1/update_volume.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/action.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/create_snapshot.rb +45 -0
- data/lib/fog/openstack/requests/volume_v2/delete_metadata.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/delete_snapshot_metadata.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/replace_metadata.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/update_metadata.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/update_snapshot.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/update_snapshot_metadata.rb +2 -0
- data/lib/fog/openstack/requests/volume_v2/update_volume.rb +2 -0
- data/lib/fog/openstack/storage.rb +1 -1
- data/lib/fog/openstack/version.rb +1 -1
- data/lib/fog/openstack/volume.rb +1 -1
- data/lib/fog/openstack/volume_v1.rb +29 -21
- data/lib/fog/openstack/volume_v2.rb +29 -21
- data/supported.md +54 -0
- data/tests/openstack/models/identity/ec2_credential_tests.rb +1 -1
- data/tests/openstack/models/identity/ec2_credentials_tests.rb +1 -1
- data/tests/openstack/models/identity/role_tests.rb +8 -3
- data/tests/openstack/models/identity/roles_tests.rb +5 -4
- data/tests/openstack/models/identity/tenant_tests.rb +7 -4
- data/tests/openstack/models/identity/tenants_tests.rb +10 -5
- data/tests/openstack/models/identity/user_tests.rb +4 -3
- data/tests/openstack/models/identity/users_tests.rb +10 -6
- data/tests/openstack/models/nfv/vnf_tests.rb +35 -0
- data/tests/openstack/models/nfv/vnfd_tests.rb +23 -0
- data/tests/openstack/models/nfv/vnfds_tests.rb +31 -0
- data/tests/openstack/models/nfv/vnfs_tests.rb +38 -0
- data/tests/openstack/requests/identity/ec2_credentials_tests.rb +6 -9
- data/tests/openstack/requests/identity/helper.rb +12 -4
- data/tests/openstack/requests/identity/role_tests.rb +13 -10
- data/tests/openstack/requests/identity/tenant_tests.rb +10 -9
- data/tests/openstack/requests/identity/user_tests.rb +11 -6
- data/tests/openstack/requests/image/image_tests.rb +1 -0
- data/tests/openstack/requests/nfv/vnf_tests.rb +70 -0
- data/tests/openstack/requests/nfv/vnfd_tests.rb +44 -0
- metadata +81 -31
- data/lib/fog/openstack/requests/volume/create_volume_snapshot.rb +0 -26
- data/lib/fog/openstack/requests/volume_v1/create_volume_snapshot.rb +0 -44
- data/lib/fog/openstack/requests/volume_v2/create_volume_snapshot.rb +0 -43
- data/tests/openstack/authenticate_tests.rb +0 -200
- data/tests/openstack/identity_version_tests.rb +0 -25
- data/tests/openstack/storage_tests.rb +0 -18
- data/tests/openstack/version_tests.rb +0 -55
- data/tests/openstack/volume_tests.rb +0 -18
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
require 'fog/openstack/core'
|
2
2
|
require 'fog/openstack/common'
|
3
3
|
require 'fog/openstack/volume'
|
4
4
|
|
@@ -23,6 +23,9 @@ module Fog
|
|
23
23
|
model :volume_type
|
24
24
|
collection :volume_types
|
25
25
|
|
26
|
+
model :snapshot
|
27
|
+
collection :snapshots
|
28
|
+
|
26
29
|
model :transfer
|
27
30
|
collection :transfers
|
28
31
|
|
@@ -32,6 +35,7 @@ module Fog
|
|
32
35
|
request :list_volumes
|
33
36
|
request :list_volumes_detailed
|
34
37
|
request :create_volume
|
38
|
+
request :update_volume
|
35
39
|
request :get_volume_details
|
36
40
|
request :extend_volume
|
37
41
|
request :delete_volume
|
@@ -44,11 +48,14 @@ module Fog
|
|
44
48
|
request :delete_volume_type
|
45
49
|
request :get_volume_type_details
|
46
50
|
|
47
|
-
request :
|
51
|
+
request :create_snapshot
|
52
|
+
request :update_snapshot
|
48
53
|
request :list_snapshots
|
49
54
|
request :list_snapshots_detailed
|
50
55
|
request :get_snapshot_details
|
51
56
|
request :delete_snapshot
|
57
|
+
request :update_snapshot_metadata
|
58
|
+
request :delete_snapshot_metadata
|
52
59
|
|
53
60
|
request :list_transfers
|
54
61
|
request :list_transfers_detailed
|
@@ -60,22 +67,26 @@ module Fog
|
|
60
67
|
request :update_quota
|
61
68
|
request :get_quota
|
62
69
|
request :get_quota_defaults
|
63
|
-
|
64
70
|
request :get_quota_usage
|
65
71
|
|
72
|
+
request :update_metadata
|
73
|
+
request :replace_metadata
|
74
|
+
request :delete_metadata
|
75
|
+
|
66
76
|
request :set_tenant
|
77
|
+
request :action
|
67
78
|
|
68
79
|
class Mock
|
69
80
|
def self.data
|
70
81
|
@data ||= Hash.new do |hash, key|
|
71
82
|
hash[key] = {
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
83
|
+
:users => {},
|
84
|
+
:tenants => {},
|
85
|
+
:quota => {
|
86
|
+
'gigabytes' => 1000,
|
87
|
+
'volumes' => 10,
|
88
|
+
'snapshots' => 10
|
89
|
+
}
|
79
90
|
}
|
80
91
|
end
|
81
92
|
end
|
@@ -84,7 +95,7 @@ module Fog
|
|
84
95
|
@data = nil
|
85
96
|
end
|
86
97
|
|
87
|
-
def initialize(options={})
|
98
|
+
def initialize(options = {})
|
88
99
|
@openstack_username = options[:openstack_username]
|
89
100
|
@openstack_tenant = options[:openstack_tenant]
|
90
101
|
@openstack_auth_uri = URI.parse(options[:openstack_auth_url])
|
@@ -101,11 +112,11 @@ module Fog
|
|
101
112
|
unless @data[:users].find { |u| u['name'] == options[:openstack_username] }
|
102
113
|
id = Fog::Mock.random_numbers(6).to_s
|
103
114
|
@data[:users][id] = {
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
115
|
+
'id' => id,
|
116
|
+
'name' => options[:openstack_username],
|
117
|
+
'email' => "#{options[:openstack_username]}@mock.com",
|
118
|
+
'tenantId' => Fog::Mock.random_numbers(6).to_s,
|
119
|
+
'enabled' => true
|
109
120
|
}
|
110
121
|
end
|
111
122
|
end
|
@@ -133,7 +144,7 @@ module Fog
|
|
133
144
|
end
|
134
145
|
include Fog::OpenStack::Common
|
135
146
|
|
136
|
-
def initialize(options={})
|
147
|
+
def initialize(options = {})
|
137
148
|
initialize_identity options
|
138
149
|
|
139
150
|
@openstack_service_type = options[:openstack_service_type] || ['volumev2']
|
@@ -154,11 +165,8 @@ module Fog
|
|
154
165
|
@persistent = options[:persistent] || false
|
155
166
|
@connection = Fog::Core::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent, @connection_options)
|
156
167
|
end
|
157
|
-
|
158
|
-
private
|
159
|
-
|
160
168
|
end
|
161
169
|
end
|
162
170
|
end
|
163
171
|
end
|
164
|
-
end
|
172
|
+
end
|
data/supported.md
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
# Supported OpenStack Projects
|
2
|
+
|
3
|
+
## Supported
|
4
|
+
|
5
|
+
| Project | Fog Type | API Version(s) | Compliance | Notes |
|
6
|
+
|------------------|---------------|----------------|------------|-------|
|
7
|
+
| Ceilometer | Metering | v2 | TBD | |
|
8
|
+
| Cinder | Volume | v1, v2 | TBD | |
|
9
|
+
| Glance | Image | v1, v2 | TBD | |
|
10
|
+
| Heat | Orchestration | v1 | TBD | |
|
11
|
+
| Keystone | Identity | v2, v3 | TBD | |
|
12
|
+
| Neutron | Network | v2 | TBD | |
|
13
|
+
| Nova | Compute | v2.0 | TBD | |
|
14
|
+
| Ironic | Bare Metal | v1 | TBD | |
|
15
|
+
| Ironic Inspector | Introspection | v1 | TBD | |
|
16
|
+
| Swift | Storage | v2 | TBD | |
|
17
|
+
| Tacker | NFV | v1 | TBD | |
|
18
|
+
|
19
|
+
## Wish List
|
20
|
+
|
21
|
+
Feel free to submit pull requests to add support for these.
|
22
|
+
|
23
|
+
* [barbican](https://wiki.openstack.org/wiki/Barbican) (Key Management)
|
24
|
+
* [congress](https://wiki.openstack.org/wiki/Congress) (Policy As a Service)
|
25
|
+
* [designate](https://wiki.openstack.org/wiki/Designate) (DNSaaS)
|
26
|
+
* [magnum](https://wiki.openstack.org/wiki/Magnum) (Containers)
|
27
|
+
* [manila](https://wiki.openstack.org/wiki/Manila) (File Storage)
|
28
|
+
* [monasca](https://wiki.openstack.org/wiki/Monasca) (Monitoring)
|
29
|
+
* [trove](https://wiki.openstack.org/wiki/Trove) (DBaaS)
|
30
|
+
|
31
|
+
## Unsupported
|
32
|
+
|
33
|
+
* aodh (Telemetry Alarms)
|
34
|
+
* astara (Network)
|
35
|
+
* cloudkitty (Telemetry)
|
36
|
+
* cue (Messaging)
|
37
|
+
* dragonflow (Network)
|
38
|
+
* ec2-api (Compatibility Layer)
|
39
|
+
* freezer (Disaster Recovery)
|
40
|
+
* fuel (Orchestration)
|
41
|
+
* gnocchi (TSDB)
|
42
|
+
* horizon (Web Frontend)
|
43
|
+
* kolla (Containers)
|
44
|
+
* kuryr (Containers)
|
45
|
+
* mistral (Workflow)
|
46
|
+
* murano (Catalog Service)
|
47
|
+
* rally (Benchmarking)
|
48
|
+
* sahara (Map-Reduce)
|
49
|
+
* searchlight (Searching)
|
50
|
+
* senlin (Clustering)
|
51
|
+
* solum (Lifecycle)
|
52
|
+
* tripleo (Orchestration)
|
53
|
+
* zaqar (Messaging)
|
54
|
+
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Shindo.tests("Fog::Identity[:openstack] | ec2_credential", ['openstack']) do
|
2
2
|
before do
|
3
|
-
openstack = Fog::Identity
|
3
|
+
openstack = Fog::Identity::OpenStack.new(:openstack_auth_url => 'http://openstack:35357/v2.0/tokens')
|
4
4
|
tenant_id = openstack.list_tenants.body['tenants'].first['id']
|
5
5
|
|
6
6
|
@user = openstack.users.find { |user| user.name == 'foobar' }
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Shindo.tests("Fog::Identity[:openstack] | ec2_credentials", ['openstack']) do
|
2
2
|
before do
|
3
|
-
openstack = Fog::Identity
|
3
|
+
openstack = Fog::Identity::OpenStack.new(:openstack_auth_url => 'http://openstack:35357/v2.0/tokens')
|
4
4
|
tenant_id = openstack.list_tenants.body['tenants'].first['id']
|
5
5
|
|
6
6
|
@user = openstack.users.find { |user| user.name == 'foobar' }
|
@@ -1,7 +1,12 @@
|
|
1
1
|
Shindo.tests("Fog::Identity[:openstack] | role", ['openstack']) do
|
2
|
-
@
|
3
|
-
@
|
4
|
-
|
2
|
+
@identity = Fog::Identity::OpenStack.new(:openstack_auth_url => 'http://openstack:35357/v2.0/tokens')
|
3
|
+
@instance = @identity.roles.new(
|
4
|
+
:name => 'Role Name',
|
5
|
+
:user_id => 1,
|
6
|
+
:role_id => 1
|
7
|
+
)
|
8
|
+
@tenant = @identity.tenants.create(:name => 'test_user')
|
9
|
+
@user = @identity.users.create(:name => 'test_user', :tenant_id => @tenant.id, :password => 'spoof')
|
5
10
|
|
6
11
|
tests('success') do
|
7
12
|
tests('#save').returns(true) do
|
@@ -1,8 +1,9 @@
|
|
1
1
|
Shindo.tests("Fog::Identity[:openstack] | roles", ['openstack']) do
|
2
|
-
@
|
3
|
-
@
|
4
|
-
@
|
5
|
-
@
|
2
|
+
@identity = Fog::Identity::OpenStack.new(:openstack_auth_url => 'http://openstack:35357/v2.0/tokens')
|
3
|
+
@tenant = @identity.tenants.create(:name => 'test_user')
|
4
|
+
@user = @identity.users.create(:name => 'test_user', :tenant_id => @tenant.id, :password => 'spoof')
|
5
|
+
@role = @identity.roles(:user => @user, :tenant => @tenant).create(:name => 'test_role')
|
6
|
+
@roles = @identity.roles(:user => @user, :tenant => @tenant)
|
6
7
|
|
7
8
|
tests('success') do
|
8
9
|
tests('#all').succeeds do
|
@@ -1,20 +1,23 @@
|
|
1
1
|
Shindo.tests("Fog::Identity[:openstack] | tenant", ['openstack']) do
|
2
2
|
tests('success') do
|
3
|
+
@openstack = Fog::Identity::OpenStack.new(:openstack_auth_url => 'http://openstack:35357/v2.0/tokens')
|
4
|
+
|
3
5
|
tests('#roles_for(0)').succeeds do
|
4
|
-
instance =
|
6
|
+
instance = @openstack.tenants.first
|
5
7
|
instance.roles_for(0)
|
6
8
|
end
|
7
9
|
|
8
10
|
tests('#users').succeeds do
|
9
|
-
instance =
|
11
|
+
instance = @openstack.tenants.first
|
12
|
+
openstack = Fog::Identity::OpenStack.new(:openstack_auth_url => 'http://openstack:35357/v2.0/tokens')
|
10
13
|
|
11
|
-
instance.users.count !=
|
14
|
+
instance.users.count != openstack.users.count
|
12
15
|
end
|
13
16
|
end
|
14
17
|
|
15
18
|
tests('CRUD') do
|
16
19
|
tests('#create').succeeds do
|
17
|
-
@instance =
|
20
|
+
@instance = @openstack.tenants.create(:name => 'test')
|
18
21
|
!@instance.id.nil?
|
19
22
|
end
|
20
23
|
|
@@ -1,14 +1,17 @@
|
|
1
1
|
Shindo.tests("Fog::Compute[:openstack] | tenants", ['openstack']) do
|
2
|
-
|
2
|
+
openstack = Fog::Identity::OpenStack.new(:openstack_auth_url => 'http://openstack:35357/v2.0/tokens')
|
3
|
+
@instance = openstack.tenants.create(:name => 'test')
|
3
4
|
|
4
5
|
tests('success') do
|
5
6
|
tests('#find_by_id').succeeds do
|
6
|
-
|
7
|
+
openstack = Fog::Identity::OpenStack.new(:openstack_auth_url => 'http://openstack:35357/v2.0/tokens')
|
8
|
+
tenant = openstack.tenants.find_by_id(@instance.id)
|
7
9
|
tenant.id == @instance.id
|
8
10
|
end
|
9
11
|
|
10
12
|
tests('#destroy').succeeds do
|
11
|
-
Fog::Identity
|
13
|
+
openstack = Fog::Identity::OpenStack.new(:openstack_auth_url => 'http://openstack:35357/v2.0/tokens')
|
14
|
+
openstack.tenants.destroy(@instance.id)
|
12
15
|
end
|
13
16
|
end
|
14
17
|
|
@@ -16,11 +19,13 @@ Shindo.tests("Fog::Compute[:openstack] | tenants", ['openstack']) do
|
|
16
19
|
pending if Fog.mocking?
|
17
20
|
|
18
21
|
tests('#find_by_id').raises(Fog::Identity::OpenStack::NotFound) do
|
19
|
-
Fog::Identity
|
22
|
+
openstack = Fog::Identity::OpenStack.new(:openstack_auth_url => 'http://openstack:35357/v2.0/tokens')
|
23
|
+
openstack.tenants.find_by_id('fake')
|
20
24
|
end
|
21
25
|
|
22
26
|
tests('#destroy').raises(Fog::Identity::OpenStack::NotFound) do
|
23
|
-
Fog::Identity
|
27
|
+
openstack = Fog::Identity::OpenStack.new(:openstack_auth_url => 'http://openstack:35357/v2.0/tokens')
|
28
|
+
openstack.tenants.destroy('fake')
|
24
29
|
end
|
25
30
|
end
|
26
31
|
end
|
@@ -1,12 +1,13 @@
|
|
1
1
|
Shindo.tests("Fog::Identity[:openstack] | user", ['openstack']) do
|
2
|
-
|
3
|
-
|
2
|
+
openstack = Fog::Identity::OpenStack.new(:openstack_auth_url => 'http://openstack:35357/v2.0/tokens')
|
3
|
+
tenant_id = openstack.list_tenants.body['tenants'].first['id']
|
4
|
+
@instance = openstack.users.new(
|
4
5
|
:name => 'User Name',
|
5
6
|
:email => 'test@fog.com',
|
6
7
|
:tenant_id => tenant_id,
|
7
8
|
:password => 'spoof',
|
8
9
|
:enabled => true
|
9
|
-
|
10
|
+
)
|
10
11
|
|
11
12
|
tests('success') do
|
12
13
|
tests('#save').returns(true) do
|
@@ -1,26 +1,30 @@
|
|
1
1
|
Shindo.tests("Fog::Identity[:openstack] | users", ['openstack']) do
|
2
|
-
|
3
|
-
|
2
|
+
openstack = Fog::Identity::OpenStack.new(:openstack_auth_url => 'http://openstack:35357/v2.0/tokens')
|
3
|
+
tenant_id = openstack.list_tenants.body['tenants'].first['id']
|
4
|
+
@instance = openstack.users.create(
|
4
5
|
:name => 'foobar',
|
5
6
|
:email => 'foo@bar.com',
|
6
7
|
:tenant_id => tenant_id,
|
7
8
|
:password => 'spoof',
|
8
9
|
:enabled => true
|
9
|
-
|
10
|
+
)
|
10
11
|
|
11
12
|
tests('success') do
|
12
13
|
tests('#find_by_id').succeeds do
|
13
|
-
|
14
|
+
openstack = Fog::Identity::OpenStack.new(:openstack_auth_url => 'http://openstack:35357/v2.0/tokens')
|
15
|
+
user = openstack.users.find_by_id(@instance.id)
|
14
16
|
user.id == @instance.id
|
15
17
|
end
|
16
18
|
|
17
19
|
tests('#find_by_name').succeeds do
|
18
|
-
|
20
|
+
openstack = Fog::Identity::OpenStack.new(:openstack_auth_url => 'http://openstack:35357/v2.0/tokens')
|
21
|
+
user = openstack.users.find_by_name(@instance.name)
|
19
22
|
user.name == @instance.name
|
20
23
|
end
|
21
24
|
|
22
25
|
tests('#destroy').succeeds do
|
23
|
-
Fog::Identity
|
26
|
+
openstack = Fog::Identity::OpenStack.new(:openstack_auth_url => 'http://openstack:35357/v2.0/tokens')
|
27
|
+
openstack.users.destroy(@instance.id)
|
24
28
|
end
|
25
29
|
end
|
26
30
|
|
@@ -0,0 +1,35 @@
|
|
1
|
+
Shindo.tests("Fog::NFV[:openstack] | vnf", ['openstack']) do
|
2
|
+
tests('success') do
|
3
|
+
tests('#create').succeeds do
|
4
|
+
vnfd_data = {:attributes => {:vnfd => "template_name: sample-vnfd\ndescription: demo-example\n\nservice_prop"\
|
5
|
+
"erties:\n Id: sample-vnfd\n vendor: tacker\n version: 1\n\nvdus:\n"\
|
6
|
+
" vdu1:\n id: vdu1\n vm_image: cirros\n instance_type: m1.ti"\
|
7
|
+
"ny\n\n network_interfaces:\n management:\n network: ne"\
|
8
|
+
"t_mgmt\n management: true\n pkt_in:\n network: net"\
|
9
|
+
"0\n pkt_out:\n network: net1\n\n placement_policy:\n "\
|
10
|
+
" availability_zone: nova\n\n auto-scaling: noop\n\n config:"\
|
11
|
+
"\n param0: key0\n param1: key1\n"},
|
12
|
+
:service_types => [{:service_type => "vnfd"}],
|
13
|
+
:mgmt_driver => "noop",
|
14
|
+
:infra_driver => "heat"}
|
15
|
+
auth = {"tenantName" => "admin", "passwordCredentials" => {"username" => "admin", "password" => "password"}}
|
16
|
+
@vnfd = Fog::NFV[:openstack].vnfds.create(:vnfd => vnfd_data, :auth => auth)
|
17
|
+
vnf_data = {:vnfd_id => @vnfd.id, :name => 'Test'}
|
18
|
+
@vnf = Fog::NFV[:openstack].vnfs.create(:vnf => vnf_data, :auth => auth)
|
19
|
+
end
|
20
|
+
|
21
|
+
Fog::NFV[:openstack].vnfs.get(@vnf.id).wait_for { ready? }
|
22
|
+
|
23
|
+
tests('#update').succeeds do
|
24
|
+
@vnf.vnf = {:attributes => {:config => "vdus:\n vdu1:<sample_vdu_config> \n\n"}}
|
25
|
+
@vnf.update
|
26
|
+
end
|
27
|
+
|
28
|
+
tests('#destroy').succeeds do
|
29
|
+
sleep(10) unless Fog.mocking?
|
30
|
+
|
31
|
+
@vnf.destroy
|
32
|
+
@vnfd.destroy
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
Shindo.tests("Fog::NFV[:openstack] | vnf", ['openstack']) do
|
2
|
+
tests('success') do
|
3
|
+
tests('#create').succeeds do
|
4
|
+
vnfd_data = {:attributes => {:vnfd => "template_name: sample-vnfd\ndescription: demo-example\n\nservice_prop"\
|
5
|
+
"erties:\n Id: sample-vnfd\n vendor: tacker\n version: 1\n\nvdus:\n"\
|
6
|
+
" vdu1:\n id: vdu1\n vm_image: cirros\n instance_type: m1.ti"\
|
7
|
+
"ny\n\n network_interfaces:\n management:\n network: ne"\
|
8
|
+
"t_mgmt\n management: true\n pkt_in:\n network: net"\
|
9
|
+
"0\n pkt_out:\n network: net1\n\n placement_policy:\n "\
|
10
|
+
" availability_zone: nova\n\n auto-scaling: noop\n\n config:"\
|
11
|
+
"\n param0: key0\n param1: key1\n"},
|
12
|
+
:service_types => [{:service_type => "vnfd"}],
|
13
|
+
:mgmt_driver => "noop",
|
14
|
+
:infra_driver => "heat"}
|
15
|
+
auth = {"tenantName" => "admin", "passwordCredentials" => {"username" => "admin", "password" => "password"}}
|
16
|
+
@vnfd = Fog::NFV[:openstack].vnfds.create(:vnfd => vnfd_data, :auth => auth)
|
17
|
+
end
|
18
|
+
|
19
|
+
tests('#destroy').succeeds do
|
20
|
+
@vnfd.destroy == true
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
Shindo.tests("Fog::NFV[:openstack] | vnfs", ['openstack']) do
|
2
|
+
vnfd_data = {:attributes => {:vnfd => "template_name: sample-vnfd\ndescription: demo-example\n\nservice_prop"\
|
3
|
+
"erties:\n Id: sample-vnfd\n vendor: tacker\n version: 1\n\nvdus:\n"\
|
4
|
+
" vdu1:\n id: vdu1\n vm_image: cirros\n instance_type: m1.ti"\
|
5
|
+
"ny\n\n network_interfaces:\n management:\n network: ne"\
|
6
|
+
"t_mgmt\n management: true\n pkt_in:\n network: net"\
|
7
|
+
"0\n pkt_out:\n network: net1\n\n placement_policy:\n "\
|
8
|
+
" availability_zone: nova\n\n auto-scaling: noop\n\n config:"\
|
9
|
+
"\n param0: key0\n param1: key1\n"},
|
10
|
+
:service_types => [{:service_type => "vnfd"}],
|
11
|
+
:mgmt_driver => "noop",
|
12
|
+
:infra_driver => "heat"}
|
13
|
+
auth = {"tenantName" => "admin", "passwordCredentials" => {"username" => "admin", "password" => "password"}}
|
14
|
+
@vnfd = Fog::NFV[:openstack].vnfds.create(:vnfd => vnfd_data, :auth => auth)
|
15
|
+
|
16
|
+
tests('success') do
|
17
|
+
tests('#find_by_id').succeeds do
|
18
|
+
vnf = Fog::NFV[:openstack].vnfds.find_by_id(@vnfd.id)
|
19
|
+
vnf.id == @vnfd.id
|
20
|
+
end
|
21
|
+
|
22
|
+
tests('#get').succeeds do
|
23
|
+
vnf = Fog::NFV[:openstack].vnfds.get(@vnfd.id)
|
24
|
+
vnf.id == @vnfd.id
|
25
|
+
end
|
26
|
+
|
27
|
+
tests('#destroy').succeeds do
|
28
|
+
Fog::NFV[:openstack].vnfds.destroy(@vnfd.id)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
Shindo.tests("Fog::NFV[:openstack] | vnfs", ['openstack']) do
|
2
|
+
vnfd_data = {:attributes => {:vnfd => "template_name: sample-vnfd\ndescription: demo-example\n\nservice_prop"\
|
3
|
+
"erties:\n Id: sample-vnfd\n vendor: tacker\n version: 1\n\nvdus:\n"\
|
4
|
+
" vdu1:\n id: vdu1\n vm_image: cirros\n instance_type: m1.ti"\
|
5
|
+
"ny\n\n network_interfaces:\n management:\n network: ne"\
|
6
|
+
"t_mgmt\n management: true\n pkt_in:\n network: net"\
|
7
|
+
"0\n pkt_out:\n network: net1\n\n placement_policy:\n "\
|
8
|
+
" availability_zone: nova\n\n auto-scaling: noop\n\n config:"\
|
9
|
+
"\n param0: key0\n param1: key1\n"},
|
10
|
+
:service_types => [{:service_type => "vnfd"}],
|
11
|
+
:mgmt_driver => "noop",
|
12
|
+
:infra_driver => "heat"}
|
13
|
+
auth = {"tenantName" => "admin", "passwordCredentials" => {"username" => "admin", "password" => "password"}}
|
14
|
+
@vnfd = Fog::NFV[:openstack].vnfds.create(:vnfd => vnfd_data, :auth => auth)
|
15
|
+
vnf_data = {:vnfd_id => @vnfd.id, :name => 'Test'}
|
16
|
+
@vnf = Fog::NFV[:openstack].vnfs.create(:vnf => vnf_data, :auth => auth)
|
17
|
+
|
18
|
+
Fog::NFV[:openstack].vnfs.get(@vnf.id).wait_for { ready? }
|
19
|
+
|
20
|
+
tests('success') do
|
21
|
+
tests('#find_by_id').succeeds do
|
22
|
+
vnf = Fog::NFV[:openstack].vnfs.find_by_id(@vnf.id)
|
23
|
+
vnf.id == @vnf.id
|
24
|
+
end
|
25
|
+
|
26
|
+
tests('#get').succeeds do
|
27
|
+
vnf = Fog::NFV[:openstack].vnfs.get(@vnf.id)
|
28
|
+
vnf.id == @vnf.id
|
29
|
+
end
|
30
|
+
|
31
|
+
tests('#destroy').succeeds do
|
32
|
+
sleep(10) unless Fog.mocking?
|
33
|
+
|
34
|
+
Fog::NFV[:openstack].vnfs.destroy(@vnf.id)
|
35
|
+
Fog::NFV[:openstack].vnfds.destroy(@vnfd.id)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|