mystro-common 0.3.0 → 0.3.1.alpha2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NjhlMjdhZjYyYmYxYjgxNzY4ZWYyZDRjOTE1ZDU5ODdkZWIyZTMxZQ==
5
+ data.tar.gz: !binary |-
6
+ OGRjM2YxYzU3OGE4NWE3NGNhYzUyYzRjZGYyN2EwOGQ3OTY0N2QwNg==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ YjJkMzFiMzMxZGY5MzM2YzY5ZjQxM2IxMjAzMjRiMGE5ZDFhMGRjYTc1Nzcz
10
+ ZmFhZmY3MjczNWZmYTJkMTA3ZTg0ODEyOGY0Y2E5ZGExY2NkMmNkNjZmOTM0
11
+ NmI3OGEzYWU0MmUxMjhhMzJhNjVkN2Q0ODgxMTcyODVkOGQyODM=
12
+ data.tar.gz: !binary |-
13
+ MzA5ZTZkOGZhN2M5NGI5ZTVlOTYzN2ZjNmM2M2NhNDExNmY2NDAxMjIzN2I1
14
+ MDExNzdkZDUxNmMzNzkyMTNmZjE0NGFjNDRiZTc3YWQ4OWFkMzg2YmZlYjgx
15
+ Mjg4MjljNGJhNDgwM2Q0MTNiMDY4NGQxMGU0YjkxOTQzOGRmOWY=
data/.crackin.yml ADDED
@@ -0,0 +1,12 @@
1
+ ---
2
+ crackin:
3
+ name: 'mystro-common'
4
+ scm: git
5
+ changelog: CHANGELOG.md
6
+ branch:
7
+ production: master
8
+ development: develop
9
+ version: lib/mystro/common/version.rb
10
+ build:
11
+ command: rake build
12
+ after: []
data/CHANGELOG.md CHANGED
@@ -1,9 +1,21 @@
1
- # Changelog
1
+ ### Changelog
2
2
 
3
- ## v0.3.0:
3
+ ##### v0.3.1.alpha2:
4
+ * think I've resolved problem with crackin release
5
+
6
+ ##### v0.3.1.alpha1:
7
+ * trouble with crackin release process
8
+
9
+ ##### v0.3.1.alpha0:
10
+ * add name to crackin config
11
+ * integrate crackin for gem releases
12
+ * update to fog 1.18
13
+ * fog issues resolved
14
+
15
+ ##### v0.3.0:
4
16
  * sync version with server
5
17
 
6
- ## v0.2.0:
18
+ ##### v0.2.0:
7
19
  * tests green.
8
20
  * conversion work completed... still want to test things a bit
9
21
  * custom create method for balancers
@@ -36,19 +48,19 @@
36
48
  * providers support
37
49
  * orgs
38
50
 
39
- ## v0.1.11:
51
+ ##### v0.1.11:
40
52
  * fixes bug if disabled is not set
41
53
 
42
- ## v0.1.10:
54
+ ##### v0.1.10:
43
55
  * allow for disabling plugins
44
56
 
45
- ## v0.1.9:
57
+ ##### v0.1.9:
46
58
  * fucking bug in dns code again
47
59
 
48
- ## v0.1.8:
60
+ ##### v0.1.8:
49
61
  * revert new dsl creeping in when it wasnt supposed to
50
62
 
51
- ## v0.1.7:
63
+ ##### v0.1.7:
52
64
  * fix lingering error with Account.list change
53
65
  * merge v0.1.6
54
66
  * merge release v0.1.2
@@ -56,7 +68,7 @@
56
68
  * ruby version file
57
69
  * changelog rake tasks
58
70
 
59
- ## v0.1.6:
71
+ ##### v0.1.6:
60
72
  * update rails to 3.2.14. tweak plugins jobs output to match qujo. fix issue with getting zones through fog
61
73
  * smarter errors in dns connect. add and use Account#get instead of @list attr
62
74
  * merge
