vmserver 0.1.0 → 0.2.0

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.
Files changed (5) hide show
  1. data/README.textile +6 -1
  2. data/VERSION +1 -1
  3. data/lib/vmserver.rb +141 -14
  4. data/vmserver.gemspec +2 -2
  5. metadata +4 -4
data/README.textile CHANGED
@@ -24,8 +24,13 @@ bc. vmserver.start
24
24
 
25
25
  bc. vmserver.mkdir('dir')
26
26
 
27
+ *To create a directory in the guest OS*
28
+
29
+ bc. vmserver.mkdir('c:\test folder\vm server')
30
+
27
31
  *To copy a file from Host OS to Guest OS*
28
32
 
29
33
  bc. vmserver.copy_file_from_host_to_guest('src','dest')
30
34
 
31
- *_Note_* The src and dest need to be absolute paths.
35
+ *_Note_* The src and dest need to be absolute paths.
36
+
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.2.0
data/lib/vmserver.rb CHANGED
@@ -9,7 +9,7 @@ class VMServer
9
9
  @base_command = "vmrun -T server -h #{@host} -u #{@vm_user} -p #{@vm_password}"
10
10
  end
11
11
 
12
-
12
+
13
13
  ##
14
14
  # Logs if logging is enabled
15
15
 
@@ -18,33 +18,94 @@ class VMServer
18
18
  end
19
19
 
20
20
 
21
+ # -------------------------------- Controlling Virtual Machine Power States with vmrun -------------------------
22
+ #
21
23
  ##
22
- # Checks if a file exists in the guest OS
24
+ # Start up the Virtual Machine
23
25
 
24
- def file_exists_in_guest?(file)
25
- vm_command = "#{@base_command} -gu #{@guest_user} -gp #{@guest_password} fileExistsInGuest \'#{datastore}\' #{file}"
26
- output = system(vm_command)
27
- if output =~ /The file exists/
28
- return true
29
- else
30
- return false
31
- end
26
+ def start
27
+ command = 'start'
28
+ vm_command = "#{@base_command} #{command} \'#{@datastore}\'"
29
+ log vm_command
30
+ result = system(vm_command)
31
+ result ? log("VM started successfully has been executed.") : log("Error! VM could not be started.")
32
+ result
32
33
  end
33
34
 
34
35
 
35
36
  ##
36
- # Start up the Virtual Machine
37
+ # Stops the Virtual Machine
38
+ # Mode is soft by default.
39
+ # If it is overridden to be 'hard' it acts in a similar fashion to that pf physically switching off a machine.
37
40
 
38
- def start
39
- command = 'start'
41
+ def stop(mode='soft')
42
+ command = 'stop'
43
+ vm_command = "#{@base_command} #{command} \'#{@datastore}\' #{mode}"
44
+ log vm_command
45
+ result = system(vm_command)
46
+ result ? log("VM stopped successfully.") : log("Error! VM could not be stopped.")
47
+ result
48
+ end
49
+
50
+
51
+ ##
52
+ # Reset the Virtual Machine
53
+ # Mode is soft by default.
54
+ # If it is overridden to be 'hard' it acts in a similar fashion to that pf physically switching off a machine.
55
+
56
+ def reset(mode='soft')
57
+ command = 'reset'
58
+ vm_command = "#{@base_command} #{command} \'#{@datastore}\' #{mode}"
59
+ log vm_command
60
+ result = system(vm_command)
61
+ result ? log("VM has been resetted.") : log("Error! VM could not be reset.")
62
+ result
63
+ end
64
+
65
+
66
+ ##
67
+ # Suspend the Virtual Machine
68
+ # Mode is soft by default.
69
+ # If it is overridden to be 'hard' it acts in a similar fashion to that pf physically switching off a machine.
70
+
71
+ def suspend(mode='soft')
72
+ command = 'reset'
73
+ vm_command = "#{@base_command} #{command} \'#{@datastore}\' #{mode}"
74
+ log vm_command
75
+ result = system(vm_command)
76
+ result ? log("VM has been suspended.") : log("Error! VM could not be suspended.")
77
+ result
78
+ end
79
+
80
+
81
+ ##
82
+ # Pause the Virtual Machine
83
+
84
+ def pause
85
+ command = 'pause'
40
86
  vm_command = "#{@base_command} #{command} \'#{@datastore}\'"
41
87
  log vm_command
42
88
  result = system(vm_command)
