vagrant_cloud 2.0.1 → 2.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.
- checksums.yaml +4 -4
- data/bin/vagrant_cloud +4 -3
- data/lib/vagrant_cloud/account.rb +6 -1
- data/lib/vagrant_cloud/box.rb +7 -2
- data/lib/vagrant_cloud/errors.rb +19 -9
- data/lib/vagrant_cloud/version.rb +14 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dce5d7ff120d58a2f5737a09ae6c541638aaa441
|
4
|
+
data.tar.gz: 4ec95bf75f996ca9dd11f6c53583af591511034f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8acc641a56768c54337fff4ff83b27dbf6f613f18238f8dad7a07d27733cb0c86beadc491bd5ad6af17ecf6acd87d268eaa7fe6483b1265ea6e138f98c61ee73
|
7
|
+
data.tar.gz: 2e913f1a82a52921483da97c9bf8d63314f5033e997e1923ea9a820bfa0b00f46fee135c509539bf07846a4b133dbbeda8b60b1e44bf168b5038e9f916da5dd8
|
data/bin/vagrant_cloud
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
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'
|
@@ -104,10 +104,15 @@ module VagrantCloud
|
|
104
104
|
def ensure_box(name, *args)
|
105
105
|
params = box_params(*args)
|
106
106
|
|
107
|
+
# try to read the box data
|
107
108
|
begin
|
108
109
|
box = get_box(name)
|
109
110
|
box.data
|
110
|
-
rescue
|
111
|
+
rescue VagrantCloud::ClientError => err
|
112
|
+
# Check if it's a 404 error. If so, then create
|
113
|
+
# the missing box
|
114
|
+
raise if err.error_code != 404
|
115
|
+
|
111
116
|
box = create_box(name, params)
|
112
117
|
# If we've just created the box, we're done.
|
113
118
|
return box
|
data/lib/vagrant_cloud/box.rb
CHANGED
@@ -33,10 +33,15 @@ module VagrantCloud
|
|
33
33
|
# @param [Hash] args
|
34
34
|
# @param [String] org - organization of the box to read
|
35
35
|
# @param [String] box_name - name of the box to read
|
36
|
-
# @return [Hash]
|
36
|
+
# @return [Hash] @data
|
37
37
|
def update(args = {})
|
38
38
|
# hash arguments kept for backwards compatibility
|
39
|
-
|
39
|
+
return @data if args.empty?
|
40
|
+
|
41
|
+
org = args[:organization] || account.username
|
42
|
+
box_name = args[:name] || @name
|
43
|
+
|
44
|
+
data = @client.request('put', box_path(org, box_name), box: args)
|
40
45
|
|
41
46
|
# Update was called on *this* object, so update
|
42
47
|
# objects data locally
|
data/lib/vagrant_cloud/errors.rb
CHANGED
@@ -4,21 +4,31 @@ module VagrantCloud
|
|
4
4
|
attr_accessor :error_code
|
5
5
|
|
6
6
|
def initialize(msg, http_body, http_code)
|
7
|
+
message = msg
|
8
|
+
|
7
9
|
begin
|
8
10
|
errors = JSON.parse(http_body)
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
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
|
15
18
|
end
|
16
|
-
rescue JSON::ParserError
|
17
|
-
|
19
|
+
rescue JSON::ParserError => err
|
20
|
+
vagrant_cloud_msg = err.message
|
18
21
|
end
|
19
22
|
|
20
23
|
@error_arr = vagrant_cloud_msg
|
21
|
-
@error_code = http_code
|
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
|
22
32
|
super(message)
|
23
33
|
end
|
24
34
|
end
|
@@ -67,6 +67,13 @@ module VagrantCloud
|
|
67
67
|
# @param [String] version_number
|
68
68
|
# @param [String] description
|
69
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
|
+
|
70
77
|
update_data = !(username && box_name && version_number)
|
71
78
|
description ||= @description
|
72
79
|
version = { description: description }
|
@@ -116,6 +123,13 @@ module VagrantCloud
|
|
116
123
|
number ||= @number
|
117
124
|
description ||= @description
|
118
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
|
+
|
119
133
|
params = { version: number, description: description }
|
120
134
|
data = @client.request('post', create_version_path(org, box_name).to_s, version: params)
|
121
135
|
|
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.
|
4
|
+
version: 2.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- HashiCorp
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2019-01-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rest-client
|