openstack_bridge 0.0.1 → 0.0.2

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.
@@ -0,0 +1,77 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://192.168.0.11:5000/v2.0/tokens
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"auth":{"passwordCredentials":{"username":"admin","password":"q1w2"},"tenantName":"demo"}}'
9
+ headers:
10
+ Content-Type:
11
+ - application/json
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ Date:
18
+ - Sat, 21 Jun 2014 08:43:15 GMT
19
+ Server:
20
+ - Apache/2.4.7 (Ubuntu)
21
+ Vary:
22
+ - X-Auth-Token
23
+ Content-Length:
24
+ - '7202'
25
+ Content-Type:
26
+ - application/json
27
+ body:
28
+ encoding: ASCII-8BIT
29
+ string: '{"access": {"token": {"issued_at": "2014-06-21T08:43:15.904124", "expires":
30
+ "2014-06-21T09:43:15Z", "id": "PKIZ_eJy1WUt7oswS3vevOPt55hkEMXFxFiAXcexmMM2leycwcleTqCC__hSok8tMMibn-5KF2kJ3Vb31vlWFX7_Cn6qbFvnPBN91H74ibFmLB4fNvm-4lR4iojjRZANr63wy0flmojh6o1FlriZlkhaJyh2sK4leJ8m3GzUp7lFaZOa4FlS1NhNYfFQt68do-pgxn-Q8IK2Vb5Kfx5kQirsyzKyRBd8tYT32vSIQDQF1F1i5VWPq7LDGdjg3XKwlI6LhEabu3qaKgKklWFmdWJU3jMzyyAOc2ZmS4VxpEJkINcmEI_ac2qYbAbebhnibbD5RsqXv9BdGZpMy0duEYlPwwOq_i01vz3z5ZAGYCF-QPKrKOjbLQ2-qKQ9Cs360JrMyrIwsNL2iuzaezgb8rrOm7D_DBlbDfDzAeVlwqpZYc1oiehmudJGbrsjaSLJ93JA2zU9uyGnou71l3PR2KDzOxqtuxzUpozXfgqkaCxZpaI7X3Qm-9JhxXy4ic7wN14v2ssb8xW7pyx5yi7rfbTldCJG2OcxbXcbZsCF5sseTYYPpZkjaSJhL7Dhvf7cWvWvuelZy8RyTyeyO-_E2FOUfYeWegwxB5MEMotl4n7UEXRe4U8StXO9urJmvHyFPjjZ1hgiL-pBRRSKUQLDcIzexRHJWn1xQB6xqtmzg3dFJ78Ymni5qO7s9YFoc57kuInsyrOFNY-eJRFrnEOfWAbIxZa17tP1FiU23htMk7ltHRjkEj-fgisxaXbJNnKGVJ5yTZVGHYrmPp2QVmuV-KXXpqoZBD_FCjswT9kwc76KpJ_A7q7tvj5g_KHv_KvkQV3rW5QRk5rMNTxvBWsrNwTYsX7qDnvvz0h12lTvouT8dtlHlrZf-eN9bVZ7zoBjvzyZ32VhGXTobJ0vQnyL7EUvQnyL7nMrMdwVOnZbns4q0-oBopCQV6EfFjsTHXR64IslnKW6LkwtTD6hb5p43w6fgpkI8VUbz421jU2uPKRvOcwVe9ZGtRRIi2VjE2e0R-0ZOqCVDJta8U6E2LhlsTKoFnAjJ1ZY5ptGQAXt7aCtvz6fqAXWEiAbjR3h9iI4Aj7GLe8WZljUEroNLBCUahL4HB52wf4KebBHgDTrAjtYaEmr6Pvf_RDj0BuPaf5PO7XOGgiYqre3rIsvjFFcAF3VkoHjGK0fClIPu8YprJOWQE39i6BWJ1DEUZ2-RDv2VdcHF5Cc1DquxyLp1CDz6TOSfxwZBcFoM_9dG_XXQ0TtRf9r4lyYuKpvqA06ZiEVegCYeQdaNFJsWaOGsxL4l8tw5EqoMPqGJ3XlvR_utYKOoPdEXCujunPstBsLMJ-rNhTA9X048gTWjCP1yf2ErepeuwM4zgY6ngA77U92zalFRLtE5SHuo90ew4vEqHXjaeIt4HxwLKg1wXcRwsSPyShe4Nktt06lJ7spcK6HBcGSsFRKe9DfWsT8DCSBXVWcZ5wXQfdDrxPOkC8Sm04PdKfsGffSFn4F6Fotyx_y4_K2pEJs0rEh50Q_0_6RxR3GENaUGjjf_RioPX2z-K52VBrdexXJXwPkiRbhdFNAopDb1Ska9ipgObOKKANfwmnRGrwSkhlNBQPSrUxo9CUhziP1FFUqzHXRpfda9SvEN9w3htXqjz0YfBFbs4oP-1Lp9pHND10D1bh5cTPmwJU91Qa9xGzWM6lBQnQawLYhvZCx3BjaNJJ5bA0xJxdq0-GRd6BoM_WMNxkdkDXVBiqvxY9yV7FfMY3AztPTvVm70QezbufRrLGjnglGgTiA_y8TuMHT9aeQxlLziFTNFxEFdYDrrigmUeGCmaWQ2ZbBZAf2SUzMaCVB43iw06H0I8SESvWNclTBD4oPTE855gRK6pvpwHx9_08Zu7Z8q7510CZ_iAyCHPgPdc0vQKxH9sCXoJa5GSbQC_IMLtaSFgbxlbSLzHEsgvhn01VD-SAFdXXuBFf2tgXgpuM5vzER_G6r-xkz0GnNQ5Xxpei1M6el5kn_VYKclC5xfsxW6drh6yy1ka8qnZqW_TW21fapQB8fz3Dvj7YEE_T6RnE48dy41aQsZ2huJawrkhSMQOstsU2-JyTNG3RZmJpISCjdnL1uXaxQKaxCDPvMEw_P0dPWRmfkCL7q2oQzF2T33iTAPiABQ_xJgdOF3JMVbvnb-qdkZiNS6Uv-0In8fZvQ3nP98gHtuRKw9OjeOF9iOmC5g2LSGmFpDljMBa2pm-8BAGudcg9E3Z6JNy-qCGvoAbINz09W79WEUlgAtuLmNp8WL1qerzg88KNvY7PL-PBevvbZ76AYb3ZzeP2fjqd0_a-IBhUDdrud91fKeYzJLWc6rTupIV3A06CFo0tgayYAXAvcdARTJbbFmSfjEgSMM2uXTcPFUB0Aj0tgYg6VGvhyMDzHMClE2G6PTZPKspPf1YHgJ0u-mr_v1HQ8WkFgGWHD36zHn6nIzbFSfkmf8eHp6qYZW5QgwaAx5x9g8rhiFWQLghsKiwodZxUTQW-oCxmrWByjvSFRAPhRd0c2AygCjIxMNTs7LnPiuAO7D2NcauVUOxqtAaJLENLBlqYljqQpVI2xEzaRVZmpCPFVhVCk9ip1hrSlM8xzH0hTPg06VlLGm21ipTWXg6mpdG54vA3ROo-UKPt28warn7aFSC3iR1EbSb6BpylhCsRTteZCmYaA-8js5D0Whe5ZcT2o2Yxa3FN_VVMVSsSKYk7t7884KJc3RVcVxFRWsRYqlfLudDupipSffpwEMr6uJEyxvHso6eJCFmTI15w8HZX-ju2GyGtk3UlAvC7tKm1HA1JGEXFcaEvpF39ojrOfGxBHdb0tt56--O_fbJY8j4U7ZrkED1dup-yBRJjdsJhjqw-LHanfLIvQ9i-ayGD3cxtKDTB5K5sblo6X5wm28-fFlY_54yEJ7P8I2DQYsXoT6vR66Qju4v5EaacHHyGxHR22_SUeCvMOjeRMMVvj7hJVuuklu67QZMsfGvk4XwTby3WXxRfhyOxwvb5aPSpLc8DUSrZCEcx1mzGCu_hSc8QgLQ2mSfktmtd7e0_vbw4Y75Ft8a4aOn0yo504m2XhIt4lvf6N3aPX9EVOtWQl2PA3H8sIZjI1x5fwX9Q__daI9_RDwP58tG2g=",
31
+ "tenant": {"description": null, "enabled": true, "id": "21ac529de0e0437eb2a6de6c779c178c",
32
+ "name": "demo"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://192.168.0.11:8774/v2/21ac529de0e0437eb2a6de6c779c178c",
33
+ "region": "RegionOne", "internalURL": "http://192.168.0.11:8774/v2/21ac529de0e0437eb2a6de6c779c178c",
34
+ "id": "11ac0aa24329483a8a0753bee2dc7660", "publicURL": "http://192.168.0.11:8774/v2/21ac529de0e0437eb2a6de6c779c178c"}],
35
+ "endpoints_links": [], "type": "compute", "name": "nova"}, {"endpoints": [{"adminURL":
36
+ "http://192.168.0.11:8776/v2/21ac529de0e0437eb2a6de6c779c178c", "region":
37
+ "RegionOne", "internalURL": "http://192.168.0.11:8776/v2/21ac529de0e0437eb2a6de6c779c178c",
38
+ "id": "ae4e43f2f71543e6b02f25c83e662a39", "publicURL": "http://192.168.0.11:8776/v2/21ac529de0e0437eb2a6de6c779c178c"}],
39
+ "endpoints_links": [], "type": "volumev2", "name": "cinderv2"}, {"endpoints":
40
+ [{"adminURL": "http://192.168.0.11:8774/v3", "region": "RegionOne", "internalURL":
41
+ "http://192.168.0.11:8774/v3", "id": "039a6b7a2d3e49e0bfd716bdffd3af87", "publicURL":
42
+ "http://192.168.0.11:8774/v3"}], "endpoints_links": [], "type": "computev3",
43
+ "name": "novav3"}, {"endpoints": [{"adminURL": "http://192.168.0.11:3333",
44
+ "region": "RegionOne", "internalURL": "http://192.168.0.11:3333", "id": "4f915e663fd9427aa0b2dbe1b6f42505",
45
+ "publicURL": "http://192.168.0.11:3333"}], "endpoints_links": [], "type":
46
+ "s3", "name": "s3"}, {"endpoints": [{"adminURL": "http://192.168.0.11:9292",
47
+ "region": "RegionOne", "internalURL": "http://192.168.0.11:9292", "id": "2478cc1946fa4d2a8d0659d9acd90970",
48
+ "publicURL": "http://192.168.0.11:9292"}], "endpoints_links": [], "type":
49
+ "image", "name": "glance"}, {"endpoints": [{"adminURL": "http://192.168.0.11:8000/v1",
50
+ "region": "RegionOne", "internalURL": "http://192.168.0.11:8000/v1", "id":
51
+ "0135fb5424a34d29a95ea5f4d1656118", "publicURL": "http://192.168.0.11:8000/v1"}],
52
+ "endpoints_links": [], "type": "cloudformation", "name": "heat"}, {"endpoints":
53
+ [{"adminURL": "http://192.168.0.11:8776/v1/21ac529de0e0437eb2a6de6c779c178c",
54
+ "region": "RegionOne", "internalURL": "http://192.168.0.11:8776/v1/21ac529de0e0437eb2a6de6c779c178c",
55
+ "id": "10371a1434124d5abb45977f2513fc8d", "publicURL": "http://192.168.0.11:8776/v1/21ac529de0e0437eb2a6de6c779c178c"}],
56
+ "endpoints_links": [], "type": "volume", "name": "cinder"}, {"endpoints":
57
+ [{"adminURL": "http://192.168.0.11:8773/services/Admin", "region": "RegionOne",
58
+ "internalURL": "http://192.168.0.11:8773/services/Cloud", "id": "06fce152506b4d0ab961699dd0a740b5",
59
+ "publicURL": "http://192.168.0.11:8773/services/Cloud"}], "endpoints_links":
60
+ [], "type": "ec2", "name": "ec2"}, {"endpoints": [{"adminURL": "http://192.168.0.11:8004/v1/21ac529de0e0437eb2a6de6c779c178c",
61
+ "region": "RegionOne", "internalURL": "http://192.168.0.11:8004/v1/21ac529de0e0437eb2a6de6c779c178c",
62
+ "id": "1e491616d83143c89f3734b3e8ccd9a3", "publicURL": "http://192.168.0.11:8004/v1/21ac529de0e0437eb2a6de6c779c178c"}],
63
+ "endpoints_links": [], "type": "orchestration", "name": "heat"}, {"endpoints":
64
+ [{"adminURL": "http://192.168.0.11:8080", "region": "RegionOne", "internalURL":
65
+ "http://192.168.0.11:8080/v1/AUTH_21ac529de0e0437eb2a6de6c779c178c", "id":
66
+ "0799167d0524452b8a34fba533ca59c2", "publicURL": "http://192.168.0.11:8080/v1/AUTH_21ac529de0e0437eb2a6de6c779c178c"}],
67
+ "endpoints_links": [], "type": "object-store", "name": "swift"}, {"endpoints":
68
+ [{"adminURL": "http://192.168.0.11:35357/v2.0", "region": "RegionOne", "internalURL":
69
+ "http://192.168.0.11:5000/v2.0", "id": "214a6b8128b6400b9cd97cd1566699f2",
70
+ "publicURL": "http://192.168.0.11:5000/v2.0"}], "endpoints_links": [], "type":
71
+ "identity", "name": "keystone"}], "user": {"username": "admin", "roles_links":
72
+ [], "id": "ab6f0044ab81418183b524ed4be30273", "roles": [{"name": "heat_stack_owner"},
73
+ {"name": "admin"}], "name": "admin"}, "metadata": {"is_admin": 0, "roles":
74
+ ["d4928e78b7fa406b810fa2fcf655690b", "22a98196b4b24504944af9c5e4be271c"]}}}'
75
+ http_version:
76
+ recorded_at: Sat, 21 Jun 2014 08:46:38 GMT
77
+ recorded_with: VCR 2.9.2
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+
3
+ describe OpenstackBridge::Container, :vcr do
4
+ subject {
5
+ swift = OpenstackBridge::Swift.new('http://192.168.0.11:5000/v2.0/tokens', 'admin', 'q1w2', 'demo')
6
+ OpenstackBridge::Container.new(swift, 'test_container')
7
+ }
8
+
9
+ it 'checks if object exists' do
10
+ subject.exists?('no_file.txt').should == false
11
+ end
12
+
13
+ it 'creates object' do
14
+ subject.create('test_file.txt', 'test content')
15
+ end
16
+
17
+ it 'gives list of container' do
18
+ subject.objects.should == ['test_file.txt']
19
+ end
20
+
21
+ it 'reads objects do' do
22
+ subject.read('test_file.txt').should == 'test content'
23
+ end
24
+ end
@@ -0,0 +1,17 @@
1
+ require 'openstack_bridge'
2
+ require 'vcr'
3
+
4
+ VCR.configure do |c|
5
+ c.cassette_library_dir = 'spec/cassettes'
6
+ c.hook_into :webmock
7
+ c.configure_rspec_metadata!
8
+ end
9
+
10
+ RSpec.configure do |config|
11
+ config.mock_with :rspec
12
+ config.filter_run focus: true
13
+ config.treat_symbols_as_metadata_keys_with_true_values = true
14
+ config.run_all_when_everything_filtered = true
15
+ config.alias_example_to :fit, focus: true
16
+ config.treat_symbols_as_metadata_keys_with_true_values = true
17
+ end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ describe OpenstackBridge::Swift, :vcr do
4
+ subject { OpenstackBridge::Swift.new('http://192.168.0.11:5000/v2.0/tokens', 'admin', 'q1w2', 'demo') }
5
+
6
+ it 'creates container' do
7
+ subject.create('test_container')
8
+ subject.containers.should == ['test_container']
9
+ end
10
+
11
+ it 'has end point' do
12
+ subject.end_point.should == 'http://192.168.0.11:8080/v1/AUTH_21ac529de0e0437eb2a6de6c779c178c'
13
+ end
14
+
15
+ it 'creates container object' do
16
+ subject.container('test_container').class.should == OpenstackBridge::Container
17
+ end
18
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openstack_bridge
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - lis2
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-06-14 00:00:00.000000000 Z
12
+ date: 2014-06-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -39,6 +39,48 @@ dependencies:
39
39
  - - '>='
