cloudstack-cli 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c34b7f237ea0250c6de7a9a10f22a0612202eeb0
4
- data.tar.gz: c9e88bd0af1e99fa4f10163a028ca93bf9fab549
3
+ metadata.gz: 7f19da3cf7b9d2686ef53fd9b67d4091c1831347
4
+ data.tar.gz: 2a925bd77fb12aae8a15fcc36eadae05b7069091
5
5
  SHA512:
6
- metadata.gz: ddd33548d44e425bde77372aafd0798387879640174427b99801873d50ef05ca01676bb92ebaf29f071ff957011991b388724e3418cb95fcf8a825be24d0cc69
7
- data.tar.gz: af576f5d1083f9586da2a72c906662a20b1be6f01b6c5e708750596de0681a0f2c6f8cf39f0a5d6d7674983359a70f4e71359df22818ede0f6d234a1debbd7df
6
+ metadata.gz: be41e2b1289dc5f177a1ada9d94de0a231156e1398b25aa7a612eb6e9dbc61628dba8d7808843efb47c1d8b2a5ff4ae534e1768d515d7d91d64712dffd57ce89
7
+ data.tar.gz: 92258347ea84d3030b37129c729a6c2bc3a259739ea37d373b836876b4b627f48ddd85c2f4162c67187104812aefba62e7e4edb6eb178b3f3e17195454f6fbed
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cloudstack-cli (1.0.0)
4
+ cloudstack-cli (1.0.2)
5
5
  cloudstack_client (~> 1.0.3)
6
6
  thor (~> 0.19.1)
7
7
 
@@ -18,6 +18,43 @@ module CloudstackCli
18
18
  2 => "error"
19
19
  }
20
20
 
21
+ def watch_jobs(jobs)
22
+ chars = %w(| / - \\)
23
+ call = 0
24
+ opts = {t_start: Time.now}
25
+ jobs = update_job_status(jobs)
26
+ while jobs.select{|job| job[:status].to_i < 1 }.size > 0 do
27
+ if call.modulo(40) == 0
28
+ t = Thread.new { jobs = update_job_status(jobs) }
29
+ while t.alive?
30
+ chars = print_job_status(jobs, chars,
31
+ call == 0 ? opts.merge(no_clear: true) : opts
32
+ )
33
+ call += 1
34
+ end
35
+ t.join
36
+ else
37
+ chars = print_job_status(jobs, chars,
38
+ call == 0 ? opts.merge(no_clear: true) : opts
39
+ )
40
+ call += 1
41
+ end
42
+ end
43
+ print_job_status(jobs, chars,
44
+ call == 0 ? opts.merge(no_clear: true) : opts
45
+ )
46
+ end
47
+
48
+ def update_job_status(jobs)
49
+ jobs.each do |job|
50
+ job[:status] = 0 unless job[:status]
51
+ if job[:status] == 0
52
+ job[:status] = client.query_async_job_result(job_id: job[:id])['jobstatus']
53
+ end
54
+ end
55
+ jobs
56
+ end
57
+
21
58
  def run_background_jobs(jobs, command)
22
59
  view_thread = Thread.new do
23
60
  chars = %w(| / - \\)
@@ -144,7 +181,7 @@ module CloudstackCli
144
181
  else
145
182
  ip_addr = frontendip ||= client.associate_ip_address(
146
183
  network_id: server["nic"].first["networkid"]
147
- )
184
+ )["ipaddress"]
148
185
  end
149
186
  port = pf_rule.split(":")[1]
150
187
  args = {
@@ -103,7 +103,7 @@ module CloudstackCli
103
103
  name: options[:iso],
104
104
  project_id: options[:project_id]
105
105
  ).first
106
- say "Error: Iso '#{args[:iso]}' is invalid.", :red
106
+ say "Error: Iso '#{options[:iso]}' is invalid.", :red
107
107
  exit 1
108
108
  end
109
109
  unless options[:diskoffering_id]
@@ -1,3 +1,3 @@
1
1
  module CloudstackCli
2
- VERSION = "1.0.1"
2
+ VERSION = "1.0.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudstack-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nik Wolfgramm
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-10 00:00:00.000000000 Z
11
+ date: 2015-07-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rdoc