netvbox 0.0.4 → 0.0.5
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.
- data/bin/netvbox +47 -33
- data/lib/netvbox/version.rb +1 -1
- data/lib/netvbox/wizard_delegator.rb +63 -0
- data/netvbox.gemspec +3 -2
- metadata +16 -4
data/bin/netvbox
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
require 'netvbox/vm_set_config'
|
|
4
4
|
require 'netvbox/vm_set_manager'
|
|
5
5
|
require 'netvbox/printing_delegator'
|
|
6
|
+
require 'netvbox/wizard_delegator'
|
|
6
7
|
require 'netvbox/version'
|
|
7
8
|
|
|
8
9
|
NETVBOX_HOME = "#{ENV['HOME']}/.netvbox"
|
|
@@ -38,6 +39,9 @@ def print_help
|
|
|
38
39
|
puts ' uses the default vm set'
|
|
39
40
|
puts ' useset <set name>'
|
|
40
41
|
puts ' uses the vm set with the specified name'
|
|
42
|
+
puts
|
|
43
|
+
puts '* Tip: You will be prompted for input if you leave out sub-command'
|
|
44
|
+
puts ' arguments (e.g. netvbox add)'
|
|
41
45
|
end
|
|
42
46
|
|
|
43
47
|
def expect_args(num_expected_args)
|
|
@@ -53,40 +57,50 @@ def process_args
|
|
|
53
57
|
command = ARGV[0]
|
|
54
58
|
vm_set_manager = NetVbox::VmSetManager.new(NETVBOX_HOME)
|
|
55
59
|
vm_set = vm_set_manager.current_set
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
60
|
+
printing_delegator = NetVbox::PrintingDelegator.new(vm_set_manager, vm_set)
|
|
61
|
+
wizard_delegator = NetVbox::WizardDelegator.new(printing_delegator)
|
|
62
|
+
begin
|
|
63
|
+
case command
|
|
64
|
+
when 'add'
|
|
65
|
+
return wizard_delegator.add_vm if ARGV.length == 1
|
|
66
|
+
expect_args(6) do
|
|
67
|
+
hostname, username, password, vm_name, snapshot_name = ARGV[1..5]
|
|
68
|
+
printing_delegator.add_vm(hostname, username, password, vm_name, snapshot_name)
|
|
69
|
+
end
|
|
70
|
+
when 'list'
|
|
71
|
+
printing_delegator.list_vms
|
|
72
|
+
when 'load'
|
|
73
|
+
printing_delegator.load_snapshots
|
|
74
|
+
when 'poweroff'
|
|
75
|
+
printing_delegator.poweroff_all
|
|
76
|
+
when 'remove'
|
|
77
|
+
return wizard_delegator.remove_vm if ARGV.length == 1
|
|
78
|
+
expect_args(5) do
|
|
79
|
+
hostname, username, vm_name, snapshot_name = ARGV[1..4]
|
|
80
|
+
printing_delegator.remove_vm(hostname, username, vm_name, snapshot_name)
|
|
81
|
+
end
|
|
82
|
+
when 'status'
|
|
83
|
+
printing_delegator.print_status
|
|
84
|
+
when 'createset'
|
|
85
|
+
return wizard_delegator.create_set if ARGV.length == 1
|
|
86
|
+
expect_args(2) {printing_delegator.create_set ARGV[1]}
|
|
87
|
+
when 'currentset'
|
|
88
|
+
printing_delegator.print_current_set
|
|
89
|
+
when 'listsets'
|
|
90
|
+
printing_delegator.list_sets
|
|
91
|
+
when 'removeset'
|
|
92
|
+
return wizard_delegator.remove_set if ARGV.length == 1
|
|
93
|
+
expect_args(2) {printing_delegator.remove_set ARGV[1]}
|
|
94
|
+
when 'usedefaultset'
|
|
95
|
+
printing_delegator.use_default_set
|
|
96
|
+
when 'useset'
|
|
97
|
+
return wizard_delegator.use_set if ARGV.length == 1
|
|
98
|
+
expect_args(2) {printing_delegator.use_set ARGV[1]}
|
|
99
|
+
else
|
|
100
|
+
puts "Unknown command: #{command}. See help."
|
|
73
101
|
end
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
when 'createset'
|
|
77
|
-
expect_args(2) {delegator.create_set ARGV[1]}
|
|
78
|
-
when 'currentset'
|
|
79
|
-
delegator.print_current_set
|
|
80
|
-
when 'listsets'
|
|
81
|
-
delegator.list_sets
|
|
82
|
-
when 'removeset'
|
|
83
|
-
expect_args(2) {delegator.remove_set ARGV[1]}
|
|
84
|
-
when 'usedefaultset'
|
|
85
|
-
delegator.use_default_set
|
|
86
|
-
when 'useset'
|
|
87
|
-
expect_args(2) {delegator.use_set ARGV[1]}
|
|
88
|
-
else
|
|
89
|
-
puts "Unknown command: #{command}. See help."
|
|
102
|
+
rescue Interrupt
|
|
103
|
+
puts
|
|
90
104
|
end
|
|
91
105
|
end
|
|
92
106
|
|
data/lib/netvbox/version.rb
CHANGED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
require 'netvbox/printing_delegator'
|
|
2
|
+
require 'highline/import'
|
|
3
|
+
|
|
4
|
+
module NetVbox
|
|
5
|
+
class WizardDelegator
|
|
6
|
+
def initialize(printing_delegator)
|
|
7
|
+
@printing_delegator = printing_delegator
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def add_vm
|
|
11
|
+
hostname = get_value 'Enter hostname of VM host: '
|
|
12
|
+
username = get_value 'Enter ssh username: '
|
|
13
|
+
pw = get_password 'Enter ssh password: '
|
|
14
|
+
vm_name = get_value 'Enter VM name: '
|
|
15
|
+
snapshot_name = get_value 'Enter snapshot name: '
|
|
16
|
+
@printing_delegator.add_vm(hostname, username, pw, vm_name, snapshot_name)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def remove_vm
|
|
20
|
+
hostname = get_value 'Enter hostname of VM host: '
|
|
21
|
+
username = get_value 'Enter ssh username: '
|
|
22
|
+
vm_name = get_value 'Enter VM name: '
|
|
23
|
+
snapshot_name = get_value 'Enter snapshot name: '
|
|
24
|
+
@printing_delegator.remove_vm(hostname, username, vm_name, snapshot_name)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def create_set
|
|
28
|
+
set_name = get_value 'Enter set name: '
|
|
29
|
+
@printing_delegator.create_set set_name
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def remove_set
|
|
33
|
+
set_name = get_value 'Enter set name: '
|
|
34
|
+
@printing_delegator.remove_set set_name
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def use_set
|
|
38
|
+
set_name = get_value 'Enter set name: '
|
|
39
|
+
@printing_delegator.use_set set_name
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
private
|
|
43
|
+
|
|
44
|
+
def get_value(prompt)
|
|
45
|
+
input = ''
|
|
46
|
+
while input.empty?
|
|
47
|
+
print prompt
|
|
48
|
+
input = STDIN.gets.chomp
|
|
49
|
+
puts 'Cannot be blank' if input.empty?
|
|
50
|
+
end
|
|
51
|
+
input
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def get_password(prompt)
|
|
55
|
+
pw = ''
|
|
56
|
+
while pw.empty?
|
|
57
|
+
pw = ask(prompt) {|q| q.echo = false}
|
|
58
|
+
puts 'Cannot be blank' if pw.empty?
|
|
59
|
+
end
|
|
60
|
+
pw
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
data/netvbox.gemspec
CHANGED
|
@@ -12,8 +12,9 @@ Gem::Specification.new do |s|
|
|
|
12
12
|
|
|
13
13
|
s.files = `git ls-files`.split("\n")
|
|
14
14
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
|
15
|
-
s.executables = `git ls-files -- bin/*`.split("\n").map{
|
|
15
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{|f| File.basename(f)}
|
|
16
16
|
s.require_paths = ["lib"]
|
|
17
17
|
|
|
18
|
-
s.add_dependency
|
|
18
|
+
s.add_dependency 'net-ssh'
|
|
19
|
+
s.add_dependency 'highline'
|
|
19
20
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: netvbox
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.5
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,11 +9,11 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2011-12-
|
|
12
|
+
date: 2011-12-04 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: net-ssh
|
|
16
|
-
requirement: &
|
|
16
|
+
requirement: &8515500 !ruby/object:Gem::Requirement
|
|
17
17
|
none: false
|
|
18
18
|
requirements:
|
|
19
19
|
- - ! '>='
|
|
@@ -21,7 +21,18 @@ dependencies:
|
|
|
21
21
|
version: '0'
|
|
22
22
|
type: :runtime
|
|
23
23
|
prerelease: false
|
|
24
|
-
version_requirements: *
|
|
24
|
+
version_requirements: *8515500
|
|
25
|
+
- !ruby/object:Gem::Dependency
|
|
26
|
+
name: highline
|
|
27
|
+
requirement: &8529760 !ruby/object:Gem::Requirement
|
|
28
|
+
none: false
|
|
29
|
+
requirements:
|
|
30
|
+
- - ! '>='
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '0'
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: *8529760
|
|
25
36
|
description:
|
|
26
37
|
email:
|
|
27
38
|
- hsu.dennis@gmail.com
|
|
@@ -42,6 +53,7 @@ files:
|
|
|
42
53
|
- lib/netvbox/vm_set.rb
|
|
43
54
|
- lib/netvbox/vm_set_config.rb
|
|
44
55
|
- lib/netvbox/vm_set_manager.rb
|
|
56
|
+
- lib/netvbox/wizard_delegator.rb
|
|
45
57
|
- netvbox.gemspec
|
|
46
58
|
homepage: https://github.com/dhsu/netvbox
|
|
47
59
|
licenses: []
|