@@ -65,12 +77,15 @@
65
77
  * ruby version file
66
78
  * changelog rake tasks
67
79
 
68
- ## v0.1.4:
80
+ ##### v0.1.5:
81
+
82
+
83
+ ##### v0.1.4:
69
84
  * merge
70
85
  * hard code rake version in Gemfile to match mystro server
71
86
  * support for templates in userdata, handled like files, but processed through erubis
72
87
 
73
- ## v0.1.3:
88
+ ##### v0.1.3:
74
89
  * fixes bugs with dns usage and plugin methods when no plugins are defined
75
90
  * update ruby version
76
91
  * lock activesupport to same version as rails for mystro/server
@@ -80,13 +95,16 @@
80
95
  * ruby version file
81
96
  * changelog rake tasks
82
97
 
83
- ## v0.1.2:
98
+ ##### v0.1.2:
84
99
  * new plugin support code for mystro-volley integration
85
100
  * new DSL framework
86
101
  * ruby version file
87
102
  * changelog rake tasks
88
103
 
89
- ## v0.1.1:
104
+ ##### v0.1.1:
90
105
  * new DSL framework
91
106
  * ruby version file
92
107
 
108
+ ##### v0.1.0:
109
+
110
+
data/Gemfile CHANGED
@@ -4,6 +4,7 @@ source 'https://rubygems.org'
4
4
  gemspec
5
5
 
6
6
  gem 'damsel', path: '../../damsel'
7
+ gem 'crackin', path: '../../crackin'
7
8
 
8
9
  gem 'rake', '10.0.4'
9
10
  gem 'awesome_print'
@@ -1,62 +1,7 @@
1
- require 'fog/core/collection'
2
- require 'fog/ext/dynect/models/dns/record'
3
-
4
1
  module Fog
5
2
  module DNS
6
3
  class Dynect
7
-
8
4
  class Records < Fog::Collection
