vixen 0.0.10 → 0.0.11

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/README.md CHANGED
@@ -5,6 +5,23 @@ Getting Vixen
5
5
  $ gem install vixen
6
6
  ```
7
7
 
8
+ Running Vixen
9
+ =============
10
+
11
+ Currently, the `vixen` executable only lists the currently running virtual
12
+ machines. Much work on the executable remains.
13
+
14
+ ```shell
15
+ [~]$ vixen
16
+ [00:00:00] Connecting to local host
17
+ [00:00:00] centos-5.8-pe-2.5.3-vmware.vmx
18
+ [00:00:01] CentOS 5.6 64-bit.vmx
19
+ [00:00:01] Found 2 running virtual machines
20
+ ```
21
+
22
+ Library Usage
23
+ =============
24
+
8
25
  Capabilities
9
26
  ------------
10
27
 
@@ -23,11 +40,6 @@ versions of the Windows VMware VIX SDK. These will need to be placed into
23
40
  will use [Facter](https://github.com/puppetlabs/facter) to determine which
24
41
  operating system and architecture version of the library to load.
25
42
 
26
-
27
- Using Vixen
28
- ===========
29
-
30
-
31
43
  Connecting to a host
32
44
  --------------------
33
45
 
@@ -1,44 +1,19 @@
1
1
  require 'vixen'
2
2
 
3
3
  class Vixen::CommandLine
4
- attr_reader :start
5
-
6
- def initialize
7
- @start = Time.now
8
- end
9
-
10
- def elapsed_time
11
- "[%s]" % (Time.at(Time.now - start).utc.strftime '%T')
12
- end
13
-
14
4
  def execute
15
- new_line_after { print "Connecting to local host" }
16
- host = Vixen.local_connect
17
-
18
- vms = host.paths_of_running_vms do |job_handle, event_type, more_event_info, client_data|
19
- print " <searching> "
20
- if event_type == Vixen::Constants::VixEventType[:find_item]
21
- path = Vixen::Bridge.get_string_property more_event_info, Vixen::Constants::VixPropertyId[:found_item_location]
22
- if path
23
- new_line_after { print File.basename path }
24
- end
25
- end
26
- end
5
+ command = ARGV.shift
6
+ command ||= 'status'
27
7
 
28
- new_line_after { print "Found #{vms.size} running virtual machines" }
29
- end
8
+ begin
9
+ require "vixen/command_line/#{command}"
30
10
 
31
- def new_line_after
32
- val = yield if block_given?
33
- puts
34
- val
35
- end
11
+ klass = self.class.const_get(command.split('_').map {|s| s.capitalize }.join)
12
+ raise "Couldn't find #{command}" unless klass
36
13
 
37
- def print(message, *args)
38
- timed_message = "\r#{elapsed_time} " + message
39
- $stdout.print timed_message, args
40
- $stdout.flush
14
+ klass.new.execute
15
+ rescue LoadError
16
+ puts "Unknown command: #{command}"
17
+ end
41
18
  end
42
-
43
-
44
19
  end
@@ -0,0 +1,24 @@
1
+ class Vixen::CommandLine::Base
2
+ attr_reader :start
3
+
4
+ def initialize
5
+ @start = Time.now
6
+ end
7
+
8
+ def elapsed_time
9
+ "[%s]" % (Time.at(Time.now - start).utc.strftime '%T')
10
+ end
11
+
12
+ def new_line_after
13
+ val = yield if block_given?
14
+ puts
15
+ val
16
+ end
17
+
18
+ def print(message, *args)
19
+ timed_message = "\r \r#{elapsed_time} " + message
20
+ $stdout.print timed_message, args
21
+ $stdout.flush
22
+ end
23
+
24
+ end
@@ -0,0 +1,7 @@
1
+ require 'vixen/command_line/base'
2
+
3
+ class Vixen::CommandLine::Halt < Vixen::CommandLine::Base
4
+ def execute
5
+ puts "Halt is not yet implemented"
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ require 'vixen/command_line/base'
2
+
3
+ class Vixen::CommandLine::Resume < Vixen::CommandLine::Base
4
+ def execute
5
+ puts "Resume is not yet implemented"
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ require 'vixen/command_line/base'
2
+
3
+ class Vixen::CommandLine::Snapshot < Vixen::CommandLine::Base
4
+ def execute
5
+ puts "Snapshot is not yet implemented"
6
+ end
7
+ end
@@ -0,0 +1,20 @@
1
+ require 'vixen/command_line/base'
2
+
3
+ class Vixen::CommandLine::Status < Vixen::CommandLine::Base
4
+ def execute
5
+ new_line_after { print "Connecting to local host" }
6
+ host = Vixen.local_connect
7
+
8
+ vms = host.paths_of_running_vms do |job_handle, event_type, more_event_info, client_data|
9
+ print " <searching> "
10
+ if event_type == Vixen::Constants::VixEventType[:find_item]
11
+ path = Vixen::Bridge.get_string_property more_event_info, Vixen::Constants::VixPropertyId[:found_item_location]
12
+ if path
13
+ new_line_after { print File.basename path }
14
+ end
15
+ end
16
+ end
17
+
18
+ new_line_after { print "Found #{vms.size} running virtual machines" }
19
+ end
20
+ end
@@ -0,0 +1,7 @@
1
+ require 'vixen/command_line/base'
2
+
3
+ class Vixen::CommandLine::Suspend < Vixen::CommandLine::Base
4
+ def execute
5
+ puts "Suspend is not yet implemented"
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ require 'vixen/command_line/base'
2
+
3
+ class Vixen::CommandLine::Up < Vixen::CommandLine::Base
4
+ def execute
5
+ puts "Up is not yet implemented"
6
+ end
7
+ end
data/vixen.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'vixen'
3
- s.version = '0.0.10'
3
+ s.version = '0.0.11'
4
4
  s.date = '2012-11-20'
5
5
 
6
6
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vixen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.0.11
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -63,6 +63,13 @@ files:
63
63
  - lib/vixen.rb
64
64
  - lib/vixen/bridge.rb
65
65
  - lib/vixen/command_line.rb
66
+ - lib/vixen/command_line/base.rb
67
+ - lib/vixen/command_line/halt.rb
68
+ - lib/vixen/command_line/resume.rb
69
+ - lib/vixen/command_line/snapshot.rb
70
+ - lib/vixen/command_line/status.rb
71
+ - lib/vixen/command_line/suspend.rb
72
+ - lib/vixen/command_line/up.rb
66
73
  - lib/vixen/constants.rb
67
74
  - lib/vixen/model/base.rb
68
75
  - lib/vixen/model/host.rb