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.
Files changed (162) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +12 -28
  3. data/docs/workflow.md +129 -0
  4. data/examples/workflow/workflow-examples.rb +387 -0
  5. data/gemfiles/Gemfile-1.9 +1 -0
  6. data/lib/fog/openstack.rb +5 -1
  7. data/lib/fog/openstack/baremetal.rb +14 -38
  8. data/lib/fog/openstack/compute.rb +4 -33
  9. data/lib/fog/openstack/core.rb +104 -50
  10. data/lib/fog/openstack/identity.rb +2 -1
  11. data/lib/fog/openstack/identity_v2.rb +0 -2
  12. data/lib/fog/openstack/identity_v3.rb +0 -2
  13. data/lib/fog/openstack/image_v1.rb +6 -6
  14. data/lib/fog/openstack/image_v2.rb +7 -6
  15. data/lib/fog/openstack/introspection.rb +10 -35
  16. data/lib/fog/openstack/metering.rb +16 -35
  17. data/lib/fog/openstack/monitoring.rb +5 -31
  18. data/lib/fog/openstack/network.rb +5 -34
  19. data/lib/fog/openstack/nfv.rb +10 -35
  20. data/lib/fog/openstack/orchestration.rb +5 -40
  21. data/lib/fog/openstack/planning.rb +11 -36
  22. data/lib/fog/openstack/requests/compute/get_limits.rb +8 -7
  23. data/lib/fog/openstack/requests/network/update_router.rb +1 -1
  24. data/lib/fog/openstack/requests/workflow_v2/create_action.rb +28 -0
  25. data/lib/fog/openstack/requests/workflow_v2/create_action_execution.rb +31 -0
  26. data/lib/fog/openstack/requests/workflow_v2/create_cron_trigger.rb +55 -0
  27. data/lib/fog/openstack/requests/workflow_v2/create_environment.rb +31 -0
  28. data/lib/fog/openstack/requests/workflow_v2/create_execution.rb +30 -0
  29. data/lib/fog/openstack/requests/workflow_v2/create_workbook.rb +28 -0
  30. data/lib/fog/openstack/requests/workflow_v2/create_workflow.rb +28 -0
  31. data/lib/fog/openstack/requests/workflow_v2/delete_action.rb +25 -0
  32. data/lib/fog/openstack/requests/workflow_v2/delete_action_execution.rb +25 -0
  33. data/lib/fog/openstack/requests/workflow_v2/delete_cron_trigger.rb +25 -0
  34. data/lib/fog/openstack/requests/workflow_v2/delete_environment.rb +25 -0
  35. data/lib/fog/openstack/requests/workflow_v2/delete_execution.rb +25 -0
  36. data/lib/fog/openstack/requests/workflow_v2/delete_workbook.rb +25 -0
  37. data/lib/fog/openstack/requests/workflow_v2/delete_workflow.rb +25 -0
  38. data/lib/fog/openstack/requests/workflow_v2/get_action.rb +27 -0
  39. data/lib/fog/openstack/requests/workflow_v2/get_action_execution.rb +26 -0
  40. data/lib/fog/openstack/requests/workflow_v2/get_cron_trigger.rb +28 -0
  41. data/lib/fog/openstack/requests/workflow_v2/get_environment.rb +28 -0
  42. data/lib/fog/openstack/requests/workflow_v2/get_execution.rb +26 -0
  43. data/lib/fog/openstack/requests/workflow_v2/get_task.rb +27 -0
  44. data/lib/fog/openstack/requests/workflow_v2/get_workbook.rb +28 -0
  45. data/lib/fog/openstack/requests/workflow_v2/get_workflow.rb +28 -0
  46. data/lib/fog/openstack/requests/workflow_v2/list_action_executions.rb +28 -0
  47. data/lib/fog/openstack/requests/workflow_v2/list_actions.rb +30 -0
  48. data/lib/fog/openstack/requests/workflow_v2/list_cron_triggers.rb +28 -0
  49. data/lib/fog/openstack/requests/workflow_v2/list_environments.rb +28 -0
  50. data/lib/fog/openstack/requests/workflow_v2/list_executions.rb +28 -0
  51. data/lib/fog/openstack/requests/workflow_v2/list_services.rb +28 -0
  52. data/lib/fog/openstack/requests/workflow_v2/list_tasks.rb +28 -0
  53. data/lib/fog/openstack/requests/workflow_v2/list_workbooks.rb +28 -0
  54. data/lib/fog/openstack/requests/workflow_v2/list_workflows.rb +30 -0
  55. data/lib/fog/openstack/requests/workflow_v2/rerun_task.rb +33 -0
  56. data/lib/fog/openstack/requests/workflow_v2/update_action.rb +28 -0
  57. data/lib/fog/openstack/requests/workflow_v2/update_action_execution.rb +33 -0
  58. data/lib/fog/openstack/requests/workflow_v2/update_environment.rb +31 -0
  59. data/lib/fog/openstack/requests/workflow_v2/update_execution.rb +33 -0
  60. data/lib/fog/openstack/requests/workflow_v2/update_workbook.rb +28 -0
  61. data/lib/fog/openstack/requests/workflow_v2/update_workflow.rb +28 -0
  62. data/lib/fog/openstack/requests/workflow_v2/validate_action.rb +28 -0
  63. data/lib/fog/openstack/requests/workflow_v2/validate_workbook.rb +28 -0
  64. data/lib/fog/openstack/requests/workflow_v2/validate_workflow.rb +28 -0
  65. data/lib/fog/openstack/storage.rb +4 -35
  66. data/lib/fog/openstack/version.rb +1 -1
  67. data/lib/fog/openstack/volume_v1.rb +7 -5
  68. data/lib/fog/openstack/volume_v2.rb +7 -5
  69. data/lib/fog/openstack/workflow.rb +12 -0
  70. data/lib/fog/openstack/workflow_v2.rb +160 -0
  71. metadata +48 -95
  72. data/lib/fog/openstack/common.rb +0 -44
  73. data/tests/openstack/models/compute/images_tests.rb +0 -13
  74. data/tests/openstack/models/compute/security_group_tests.rb +0 -54
  75. data/tests/openstack/models/compute/server_tests.rb +0 -220
  76. data/tests/openstack/models/compute/service_tests.rb +0 -17
  77. data/tests/openstack/models/image/image_tests.rb +0 -36
  78. data/tests/openstack/models/image/images_tests.rb +0 -19
  79. data/tests/openstack/models/network/floating_ip_tests.rb +0 -35
  80. data/tests/openstack/models/network/floating_ips_tests.rb +0 -19
  81. data/tests/openstack/models/network/ike_policies_tests.rb +0 -28
  82. data/tests/openstack/models/network/ike_policy_tests.rb +0 -36
  83. data/tests/openstack/models/network/ipsec_policies_tests.rb +0 -26
  84. data/tests/openstack/models/network/ipsec_policy_tests.rb +0 -36
  85. data/tests/openstack/models/network/ipsec_site_connection_tests.rb +0 -50
  86. data/tests/openstack/models/network/ipsec_site_connections_tests.rb +0 -32
  87. data/tests/openstack/models/network/lb_health_monitor_tests.rb +0 -52
  88. data/tests/openstack/models/network/lb_health_monitors_tests.rb +0 -21
  89. data/tests/openstack/models/network/lb_member_tests.rb +0 -28
  90. data/tests/openstack/models/network/lb_members_tests.rb +0 -21
  91. data/tests/openstack/models/network/lb_pool_tests.rb +0 -53
  92. data/tests/openstack/models/network/lb_pools_tests.rb +0 -20
  93. data/tests/openstack/models/network/lb_vip_tests.rb +0 -39
  94. data/tests/openstack/models/network/lb_vips_tests.rb +0 -21
  95. data/tests/openstack/models/network/network_tests.rb +0 -61
  96. data/tests/openstack/models/network/networks_tests.rb +0 -21
  97. data/tests/openstack/models/network/port_tests.rb +0 -28
  98. data/tests/openstack/models/network/ports_tests.rb +0 -25
  99. data/tests/openstack/models/network/router_tests.rb +0 -39
  100. data/tests/openstack/models/network/routers_tests.rb +0 -21
  101. data/tests/openstack/models/network/security_group_rule_tests.rb +0 -27
  102. data/tests/openstack/models/network/security_group_rules_tests.rb +0 -25
  103. data/tests/openstack/models/network/security_group_tests.rb +0 -17
  104. data/tests/openstack/models/network/security_groups_tests.rb +0 -16
  105. data/tests/openstack/models/network/subnet_tests.rb +0 -30
  106. data/tests/openstack/models/network/subnets_tests.rb +0 -27
  107. data/tests/openstack/models/network/vpn_service_tests.rb +0 -27
  108. data/tests/openstack/models/network/vpn_services_tests.rb +0 -22
  109. data/tests/openstack/models/nfv/vnf_tests.rb +0 -35
  110. data/tests/openstack/models/nfv/vnfd_tests.rb +0 -23
  111. data/tests/openstack/models/nfv/vnfds_tests.rb +0 -31
  112. data/tests/openstack/models/nfv/vnfs_tests.rb +0 -38
  113. data/tests/openstack/models/planning/.gitkeep +0 -0
  114. data/tests/openstack/models/planning/plan_tests.rb +0 -51
  115. data/tests/openstack/models/planning/plans_tests.rb +0 -18
  116. data/tests/openstack/models/planning/role_tests.rb +0 -14
  117. data/tests/openstack/models/storage/file_tests.rb +0 -251
  118. data/tests/openstack/requests/compute/address_tests.rb +0 -58
  119. data/tests/openstack/requests/compute/aggregate_tests.rb +0 -59
  120. data/tests/openstack/requests/compute/availability_zone_tests.rb +0 -18
  121. data/tests/openstack/requests/compute/flavor_tests.rb +0 -95
  122. data/tests/openstack/requests/compute/helper.rb +0 -41
  123. data/tests/openstack/requests/compute/image_tests.rb +0 -58
  124. data/tests/openstack/requests/compute/keypair_tests.rb +0 -30
  125. data/tests/openstack/requests/compute/limit_tests.rb +0 -59
  126. data/tests/openstack/requests/compute/quota_tests.rb +0 -60
  127. data/tests/openstack/requests/compute/security_group_tests.rb +0 -61
  128. data/tests/openstack/requests/compute/server_tests.rb +0 -289
  129. data/tests/openstack/requests/compute/service_tests.rb +0 -33
  130. data/tests/openstack/requests/compute/tenant_tests.rb +0 -19
  131. data/tests/openstack/requests/compute/volume_tests.rb +0 -38
  132. data/tests/openstack/requests/image/image_tests.rb +0 -135
  133. data/tests/openstack/requests/metering/event_tests.rb +0 -17
  134. data/tests/openstack/requests/metering/meter_tests.rb +0 -52
  135. data/tests/openstack/requests/metering/resource_tests.rb +0 -19
  136. data/tests/openstack/requests/network/ike_policy_tests.rb +0 -65
  137. data/tests/openstack/requests/network/ipsec_policy_tests.rb +0 -65
  138. data/tests/openstack/requests/network/ipsec_site_connection_tests.rb +0 -82
  139. data/tests/openstack/requests/network/lb_health_monitor_tests.rb +0 -93
  140. data/tests/openstack/requests/network/lb_member_tests.rb +0 -60
  141. data/tests/openstack/requests/network/lb_pool_tests.rb +0 -80
  142. data/tests/openstack/requests/network/lb_vip_tests.rb +0 -71
  143. data/tests/openstack/requests/network/network_tests.rb +0 -107
  144. data/tests/openstack/requests/network/port_tests.rb +0 -66
  145. data/tests/openstack/requests/network/quota_tests.rb +0 -65
  146. data/tests/openstack/requests/network/router_tests.rb +0 -73
  147. data/tests/openstack/requests/network/security_group_rule_tests.rb +0 -58
  148. data/tests/openstack/requests/network/security_group_tests.rb +0 -43
  149. data/tests/openstack/requests/network/subnet_tests.rb +0 -66
  150. data/tests/openstack/requests/network/vpn_service_tests.rb +0 -61
  151. data/tests/openstack/requests/nfv/vnf_tests.rb +0 -70
  152. data/tests/openstack/requests/nfv/vnfd_tests.rb +0 -44
  153. data/tests/openstack/requests/orchestration/stack_tests.rb +0 -64
  154. data/tests/openstack/requests/planning/.gitkeep +0 -0
  155. data/tests/openstack/requests/planning/plan_tests.rb +0 -65
  156. data/tests/openstack/requests/planning/role_tests.rb +0 -16
  157. data/tests/openstack/requests/storage/container_tests.rb +0 -64
  158. data/tests/openstack/requests/storage/large_object_tests.rb +0 -372
  159. data/tests/openstack/requests/storage/object_tests.rb +0 -208
  160. data/tests/openstack/requests/volume/availability_zone_tests.rb +0 -13
  161. data/tests/openstack/requests/volume/quota_tests.rb +0 -50
  162. data/tests/openstack/requests/volume/volume_type_tests.rb +0 -32
