cloudstack-cli 1.4.2 → 1.5.0

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: e7f07e2763e1098aebc86ef957def19af52e6439
4
- data.tar.gz: c7351b039d23832d297e18f4b3fad768f5dcf7f5
3
+ metadata.gz: 9333cd14a9e146a183cc06b9c08cdec221ab090c
4
+ data.tar.gz: ff4ad2339fe3ad8f8a05bf105e0a5b63ee875404
5
5
  SHA512:
6
- metadata.gz: a043f85b78500aafed6ae9fed0e38629f18aa0a564ab832fe91f907576da8bcf91bfa8bb4aa47cf5c1399bf8c8b14af70537d03eb1d434693b308ae727275783
7
- data.tar.gz: f100042e728db5621e03dd6defd85fa7e4e80f8875f0d2daaddd44874dce6f85c5f9a69bea09fe364b066ff3af4818ca131da047029e744c47c4b950ad739e32
6
+ metadata.gz: b71a5b0fc8600a26c0c1e52ddbdc8e93dd941227e837f8e3edabefed51a6fb52270449c7babe5e01a67dbff570908b4af9cda2eea2d43770b7d40a21743d366e
7
+ data.tar.gz: 840fe9f4f5fbfeb03030b73432ec632f8a81b0fd9f34b5a95ad5db25642c9b13b54cd401612445310e68649f9947bed91127487ecf493772263af8fa3e4a9c0b
data/Gemfile.lock CHANGED
@@ -6,14 +6,14 @@ PATH
6
6
  PATH
7
7
  remote: .
8
8
  specs:
9
- cloudstack-cli (1.4.2)
9
+ cloudstack-cli (1.5.0)
10
10
  cloudstack_client (~> 1.3)
11
11
  thor (~> 0.19)
12
12
 
13
13
  GEM
14
14
  remote: https://rubygems.org/
15
15
  specs:
16
- rake (11.1.1)
16
+ rake (11.1.2)
17
17
  thor (0.19.1)
18
18
 
19
19
  PLATFORMS
@@ -16,7 +16,7 @@ Gem::Specification.new do |gem|
16
16
 
17
17
  gem.required_ruby_version = '>= 1.9.3'
18
18
  gem.files = `git ls-files`.split($/)
19
- gem.executables = %w(cs cloudstack-cli)
19
+ gem.executables = %w(cloudstack-cli)
20
20
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
21
21
  gem.require_paths = %w(lib)
22
22
  gem.rdoc_options = %w[--line-numbers --inline-source]
File without changes
@@ -35,7 +35,7 @@ module CloudstackCli
35
35
  def completion
36
36
  shell_script = File.join(
37
37
  File.dirname(__FILE__), '..', '..',
38
- 'completions', "cs.#{options[:shell]}"
38
+ 'completions', "cloudstack-cli.#{options[:shell]}"
39
39
  )
40
40
  unless File.file? shell_script
41
41
  say "Specified cloudstack-cli shell auto-completion rules for #{options[:shell]} not found.", :red
@@ -2,8 +2,8 @@ class SshKeyPair < CloudstackCli::Base
2
2
 
3
3
  desc "list", 'list ssh key pairs'
4
4
  option :listall, default: true
5
- option :account
6
- option :project
5
+ option :account, desc: "name of the account"
6
+ option :project, desc: "name of the project"
7
7
  option :format, default: "table",
8
8
  enum: %w(table json yaml)
9
9
  def list
@@ -29,8 +29,8 @@ class SshKeyPair < CloudstackCli::Base
29
29
  end
30
30
 
31
31
  desc 'create NAME', 'create ssh key pair'
32
- option :account
33
- option :project
32
+ option :account, desc: "name of the account"
33
+ option :project, desc: "name of the project"
34
34
  def create(name)
35
35
  resolve_account
36
36
  resolve_project
@@ -43,15 +43,16 @@ class SshKeyPair < CloudstackCli::Base
43
43
  end
44
44
 
45
45
  desc 'register NAME', 'register ssh key pair'
46
- option :account
47
- option :project
48
- option :public_key, required: true, desc: "path to public_key file"
46
+ option :account, desc: "name of the account"
47
+ option :project, desc: "name of the project"
48
+ option :public_key, aliases: %w(-k), required: true, desc: "path to public_key file"
49
49
  def register(name)
