fog-openstack 0.1.15 → 0.1.17

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.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +3 -1
  3. data/README.md +36 -5
  4. data/docs/common/connection_params.md +45 -0
  5. data/docs/common/resources.md +11 -0
  6. data/docs/compute.md +2 -46
  7. data/docs/getting_started.md +11 -10
  8. data/docs/network.md +2 -47
  9. data/docs/orchestration.md +2 -2
  10. data/docs/planning.md +2 -47
  11. data/docs/shared_file_system.md +82 -0
  12. data/docs/storage.md +5 -51
  13. data/docs/workflow.md +4 -2
  14. data/examples/metric/basics.rb +42 -0
  15. data/examples/shared_file_system/basics.rb +68 -0
  16. data/gemfiles/Gemfile-1.9 +1 -0
  17. data/lib/fog/identity/openstack/v3/requests/list_groups.rb +1 -1
  18. data/lib/fog/image/openstack/v2/models/image.rb +60 -15
  19. data/lib/fog/image/openstack/v2/models/images.rb +1 -4
  20. data/lib/fog/metric/openstack.rb +126 -0
  21. data/lib/fog/metric/openstack/models/metric.rb +18 -0
  22. data/lib/fog/metric/openstack/models/metrics.rb +31 -0
  23. data/lib/fog/metric/openstack/models/resource.rb +16 -0
  24. data/lib/fog/metric/openstack/models/resources.rb +24 -0
  25. data/lib/fog/metric/openstack/requests/get_metric.rb +62 -0
  26. data/lib/fog/metric/openstack/requests/get_metric_measures.rb +38 -0
  27. data/lib/fog/metric/openstack/requests/get_resource.rb +37 -0
  28. data/lib/fog/metric/openstack/requests/get_resource_metric_measures.rb +46 -0
  29. data/lib/fog/metric/openstack/requests/list_metrics.rb +104 -0
  30. data/lib/fog/metric/openstack/requests/list_resources.rb +70 -0
  31. data/lib/fog/network/openstack.rb +12 -9
  32. data/lib/fog/network/openstack/models/rbac_policy.rb +0 -1
  33. data/lib/fog/network/openstack/requests/create_floating_ip.rb +1 -1
  34. data/lib/fog/network/openstack/requests/create_network.rb +3 -3
  35. data/lib/fog/openstack.rb +25 -15
  36. data/lib/fog/openstack/version.rb +1 -1
  37. data/lib/fog/orchestration/openstack/models/stack.rb +5 -1
  38. data/lib/fog/shared_file_system/openstack.rb +278 -0
  39. data/lib/fog/shared_file_system/openstack/models/network.rb +42 -0
  40. data/lib/fog/shared_file_system/openstack/models/networks.rb +28 -0
  41. data/lib/fog/shared_file_system/openstack/models/share.rb +63 -0
  42. data/lib/fog/shared_file_system/openstack/models/shares.rb +28 -0
  43. data/lib/fog/shared_file_system/openstack/models/snapshot.rb +45 -0
  44. data/lib/fog/shared_file_system/openstack/models/snapshots.rb +28 -0
  45. data/lib/fog/shared_file_system/openstack/requests/create_share.rb +49 -0
  46. data/lib/fog/shared_file_system/openstack/requests/create_share_network.rb +41 -0
  47. data/lib/fog/shared_file_system/openstack/requests/create_snapshot.rb +46 -0
  48. data/lib/fog/shared_file_system/openstack/requests/delete_share.rb +29 -0
  49. data/lib/fog/shared_file_system/openstack/requests/delete_share_network.rb +28 -0
  50. data/lib/fog/shared_file_system/openstack/requests/delete_snapshot.rb +30 -0
  51. data/lib/fog/shared_file_system/openstack/requests/get_share.rb +26 -0
  52. data/lib/fog/shared_file_system/openstack/requests/get_share_network.rb +26 -0
  53. data/lib/fog/shared_file_system/openstack/requests/get_snapshot.rb +26 -0
  54. data/lib/fog/shared_file_system/openstack/requests/list_share_networks.rb +25 -0
  55. data/lib/fog/shared_file_system/openstack/requests/list_share_networks_detail.rb +25 -0
  56. data/lib/fog/shared_file_system/openstack/requests/list_shares.rb +25 -0
  57. data/lib/fog/shared_file_system/openstack/requests/list_shares_detail.rb +25 -0
  58. data/lib/fog/shared_file_system/openstack/requests/list_snapshots.rb +25 -0
  59. data/lib/fog/shared_file_system/openstack/requests/list_snapshots_detail.rb +25 -0
  60. data/lib/fog/shared_file_system/openstack/requests/update_share.rb +39 -0
  61. data/lib/fog/shared_file_system/openstack/requests/update_share_network.rb +31 -0
  62. data/lib/fog/shared_file_system/openstack/requests/update_snapshot.rb +31 -0
  63. metadata +43 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 85c015f66fafdd1aeb99e59443520114635930dc
