vmfloaty 0.2.3 → 0.2.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 32aeb5f5ad140e3f722d44e74fd408d4543544b6
4
- data.tar.gz: 5eb1d4eefe202458d0992f5b76a16950665da699
3
+ metadata.gz: 1abf340baac66b75675a4ba1f77baa8b1d412a58
4
+ data.tar.gz: 906172ee41262e42f0166cf5ba8721bf97a170bd
5
5
  SHA512:
6
- metadata.gz: b55dc19efe45545e1b3c9f30782af9392d7df29ffd1b329c7b604c6f46558cbdf444d9d42f699010ac404c1bd32588b0a3cad258f70b8e684d6a989a77526c20
7
- data.tar.gz: 3ea84be6897b142f1ac7a6c045f3a322497848c3611867dafe438f9e6f4c35b3c9522361a526132929e9ede36665015b5aa4f2fda7d8c0d58c55e5b02cfd608e
6
+ metadata.gz: 173504ca54fad87fa3e9e42220f465880da532ab053ca5a8d88ac915ecff7d9fdb798407eec02c15102ddd88603da8e9554ee521bc88754f91654a8d15d0f8d2
7
+ data.tar.gz: 237a78285a88cfaef65eceb30b6a1dfc451594d21d82b2537d3e1589cfa1b5e725b6cce1596e9bb6d4686d1891c10f145c5cd8682c332f39ae82cafb0faea159
data/lib/vmfloaty.rb CHANGED
@@ -10,7 +10,7 @@ class Vmfloaty
10
10
  include Commander::Methods
11
11
 
12
12
  def run
13
- program :version, '0.2.3'
13
+ program :version, '0.2.4'
14
14
  program :description, 'A CLI helper tool for Puppet Labs vmpooler to help you stay afloat'
15
15
 
16
16
  config = read_config
@@ -33,7 +33,7 @@ class Vmfloaty
33
33
  os_types = args[0]
34
34
  no_token = options.notoken
35
35
 
36
- unless no_token.nil?
36
+ if no_token
37
37
  response = Pooler.retrieve(verbose, os_types, token, url)
38
38
  puts response
39
39
  return
@@ -91,7 +91,7 @@ class Vmfloaty
91
91
  c.syntax = 'floaty modify [hostname]'
92
92
  c.summary = 'Modify a vms tags and TTL'
93
93
  c.description = ''
94
- c.example 'description', 'command example'
94
+ c.example 'Modifies myhost1 to have a TTL of 12 hours and adds a custom tag', 'floaty modify myhost1 --lifetime 12 --url https://myurl --token mytokenstring --tags \'{"tag":"myvalue"}\''
95
95
  c.option '--verbose', 'Enables verbose output'
96
96
  c.option '--url STRING', String, 'URL of vmpooler'
97
97
  c.option '--token STRING', String, 'Token for vmpooler'
@@ -102,7 +102,7 @@ class Vmfloaty
102
102
  url = options.url ||= config['url']
103
103
  hostname = args[0]
104
104
  lifetime = options.lifetime
105
- tags = JSON.parse(options.tags)
105
+ tags = JSON.parse(options.tags) if options.tags
106
106
  token = options.token || config['token']
107
107
 
108
108
  res_body = Pooler.modify(verbose, url, hostname, token, lifetime, tags)
@@ -116,13 +116,15 @@ class Vmfloaty
116
116
  c.description = ''
117
117
  c.example 'Schedules the deletion of a host or hosts', 'floaty delete myhost1,myhost2 --url http://vmpooler.example.com'
118
118
  c.option '--verbose', 'Enables verbose output'
119
+ c.option '--token STRING', String, 'Token for vmpooler'
119
120
  c.option '--url STRING', String, 'URL of vmpooler'
120
121
  c.action do |args, options|
121
122
  verbose = options.verbose || config['verbose']
122
123
  hosts = args[0]
124
+ token = options.token || config['token']
123
125
  url = options.url ||= config['url']
124
126
 
125
- Pooler.delete(verbose, url, hosts)
127
+ Pooler.delete(verbose, url, hosts, token)
126
128
  end
127
129
  end
128
130
 
data/lib/vmfloaty/http.rb CHANGED
@@ -37,24 +37,4 @@ class Http
37
37
  return conn
38
38
  end
39
39
 
