vagrant_cloud 2.0.0 → 3.0.1

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.
@@ -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