4
- data.tar.gz: d0915c5216fd3e3bfd6c47f010a5e7dccabb0aee
3
+ metadata.gz: 33930f096ce867d0d328ccfcf748104caefefcf8
4
+ data.tar.gz: a0ffe19cfb27b239d8a1376c18711433c341015e
5
5
  SHA512:
6
- metadata.gz: 56f592d5413f1f712421cc7fa16f973b8b2445f89f0b4e719e3431350061795bc5bfa56e320a83e8173870409d1af3d4df08fdbedfd33e3d7b21edf2d5ec32f5
7
- data.tar.gz: 360408ce8e42a4b21ea35f01d85bc76348ad18d99b7609d4e57f1b5284e2c3763432d2648203b34bbe529bd2994b5d078ad52c1562d18473676b5d1360ce4f2d
6
+ metadata.gz: 8c0529686e26404cd6d80ac858c78adcb16a275383031959bec90a161887be1ae043140c1d9921fe2cd3f55a2856370561c0c9d4b808440e1c925a8601f29294
7
+ data.tar.gz: 3317ae20e8b81989572b91af05fd5298a13da6a604028e3b50f8ccc840da268f507d4b84359cf63c7f9b57bf871c3c52356752b4d05ce27be63f9ec86d528dd9
data/.rubocop.yml CHANGED
@@ -82,6 +82,8 @@ SpaceBeforeFirstArg:
82
82
  Enabled: false
83
83
  SpecialGlobalVars:
84
84
  AutoCorrect: false
85
+ Style/FrozenStringLiteralComment:
86
+ Enabled: false
85
87
  StringLiterals:
86
88
  Enabled: false
87
89
  StringLiteralsInInterpolation:
@@ -91,4 +93,4 @@ TrailingCommaInLiteral:
91
93
  WhileUntilModifier:
92
94
  Enabled: false
93
95
  WordArray:
94
- AutoCorrect: false
96
+ AutoCorrect: false
data/README.md CHANGED
@@ -340,11 +340,42 @@ end
340
340
  Excon.get cirros_location, response_block: streamer
341
341
  image_out.close
342
342
 
343
- image.images.create name: "cirros",
344
- disk_format: "qcow2",
345
- container_format: "bare"
346
-
347
- image.upload_data File.binread(image_out.path)
343
+ image_handle = image.images.create name: "cirros",
344
+ disk_format: "qcow2",
345
+ container_format: "bare"
346
+
347
+ # => <Fog::Image::OpenStack::V2::Image
348
+ # id="67c4d02c-5601-4619-bd14-d2f7f96a046c",
349
+ # name="cirros",
350
+ # visibility="private",
351
+ # tags=[],
352
+ # self="/v2/images/67c4d02c-5601-4619-bd14-d2f7f96a046c",
353
+ # size=nil,
354
+ # disk_format="qcow2",
355
+ # container_format="bare",
356
+ # id="67c4d02c-5601-4619-bd14-d2f7f96a046c",
357
+ # checksum=nil,
358
+ # self="/v2/images/67c4d02c-5601-4619-bd14-d2f7f96a046c",
359
+ # file="/v2/images/67c4d02c-5601-4619-bd14-d2f7f96a046c/file",
360
+ # min_disk=0,
361
+ # created_at="2016-10-31T03:38:28Z",
362
+ # updated_at="2016-10-31T03:38:28Z",
363
+ # protected=false,
364
+ # status="queued",
365
+ # min_ram=0,
366
+ # owner="6b9ec8080b8443c5afe2267a39b9bf74",
367
+ # properties=nil,
368
+ # metadata=nil,
369
+ # location=nil,
370
+ # network_allocated=nil,
371
+ # base_image_ref=nil,
372
+ # image_type=nil,
373
+ # instance_uuid=nil,
374
+ # user_id=nil
375
+ # >
376
+
377
+
378
+ image_handle.upload_data File.binread(image_out.path)
348
379
 