40
- def self.get_conn_with_token(verbose, url, token)
41
- if url.nil?
42
- STDERR.puts "The url you provided was empty"
43
- exit 1
44
- end
45
-
46
- if token.nil?
47
- STDERR.puts "The token you provided was empty"
48
- exit 1
49
- end
50
-
51
- conn = Faraday.new(:url => url, :ssl => {:verify => false}) do |faraday|
52
- faraday.request :url_encoded
53
- faraday.request :token_auth, token
54
- faraday.response :logger if verbose
55
- faraday.adapter Faraday.default_adapter
56
- end
57
-
58
- return conn
59
- end
60
40
  end
@@ -20,11 +20,9 @@ class Pooler
20
20
 
21
21
  def self.retrieve(verbose, os_type, token, url)
22
22
  os = os_type.gsub(',','+')
23
- if token.nil?
24
- conn = Http.get_conn(verbose, url)
25
- else
26
- conn = Http.get_conn_with_token(verbose, url, token)
27
- conn.headers['X-AUTH-TOKEN']
23
+ conn = Http.get_conn(verbose, url)
24
+ if token
25
+ conn.headers['X-AUTH-TOKEN'] = token
28
26
  end
29
27
 
30
28
  response = conn.post "/vm/#{os}"
@@ -34,19 +32,26 @@ class Pooler
34
32
  end
35
33
 
36
34
  def self.modify(verbose, url, hostname, token, lifetime, tags)
37
- modify_body = {'lifetime'=>lifetime, 'tags'=>tags}
38
- conn = Http.get_conn_with_token(verbose, url, token)
39
- conn.headers['X-AUTH-TOKEN']
35
+ modify_body = {}
36
+ if lifetime
37
+ modify_body['lifetime'] = lifetime
38
+ end
39
+ if tags
40
+ modify_body['tags'] = tags
41
+ end
42
+
43
+ conn = Http.get_conn(verbose, url)
44
+ conn.headers['X-AUTH-TOKEN'] = token
40
45
 
41
46
  response = conn.put do |req|
42
47
  req.url "/vm/#{hostname}"
48
+ req.body = modify_body
43
49
  end
44
50
  res_body = JSON.parse(response.body)
45
-
46
51
  res_body
47
52
  end
48
53
 
49
- def self.delete(verbose, url, hostnames)
54
+ def self.delete(verbose, url, hostnames, token)
50
55
  if hostnames.nil?
51
56
  STDERR.puts "You did not provide any hosts to delete"
52
57
  exit 1
@@ -55,11 +60,19 @@ class Pooler
55
60
  hosts = hostnames.split(',')
56
61
  conn = Http.get_conn(verbose, url)
57
62
 
63
+ if token
64
+ conn.headers['X-AUTH-TOKEN'] = token
65
+ end
66
+
58
67
  hosts.each do |host|
59
68
  puts "Scheduling host #{host} for deletion"
60
69
  response = conn.delete "/vm/#{host}"
61
70
  res_body = JSON.parse(response.body)
62
- puts res_body
71
+ if res_body['ok']
72
+ puts "Deletion for vm #{host} successfully scheduled"
73
+ else
74
+ STDERR.puts "There was a problem with your request for vm #{host}"
75
+ end
63
76
  end
64
77
  end
65
78
 
@@ -89,8 +102,8 @@ class Pooler
89
102
  end
90
103
 
91
104
  def self.snapshot(verbose, url, hostname, token)
92
- conn = Http.get_conn_with_token(verbose, url, token)
93
- conn.headers['X-AUTH-TOKEN']
105
+ conn = Http.get_conn(verbose, url)
106
+ conn.headers['X-AUTH-TOKEN'] = token
94
107
 
95
108
  response = conn.post "/vm/#{hostname}/snapshot"
96
109
  res_body = JSON.parse(response.body)
@@ -98,8 +111,8 @@ class Pooler
98
111
  end
99
112
 
100
113
  def self.revert(verbose, url, hostname, token, snapshot_sha)
101
- conn = Http.get_conn_with_token(verbose, url, token)
102
- conn.headers['X-AUTH-TOKEN']
114
+ conn = Http.get_conn(verbose, url)
115
+ conn.headers['X-AUTH-TOKEN'] = token
103
116
 
104
117
  response = conn.post "/vm/#{hostname}/snapshot/#{snapshot}"
105
118
  res_body = JSON.parse(response.body)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vmfloaty
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Cain
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-18 00:00:00.000000000 Z
11
+ date: 2015-09-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: commander