vagrant_cloud 2.0.0 → 3.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,188 +1,3 @@
1
1
  module VagrantCloud
2
- class Version
3
- attr_accessor :box
4
- attr_accessor :number
5
-
6
- # @param [Box] box
7
- # @param [String] number
8
- # @param [Hash] data
9
- # @param [String] description
10
- # @param [String] access_token
11
- def initialize(box, number, data = nil, description = nil, access_token = nil, custom_server = nil)
12
- @box = box
13
- @number = number
14
- @data = data
15
- @description = description
16
- @client = Client.new(access_token, custom_server)
17
- end
18
-
19
- #--------------------
20
- # Metadata Helpers
21
- #--------------------
22
-
23
- # @return [String]
24
- def version
25
- data['version'].to_s
26
- end
27
-
28
- # @return [String]
29
- def description
30
- data['description_markdown'].to_s
31
- end
32
-
33
- # @return [String]
34
- def status
35
- data['status'].to_s
36
- end
37
-
38
- # @return [Array<Provider>]
39
- def providers
40
- data['providers'].map { |data| Provider.new(self, data['name'], data) }
41
- end
42
-
43
- # @return [String]
44
- def to_s
45
- version
46
- end
47
-
48
- #--------------------
49
- # Version API Helpers
50
- #--------------------
51
-
52
- # @return [Hash]
53
- def data
54
- @data ||= @client.request('get', version_path)
55
- end
56
-
57
- # @param [String] username
58
- # @param [String] box_name
59
- # @param [String] version_number
60
- # @return [Hash]
61
- def read(username = nil, box_name = nil, version_number = nil)
62
- @client.request('get', version_path(username, box_name, version_number))
63
- end
64
-
65
- # @param [String] username
66
- # @param [String] box_name
67
- # @param [String] version_number
68
- # @param [String] description
69
- def update(description = nil, username = nil, box_name = nil, version_number = nil)
70
- update_data = !(username && box_name && version_number)
71
- description ||= @description
72
- version = { description: description }
73
- data = @client.request('put',
74
- version_path(username, box_name, version_number),
75
- version: version)
76
-
77
- @data = data if update_data
78
- data
79
- end
80
-
81
- # @param [String] username
82
- # @param [String] box_name
83
- # @param [String] version_number
84
- def delete(username = nil, box_name = nil, version_number = nil)
85
- @client.request('delete', version_path(username, box_name, version_number))
86
- end
87
-
88
- # @param [String] username
89
- # @param [String] box_name
90
- # @param [String] version_number
91
- def release(username = nil, box_name = nil, version_number = nil)
92
- data = @client.request('put', "#{version_path(username, box_name, version_number)}/release")
93
-
94
- @data = data if !(username && box_name && version_number)
95
- data
96
- end
97
-
98
- # @param [String] username
99
- # @param [String] box_name
100
- # @param [String] version_number
101
- def revoke(username = nil, box_name = nil, version_number = nil)
102
- update_data = !(username && box_name && version_number)
103
- data = @client.request('put', "#{version_path(username, box_name, version_number)}/revoke")
104
-
105
- @data = data if update_data
106
- data
107
- end
108
-
109
- # @param [String] number
110
- # @param [String] description
111
- # @param [String] org
112
- # @param [String] box_name
113
- # @return [Hash]
114
- def create_version(number = nil, description = nil, org = nil, box_name = nil)
115
- update_data = !(org && box_name && description && number)
116
- number ||= @number
117
- description ||= @description
118
-
119
- params = { version: number, description: description }
120
- data = @client.request('post', create_version_path(org, box_name).to_s, version: params)
121
-
122
- @data = data if update_data
123
- data
124
- end
125
-
126
- #--------------------
127
- # Old Provider Helpers
128
- #--------------------
129
-
130
- # @param [String] name
131
- # @param [Hash] data
132
- # @return [Provider]
133
- def get_provider(name, data = nil)
134
- Provider.new(self, name, data)
135
- end
136
-
137
- # @param [String] name
138
- # @param [String] url
139
- # @return [Provider]
140
- def create_provider(name, url = nil)
141
- params = { name: name, url: url }.delete_if { |_, v| v.nil? }
142
- data = @client.request('post', "#{version_path}/providers", provider: params)
143
- get_provider(name, data)
144
- end
145
-
146
- # @param [String] name
147
- # @param [String] url
148
- # @return [Provider]
149
- def ensure_provider(name, url)
150
- provider = providers.select { |p| p.name == name }.first
151
- provider ||= create_provider(name, url)
152
- provider.update(url) if url != provider.url
153
- provider
154
- end
155
-
156
- private
157
-
158
- # @return [Account]
159
- def account
160
- box.account
161
- end
162
-
163
- # Path used to generate a new version on a box
164
- #
165
- # @param [String] - username
166
- # @param [String] - box_name
167
- # @return [String]
168
- def create_version_path(username = nil, box_name = nil)
169
- if username && box_name
170
- "/box/#{username}/#{box_name}/versions"
171
- else
172
- "/box/#{account.username}/#{box.name}/versions"
173
- end
174
- end
175
-
176
- # @param [String] - username
177
- # @param [String] - box_name
178
- # @param [String] - version_number
179
- # @return [String]
180
- def version_path(username = nil, box_name = nil, version_number = nil)
181
- if username && box_name && version_number
182
- "/box/#{username}/#{box_name}/version/#{version_number}"
183
- else
184
- "/box/#{account.username}/#{box.name}/version/#{number}"
185
- end
186
- end
187
- end
2
+ VERSION = Gem::Version.new(File.read(File.expand_path("../../../version.txt", __FILE__)))
188
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant_cloud
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 3.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - HashiCorp
@@ -9,50 +9,50 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-10-16 00:00:00.000000000 Z
12
+ date: 2020-10-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: json
15
+ name: excon
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: 2.1.0
20
+ version: '0.73'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: 2.1.0
27
+ version: '0.73'
28
28
  - !ruby/object:Gem::Dependency