349
380
  ```
350
381
 
@@ -0,0 +1,45 @@
1
+ ### Optional Connection Parameters
2
+
3
+ Fog supports passing additional connection parameters to its underlying HTTP library (Excon) using the `:connection_options` parameter.
4
+
5
+ <table>
6
+ <tr>
7
+ <th>Key</th>
8
+ <th>Description</th>
9
+ </tr>
10
+ <tr>
11
+ <td>:connect_timeout</td>
12
+ <td>Connection timeout (default: 60 seconds)</td>
13
+ </tr>
14
+ <tr>
15
+ <td>:read_timeout</td>
16
+ <td>Read timeout for connection (default: 60 seconds)</td> </tr>
17
+ <tr>
18
+ <td>:write_timeout</td>
19
+ <td>Write timeout for connection (default: 60 seconds)</td>
20
+ </tr>
21
+ <tr>
22
+ <td>:proxy</td>
23
+ <td>Proxy for HTTP and HTTPS connections</td>
24
+ </tr>
25
+ <tr>
26
+ <td>:ssl_ca_path</td>
27
+ <td>Path to SSL certificate authorities</td>
28
+ </tr>
29
+ <tr>
30
+ <td>:ssl_ca_file</td>
31
+ <td>SSL certificate authority file</td>
32
+ </tr>
33
+ <tr>
34
+ <td>:ssl_verify_peer</td>
35
+ <td>SSL verify peer (default: true)</td>
36
+ </tr>
37
+ <tr>
38
+ <td>:debug_request</td>
39
+ <td>debug print request (default: false)</td>
40
+ </tr>
41
+ <tr>
42
+ <td>:debug_response</td>
43
+ <td>debug print response (default: false)</td>
44
+ </tr>
45
+ </table>
@@ -0,0 +1,11 @@
1
+ ## Resources
2
+
3
+ * [fog.io](http://fog.io/)
4
+ * [fog-openstack rdoc](http://rubydoc.info/gems/fog-openstack)
5
+ * [fog-openstack Github repo](https://github.com/fog/fog-openstack)
6
+ * [Excon Github repo](https://github.com/geemus/excon)
7
+
8
+
9
+ ## Support and Feedback
10
+
11
+ Your feedback is appreciated! If you have specific issues with the **fog-openstack** SDK, you should file an [issue via Github](https://github.com/fog/fog-openstack/issues).
data/docs/compute.md CHANGED
@@ -26,43 +26,7 @@ Next, create a connection to the Compute Service:
26
26
 
27
27
  **Note** `openstack_username` and `openstack_tenant` default to `admin` if omitted.
28
28
 
29
- ### Optional Connection Parameters
30
-
31
- Fog supports passing additional connection parameters to its underlying HTTP library (Excon) using the `:connection_options` parameter.
32
-
33
- <table>
34
- <tr>
35
- <th>Key</th>
36
- <th>Description</th>
37
- </tr>
38
- <tr>
39
- <td>:connect_timeout</td>
40
- <td>Connection timeout (default: 60 seconds)</td>
41
- </tr>
42
- <tr>
43
- <td>:read_timeout</td>
44
- <td>Read timeout for connection (default: 60 seconds)</td> </tr>
45
- <tr>
46
- <td>:write_timeout</td>
47
- <td>Write timeout for connection (default: 60 seconds)</td>
48
- </tr>
49
- <tr>
50
- <td>:proxy</td>
51
- <td>Proxy for HTTP and HTTPS connections</td>
52
- </tr>
53
- <tr>
54
- <td>:ssl_ca_path</td>
55
- <td>Path to SSL certificate authorities</td>
56
- </tr>
57
- <tr>
58
- <td>:ssl_ca_file</td>
59
- <td>SSL certificate authority file</td>
60
- </tr>
61
- <tr>
62
- <td>:ssl_verify_peer</td>
63
- <td>SSL verify peer (default: true)</td>
64
- </tr>
65
- </table>
29
+ Read more about the [Optional Connection Parameters](common/connection_params.md)
66
30
 
67
31
 
68
32
  ## Fog Abstractions
@@ -668,13 +632,5 @@ Example code using Compute can be found [here](https://github.com/fog/fog/tree/m
668
632
 
669
633
  ## Additional Resources
670
634
 
671
- * [fog.io](http://fog.io/)
672
- * [Fog rdoc](http://rubydoc.info/gems/fog/)
673
- * [Fog Github repo](https://github.com/fog/fog)
674
- * [Fog Github Issues](https://github.com/fog/fog/issues)
675
- * [Excon Github repo](https://github.com/geemus/excon)
676
635
  * [OpenStack Compute API](http://docs.openstack.org/api/openstack-compute/2/content/)
677
-
678
- ## Support and Feedback
679
-
680
- Your feedback is appreciated! If you have specific issues with the **fog** SDK, you should file an [issue via Github](https://github.com/fog/fog/issues).
636
+ * [more resources and feedback](common/resources.md)
@@ -34,7 +34,7 @@ gem 'fog-openstack'
34
34
 
35
35
  After creating your `Gemfile` execute the following command to install the libraries:
36
36
 
37
- bundle install
37
+ bundle install
38
38
 
39
39
  ## Next Steps
40
40
 
@@ -43,7 +43,7 @@ Now that you have installed Fog and obtained your credentials, you are ready to
43
43
  Start by executing the following command:
44
44
 
45
45
  irb
46
-
46
+
47
47
  Once `irb` has launched you will need to require the Fog library.
48
48
 
49
49
  If using Ruby 1.8.x execute the following command:
@@ -68,14 +68,15 @@ Fog::OpenStack.services
68
68
  These services can be explored in further depth in the following documents:
69
69
 
70
70
  * [Compute](compute.md)
71
+ * [Introspection](introspection.md)
72
+ * [Metering](metering.md)
73
+ * [Network](network.md)
74
+ * [NFV](nfv.md)
75
+ * [Orchestration](orchestration.md)
76
+ * [Planning](planning.md)
77
+ * [Shared File System](shared_file_system.md)
71
78
  * [Storage (Swift)](storage.md)
79
+ * [Workflow](workflow.md)
72
80
 
73
81
  ## Additional Resources
74
- * [fog.io](http://fog.io)
75
- * [Fog rdoc](http://rubydoc.info/gems/fog)
76
- * [Fog Github repo](https://github.com/fog/fog)
77
- * [Release Notes](https://github.com/fog/fog/blob/master/changelog.txt)
78
-
79
-
80
- ## Support and Feedback
81
- Your feedback is appreciated! If you have specific issues with the **fog** SDK, you should file an [issue via Github](https://github.com/fog/fog/issues).
82
+ [resources and feedback](common/resources.md)
data/docs/network.md CHANGED
@@ -26,44 +26,7 @@ service = Fog::Network::OpenStack.new(
26
26
  )
27
27
  ```