50
50
  resolve_account
51
51
  resolve_project
52
52
  options[:name] = name
53
53
  if File.exist?(options[:public_key])
54
54
  public_key = IO.read(options[:public_key])
55
+ options[:public_key] = public_key
55
56
  else
56
57
  say("Can't open public key #{options[:public_key]}", :red)
57
58
  exit 1
@@ -59,16 +60,16 @@ class SshKeyPair < CloudstackCli::Base
59
60
  pair = client.register_ssh_key_pair(options)
60
61
  say "Name : #{pair['name']}"
61
62
  say "Fingerprint : #{pair['fingerprint']}"
62
- say "Privatekey:"
63
- say pair['privatekey']
63
+ say "Privatekey : #{pair['privatekey']}"
64
+ puts
64
65
  rescue => e
65
66
  say "Failed to register key: #{e.message}", :red
66
67
  exit 1
67
68
  end
68
69
 
69
70
  desc 'delete NAME', 'delete ssh key pair'
70
- option :account
71
- option :project
71
+ option :account, desc: "name of the account"
72
+ option :project, desc: "name of the project"
72
73
  option :force, aliases: '-f', desc: "delete without asking"
73
74
  def delete(name)
74
75
  resolve_account
@@ -84,4 +85,28 @@ class SshKeyPair < CloudstackCli::Base
84
85
  end
85
86
  end
86
87
 
88
+ desc 'reset_vm_keys', 'resets the SSH Key for virtual machine (the virtual machine must be in a "Stopped" state)'
89
+ option :keypair, aliases: %w(-k), desc: "name of keypair", required: true
90
+ option :virtual_machine, aliases: %w(-m), desc: "name of virtual machine", required: true
91
+ option :account, desc: "name of the account"
92
+ option :project, desc: "name of the project"
93
+ def reset_vm_keys
94
+ resolve_account
95
+ resolve_project
96
+
97
+ unless virtual_machine = client.list_virtual_machines({name: options[:virtual_machine], list_all: true}.merge options).first
98
+ puts "No virtual machine found."
99
+ else
100
+ unless virtual_machine['state'].downcase == "stopped"
101
+ say "ERROR: Virtual machine must be in stopped state.", :red
102
+ exit 1
103
+ end
104
+ unless options[:force] || yes?("Reset ssh key for VM #{options[:virtual_machine]}? (y/N)", :yellow)
105
+ exit
106
+ end
107
+ client.reset_ssh_key_for_virtual_machine(options.merge(id: virtual_machine['id']))
108
+ say "OK", :green
109
+ end
110
+ end
111
+
87
112
  end
@@ -1,3 +1,3 @@
1
1
  module CloudstackCli
2
- VERSION = "1.4.2"
2
+ VERSION = "1.5.0"
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.4.2
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nik Wolfgramm
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-21 00:00:00.000000000 Z
11
+ date: 2016-04-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -56,7 +56,6 @@ description: cloudstack-cli is a CloudStack API command line client written in R
56
56
  email:
57
57
  - nik.wolfgramm@gmail.com
58
58
  executables:
59
- - cs
60
59
  - cloudstack-cli
61
60
  extensions: []
62
61
  extra_rdoc_files: []
@@ -68,9 +67,8 @@ files:
68
67
  - README.md
69
68
  - Rakefile
70
69
  - bin/cloudstack-cli
71
- - bin/cs
72
70
  - cloudstack-cli.gemspec
73
- - completions/cs.bash
71
+ - completions/cloudstack-cli.bash
74
72
  - lib/cloudstack-cli.rb
75
73
  - lib/cloudstack-cli/base.rb
76
74
  - lib/cloudstack-cli/cli.rb
@@ -134,7 +132,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
132
  version: '0'
135
133
  requirements: []
136
134
  rubyforge_project:
137
- rubygems_version: 2.4.5
135
+ rubygems_version: 2.4.5.1
138
136
  signing_key:
139
137
  specification_version: 4
140
138
  summary: cloudstack-cli CloudStack API client
data/bin/cs DELETED
@@ -1,5 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'cloudstack-cli'
4
-
5
- CloudstackCli::Cli.start(ARGV)