29
- name: rest-client
29
+ name: log4r
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: 2.0.2
34
+ version: 1.1.10
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: 2.0.2
41
+ version: 1.1.10
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: rake
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: '10.4'
48
+ version: '12.3'
49
49
  type: :development
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: '10.4'
55
+ version: '12.3'
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: rspec
58
58
  requirement: !ruby/object:Gem::Requirement
@@ -67,20 +67,6 @@ dependencies:
67
67
  - - "~>"
68
68
  - !ruby/object:Gem::Version
69
69
  version: '3.0'
70
- - !ruby/object:Gem::Dependency
71
- name: rubocop
72
- requirement: !ruby/object:Gem::Requirement
73
- requirements:
74
- - - "~>"
75
- - !ruby/object:Gem::Version
76
- version: 0.59.1
77
- type: :development
78
- prerelease: false
79
- version_requirements: !ruby/object:Gem::Requirement
80
- requirements:
81
- - - "~>"
82
- - !ruby/object:Gem::Version
83
- version: 0.59.1
84
70
  - !ruby/object:Gem::Dependency
85
71
  name: webmock
86
72
  requirement: !ruby/object:Gem::Requirement
@@ -103,24 +89,31 @@ extra_rdoc_files: []
103
89
  files:
104
90
  - LICENSE
105
91
  - README.md
106
- - bin/vagrant_cloud
107
92
  - lib/vagrant_cloud.rb
108
93
  - lib/vagrant_cloud/account.rb
109
94
  - lib/vagrant_cloud/box.rb
95
+ - lib/vagrant_cloud/box/provider.rb
96
+ - lib/vagrant_cloud/box/version.rb
110
97
  - lib/vagrant_cloud/client.rb
111
- - lib/vagrant_cloud/errors.rb
112
- - lib/vagrant_cloud/provider.rb
98
+ - lib/vagrant_cloud/data.rb
99
+ - lib/vagrant_cloud/error.rb
100
+ - lib/vagrant_cloud/instrumentor.rb
101
+ - lib/vagrant_cloud/instrumentor/collection.rb
102
+ - lib/vagrant_cloud/instrumentor/core.rb
103
+ - lib/vagrant_cloud/instrumentor/logger.rb
104
+ - lib/vagrant_cloud/logger.rb
105
+ - lib/vagrant_cloud/organization.rb
106
+ - lib/vagrant_cloud/response.rb
107
+ - lib/vagrant_cloud/response/create_token.rb
108
+ - lib/vagrant_cloud/response/request_2fa.rb
109
+ - lib/vagrant_cloud/response/search.rb
113
110
  - lib/vagrant_cloud/search.rb
114
111
  - lib/vagrant_cloud/version.rb
115
112
  homepage: https://github.com/hashicorp/vagrant_cloud
116
113
  licenses:
117
114
  - MIT
118
115
  metadata: {}
119
- post_install_message: |-
120
- NOTICE: As of the 2.0.0 release, the vagrant_cloud gem provides library functionality
121
- and no longer includes a command line client. For a command line client,
122
- use the `vagrant cloud` subcommand from Vagrant. Vagrant can be downloaded
123
- from: https://www.vagrantup.com/downloads.html
116
+ post_install_message:
124
117
  rdoc_options: []
125
118
  require_paths:
126
119
  - lib
@@ -135,8 +128,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
135
128
  - !ruby/object:Gem::Version
136
129
  version: '0'
137
130
  requirements: []
138
- rubyforge_project:
139
- rubygems_version: 2.5.2.1
131
+ rubygems_version: 3.1.2
140
132
  signing_key:
141
133
  specification_version: 4
142
134
  summary: Vagrant Cloud API Library