43
- result ? log("VM started successfully has been executed.") : log("Error! VM could not be started.")
89
+ result ? log("VM has been paused") : log("Error! VM could not be paused.")
44
90
  result
45
91
  end
46
92
 
47
93
 
94
+ ##
95
+ # Pause the Virtual Machine
96
+
97
+ def unpause
98
+ command = 'unpause'
99
+ vm_command = "#{@base_command} #{command} \'#{@datastore}\'"
100
+ log vm_command
101
+ result = system(vm_command)
102
+ result ? log("VM has been unpaused") : log("Error! VM could not be unpaused.")
103
+ result
104
+ end
105
+
106
+
107
+ # -------------------------------------- Working with Files and Directory in Guest OS -------------------------
108
+ #
48
109
  ##
49
110
  # Create a directory in the Virtual Machine
50
111
 
@@ -58,6 +119,59 @@ class VMServer
58
119
  end
59
120
 
60
121
 
122
+ ##
123
+ # Remove Directory form the Guest OS
124
+
125
+ def rmdir(dir)
126
+ command = 'deleteDirectoryInGuest'
127
+ vm_command = "#{@base_command} -gu #{@guest_user} -gp #{@guest_password} #{command} \'#{@datastore}\' \'#{dir}\'"
128
+ log vm_command
129
+ result = system(vm_command)
130
+ result ? log("Directory deleted successfully.") : log("Error! Failed to delete directory.")
131
+ result
132
+ end
133
+
134
+
135
+ ##
136
+ # Remove Directory form the Guest OS
137
+
138
+ def rmfile(file)
139
+ command = 'deleteFileInGuest'
140
+ vm_command = "#{@base_command} -gu #{@guest_user} -gp #{@guest_password} #{command} \'#{@datastore}\' \'#{file}\'"
141
+ log vm_command
142
+ result = system(vm_command)
143
+ result ? log("File deleted successfully.") : log("Error! Failed to delete file.")
144
+ result
145
+ end
146
+
147
+
148
+ ##
149
+ # List a directory in Guest OS
150
+
151
+ def ls(dir)
152
+ command = 'listDirectoryInGuest'
153
+ vm_command = "#{@base_command} -gu #{@guest_user} -gp #{@guest_password} #{command} \'#{@datastore}\' \'#{dir}\'"
154
+ log vm_command
155
+ result = system(vm_command)
156
+ result ? log("Listing Successful.") : log("Error! Listing directory failed.")
157
+ result
158
+ end
159
+
160
+
161
+ ##
162
+ # Checks if a file exists in the guest OS
163
+
164
+ def file_exists_in_guest?(file)
165
+ vm_command = "#{@base_command} -gu #{@guest_user} -gp #{@guest_password} fileExistsInGuest \'#{datastore}\' #{file}"
166
+ output = system(vm_command)
167
+ if output =~ /The file exists/
168
+ return true
169
+ else
170
+ return false
171
+ end
172
+ end
173
+
174
+
61
175
  ##
62
176
  # Copy a file from host OS to Guest OS
63
177
 
@@ -119,4 +233,17 @@ class VMServer
119
233
  result ? log("Program executed successfully in guest.") : log("Error! Failed to execute program in guest.")
120
234
  result
121
235
  end
236
+
237
+
238
+ ##
239
+ # Remove Directory form the Guest OS
240
+
241
+ def capture_screen(output_file)
242
+ command = 'captureScreen'
243
+ vm_command = "#{@base_command} -gu #{@guest_user} -gp #{@guest_password} #{command} \'#{@datastore}\' \'#{output_file}\'"
244
+ log vm_command
245
+ result = system(vm_command)
246
+ result ? log("File deleted successfully.") : log("Error! Failed to delete file.")
247
+ result
248
+ end
122
249
  end
data/vmserver.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{vmserver}
8
- s.version = "0.1.0"
8
+ s.version = "0.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Sriram Varahan"]
12
- s.date = %q{2010-08-24}
12
+ s.date = %q{2010-08-26}
13
13
  s.description = %q{This gem simplifies the interaction of ruby code with VMServer. You need to have VMServer installed and running to use this gem.}
14
14
  s.email = %q{sriram.varahan@gmail.com}
15
15
  s.extra_rdoc_files = [
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vmserver
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 23
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 1
8
+ - 2
9
9
  - 0
10
- version: 0.1.0
10
+ version: 0.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Sriram Varahan
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-08-24 00:00:00 +05:30
18
+ date: 2010-08-26 00:00:00 +05:30
19
19
  default_executable:
20
20
  dependencies: []
21
21