9
-
10
- attribute :zone
11
-
12
- model Fog::DNS::Dynect::Record
13
-
14
- def all(options = {})
15
- requires :zone
16
- data = []
17
- service.get_all_records(zone.domain, options).body['data'].each do |url|
18
- (_, _, t, _, fqdn, id) = url.split('/')
19
- type = t.gsub(/Record$/, '')
20
-
21
- # leave out the default, read only records
22
- # by putting this here we don't make the secondary request for these records
23
- next if ['NS', 'SOA'].include?(type)
24
- record = service.get_record(type, zone.domain, fqdn, 'record_id' => id).body['data']
25
-
26
- data << {
27
- :identity => record['record_id'],
28
- :fqdn => record['fqdn'],
29
- :type => record['record_type'],
30
- :rdata => record['rdata']
31
- }
32
- end
33
-
34
- load(data)
35
- end
36
-
37
- def get(record_id)
38
- requires :zone
39
-
40
- list = service.get_all_records(zone.domain, {}).body['data']
41
- url = list.detect { |e| e =~ /\/#{record_id}$/ }
42
- return unless url
43
- (_, _, t, _, fqdn, id) = url.split('/')
44
- type = t.gsub(/Record$/, '')
45
- record = service.get_record(type, zone.domain, fqdn, 'record_id' => id).body['data']
46
-
47
- new({
48
- :identity => record['record_id'],
49
- :fqdn => record['fqdn'],
50
- :type => record['record_type'],
51
- :rdata => record['rdata']
52
- })
53
- end
54
-
55
- def new(attributes = {})
56
- requires :zone
57
- super({:zone => zone}.merge!(attributes))
58
- end
59
-
60
5
  def find_by_name(name)
61
6
  requires :zone
62
7
  data = []
@@ -79,9 +24,7 @@ module Fog
79
24
 
80
25
  load(data)
81
26
  end
82
-
83
27
  end
84
-
85
28
  end
86
29
  end
87
30
  end
@@ -1,5 +1,4 @@
1
1
  require 'ipaddress'
2
- #require 'ext/fog/dynect/models/dns/records'
3
2
 
4
3
  module Mystro
5
4
  module Cloud
@@ -1,5 +1,5 @@
1
1
  require 'mystro/cloud/connect/fog'
2
- require 'fog/ext/dynect'
2
+ require 'fog/ext/dynect/models/dns/records'
3
3
 
4
4
  module Mystro
5
5
  module Cloud
@@ -3,10 +3,10 @@ module Mystro
3
3
  module Version
4
4
  MAJOR = 0
5
5
  MINOR = 3
6
- TINY = 0
7
- TAG = nil
6
+ TINY = 1
7
+ TAG = 'alpha2'
8
8
  LIST = [MAJOR, MINOR, TINY, TAG]
9
9
  STRING = LIST.compact.join(".")
10
10
  end
11
11
  end
12
- end
12
+ end
@@ -4,24 +4,25 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'mystro/common/version'
5
5
 
6
6
  Gem::Specification.new do |gem|
7
- gem.name = "mystro-common"
7
+ gem.name = 'mystro-common'
8
8
  gem.version = Mystro::Common::Version::STRING
9
- gem.authors = ["Shawn Catanzarite"]
10
- gem.email = ["me@shawncatz.com"]
9
+ gem.authors = ['Shawn Catanzarite']
10
+ gem.email = ['me@shawncatz.com']
11
11
  gem.description = %q{common functionality for Mystro}
12
12
  gem.summary = %q{common functionality for Mystro}
13
- gem.homepage = "http://github.com/mystro"
13
+ gem.homepage = 'http://github.com/mystro'
14
14
 
15
15
  gem.files = `git ls-files`.split($/)
16
16
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
17
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
- gem.require_paths = ["lib"]
18
+ gem.require_paths = ['lib']
19
19
 
20
- gem.add_dependency "fog", "~> 1.15.0" # talk to cloud
21
- gem.add_dependency "yell", "~> 1.2.0" # logging
22
- gem.add_dependency "hashie" # better data objects
23
- gem.add_dependency "activesupport", "3.2.14" # active support
24
- gem.add_dependency "ipaddress" # ip address library
25
- gem.add_dependency "erubis" # userdata templates
26
- gem.add_dependency "damsel", "~> 0.1.0" # dsl
20
+ gem.add_dependency 'fog', '~> 1.18.0' # talk to cloud
21
+ gem.add_dependency 'unf'
22
+ gem.add_dependency 'yell', '~> 1.2.0' # logging
23
+ gem.add_dependency 'hashie' # better data objects
24
+ gem.add_dependency 'activesupport', '3.2.14' # active support
25
+ gem.add_dependency 'ipaddress' # ip address library
26
+ gem.add_dependency 'erubis' # userdata templates
27
+ gem.add_dependency 'damsel', '~> 0.1.0' # dsl
27
28
  end
@@ -9,29 +9,49 @@ shared_examples "cloud record" do
9
9
  model
10
10
  end
11
11
 
12
- context "find", :find do
13
- let(:id) { config[:id] }
14
- let(:name) { config[:name] }
15
- let(:model) { cloud.find(id) }
16
-
17
- subject { model }
18
- it { should be_instance_of(Mystro::Cloud::Record) }
19
- its(:id) { should == id }
20
- its(:name) { should == name }
12
+ context 'find', :find do
13
+ context 'by id' do
14
+ let(:id) { config[:id] }
15
+ let(:name) { config[:name] }
16
+ let(:found) { cloud.find(id) }
17
+
18
+ subject { found }
19
+ it { should be_instance_of(Mystro::Cloud::Record) }
20
+ its(:id) { should == id }
21
+ its(:name) { should == name }
22
+ end
23
+
24
+ context 'by name' do
25
+ let(:id) { config[:id] }
26
+ let(:name) { config[:name] }
27
+ let(:found) { cloud.find_by_name(name) }
28
+
29
+ subject { found }
30
+ it { should be_instance_of(Mystro::Cloud::Record) }
31
+ its(:id) { should == id }
32
+ its(:name) { should == name }
33
+ end
34
+
35
+ context 'doesnt exist' do
36
+ let(:id) { '123456789'}
37
+ it 'should handle missing' do
38
+ expect { cloud.find(id) }.to raise_error(Mystro::Cloud::NotFound)
39
+ #expect(found).to be(nil)
40
+ end
41
+ end
21
42
  end
22
43
 
23
- context "all" do
44
+ context 'all', :all do
24
45
  let(:all) { cloud.all }
25
- it "should return models" do
46
+ it 'should return models' do
26
47
  all.each do |i|
27
48
  expect(i).to be_instance_of(Mystro::Cloud::Record)
28
49
  end
29
50
  end
30
51
  end
31
52
 
32
- context "create and destroy" do
33
-
34
- it "should create and destroy" do
53
+ context 'create and destroy', :cad do
54
+ it 'should create and destroy' do
35
55
  n = cloud.create(model)
36
56
  expect(n).to be_instance_of(Mystro::Cloud::Record)
37
57
  expect(n.name).not_to be(nil)
metadata CHANGED
@@ -1,36 +1,46 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mystro-common
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
5
- prerelease:
4
+ version: 0.3.1.alpha2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Shawn Catanzarite
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-10-11 00:00:00.000000000 Z
11
+ date: 2013-11-22 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: fog
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
21
- version: 1.15.0
19
+ version: 1.18.0
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
29
- version: 1.15.0
26
+ version: 1.18.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: unf
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
30
41
  - !ruby/object:Gem::Dependency
31
42
  name: yell
32
43
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
44
  requirements:
35
45
  - - ~>
36
46
  - !ruby/object:Gem::Version
@@ -38,7 +48,6 @@ dependencies:
38
48
  type: :runtime
39
49
  prerelease: false
40
50
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
51
  requirements:
43
52
  - - ~>
44
53
  - !ruby/object:Gem::Version
@@ -46,7 +55,6 @@ dependencies:
46
55
  - !ruby/object:Gem::Dependency
47
56
  name: hashie
48
57
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
58
  requirements:
51
59
  - - ! '>='
52
60
  - !ruby/object:Gem::Version
@@ -54,7 +62,6 @@ dependencies:
54
62
  type: :runtime
55
63
  prerelease: false
56
64
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
65
  requirements:
59
66
  - - ! '>='
60
67
  - !ruby/object:Gem::Version
@@ -62,7 +69,6 @@ dependencies:
62
69
  - !ruby/object:Gem::Dependency
63
70
  name: activesupport
64
71
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
72
  requirements:
67
73
  - - '='
68
74
  - !ruby/object:Gem::Version
@@ -70,7 +76,6 @@ dependencies:
70
76
  type: :runtime
71
77
  prerelease: false
72
78
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
79
  requirements:
75
80
  - - '='
76
81
  - !ruby/object:Gem::Version
@@ -78,7 +83,6 @@ dependencies:
78
83
  - !ruby/object:Gem::Dependency
79
84
  name: ipaddress
80
85
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
86
  requirements:
83
87
  - - ! '>='
84
88
  - !ruby/object:Gem::Version
@@ -86,7 +90,6 @@ dependencies:
86
90
  type: :runtime
87
91
  prerelease: false
88
92
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
93
  requirements:
91
94
  - - ! '>='
92
95
  - !ruby/object:Gem::Version
@@ -94,7 +97,6 @@ dependencies:
94
97
  - !ruby/object:Gem::Dependency
95
98
  name: erubis
96
99
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
100
  requirements:
99
101
  - - ! '>='
100
102
  - !ruby/object:Gem::Version
@@ -102,7 +104,6 @@ dependencies:
102
104
  type: :runtime
103
105
  prerelease: false
104
106
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
107
  requirements:
107
108
  - - ! '>='
108
109
  - !ruby/object:Gem::Version
@@ -110,7 +111,6 @@ dependencies:
110
111
  - !ruby/object:Gem::Dependency
111
112
  name: damsel
112
113
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
114
  requirements:
115
115
  - - ~>
116
116
  - !ruby/object:Gem::Version
@@ -118,7 +118,6 @@ dependencies:
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
121
  requirements:
123
122
  - - ~>
124
123
  - !ruby/object:Gem::Version
@@ -130,6 +129,7 @@ executables: []
130
129
  extensions: []
131
130
  extra_rdoc_files: []
132
131
  files:
132
+ - .crackin.yml
133
133
  - .gitignore
134
134
  - .rspec
135
135
  - .ruby-version
@@ -139,22 +139,7 @@ files:
139
139
  - README.md
140
140
  - Rakefile
141
141
  - lib/fog/ext/balancer.rb
142
- - lib/fog/ext/dynect.rb
143
- - lib/fog/ext/dynect/dns.rb
144
- - lib/fog/ext/dynect/models/dns/record.rb
145
142
  - lib/fog/ext/dynect/models/dns/records.rb
146
- - lib/fog/ext/dynect/models/dns/zone.rb
147
- - lib/fog/ext/dynect/models/dns/zones.rb
148
- - lib/fog/ext/dynect/requests/dns/delete_record.rb
149
- - lib/fog/ext/dynect/requests/dns/delete_zone.rb
150
- - lib/fog/ext/dynect/requests/dns/get_all_records.rb
151
- - lib/fog/ext/dynect/requests/dns/get_node_list.rb
152
- - lib/fog/ext/dynect/requests/dns/get_record.rb
153
- - lib/fog/ext/dynect/requests/dns/get_zone.rb
154
- - lib/fog/ext/dynect/requests/dns/post_record.rb
155
- - lib/fog/ext/dynect/requests/dns/post_session.rb
156
- - lib/fog/ext/dynect/requests/dns/post_zone.rb
157
- - lib/fog/ext/dynect/requests/dns/put_zone.rb
158
143
  - lib/mystro-common.rb
159
144
  - lib/mystro/capistrano.rb
160
145
  - lib/mystro/cloud.rb
@@ -208,33 +193,26 @@ files:
208
193
  - test/config.yml
209
194
  homepage: http://github.com/mystro
210
195
  licenses: []
196
+ metadata: {}
211
197
  post_install_message:
212
198
  rdoc_options: []
213
199
  require_paths:
214
200
  - lib
215
201
  required_ruby_version: !ruby/object:Gem::Requirement
216
- none: false
217
202
  requirements:
218
203
  - - ! '>='
219
204
  - !ruby/object:Gem::Version
220
205
  version: '0'
221
- segments:
222
- - 0
223
- hash: -201190253362544138
224
206
  required_rubygems_version: !ruby/object:Gem::Requirement
225
- none: false
226
207
  requirements:
227
- - - ! '>='
208
+ - - ! '>'
228
209
  - !ruby/object:Gem::Version
229
- version: '0'
230
- segments:
231
- - 0
232
- hash: -201190253362544138
210
+ version: 1.3.1
233
211
  requirements: []
234
212
  rubyforge_project:
235
- rubygems_version: 1.8.25
213
+ rubygems_version: 2.1.10
236
214
  signing_key:
237
- specification_version: 3
215
+ specification_version: 4
238
216
  summary: common functionality for Mystro
239
217
  test_files:
240
218
  - spec/cloud/aws/balancer_spec.rb
@@ -1,140 +0,0 @@
1
- require 'fog/dynect'
2
- require 'fog/dns'
3
-
4
- module Fog
5
- module DNS
6
- class Dynect < Fog::Service
7
-
8
- requires :dynect_customer, :dynect_username, :dynect_password
9
- recognizes :timeout, :persistent
10
- recognizes :provider # remove post deprecation
11
-
12
- model_path 'fog/ext/dynect/models/dns'
13
- model :record
14
- collection :records
15
- model :zone
16
- collection :zones
17
-
18
- request_path 'fog/ext/dynect/requests/dns'
19
- request :delete_record
20
- request :delete_zone
21
- request :get_node_list
22
- request :get_all_records
23
- request :get_record
24
- request :get_zone
25
- request :post_record
26
- request :post_session
27
- request :post_zone
28
- request :put_zone
29
-
30
- class JobIncomplete < Error; end
31
-
32
- class Mock
33
- def initialize(options={})
34
- @dynect_customer = options[:dynect_customer]
35
- @dynect_username = options[:dynect_username]
36
- @dynect_password = options[:dynect_password]
37
- end
38
-
39
- def self.data
40
- @data ||= {
41
- :zones => {}
42
- }
43
- end
44
-
45
- def self.reset
46
- @data = nil
47
- end
48
-
49
- def auth_token
50
- @auth_token ||= Fog::Dynect::Mock.token
51
- end
52
-
53
- def data
54
- self.class.data
55
- end
56
-
57
- def reset_data
58
- self.class.reset
59
- end
60
- end
61
-
62
- class Real
63
- def initialize(options={})
64
- @dynect_customer = options[:dynect_customer]
65
- @dynect_username = options[:dynect_username]
66
- @dynect_password = options[:dynect_password]
67
-
68
- @connection_options = options[:connection_options] || {}
69
- @host = 'api-v4.dynect.net'
70
- @port = options[:port] || 443
71
- @path = options[:path] || '/REST'
72
- @persistent = options[:persistent] || false
73
- @scheme = options[:scheme] || 'https'
74
- @version = options[:version] || '3.5.2'
75
- @connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent, @connection_options)
76
- end
77
-
78
- def auth_token
79
- @auth_token ||= post_session.body['data']['token']
80
- end
81
-
82
- def request(params)
83
- begin
84
- # any request could redirect to a job
85
- params[:expects] = Array(params[:expects]) | [307]
86
-
87
- params[:headers] ||= {}
88
- params[:headers]['Content-Type'] = 'application/json'
89
- params[:headers]['API-Version'] = @version
90
- params[:headers]['Auth-Token'] = auth_token unless params[:path] == 'Session'
91
- params[:path] = "#{@path}/#{params[:path]}" unless params[:path] =~ %r{^#{Regexp.escape(@path)}/}
92
-
93
- response = @connection.request(params.merge!({:host => @host}))
94
-
95
- if response.body.empty?
96
- response.body = {}
97
- elsif response.headers['Content-Type'] == 'application/json'
98
- response.body = Fog::JSON.decode(response.body)
99
- end
100
-
101
- if response.body['status'] == 'failure'
102
- raise Error, response.body['msgs'].first['INFO']
103
- end
104
-
105
- if response.status == 307 && params[:path] !~ %r{^/REST/Job/}
106
- response = poll_job(response, params[:expects])
107
- end
108
-
109
- response
110
- rescue Excon::Errors::HTTPStatusError => error
111
- if @auth_token && error.message =~ /login: (Bad or expired credentials|inactivity logout)/
112
- @auth_token = nil
113
- retry
114
- else
115
- raise error
116
- end
117
- end
118
-
119
- response
120
- end
121
-
122
- def poll_job(response, original_expects, time_to_wait = 10)
123
- job_location = response.headers['Location']
124
-
125
- Fog.wait_for(time_to_wait) do
126
- response = request(:expects => original_expects, :method => :get, :path => job_location)
127
- response.body['status'] != 'incomplete'
128
- end
129
-
130
- if response.body['status'] == 'incomplete'
131
- raise JobIncomplete.new("Job #{response.body['job_id']} is still incomplete")
132
- end
133
-
134
- response
135
- end
136
- end
137
-
138
- end
139
- end
140
- end