@@ -1,5 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'vagrant_cloud'
4
-
5
- VagrantCloud::Cli.start(ARGV)
@@ -1,25 +0,0 @@
1
- module VagrantCloud
2
- class ClientError < StandardError
3
- attr_accessor :error_arr
4
- attr_accessor :error_code
5
-
6
- def initialize(msg, http_body, http_code)
7
- begin
8
- errors = JSON.parse(http_body)
9
- vagrant_cloud_msg = errors['errors']
10
-
11
- if vagrant_cloud_msg.is_a?(Array)
12
- message = msg + ' - ' + vagrant_cloud_msg.join(', ').to_s
13
- else
14
- message = msg + ' - ' + vagrant_cloud_msg
15
- end
16
- rescue JSON::ParserError
17
- message = msg
18
- end
19
-
20
- @error_arr = vagrant_cloud_msg
21
- @error_code = http_code
22
- super(message)
23
- end
24
- end
25
- end
@@ -1,149 +0,0 @@
1
- module VagrantCloud
2
- class Provider
3
- attr_accessor :version
4
- attr_accessor :name
5
-
6
- # @param [Version] version
7
- # @param [String] name
8
- # @param [Hash] data
9
- # @param [String] access_token
10
- def initialize(version, name, data = nil, url = nil, username = nil, box_name = nil, access_token = nil, custom_server = nil)
11
- @version = version
12
- @name = name
13
- @data = data
14
- @username = username
15
- @box_name = box_name
16
- @url = url
17
- @client = Client.new(access_token, custom_server)
18
- end
19
-
20
- #--------------------
21
- # Metadata Helpers
22
- #--------------------
23
-
24
- # @return [String]
25
- def url
26
- data['original_url'].to_s
27
- end
28
-
29
- # @return [String]
30
- def download_url
31
- data['download_url'].to_s
32
- end
33
-
34
- #--------------------
35
- # Provider API Helpers
36
- #--------------------
37
-
38
- # @return [Hash]
39
- def data
40
- @data ||= @client.request('get', provider_path)
41
- end
42
-
43
- # Creates a provider for *this* Provider object, or if all params are given,
44
- # will make a one-off request to create a Provider and return its data
45
- #
46
- # @param [String] name
47
- # @param [String] url
48
- # @param [String] username
49
- # @param [String] box_name
50
- # @param [String] version_number
51
- def create_provider(name = nil, url = nil, username = nil, box_name = nil, version_number = nil)
52
- update_data = !(username && version_number && provider_name && box_name)
53
- name ||= @name
54
- url ||= @url
55
- username ||= @username
56
- box_name ||= @box_name
57
- version_number ||= @version
58
-
59
- params = { name: name, url: url }.delete_if { |_, v| v.nil? }
60
- data = @client.request('post', create_provider_path(username, box_name, version_number), provider: params)
61
-
62
- @data = data if update_data
63
- data
64
- end
65
-
66
- # @param [String] url
67
- # @param [String] username
68
- # @param [String] box_name
69
- # @param [String] version_number
70
- # @param [String] provider_name
71
- def update(url = nil, username = nil, box_name = nil, version_number = nil, provider_name = nil)
72
- update_data = !(username && version_number && provider_name && box_name)
73
- provider_name ||= @name
74
- url ||= @url
75
- username ||= @username
76
- box_name ||= @box_name
77
- version_number ||= @version
78
-
79
- params = { url: url }
80
- data = @client.request('put',
81
- provider_path(username, box_name, version_number, provider_name),
82
- provider: params)
83
-
84
- @data = data if update_data
85
- data
86
- end
87
-
88
- # @param [String] username
89
- # @param [String] box_name
90
- # @param [String] version_number
91
- # @param [String] provider_name
92
- def delete(username = nil, box_name = nil, version_number = nil, provider_name = nil)
93
- @client.request('delete', provider_path(username, box_name, version_number, provider_name))
94
- end
95
-
96
- # @param [String] username
97
- # @param [String] box_name
98
- # @param [String] version_number
99
- # @param [String] provider_name
100
- # @return [String]
101
- def upload_url(username = nil, box_name = nil, version_number = nil, provider_name = nil)
102
- @client.request('get', "#{provider_path(username, box_name, version_number, provider_name)}/upload")['upload_path']
103
- end
104
-
105
- # @param [String] username
106
- # @param [String] box_name
107
- # @param [String] version_number
108
- # @param [String] provider_name
109
- # @param [String] file_path
110
- def upload_file(file_path, username = nil, box_name = nil, version_number = nil, provider_name = nil)
111
- url = upload_url(username, box_name, version_number, provider_name)
112
- payload = File.open(file_path, 'r')
113
- RestClient::Request.execute(
114
- method: :put,
115
- url: url,
116
- payload: payload,
117
- ssl_version: 'TLSv1'
118
- )
119
- end
120
-
121
- private
122
-
123
- # @return [Box]
124
- def box
125
- version.box
126
- end
127
-
128
- # @return [Account]
129
- def account
130
- box.account
131
- end
132
-
133
- def create_provider_path(username = nil, box_name = nil, version_number = nil)
134
- if username && box_name && version_number
135
- "/box/#{username}/#{box_name}/version/#{version_number}/providers"
136
- else
137
- "/box/#{account.username}/#{box.name}/version/#{version.number}/providers"
138
- end
139
- end
140
-
141
- def provider_path(username = nil, box_name = nil, version_number = nil, provider_name = nil)
142
- if username && box_name && version_number && name
143
- "/box/#{username}/#{box_name}/version/#{version_number}/provider/#{provider_name}"
144
- else
145
- "/box/#{account.username}/#{box.name}/version/#{version.number}/provider/#{name}"
146
- end
147
- end
148
- end
149
- end