vagrant_cloud 2.0.2 → 3.0.3
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.
- checksums.yaml +5 -5
- data/README.md +145 -39
- data/lib/vagrant_cloud.rb +20 -10
- data/lib/vagrant_cloud/account.rb +86 -169
- data/lib/vagrant_cloud/box.rb +115 -159
- data/lib/vagrant_cloud/box/provider.rb +175 -0
- data/lib/vagrant_cloud/box/version.rb +163 -0
- data/lib/vagrant_cloud/client.rb +450 -45
- data/lib/vagrant_cloud/data.rb +293 -0
- data/lib/vagrant_cloud/error.rb +48 -0
- data/lib/vagrant_cloud/instrumentor.rb +7 -0
- data/lib/vagrant_cloud/instrumentor/collection.rb +123 -0
- data/lib/vagrant_cloud/instrumentor/core.rb +9 -0
- data/lib/vagrant_cloud/instrumentor/logger.rb +97 -0
- data/lib/vagrant_cloud/logger.rb +64 -0
- data/lib/vagrant_cloud/organization.rb +62 -0
- data/lib/vagrant_cloud/response.rb +7 -0
- data/lib/vagrant_cloud/response/create_token.rb +7 -0
- data/lib/vagrant_cloud/response/request_2fa.rb +7 -0
- data/lib/vagrant_cloud/response/search.rb +65 -0
- data/lib/vagrant_cloud/search.rb +113 -15
- data/lib/vagrant_cloud/version.rb +1 -200
- metadata +31 -25
- data/bin/vagrant_cloud +0 -6
- data/lib/vagrant_cloud/errors.rb +0 -35
- data/lib/vagrant_cloud/provider.rb +0 -149
@@ -1,202 +1,3 @@
|
|
1
1
|
module VagrantCloud
|
2
|
-
|
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
|
-
# Ensure version given is a 'proper' version
|
71
|
-
begin
|
72
|
-
Gem::Version.new(version_number) if version_number
|
73
|
-
rescue ArgumentError
|
74
|
-
raise VagrantCloud::InvalidVersion, version_number
|
75
|
-
end
|
76
|
-
|
77
|
-
update_data = !(username && box_name && version_number)
|
78
|
-
description ||= @description
|
79
|
-
version = { description: description }
|
80
|
-
data = @client.request('put',
|
81
|
-
version_path(username, box_name, version_number),
|
82
|
-
version: version)
|
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
|
-
def delete(username = nil, box_name = nil, version_number = nil)
|
92
|
-
@client.request('delete', version_path(username, box_name, version_number))
|
93
|
-
end
|
94
|
-
|
95
|
-
# @param [String] username
|
96
|
-
# @param [String] box_name
|
97
|
-
# @param [String] version_number
|
98
|
-
def release(username = nil, box_name = nil, version_number = nil)
|
99
|
-
data = @client.request('put', "#{version_path(username, box_name, version_number)}/release")
|
100
|
-
|
101
|
-
@data = data if !(username && box_name && version_number)
|
102
|
-
data
|
103
|
-
end
|
104
|
-
|
105
|
-
# @param [String] username
|
106
|
-
# @param [String] box_name
|
107
|
-
# @param [String] version_number
|
108
|
-
def revoke(username = nil, box_name = nil, version_number = nil)
|
109
|
-
update_data = !(username && box_name && version_number)
|
110
|
-
data = @client.request('put', "#{version_path(username, box_name, version_number)}/revoke")
|
111
|
-
|
112
|
-
@data = data if update_data
|
113
|
-
data
|
114
|
-
end
|
115
|
-
|
116
|
-
# @param [String] number
|
117
|
-
# @param [String] description
|
118
|
-
# @param [String] org
|
119
|
-
# @param [String] box_name
|
120
|
-
# @return [Hash]
|
121
|
-
def create_version(number = nil, description = nil, org = nil, box_name = nil)
|
122
|
-
update_data = !(org && box_name && description && number)
|
123
|
-
number ||= @number
|
124
|
-
description ||= @description
|
125
|
-
|
126
|
-
# Ensure version given is a 'proper' version
|
127
|
-
begin
|
128
|
-
Gem::Version.new(number) if number
|
129
|
-
rescue ArgumentError
|
130
|
-
raise VagrantCloud::InvalidVersion, number
|
131
|
-
end
|
132
|
-
|
133
|
-
params = { version: number, description: description }
|
134
|
-
data = @client.request('post', create_version_path(org, box_name).to_s, version: params)
|
135
|
-
|
136
|
-
@data = data if update_data
|
137
|
-
data
|
138
|
-
end
|
139
|
-
|
140
|
-
#--------------------
|
141
|
-
# Old Provider Helpers
|
142
|
-
#--------------------
|
143
|
-
|
144
|
-
# @param [String] name
|
145
|
-
# @param [Hash] data
|
146
|
-
# @return [Provider]
|
147
|
-
def get_provider(name, data = nil)
|
148
|
-
Provider.new(self, name, data)
|
149
|
-
end
|
150
|
-
|
151
|
-
# @param [String] name
|
152
|
-
# @param [String] url
|
153
|
-
# @return [Provider]
|
154
|
-
def create_provider(name, url = nil)
|
155
|
-
params = { name: name, url: url }.delete_if { |_, v| v.nil? }
|
156
|
-
data = @client.request('post', "#{version_path}/providers", provider: params)
|
157
|
-
get_provider(name, data)
|
158
|
-
end
|
159
|
-
|
160
|
-
# @param [String] name
|
161
|
-
# @param [String] url
|
162
|
-
# @return [Provider]
|
163
|
-
def ensure_provider(name, url)
|
164
|
-
provider = providers.select { |p| p.name == name }.first
|
165
|
-
provider ||= create_provider(name, url)
|
166
|
-
provider.update(url) if url != provider.url
|
167
|
-
provider
|
168
|
-
end
|
169
|
-
|
170
|
-
private
|
171
|
-
|
172
|
-
# @return [Account]
|
173
|
-
def account
|
174
|
-
box.account
|
175
|
-
end
|
176
|
-
|
177
|
-
# Path used to generate a new version on a box
|
178
|
-
#
|
179
|
-
# @param [String] - username
|
180
|
-
# @param [String] - box_name
|
181
|
-
# @return [String]
|
182
|
-
def create_version_path(username = nil, box_name = nil)
|
183
|
-
if username && box_name
|
184
|
-
"/box/#{username}/#{box_name}/versions"
|
185
|
-
else
|
186
|
-
"/box/#{account.username}/#{box.name}/versions"
|
187
|
-
end
|
188
|
-
end
|
189
|
-
|
190
|
-
# @param [String] - username
|
191
|
-
# @param [String] - box_name
|
192
|
-
# @param [String] - version_number
|
193
|
-
# @return [String]
|
194
|
-
def version_path(username = nil, box_name = nil, version_number = nil)
|
195
|
-
if username && box_name && version_number
|
196
|
-
"/box/#{username}/#{box_name}/version/#{version_number}"
|
197
|
-
else
|
198
|
-
"/box/#{account.username}/#{box.name}/version/#{number}"
|
199
|
-
end
|
200
|
-
end
|
201
|
-
end
|
2
|
+
VERSION = Gem::Version.new(File.read(File.expand_path("../../../version.txt", __FILE__)))
|
202
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:
|
4
|
+
version: 3.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- HashiCorp
|
@@ -9,64 +9,64 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2021-02-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
15
|
+
name: excon
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
18
|
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version:
|
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:
|
27
|
+
version: '0.73'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
|
-
name:
|
29
|
+
name: log4r
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
32
|
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
35
|
-
type: :
|
34
|
+
version: 1.1.10
|
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:
|
41
|
+
version: 1.1.10
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
|
-
name:
|
43
|
+
name: rake
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
46
|
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: '3
|
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: '3
|
55
|
+
version: '12.3'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
|
-
name:
|
57
|
+
name: rspec
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
60
|
- - "~>"
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: 0
|
62
|
+
version: '3.0'
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
67
|
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: 0
|
69
|
+
version: '3.0'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: webmock
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
@@ -89,24 +89,31 @@ extra_rdoc_files: []
|
|
89
89
|
files:
|
90
90
|
- LICENSE
|
91
91
|
- README.md
|
92
|
-
- bin/vagrant_cloud
|
93
92
|
- lib/vagrant_cloud.rb
|
94
93
|
- lib/vagrant_cloud/account.rb
|
95
94
|
- lib/vagrant_cloud/box.rb
|
95
|
+
- lib/vagrant_cloud/box/provider.rb
|
96
|
+
- lib/vagrant_cloud/box/version.rb
|
96
97
|
- lib/vagrant_cloud/client.rb
|
97
|
-
- lib/vagrant_cloud/
|
98
|
-
- lib/vagrant_cloud/
|
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
|
99
110
|
- lib/vagrant_cloud/search.rb
|
100
111
|
- lib/vagrant_cloud/version.rb
|
101
112
|
homepage: https://github.com/hashicorp/vagrant_cloud
|
102
113
|
licenses:
|
103
114
|
- MIT
|
104
115
|
metadata: {}
|
105
|
-
post_install_message:
|
106
|
-
NOTICE: As of the 2.0.0 release, the vagrant_cloud gem provides library functionality
|
107
|
-
and no longer includes a command line client. For a command line client,
|
108
|
-
use the `vagrant cloud` subcommand from Vagrant. Vagrant can be downloaded
|
109
|
-
from: https://www.vagrantup.com/downloads.html
|
116
|
+
post_install_message:
|
110
117
|
rdoc_options: []
|
111
118
|
require_paths:
|
112
119
|
- lib
|
@@ -121,8 +128,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
121
128
|
- !ruby/object:Gem::Version
|
122
129
|
version: '0'
|
123
130
|
requirements: []
|
124
|
-
|
125
|
-
rubygems_version: 2.5.2.1
|
131
|
+
rubygems_version: 3.2.3
|
126
132
|
signing_key:
|
127
133
|
specification_version: 4
|
128
134
|
summary: Vagrant Cloud API Library
|
data/bin/vagrant_cloud
DELETED
@@ -1,6 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
raise 'As of the 2.0.0 release, the vagrant_cloud gem provides library' \
|
4
|
-
' functionality and no longer includes a command line client. For a' \
|
5
|
-
' command line client, use the `vagrant cloud` subcommand from Vagrant.' \
|
6
|
-
' Vagrant can be downloaded from: https://www.vagrantup.com/downloads.html'
|
data/lib/vagrant_cloud/errors.rb
DELETED
@@ -1,35 +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
|
-
message = msg
|
8
|
-
|
9
|
-
begin
|
10
|
-
errors = JSON.parse(http_body)
|
11
|
-
if errors.is_a?(Hash)
|
12
|
-
vagrant_cloud_msg = errors['errors']
|
13
|
-
if vagrant_cloud_msg.is_a?(Array)
|
14
|
-
message = msg + ' - ' + vagrant_cloud_msg.map(&:to_s).join(', ').to_s
|
15
|
-
elsif !vagrant_cloud_msg.to_s.empty?
|
16
|
-
message = msg + ' - ' + vagrant_cloud_msg.to_s
|
17
|
-
end
|
18
|
-
end
|
19
|
-
rescue JSON::ParserError => err
|
20
|
-
vagrant_cloud_msg = err.message
|
21
|
-
end
|
22
|
-
|
23
|
-
@error_arr = vagrant_cloud_msg
|
24
|
-
@error_code = http_code.to_i
|
25
|
-
super(message)
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
class InvalidVersion < StandardError
|
30
|
-
def initialize(version_number)
|
31
|
-
message = 'Invalid version given: ' + version_number
|
32
|
-
super(message)
|
33
|
-
end
|
34
|
-
end
|
35
|
-
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
|