28
28
 
29
- ### Optional Connection Parameters
30
-
31
- Fog supports passing additional connection parameters to its underlying HTTP library (Excon) using the `:connection_options` parameter.
32
-
33
- <table>
34
- <tr>
35
- <th>Key</th>
36
- <th>Description</th>
37
- </tr>
38
- <tr>
39
- <td>:connect_timeout</td>
40
- <td>Connection timeout (default: 60 seconds)</td>
41
- </tr>
42
- <tr>
43
- <td>:read_timeout</td>
44
- <td>Read timeout for connection (default: 60 seconds)</td> </tr>
45
- <tr>
46
- <td>:write_timeout</td>
47
- <td>Write timeout for connection (default: 60 seconds)</td>
48
- </tr>
49
- <tr>
50
- <td>:proxy</td>
51
- <td>Proxy for HTTP and HTTPS connections</td>
52
- </tr>
53
- <tr>
54
- <td>:ssl_ca_path</td>
55
- <td>Path to SSL certificate authorities</td>
56
- </tr>
57
- <tr>
58
- <td>:ssl_ca_file</td>
59
- <td>SSL certificate authority file</td>
60
- </tr>
61
- <tr>
62
- <td>:ssl_verify_peer</td>
63
- <td>SSL verify peer (default: true)</td>
64
- </tr>
65
- </table>
66
-
29
+ Read more about the [Optional Connection Parameters](common/connection_params.md)
67
30
 
