fog-openstack 0.1.7 → 0.1.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +12 -28
- data/docs/workflow.md +129 -0
- data/examples/workflow/workflow-examples.rb +387 -0
- data/gemfiles/Gemfile-1.9 +1 -0
- data/lib/fog/openstack.rb +5 -1
- data/lib/fog/openstack/baremetal.rb +14 -38
- data/lib/fog/openstack/compute.rb +4 -33
- data/lib/fog/openstack/core.rb +104 -50
- data/lib/fog/openstack/identity.rb +2 -1
- data/lib/fog/openstack/identity_v2.rb +0 -2
- data/lib/fog/openstack/identity_v3.rb +0 -2
- data/lib/fog/openstack/image_v1.rb +6 -6
- data/lib/fog/openstack/image_v2.rb +7 -6
- data/lib/fog/openstack/introspection.rb +10 -35
- data/lib/fog/openstack/metering.rb +16 -35
- data/lib/fog/openstack/monitoring.rb +5 -31
- data/lib/fog/openstack/network.rb +5 -34
- data/lib/fog/openstack/nfv.rb +10 -35
- data/lib/fog/openstack/orchestration.rb +5 -40
- data/lib/fog/openstack/planning.rb +11 -36
- data/lib/fog/openstack/requests/compute/get_limits.rb +8 -7
- data/lib/fog/openstack/requests/network/update_router.rb +1 -1
- data/lib/fog/openstack/requests/workflow_v2/create_action.rb +28 -0
- data/lib/fog/openstack/requests/workflow_v2/create_action_execution.rb +31 -0
- data/lib/fog/openstack/requests/workflow_v2/create_cron_trigger.rb +55 -0
- data/lib/fog/openstack/requests/workflow_v2/create_environment.rb +31 -0
- data/lib/fog/openstack/requests/workflow_v2/create_execution.rb +30 -0
- data/lib/fog/openstack/requests/workflow_v2/create_workbook.rb +28 -0
- data/lib/fog/openstack/requests/workflow_v2/create_workflow.rb +28 -0
- data/lib/fog/openstack/requests/workflow_v2/delete_action.rb +25 -0
- data/lib/fog/openstack/requests/workflow_v2/delete_action_execution.rb +25 -0
- data/lib/fog/openstack/requests/workflow_v2/delete_cron_trigger.rb +25 -0
- data/lib/fog/openstack/requests/workflow_v2/delete_environment.rb +25 -0
- data/lib/fog/openstack/requests/workflow_v2/delete_execution.rb +25 -0
- data/lib/fog/openstack/requests/workflow_v2/delete_workbook.rb +25 -0
- data/lib/fog/openstack/requests/workflow_v2/delete_workflow.rb +25 -0
- data/lib/fog/openstack/requests/workflow_v2/get_action.rb +27 -0
- data/lib/fog/openstack/requests/workflow_v2/get_action_execution.rb +26 -0
- data/lib/fog/openstack/requests/workflow_v2/get_cron_trigger.rb +28 -0
- data/lib/fog/openstack/requests/workflow_v2/get_environment.rb +28 -0
- data/lib/fog/openstack/requests/workflow_v2/get_execution.rb +26 -0
- data/lib/fog/openstack/requests/workflow_v2/get_task.rb +27 -0
- data/lib/fog/openstack/requests/workflow_v2/get_workbook.rb +28 -0
- data/lib/fog/openstack/requests/workflow_v2/get_workflow.rb +28 -0
- data/lib/fog/openstack/requests/workflow_v2/list_action_executions.rb +28 -0
- data/lib/fog/openstack/requests/workflow_v2/list_actions.rb +30 -0
- data/lib/fog/openstack/requests/workflow_v2/list_cron_triggers.rb +28 -0
- data/lib/fog/openstack/requests/workflow_v2/list_environments.rb +28 -0
- data/lib/fog/openstack/requests/workflow_v2/list_executions.rb +28 -0
- data/lib/fog/openstack/requests/workflow_v2/list_services.rb +28 -0
- data/lib/fog/openstack/requests/workflow_v2/list_tasks.rb +28 -0
- data/lib/fog/openstack/requests/workflow_v2/list_workbooks.rb +28 -0
- data/lib/fog/openstack/requests/workflow_v2/list_workflows.rb +30 -0
- data/lib/fog/openstack/requests/workflow_v2/rerun_task.rb +33 -0
- data/lib/fog/openstack/requests/workflow_v2/update_action.rb +28 -0
- data/lib/fog/openstack/requests/workflow_v2/update_action_execution.rb +33 -0
- data/lib/fog/openstack/requests/workflow_v2/update_environment.rb +31 -0
- data/lib/fog/openstack/requests/workflow_v2/update_execution.rb +33 -0
- data/lib/fog/openstack/requests/workflow_v2/update_workbook.rb +28 -0
- data/lib/fog/openstack/requests/workflow_v2/update_workflow.rb +28 -0
- data/lib/fog/openstack/requests/workflow_v2/validate_action.rb +28 -0
- data/lib/fog/openstack/requests/workflow_v2/validate_workbook.rb +28 -0
- data/lib/fog/openstack/requests/workflow_v2/validate_workflow.rb +28 -0
- data/lib/fog/openstack/storage.rb +4 -35
- data/lib/fog/openstack/version.rb +1 -1
- data/lib/fog/openstack/volume_v1.rb +7 -5
- data/lib/fog/openstack/volume_v2.rb +7 -5
- data/lib/fog/openstack/workflow.rb +12 -0
- data/lib/fog/openstack/workflow_v2.rb +160 -0
- metadata +48 -95
- data/lib/fog/openstack/common.rb +0 -44
- data/tests/openstack/models/compute/images_tests.rb +0 -13
- data/tests/openstack/models/compute/security_group_tests.rb +0 -54
- data/tests/openstack/models/compute/server_tests.rb +0 -220
- data/tests/openstack/models/compute/service_tests.rb +0 -17
- data/tests/openstack/models/image/image_tests.rb +0 -36
- data/tests/openstack/models/image/images_tests.rb +0 -19
- data/tests/openstack/models/network/floating_ip_tests.rb +0 -35
- data/tests/openstack/models/network/floating_ips_tests.rb +0 -19
- data/tests/openstack/models/network/ike_policies_tests.rb +0 -28
- data/tests/openstack/models/network/ike_policy_tests.rb +0 -36
- data/tests/openstack/models/network/ipsec_policies_tests.rb +0 -26
- data/tests/openstack/models/network/ipsec_policy_tests.rb +0 -36
- data/tests/openstack/models/network/ipsec_site_connection_tests.rb +0 -50
- data/tests/openstack/models/network/ipsec_site_connections_tests.rb +0 -32
- data/tests/openstack/models/network/lb_health_monitor_tests.rb +0 -52
- data/tests/openstack/models/network/lb_health_monitors_tests.rb +0 -21
- data/tests/openstack/models/network/lb_member_tests.rb +0 -28
- data/tests/openstack/models/network/lb_members_tests.rb +0 -21
- data/tests/openstack/models/network/lb_pool_tests.rb +0 -53
- data/tests/openstack/models/network/lb_pools_tests.rb +0 -20
- data/tests/openstack/models/network/lb_vip_tests.rb +0 -39
- data/tests/openstack/models/network/lb_vips_tests.rb +0 -21
- data/tests/openstack/models/network/network_tests.rb +0 -61
- data/tests/openstack/models/network/networks_tests.rb +0 -21
- data/tests/openstack/models/network/port_tests.rb +0 -28
- data/tests/openstack/models/network/ports_tests.rb +0 -25
- data/tests/openstack/models/network/router_tests.rb +0 -39
- data/tests/openstack/models/network/routers_tests.rb +0 -21
- data/tests/openstack/models/network/security_group_rule_tests.rb +0 -27
- data/tests/openstack/models/network/security_group_rules_tests.rb +0 -25
- data/tests/openstack/models/network/security_group_tests.rb +0 -17
- data/tests/openstack/models/network/security_groups_tests.rb +0 -16
- data/tests/openstack/models/network/subnet_tests.rb +0 -30
- data/tests/openstack/models/network/subnets_tests.rb +0 -27
- data/tests/openstack/models/network/vpn_service_tests.rb +0 -27
- data/tests/openstack/models/network/vpn_services_tests.rb +0 -22
- data/tests/openstack/models/nfv/vnf_tests.rb +0 -35
- data/tests/openstack/models/nfv/vnfd_tests.rb +0 -23
- data/tests/openstack/models/nfv/vnfds_tests.rb +0 -31
- data/tests/openstack/models/nfv/vnfs_tests.rb +0 -38
- data/tests/openstack/models/planning/.gitkeep +0 -0
- data/tests/openstack/models/planning/plan_tests.rb +0 -51
- data/tests/openstack/models/planning/plans_tests.rb +0 -18
- data/tests/openstack/models/planning/role_tests.rb +0 -14
- data/tests/openstack/models/storage/file_tests.rb +0 -251
- data/tests/openstack/requests/compute/address_tests.rb +0 -58
- data/tests/openstack/requests/compute/aggregate_tests.rb +0 -59
- data/tests/openstack/requests/compute/availability_zone_tests.rb +0 -18
- data/tests/openstack/requests/compute/flavor_tests.rb +0 -95
- data/tests/openstack/requests/compute/helper.rb +0 -41
- data/tests/openstack/requests/compute/image_tests.rb +0 -58
- data/tests/openstack/requests/compute/keypair_tests.rb +0 -30
- data/tests/openstack/requests/compute/limit_tests.rb +0 -59
- data/tests/openstack/requests/compute/quota_tests.rb +0 -60
- data/tests/openstack/requests/compute/security_group_tests.rb +0 -61
- data/tests/openstack/requests/compute/server_tests.rb +0 -289
- data/tests/openstack/requests/compute/service_tests.rb +0 -33
- data/tests/openstack/requests/compute/tenant_tests.rb +0 -19
- data/tests/openstack/requests/compute/volume_tests.rb +0 -38
- data/tests/openstack/requests/image/image_tests.rb +0 -135
- data/tests/openstack/requests/metering/event_tests.rb +0 -17
- data/tests/openstack/requests/metering/meter_tests.rb +0 -52
- data/tests/openstack/requests/metering/resource_tests.rb +0 -19
- data/tests/openstack/requests/network/ike_policy_tests.rb +0 -65
- data/tests/openstack/requests/network/ipsec_policy_tests.rb +0 -65
- data/tests/openstack/requests/network/ipsec_site_connection_tests.rb +0 -82
- data/tests/openstack/requests/network/lb_health_monitor_tests.rb +0 -93
- data/tests/openstack/requests/network/lb_member_tests.rb +0 -60
- data/tests/openstack/requests/network/lb_pool_tests.rb +0 -80
- data/tests/openstack/requests/network/lb_vip_tests.rb +0 -71
- data/tests/openstack/requests/network/network_tests.rb +0 -107
- data/tests/openstack/requests/network/port_tests.rb +0 -66
- data/tests/openstack/requests/network/quota_tests.rb +0 -65
- data/tests/openstack/requests/network/router_tests.rb +0 -73
- data/tests/openstack/requests/network/security_group_rule_tests.rb +0 -58
- data/tests/openstack/requests/network/security_group_tests.rb +0 -43
- data/tests/openstack/requests/network/subnet_tests.rb +0 -66
- data/tests/openstack/requests/network/vpn_service_tests.rb +0 -61
- data/tests/openstack/requests/nfv/vnf_tests.rb +0 -70
- data/tests/openstack/requests/nfv/vnfd_tests.rb +0 -44
- data/tests/openstack/requests/orchestration/stack_tests.rb +0 -64
- data/tests/openstack/requests/planning/.gitkeep +0 -0
- data/tests/openstack/requests/planning/plan_tests.rb +0 -65
- data/tests/openstack/requests/planning/role_tests.rb +0 -16
- data/tests/openstack/requests/storage/container_tests.rb +0 -64
- data/tests/openstack/requests/storage/large_object_tests.rb +0 -372
- data/tests/openstack/requests/storage/object_tests.rb +0 -208
- data/tests/openstack/requests/volume/availability_zone_tests.rb +0 -13
- data/tests/openstack/requests/volume/quota_tests.rb +0 -50
- data/tests/openstack/requests/volume/volume_type_tests.rb +0 -32
@@ -0,0 +1,30 @@
|
|
1
|
+
module Fog
|
2
|
+
module Workflow
|
3
|
+
class OpenStack
|
4
|
+
class V2
|
5
|
+
class Real
|
6
|
+
def list_workflows(params = {})
|
7
|
+
body = Fog::JSON.encode(params)
|
8
|
+
request(
|
9
|
+
:body => body,
|
10
|
+
:expects => 200,
|
11
|
+
:method => "GET",
|
12
|
+
:path => "workflows"
|
13
|
+
)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
class Mock
|
18
|
+
def list_workflows(_params = {})
|
19
|
+
response = Excon::Response.new
|
20
|
+
response.status = 200
|
21
|
+
response.body = { "workflows" =>
|
22
|
+
[{ "name" => "workflow1", "description" => "d1" },
|
23
|
+
{ "name" => "workflow2", "description" => "d2" }] }
|
24
|
+
response
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Fog
|
2
|
+
module Workflow
|
3
|
+
class OpenStack
|
4
|
+
class V2
|
5
|
+
class Real
|
6
|
+
def rerun_task(task_ex_id)
|
7
|
+
rerun_payload = {
|
8
|
+
:id => task_ex_id,
|
9
|
+
:state => 'RUNNING',
|
10
|
+
:reset => true
|
11
|
+
}
|
12
|
+
body = Fog::JSON.encode(rerun_payload)
|
13
|
+
request(
|
14
|
+
:body => body,
|
15
|
+
:expects => 200,
|
16
|
+
:method => "PUT",
|
17
|
+
:path => "tasks/#{task_ex_id}"
|
18
|
+
)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
class Mock
|
23
|
+
def update_action(_task_ex_id)
|
24
|
+
response = Excon::Response.new
|
25
|
+
response.status = 200
|
26
|
+
response.body = ""
|
27
|
+
response
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Fog
|
2
|
+
module Workflow
|
3
|
+
class OpenStack
|
4
|
+
class V2
|
5
|
+
class Real
|
6
|
+
def update_action(definition)
|
7
|
+
body = Fog::JSON.encode(definition)
|
8
|
+
request(
|
9
|
+
:body => body,
|
10
|
+
:expects => 200,
|
11
|
+
:method => "PUT",
|
12
|
+
:path => "actions"
|
13
|
+
)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
class Mock
|
18
|
+
def update_action(_definition)
|
19
|
+
response = Excon::Response.new
|
20
|
+
response.status = 200
|
21
|
+
response.body = ""
|
22
|
+
response
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Fog
|
2
|
+
module Workflow
|
3
|
+
class OpenStack
|
4
|
+
class V2
|
5
|
+
class Real
|
6
|
+
def update_action_execution(id, name, value)
|
7
|
+
# valid values for name are:
|
8
|
+
# state, output
|
9
|
+
# https://github.com/openstack/python-mistralclient/blob/master/mistralclient/commands/v2/action_executions.py
|
10
|
+
data = { :id => id }
|
11
|
+
data[name] = Fog::JSON.encode(value)
|
12
|
+
body = Fog::JSON.encode(data)
|
13
|
+
request(
|
14
|
+
:body => body,
|
15
|
+
:expects => 200,
|
16
|
+
:method => "PUT",
|
17
|
+
:path => "action_executions"
|
18
|
+
)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
class Mock
|
23
|
+
def update_action_execution(_id, _name, _value)
|
24
|
+
response = Excon::Response.new
|
25
|
+
response.status = 200
|
26
|
+
response.body = ""
|
27
|
+
response
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Fog
|
2
|
+
module Workflow
|
3
|
+
class OpenStack
|
4
|
+
class V2
|
5
|
+
class Real
|
6
|
+
def update_environment(definition)
|
7
|
+
unless definition["variables"].nil?
|
8
|
+
definition["variables"] = Fog::JSON.encode(definition["variables"])
|
9
|
+
end
|
10
|
+
body = Fog::JSON.encode(definition)
|
11
|
+
request(
|
12
|
+
:body => body,
|
13
|
+
:expects => 200,
|
14
|
+
:method => "PUT",
|
15
|
+
:path => "environments"
|
16
|
+
)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
class Mock
|
21
|
+
def update_environment(_definition)
|
22
|
+
response = Excon::Response.new
|
23
|
+
response.status = 200
|
24
|
+
response.body = ""
|
25
|
+
response
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Fog
|
2
|
+
module Workflow
|
3
|
+
class OpenStack
|
4
|
+
class V2
|
5
|
+
class Real
|
6
|
+
def update_execution(id, name, value)
|
7
|
+
# valid values for name are:
|
8
|
+
# state, description, env
|
9
|
+
# https://github.com/openstack/python-mistralclient/blob/master/mistralclient/commands/v2/executions.py
|
10
|
+
data = { :id => id }
|
11
|
+
data[name] = Fog::JSON.encode(value)
|
12
|
+
body = Fog::JSON.encode(data)
|
13
|
+
request(
|
14
|
+
:body => body,
|
15
|
+
:expects => 200,
|
16
|
+
:method => "PUT",
|
17
|
+
:path => "executions"
|
18
|
+
)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
class Mock
|
23
|
+
def update_execution(_id, _name, _value)
|
24
|
+
response = Excon::Response.new
|
25
|
+
response.status = 200
|
26
|
+
response.body = ""
|
27
|
+
response
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Fog
|
2
|
+
module Workflow
|
3
|
+
class OpenStack
|
4
|
+
class V2
|
5
|
+
class Real
|
6
|
+
def update_workbook(definition)
|
7
|
+
body = Fog::JSON.encode(definition)
|
8
|
+
request(
|
9
|
+
:body => body,
|
10
|
+
:expects => 200,
|
11
|
+
:method => "PUT",
|
12
|
+
:path => "workbooks"
|
13
|
+
)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
class Mock
|
18
|
+
def update_workbook(_definition)
|
19
|
+
response = Excon::Response.new
|
20
|
+
response.status = 200
|
21
|
+
response.body = ""
|
22
|
+
response
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Fog
|
2
|
+
module Workflow
|
3
|
+
class OpenStack
|
4
|
+
class V2
|
5
|
+
class Real
|
6
|
+
def update_workflow(definition)
|
7
|
+
body = Fog::JSON.encode(definition)
|
8
|
+
request(
|
9
|
+
:body => body,
|
10
|
+
:expects => 200,
|
11
|
+
:method => "PUT",
|
12
|
+
:path => "workflows"
|
13
|
+
)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
class Mock
|
18
|
+
def update_workflow(_definition)
|
19
|
+
response = Excon::Response.new
|
20
|
+
response.status = 200
|
21
|
+
response.body = ""
|
22
|
+
response
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Fog
|
2
|
+
module Workflow
|
3
|
+
class OpenStack
|
4
|
+
class V2
|
5
|
+
class Real
|
6
|
+
def validate_action(definition)
|
7
|
+
body = Fog::JSON.encode(definition)
|
8
|
+
request(
|
9
|
+
:body => body,
|
10
|
+
:expects => 200,
|
11
|
+
:method => "POST",
|
12
|
+
:path => "actions/validate"
|
13
|
+
)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
class Mock
|
18
|
+
def validate_action(_definition)
|
19
|
+
response = Excon::Response.new
|
20
|
+
response.status = 200
|
21
|
+
response.body = "{\"valid\": true}"
|
22
|
+
response
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Fog
|
2
|
+
module Workflow
|
3
|
+
class OpenStack
|
4
|
+
class V2
|
5
|
+
class Real
|
6
|
+
def validate_workbook(definition)
|
7
|
+
body = Fog::JSON.encode(definition)
|
8
|
+
request(
|
9
|
+
:body => body,
|
10
|
+
:expects => 200,
|
11
|
+
:method => "POST",
|
12
|
+
:path => "workbooks/validate"
|
13
|
+
)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
class Mock
|
18
|
+
def validate_workbook(_definition)
|
19
|
+
response = Excon::Response.new
|
20
|
+
response.status = 200
|
21
|
+
response.body = "{\"valid\": true}"
|
22
|
+
response
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Fog
|
2
|
+
module Workflow
|
3
|
+
class OpenStack
|
4
|
+
class V2
|
5
|
+
class Real
|
6
|
+
def validate_workflow(definition)
|
7
|
+
body = Fog::JSON.encode(definition)
|
8
|
+
request(
|
9
|
+
:body => body,
|
10
|
+
:expects => 200,
|
11
|
+
:method => "POST",
|
12
|
+
:path => "workflows/validate"
|
13
|
+
)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
class Mock
|
18
|
+
def validate_workflow(_definition)
|
19
|
+
response = Excon::Response.new
|
20
|
+
response.status = 200
|
21
|
+
response.body = "{\"valid\": true}"
|
22
|
+
response
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -82,6 +82,10 @@ module Fog
|
|
82
82
|
class Real
|
83
83
|
include Fog::OpenStack::Core
|
84
84
|
|
85
|
+
def self.not_found_class
|
86
|
+
Fog::Storage::OpenStack::NotFound
|
87
|
+
end
|
88
|
+
|
85
89
|
def initialize(options={})
|
86
90
|
initialize_identity options
|
87
91
|
|
@@ -140,41 +144,6 @@ module Fog
|
|
140
144
|
def reset_account_name
|
141
145
|
@path = @original_path
|
142
146
|
end
|
143
|
-
|
144
|
-
def request(params, parse_json = true)
|
145
|
-
begin
|
146
|
-
response = @connection.request(params.merge({
|
147
|
-
:headers => {
|
148
|
-
'Content-Type' => 'application/json',
|
149
|
-
'Accept' => 'application/json',
|
150
|
-
'X-Auth-Token' => @auth_token
|
151
|
-
}.merge!(params[:headers] || {}),
|
152
|
-
:path => "#{@path}/#{params[:path]}",
|
153
|
-
}))
|
154
|
-
rescue Excon::Errors::Unauthorized => error
|
155
|
-
if error.response.body != 'Bad username or password' # token expiration
|
156
|
-
@openstack_must_reauthenticate = true
|
157
|
-
authenticate
|
158
|
-
retry
|
159
|
-
else # bad credentials
|
160
|
-
raise error
|
161
|
-
end
|
162
|
-
rescue Excon::Errors::HTTPStatusError => error
|
163
|
-
raise case error
|
164
|
-
when Excon::Errors::NotFound
|
165
|
-
Fog::Storage::OpenStack::NotFound.slurp(error)
|
166
|
-
else
|
167
|
-
error
|
168
|
-
end
|
169
|
-
end
|
170
|
-
if !response.body.empty? && parse_json && response.get_header('Content-Type') =~ %r{application/json}
|
171
|
-
response.body = Fog::JSON.decode(response.body)
|
172
|
-
end
|
173
|
-
response
|
174
|
-
end
|
175
|
-
|
176
|
-
private
|
177
|
-
|
178
147
|
end
|
179
148
|
end
|
180
149
|
end
|
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'fog/openstack/core'
|
2
|
-
require 'fog/openstack/common'
|
3
2
|
require 'fog/openstack/volume'
|
4
3
|
|
5
4
|
module Fog
|
@@ -138,10 +137,10 @@ module Fog
|
|
138
137
|
|
139
138
|
class Real
|
140
139
|
include Fog::OpenStack::Core
|
140
|
+
|
141
141
|
def self.not_found_class
|
142
142
|
Fog::Volume::OpenStack::NotFound
|
143
143
|
end
|
144
|
-
include Fog::OpenStack::Common
|
145
144
|
|
146
145
|
def initialize(options = {})
|
147
146
|
initialize_identity options
|
@@ -153,16 +152,19 @@ module Fog
|
|
153
152
|
@connection_options = options[:connection_options] || {}
|
154
153
|
|
155
154
|
authenticate
|
155
|
+
set_api_path
|
156
|
+
|
157
|
+
@persistent = options[:persistent] || false
|
158
|
+
@connection = Fog::Core::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent, @connection_options)
|
159
|
+
end
|
156
160
|
|
161
|
+
def set_api_path
|
157
162
|
unless @path.match(SUPPORTED_VERSIONS)
|
158
163
|
@path = Fog::OpenStack.get_supported_version_path(SUPPORTED_VERSIONS,
|
159
164
|
@openstack_management_uri,
|
160
165
|
@auth_token,
|
161
166
|
@connection_options)
|
162
167
|
end
|
163
|
-
|
164
|
-
@persistent = options[:persistent] || false
|
165
|
-
@connection = Fog::Core::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent, @connection_options)
|
166
168
|
end
|
167
169
|
end
|
168
170
|
end
|
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'fog/openstack/core'
|
2
|
-
require 'fog/openstack/common'
|
3
2
|
require 'fog/openstack/volume'
|
4
3
|
|
5
4
|
module Fog
|
@@ -139,10 +138,10 @@ module Fog
|
|
139
138
|
|
140
139
|
class Real
|
141
140
|
include Fog::OpenStack::Core
|
141
|
+
|
142
142
|
def self.not_found_class
|
143
143
|
Fog::Volume::OpenStack::NotFound
|
144
144
|
end
|
145
|
-
include Fog::OpenStack::Common
|
146
145
|
|
147
146
|
def initialize(options = {})
|
148
147
|
initialize_identity options
|
@@ -154,16 +153,19 @@ module Fog
|
|
154
153
|
@connection_options = options[:connection_options] || {}
|
155
154
|
|
156
155
|
authenticate
|
156
|
+
set_api_path
|
157
|
+
|
158
|
+
@persistent = options[:persistent] || false
|
159
|
+
@connection = Fog::Core::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent, @connection_options)
|
160
|
+
end
|
157
161
|
|
162
|
+
def set_api_path
|
158
163
|
unless @path.match(SUPPORTED_VERSIONS)
|
159
164
|
@path = Fog::OpenStack.get_supported_version_path(SUPPORTED_VERSIONS,
|
160
165
|
@openstack_management_uri,
|
161
166
|
@auth_token,
|
162
167
|
@connection_options)
|
163
168
|
end
|
164
|
-
|
165
|
-
@persistent = options[:persistent] || false
|
166
|
-
@connection = Fog::Core::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent, @connection_options)
|
167
169
|
end
|
168
170
|
end
|
169
171
|
end
|