40
40
  - !ruby/object:Gem::Version
41
41
  version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: rspec
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - '>='
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: vcr
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: webmock
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - '>='
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
42
84
  - !ruby/object:Gem::Dependency
43
85
  name: httpi
44
86
  requirement: !ruby/object:Gem::Requirement
@@ -53,6 +95,34 @@ dependencies:
53
95
  - - '>='
54
96
  - !ruby/object:Gem::Version
55
97
  version: '0'
98
+ - !ruby/object:Gem::Dependency
99
+ name: curb
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - '>='
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ type: :runtime
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - '>='
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ - !ruby/object:Gem::Dependency
113
+ name: json
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - '>='
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ type: :runtime
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
56
126
  description: Openstack ruby integration
57
127
  email:
58
128
  - kotlarek.krzysztof@gmail.com
@@ -61,14 +131,29 @@ extensions: []
61
131
  extra_rdoc_files: []
62
132
  files:
63
133
  - Gemfile
134
+ - Gemfile.lock
64
135
  - LICENSE.txt
65
136
  - README.md
66
137
  - Rakefile
67
138
  - lib/openstack_bridge.rb
68
139
  - lib/openstack_bridge/authentication.rb
140
+ - lib/openstack_bridge/container.rb
141
+ - lib/openstack_bridge/error.rb
69
142
  - lib/openstack_bridge/swift.rb