68
31
  ## Fog Abstractions
69
32
 
@@ -271,13 +234,5 @@ Example code using Network can be found [here](https://github.com/fog/fog-openst
271
234
 
272
235
  ## Additional Resources
273
236
 
274
- * [fog.io](http://fog.io/)
275
- * [fog-openstack rdoc](http://rubydoc.info/gems/fog-openstack)
276
- * [fog-openstack Github repo](https://github.com/fog/fog-openstack)
277
- * [fog-openstack Github Issues](https://github.com/fog/fog-openstack/issues)
278
- * [Excon Github repo](https://github.com/geemus/excon)
279
237
  * [OpenStack Network API](http://developer.openstack.org/api-ref-networking-v2.html)
280
-
281
- ## Support and Feedback
282
-
283
- Your feedback is appreciated! If you have specific issues with the **fog-openstack** SDK, you should file an [issue via Github](https://github.com/fog/fog-openstack/issues).
238
+ * [more resources and feedback](common/resources.md)
@@ -35,6 +35,8 @@ service = Fog::Orchestration::OpenStack.new({
35
35
  ```
36
36
  We will use this `service` to interact with the Orchestration resources, `stack`, `event`, `resource`, and `template`
37
37
 
38
+ Read more about the [Optional Connection Parameters](common/connection_params.md)
39
+
38
40
  ## Stacks
39
41
 
40
42
  Get a list of stacks you own:
@@ -333,5 +335,3 @@ stack = service.stacks.get(stack.stack_name, stack.id)
333
335
  stack.stack_status
334
336
  => "ROLLBACK_IN_PROGRESS"
335
337
  ```
336
-
337
-
data/docs/planning.md CHANGED
@@ -40,43 +40,7 @@ service = Fog::Openstack.new({
40
40
  })
41
41
  ```
42
42
 
43
- ### Optional Connection Parameters
44
-
45
- Fog supports passing additional connection parameters to its underlying HTTP library (Excon) using the `:connection_options` parameter.
46
-
47
- <table>
48
- <tr>
49
- <th>Key</th>
50
- <th>Description</th>
51
- </tr>
52
- <tr>
53
- <td>:connect_timeout</td>
54
- <td>Connection timeout (default: 60 seconds)</td>
55
- </tr>
56
- <tr>
57
- <td>:read_timeout</td>
58
- <td>Read timeout for connection (default: 60 seconds)</td> </tr>
59
- <tr>
60
- <td>:write_timeout</td>
61
- <td>Write timeout for connection (default: 60 seconds)</td>
62
- </tr>
63
- <tr>
64
- <td>:proxy</td>
65
- <td>Proxy for HTTP and HTTPS connections</td>
66
- </tr>
67
- <tr>
68
- <td>:ssl_ca_path</td>
69
- <td>Path to SSL certificate authorities</td>
70
- </tr>
71
- <tr>
72
- <td>:ssl_ca_file</td>
73
- <td>SSL certificate authority file</td>
74
- </tr>
75
- <tr>
76
- <td>:ssl_verify_peer</td>
77
- <td>SSL verify peer (default: true)</td>
78
- </tr>
79
- </table>
43
+ Read more about the [Optional Connection Parameters](common/connection_params.md)
80
44
 
81
45
  ## Fog Abstractions
82
46
 
@@ -257,14 +221,5 @@ The remainder of this document details the model abstraction.
257
221
 
258
222
  ## Additional Resources
259
223
 
260
- * [fog.io](http://fog.io/)
261
- * [Fog rdoc](http://rubydoc.info/gems/fog/)
262
- * [Fog Github repo](https://github.com/fog/fog)
263
- * [Fog Github Issues](https://github.com/fog/fog/issues)
264
- * [Excon Github repo](https://github.com/geemus/excon)
265
224
  * [Tuskar API](http://docs.openstack.org/developer/tuskar/)
266
-
267
- ## Support and Feedback
268
-
269
- Your feedback is appreciated! If you have specific issues with the **fog** SDK, you should file an [issue via Github](https://github.com/fog/fog/issues).
270
-
225
+ * [more resources and feedback](common/resources.md)
@@ -0,0 +1,82 @@
1
+ # Shared File System (Manila)
2
+
3
+ This document explains how to get started using OpenStack Shared File System (Manila) with Fog. It assumes you have read the [Getting Started with Fog and OpenStack](getting_started.md) document.
4
+
5
+ ## Starting irb console
6
+
7
+ Start by executing the following command:
8
+ ```
9
+ irb
10
+ ```
11
+
12
+ or if you use bundler for managing your gems:
13
+ ```
14
+ bundle exec irb
15
+ ```
16
+
17
+ Once `irb` has launched you need to require the Fog library by executing:
18
+ ```
19
+ require 'fog/openstack'
20
+ ```
21
+ ## Create Service
22
+
23
+ Next, create a connection to the Shared File System Service:
24
+ ```
25
+ service = Fog::SharedFileSystem::OpenStack.new(
26
+ :openstack_auth_url => 'http://KEYSTONE_HOST:KEYSTONE_PORT/v3/auth/tokens', # OpenStack Keystone v3 endpoint
27
+ :openstack_username => OPEN_STACK_USER, # Your OpenStack Username
28
+ :openstack_domain_name => OPEN_STACK_DOMAIN, # Your OpenStack Domain name
29
+ :openstack_project_name => OPEN_STACK_PROJECT, # Your OpenStack Project name
30
+ :openstack_api_key => OPEN_STACK_PASSWORD, # Your OpenStack Password
31
+ :connection_options => {} # Optional
32
+ )
33
+ ```
34
+
35
+ Read more about the [Optional Connection Parameters](common/connection_params.md)
36
+
37
+ ## Fog Abstractions
38
+
39
+ Fog provides both a **model** and **request** abstraction. The request abstraction provides the most efficient interface and the model abstraction wraps the request abstraction to provide a convenient `ActiveModel` like interface.
40
+
41
+ ### Request Layer
42
+
43
+ The request abstraction maps directly to the [OpenStack Shared File System API](http://developer.openstack.org/api-ref/shared-file-systems). It provides the most efficient interface to the OpenStack Shared File System service.
44
+
45
+ To see a list of requests supported by the service:
46
+ ```
47
+ service.requests
48
+ ```
49
+
50
+ #### Example Request
51
+
52
+ To request a list of networks:
53
+ ```
54
+ response = service.list_shares
55
+ ```
56
+
57
+ To learn more about Shared File System request methods refer to [rdoc](http://www.rubydoc.info/gems/fog-openstack/Fog/SharedFileSystem/OpenStack/Real).
58
+
59
+ ### Model Layer
60
+
61
+ Fog models behave in a manner similar to `ActiveModel`. Models will generally respond to `create`, `save`, `persisted?`, `destroy`, `reload` and `attributes` methods. Additionally, fog will automatically create attribute accessors.
62
+
63
+ To see a list of collections supported by the service:
64
+ ```
65
+ service.collections
66
+ ```
67
+
68
+ #### Example Request
69
+
70
+ To request a collection of share networks:
71
+ ```
72
+ networks = service.networks
73
+ ```
74
+
75
+ ## Examples
76
+
77
+ Example code using Shared File System can be found [here](https://github.com/fog/fog-openstack/tree/master/examples/share).
78
+
79
+ ## Additional Resources
80
+
81
+ * [OpenStack Shared File System API](http://developer.openstack.org/api-ref/shared-file-systems/)
82
+ * [more resources and feedback](common/resources.md)