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
@@ -0,0 +1,42 @@
|
|
1
|
+
module Fog
|
2
|
+
module Network
|
3
|
+
class OpenStack
|
4
|
+
class Real
|
5
|
+
def create_rbac_policy(options = {})
|
6
|
+
data = {'rbac_policy' => {}}
|
7
|
+
|
8
|
+
vanilla_options = [:object_type, :object_id, :tenant_id, :target_tenant, :action]
|
9
|
+
vanilla_options.select { |o| options.key?(o) }.each do |key|
|
10
|
+
data['rbac_policy'][key] = options[key]
|
11
|
+
end
|
12
|
+
|
13
|
+
request(
|
14
|
+
:body => Fog::JSON.encode(data),
|
15
|
+
:expects => [201],
|
16
|
+
:method => 'POST',
|
17
|
+
:path => 'rbac-policies'
|
18
|
+
)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
class Mock
|
23
|
+
def create_rbac_policy(options = {})
|
24
|
+
response = Excon::Response.new
|
25
|
+
response.status = 201
|
26
|
+
data = {
|
27
|
+
'id' => Fog::Mock.random_numbers(6).to_s,
|
28
|
+
'object_type' => options[:object_type],
|
29
|
+
'object_id' => options[:object_id],
|
30
|
+
'tenant_id' => options[:tenant_id],
|
31
|
+
'target_tenant' => options[:target_tenant],
|
32
|
+
'action' => options[:action]
|
33
|
+
}
|
34
|
+
|
35
|
+
self.data[:rbac_policies][data['id']] = data
|
36
|
+
response.body = {'rbac_policy' => data}
|
37
|
+
response
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Fog
|
2
|
+
module Network
|
3
|
+
class OpenStack
|
4
|
+
class Real
|
5
|
+
def delete_rbac_policy(rbac_policy_id)
|
6
|
+
request(
|
7
|
+
:expects => 204,
|
8
|
+
:method => 'DELETE',
|
9
|
+
:path => "rbac-policies/#{rbac_policy_id}"
|
10
|
+
)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class Mock
|
15
|
+
def delete_rbac_policy(rbac_policy_id)
|
16
|
+
response = Excon::Response.new
|
17
|
+
if list_rbac_policies.body['rbac_policies'].collect { |r| r['id'] }.include? rbac_policy_id
|
18
|
+
data[:rbac_policies].delete(rbac_policy_id)
|
19
|
+
response.status = 204
|
20
|
+
response
|
21
|
+
else
|
22
|
+
raise Fog::Network::OpenStack::NotFound
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Fog
|
2
|
+
module Network
|
3
|
+
class OpenStack
|
4
|
+
class Real
|
5
|
+
def get_rbac_policy(rbac_policy_id)
|
6
|
+
request(
|
7
|
+
:expects => [200],
|
8
|
+
:method => 'GET',
|
9
|
+
:path => "rbac-policies/#{rbac_policy_id}"
|
10
|
+
)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class Mock
|
15
|
+
def get_rbac_policy(rbac_policy_id)
|
16
|
+
response = Excon::Response.new
|
17
|
+
if data = self.data[:rbac_policies][rbac_policy_id]
|
18
|
+
response.status = 200
|
19
|
+
response.body = {'rbac_policy' => data}
|
20
|
+
response
|
21
|
+
else
|
22
|
+
raise Fog::Network::OpenStack::NotFound
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Fog
|
2
|
+
module Network
|
3
|
+
class OpenStack
|
4
|
+
class Real
|
5
|
+
def list_rbac_policies(filters = {})
|
6
|
+
request(
|
7
|
+
:expects => 200,
|
8
|
+
:method => 'GET',
|
9
|
+
:path => 'rbac-policies',
|
10
|
+
:query => filters
|
11
|
+
)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
class Mock
|
16
|
+
def list_rbac_policies(*)
|
17
|
+
Excon::Response.new(
|
18
|
+
:body => {'rbac_policies' => data[:rbac_policies].values},
|
19
|
+
:status => 200
|
20
|
+
)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -6,7 +6,7 @@ module Fog
|
|
6
6
|
data = { 'port' => {} }
|
7
7
|
|
8
8
|
vanilla_options = [:name, :fixed_ips, :admin_state_up, :device_owner,
|
9
|
-
:device_id, :security_groups]
|
9
|
+
:device_id, :security_groups, :allowed_address_pairs]
|
10
10
|
vanilla_options.select{ |o| options.key?(o) }.each do |key|
|
11
11
|
data['port'][key] = options[key]
|
12
12
|
end
|
@@ -24,12 +24,13 @@ module Fog
|
|
24
24
|
def update_port(port_id, options = {})
|
25
25
|
response = Excon::Response.new
|
26
26
|
if port = list_ports.body['ports'].find { |_| _['id'] == port_id }
|
27
|
-
port['name']
|
28
|
-
port['fixed_ips']
|
29
|
-
port['admin_state_up']
|
30
|
-
port['device_owner']
|
31
|
-
port['device_id']
|
32
|
-
port['security_groups']
|
27
|
+
port['name'] = options[:name]
|
28
|
+
port['fixed_ips'] = options[:fixed_ips] || []
|
29
|
+
port['admin_state_up'] = options[:admin_state_up]
|
30
|
+
port['device_owner'] = options[:device_owner]
|
31
|
+
port['device_id'] = options[:device_id]
|
32
|
+
port['security_groups'] = options[:security_groups] || []
|
33
|
+
port['allowed_address_pairs'] = options[:allowed_address_pairs] || []
|
33
34
|
response.body = { 'port' => port }
|
34
35
|
response.status = 200
|
35
36
|
response
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Fog
|
2
|
+
module Network
|
3
|
+
class OpenStack
|
4
|
+
class Real
|
5
|
+
def update_rbac_policy(rbac_policy_id, options = {})
|
6
|
+
data = {'rbac_policy' => {}}
|
7
|
+
|
8
|
+
vanilla_options = [:target_tenant]
|
9
|
+
vanilla_options.select { |o| options.key?(o) }.each do |key|
|
10
|
+
data['rbac_policy'][key] = options[key]
|
11
|
+
end
|
12
|
+
|
13
|
+
request(
|
14
|
+
:body => Fog::JSON.encode(data),
|
15
|
+
:expects => 200,
|
16
|
+
:method => 'PUT',
|
17
|
+
:path => "rbac-policies/#{rbac_policy_id}"
|
18
|
+
)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
class Mock
|
23
|
+
def update_rbac_policy(rbac_policy_id, options = {})
|
24
|
+
response = Excon::Response.new
|
25
|
+
rbac_policy = list_rbac_policies.body['rbac_policies'].detect do |instance|
|
26
|
+
instance['id'] == rbac_policy_id
|
27
|
+
end
|
28
|
+
if rbac_policy
|
29
|
+
rbac_policy['target_tenant'] = options[:target_tenant]
|
30
|
+
|
31
|
+
response.body = {'rbac_policy' => rbac_policy}
|
32
|
+
response.status = 200
|
33
|
+
response
|
34
|
+
else
|
35
|
+
raise Fog::Network::OpenStack::NotFound
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Fog
|
2
|
+
module NFV
|
3
|
+
class OpenStack
|
4
|
+
class Real
|
5
|
+
def create_vnf(options)
|
6
|
+
options_valid = [
|
7
|
+
:auth,
|
8
|
+
:vnf,
|
9
|
+
]
|
10
|
+
|
11
|
+
# Filter only allowed creation attributes
|
12
|
+
data = options.select do |key, _|
|
13
|
+
options_valid.include?(key.to_sym) || options_valid.include?(key.to_s)
|
14
|
+
end
|
15
|
+
|
16
|
+
request(
|
17
|
+
:body => Fog::JSON.encode(data),
|
18
|
+
:expects => 201,
|
19
|
+
:method => "POST",
|
20
|
+
:path => "vnfs"
|
21
|
+
)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
class Mock
|
26
|
+
def create_vnf(_)
|
27
|
+
response = Excon::Response.new
|
28
|
+
response.status = 201
|
29
|
+
|
30
|
+
create_data = data[:vnfs].first.merge("vnfd_id" => "id")
|
31
|
+
response.body = {"vnf" => create_data}
|
32
|
+
response
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Fog
|
2
|
+
module NFV
|
3
|
+
class OpenStack
|
4
|
+
class Real
|
5
|
+
def create_vnfd(options)
|
6
|
+
options_valid = [
|
7
|
+
:auth,
|
8
|
+
:vnfd,
|
9
|
+
]
|
10
|
+
|
11
|
+
# Filter only allowed creation attributes
|
12
|
+
data = options.select do |key, _|
|
13
|
+
options_valid.include?(key.to_sym) || options_valid.include?(key.to_s)
|
14
|
+
end
|
15
|
+
|
16
|
+
request(
|
17
|
+
:body => Fog::JSON.encode(data),
|
18
|
+
:expects => 201,
|
19
|
+
:method => "POST",
|
20
|
+
:path => "vnfds"
|
21
|
+
)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
class Mock
|
26
|
+
def create_vnfd(_)
|
27
|
+
response = Excon::Response.new
|
28
|
+
response.status = 201
|
29
|
+
response.body = {"vnfd" => data[:vnfds].first}
|
30
|
+
response
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Fog
|
2
|
+
module NFV
|
3
|
+
class OpenStack
|
4
|
+
class Real
|
5
|
+
def delete_vnf(vnf_id)
|
6
|
+
request(
|
7
|
+
:expects => 204,
|
8
|
+
:method => "DELETE",
|
9
|
+
:path => "vnfs/#{vnf_id}"
|
10
|
+
)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class Mock
|
15
|
+
def delete_vnf(_vnf_id)
|
16
|
+
response = Excon::Response.new
|
17
|
+
response.status = 204
|
18
|
+
response
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Fog
|
2
|
+
module NFV
|
3
|
+
class OpenStack
|
4
|
+
class Real
|
5
|
+
def delete_vnfd(vnfd_id)
|
6
|
+
request(
|
7
|
+
:expects => 204,
|
8
|
+
:method => "DELETE",
|
9
|
+
:path => "vnfds/#{vnfd_id}"
|
10
|
+
)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class Mock
|
15
|
+
def delete_vnfd(_vnfd_id)
|
16
|
+
response = Excon::Response.new
|
17
|
+
response.status = 204
|
18
|
+
response
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Fog
|
2
|
+
module NFV
|
3
|
+
class OpenStack
|
4
|
+
class Real
|
5
|
+
def get_vnf(vnf_id)
|
6
|
+
request(
|
7
|
+
:expects => 200,
|
8
|
+
:method => 'GET',
|
9
|
+
:path => "vnfs/#{vnf_id}"
|
10
|
+
)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class Mock
|
15
|
+
def get_vnf(_vnf_id)
|
16
|
+
response = Excon::Response.new
|
17
|
+
response.status = 200
|
18
|
+
response.body = {"vnf" => data[:vnfs].first}
|
19
|
+
response
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Fog
|
2
|
+
module NFV
|
3
|
+
class OpenStack
|
4
|
+
class Real
|
5
|
+
def get_vnfd(vnfd_id)
|
6
|
+
request(
|
7
|
+
:expects => 200,
|
8
|
+
:method => 'GET',
|
9
|
+
:path => "vnfds/#{vnfd_id}"
|
10
|
+
)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class Mock
|
15
|
+
def get_vnfd(_vnfd_id)
|
16
|
+
response = Excon::Response.new
|
17
|
+
response.status = 200
|
18
|
+
response.body = {"vnfd" => data[:vnfds].first}
|
19
|
+
response
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Fog
|
2
|
+
module NFV
|
3
|
+
class OpenStack
|
4
|
+
class Real
|
5
|
+
def list_vnfds(options = {})
|
6
|
+
request(
|
7
|
+
:expects => 200,
|
8
|
+
:method => 'GET',
|
9
|
+
:path => "vnfds",
|
10
|
+
:query => options
|
11
|
+
)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
class Mock
|
16
|
+
def list_vnfds(_options = {})
|
17
|
+
response = Excon::Response.new
|
18
|
+
response.status = 200
|
19
|
+
response.body = {"vnfds" => data[:vnfds]}
|
20
|
+
response
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Fog
|
2
|
+
module NFV
|
3
|
+
class OpenStack
|
4
|
+
class Real
|
5
|
+
def list_vnfs(options = {})
|
6
|
+
request(
|
7
|
+
:expects => 200,
|
8
|
+
:method => 'GET',
|
9
|
+
:path => "vnfs",
|
10
|
+
:query => options
|
11
|
+
)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
class Mock
|
16
|
+
def list_vnfs(_options = {})
|
17
|
+
response = Excon::Response.new
|
18
|
+
response.status = 200
|
19
|
+
response.body = {"vnfs" => data[:vnfs]}
|
20
|
+
response
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Fog
|
2
|
+
module NFV
|
3
|
+
class OpenStack
|
4
|
+
class Real
|
5
|
+
def update_vnf(id, options)
|
6
|
+
options_valid = [
|
7
|
+
:auth,
|
8
|
+
:vnf,
|
9
|
+
]
|
10
|
+
|
11
|
+
# Filter only allowed creation attributes
|
12
|
+
data = options.select do |key, _|
|
13
|
+
options_valid.include?(key.to_sym) || options_valid.include?(key.to_s)
|
14
|
+
end
|
15
|
+
|
16
|
+
request(
|
17
|
+
:body => Fog::JSON.encode(data),
|
18
|
+
:expects => 200,
|
19
|
+
:method => "PUT",
|
20
|
+
:path => "vnfs/#{id}",
|
21
|
+
)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
class Mock
|
26
|
+
def update_vnf(_, _)
|
27
|
+
response = Excon::Response.new
|
28
|
+
response.status = 200
|
29
|
+
response.body = {"vnf" => data[:vnfs].first}
|
30
|
+
response
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|