70
143
  - lib/openstack_bridge/version.rb
71
144
  - openstack_bridge.gemspec
145
+ - spec/authentication_spec.rb
146
+ - spec/cassettes/OpenstackBridge_Authentication/has_token.yml
147
+ - spec/cassettes/OpenstackBridge_Container/checks_if_object_exists.yml
148
+ - spec/cassettes/OpenstackBridge_Container/creates_object.yml
149
+ - spec/cassettes/OpenstackBridge_Container/gives_list_of_container.yml
150
+ - spec/cassettes/OpenstackBridge_Container/reads_objects_do.yml
151
+ - spec/cassettes/OpenstackBridge_Swift/creates_container.yml
152
+ - spec/cassettes/OpenstackBridge_Swift/creates_container_object.yml
153
+ - spec/cassettes/OpenstackBridge_Swift/has_end_point.yml
154
+ - spec/container_spec.rb
155
+ - spec/spec_helper.rb
156
+ - spec/swift_spec.rb
72
157
  homepage: https://github.com/lis2/openstack_bridge
73
158
  licenses:
74
159
  - MIT
@@ -93,4 +178,16 @@ rubygems_version: 2.2.2
93
178
  signing_key:
94
179
  specification_version: 4
95
180
  summary: Ruby integration with openstack, especially swift
96
- test_files: []
181
+ test_files:
182
+ - spec/authentication_spec.rb
183
+ - spec/cassettes/OpenstackBridge_Authentication/has_token.yml
184
+ - spec/cassettes/OpenstackBridge_Container/checks_if_object_exists.yml
185
+ - spec/cassettes/OpenstackBridge_Container/creates_object.yml
186
+ - spec/cassettes/OpenstackBridge_Container/gives_list_of_container.yml
187
+ - spec/cassettes/OpenstackBridge_Container/reads_objects_do.yml
188
+ - spec/cassettes/OpenstackBridge_Swift/creates_container.yml
189
+ - spec/cassettes/OpenstackBridge_Swift/creates_container_object.yml
190
+ - spec/cassettes/OpenstackBridge_Swift/has_end_point.yml
191
+ - spec/container_spec.rb
192
+ - spec/spec_helper.rb
193
+ - spec/swift_spec.rb