@@ -0,0 +1,27 @@
1
+ module Fog
2
+ module Workflow
3
+ class OpenStack
4
+ class V2
5
+ class Real
6
+ def get_action(name)
7
+ request(
8
+ :expects => 200,
9
+ :method => "GET",
10
+ :path => "actions/#{URI.encode(name)}"
11
+ )
12
+ end
13
+ end
14
+
15
+ class Mock
16
+ def get_action(_name)
17
+ response = Excon::Response.new
18
+ response.status = 200
19
+ response.body = { "version" => "2.0",
20
+ "action1" => { "input" => ['test_id'] } }
21
+ response
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,26 @@
1
+ module Fog
2
+ module Workflow
3
+ class OpenStack
4
+ class V2
5
+ class Real
6
+ def get_action_execution(execution_id)
7
+ request(
8
+ :expects => 200,
9
+ :method => "GET",
10
+ :path => "action_executions/#{execution_id}"
11
+ )
12
+ end
13
+ end
14
+
15
+ class Mock
16
+ def get_action_execution(_execution_id)
17
+ response = Excon::Response.new
18
+ response.status = 200
19
+ response.body = {"state" => "running", "id" => "1111"}
20
+ response
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,28 @@
1
+ module Fog
2
+ module Workflow
3
+ class OpenStack
4
+ class V2
5
+ class Real
6
+ def get_cron_trigger(name)
7
+ request(
8
+ :expects => 200,
9
+ :method => "GET",
10
+ :path => "cron_triggers/#{URI.encode(name)}"
11
+ )
12
+ end
13
+ end
14
+
15
+ class Mock
16
+ def get_cron_trigger(_name)
17
+ response = Excon::Response.new
18
+ response.status = 200
19
+ response.body = {"version" => "2.0",
20
+ "name" => "cron_trigger1",
21
+ "description" => "d1"}
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 get_environment(name)
7
+ request(
8
+ :expects => 200,
9
+ :method => "GET",
10
+ :path => "environments/#{URI.encode(name)}"
11
+ )
12
+ end
13
+ end
14
+
15
+ class Mock
16
+ def get_environment(_name)
17
+ response = Excon::Response.new
18
+ response.status = 200
19
+ response.body = { "name" => "environment1",
20
+ "variables" => { "var1" => "value1",
21
+ "var2" => "value2" } }
22
+ response
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,26 @@
1
+ module Fog
2
+ module Workflow
3
+ class OpenStack
4
+ class V2
5
+ class Real
6
+ def get_execution(execution_id)
7
+ request(
8
+ :expects => 200,
9
+ :method => "GET",
10
+ :path => "executions/#{execution_id}"
11
+ )
12
+ end
13
+ end
14
+
15
+ class Mock
16
+ def get_execution(_execution_id)
17
+ response = Excon::Response.new
18
+ response.status = 200
19
+ response.body = {"state" => "running", "id" => "1111"}
20
+ response
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,27 @@
1
+ module Fog
2
+ module Workflow
3
+ class OpenStack
4
+ class V2
5
+ class Real
6
+ def get_task(id)
7
+ request(
8
+ :expects => 200,
9
+ :method => "GET",
10
+ :path => "tasks/#{id}"
11
+ )
12
+ end
13
+ end
14
+
15
+ class Mock
16
+ def get_task(_id)
17
+ response = Excon::Response.new
18
+ response.status = 200
19
+ response.body = { "version" => "2.0",
20
+ "task1" => { "id" => ['test_id'] } }
21
+ response
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,28 @@
1
+ module Fog
2
+ module Workflow
3
+ class OpenStack
4
+ class V2
5
+ class Real
6
+ def get_workbook(name)
7
+ request(
8
+ :expects => 200,
9
+ :method => "GET",
10
+ :path => "workbooks/#{URI.encode(name)}"
11
+ )
12
+ end
13
+ end
14
+
15
+ class Mock
16
+ def get_workbook(_name)
17
+ response = Excon::Response.new
18
+ response.status = 200
19
+ response.body = {"version" => "2.0",
20
+ "name" => "workbook1",
21
+ "description" => "d1"}
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 get_workflow(identifier)
7
+ request(
8
+ :expects => 200,
9
+ :method => "GET",
10
+ :path => "workflows/#{identifier}"
11
+ )
12
+ end
13
+ end
14
+
15
+ class Mock
16
+ def get_workflow(_identifier)
17
+ response = Excon::Response.new
18
+ response.status = 200
19
+ response.body = {"version" => "2.0",
20
+ "name" => "workflow1",
21
+ "description" => "d1"}
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 list_action_executions
7
+ request(
8
+ :expects => 200,
9
+ :method => "GET",
10
+ :path => "action_executions"
11
+ )
12
+ end
13
+ end
14
+
15
+ class Mock
16
+ def list_action_executions
17
+ response = Excon::Response.new
18
+ response.status = 200
19
+ response.body = { "action_executions" =>
20
+ [{ "state" => "ERROR", "id" => "1111" },
21
+ { "state" => "RUNNING", "id" => "2222" }] }
22
+ response
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,30 @@
1
+ module Fog
2
+ module Workflow
3
+ class OpenStack
4
+ class V2
5
+ class Real
6
+ def list_actions(params = {})
7
+ body = Fog::JSON.encode(params)
8
+ request(
9
+ :body => body,
10
+ :expects => 200,
11
+ :method => "GET",
12
+ :path => "actions"
13
+ )
14
+ end
15
+ end
16
+
17
+ class Mock
18
+ def list_actions(_params = {})
19
+ response = Excon::Response.new
20
+ response.status = 200
21
+ response.body = { "actions" =>
22
+ [{ "name" => "action1", "description" => "d1" },
23
+ { "name" => "action2", "description" => "d2" }] }
24
+ response
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,28 @@
1
+ module Fog
2
+ module Workflow
3
+ class OpenStack
4
+ class V2
5
+ class Real
6
+ def list_cron_triggers
7
+ request(
8
+ :expects => 200,
9
+ :method => "GET",
10
+ :path => "cron_triggers"
11
+ )
12
+ end
13
+ end
14
+
15
+ class Mock
16
+ def list_cron_triggers
17
+ response = Excon::Response.new
18
+ response.status = 200
19
+ response.body = { "cron_triggers" =>
20
+ [{ "name" => "cron_trigger1", "description" => "d1" },
21
+ { "name" => "cron_trigger2", "description" => "d2" }] }
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 list_environments
7
+ request(
8
+ :expects => 200,
9
+ :method => "GET",
10
+ :path => "environments"
11
+ )
12
+ end
13
+ end
14
+
15
+ class Mock
16
+ def list_environments
17
+ response = Excon::Response.new
18
+ response.status = 200
19
+ response.body = { "environments" =>
20
+ [{ "name" => "environment1", "description" => "d1" },
21
+ { "name" => "environment2", "description" => "d2" }] }
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 list_executions
7
+ request(
8
+ :expects => 200,
9
+ :method => "GET",
10
+ :path => "executions"
11
+ )
12
+ end
13
+ end
14
+
15
+ class Mock
16
+ def list_executions
17
+ response = Excon::Response.new
18
+ response.status = 200
19
+ response.body = { "executions" =>
20
+ [{ "state" => "ERROR", "id" => "1111" },
21
+ { "state" => "RUNNING", "id" => "2222" }] }
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 list_services
7
+ request(
8
+ :expects => 200,
9
+ :method => "GET",
10
+ :path => "services"
11
+ )
12
+ end
13
+ end
14
+
15
+ class Mock
16
+ def list_services
17
+ response = Excon::Response.new
18
+ response.status = 200
19
+ response.body = { "services" =>
20
+ [{ "name" => "service1", "description" => "d1" },
21
+ { "name" => "service2", "description" => "d2" }] }
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 list_tasks(workflow_execution_id)
7
+ request(
8
+ :expects => 200,
9
+ :method => "GET",
10
+ :path => "executions/#{workflow_execution_id}/tasks"
11
+ )
12
+ end
13
+ end
14
+
15
+ class Mock
16
+ def list_tasks(_workflow_execution_id)
17
+ response = Excon::Response.new
18
+ response.status = 200
19
+ response.body = { "tasks" =>
20
+ [{ "name" => "task1", "description" => "d1" },
21
+ { "name" => "task2", "description" => "d2" }] }
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 list_workbooks
7
+ request(
8
+ :expects => 200,
9
+ :method => "GET",
10
+ :path => "workbooks"
11
+ )
12
+ end
13
+ end
14
+
15
+ class Mock
16
+ def list_workbooks
17
+ response = Excon::Response.new
18
+ response.status = 200
19
+ response.body = { "workbooks" =>
20
+ [{ "name" => "workbook1", "description" => "d1" },
21
+ { "name" => "workbook2", "description" => "d2" }] }
22
+ response
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end