vmopt 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +29 -0
- data/Rakefile +1 -0
- data/bin/devcon +0 -0
- data/bin/vmdrive +97 -0
- data/bin/vmdvd +193 -0
- data/bin/vmnetwork +172 -0
- data/bin/vmnotepad +144 -0
- data/bin/vmopt +22 -0
- data/bin/vmpower +73 -0
- data/bin/vmserial +92 -0
- data/bin/vmsysres +58 -0
- data/lib/vmopt.rb +14 -0
- data/lib/vmopt/disk_operation.rb +188 -0
- data/lib/vmopt/dvd_operation.rb +120 -0
- data/lib/vmopt/ext/string_ext.rb +104 -0
- data/lib/vmopt/network.rb +128 -0
- data/lib/vmopt/notepad.rb +145 -0
- data/lib/vmopt/power_operation.rb +57 -0
- data/lib/vmopt/serialport_operation.rb +62 -0
- data/lib/vmopt/system_resource.rb +44 -0
- data/lib/vmopt/utils/ip.rb +287 -0
- data/lib/vmopt/utils/registry.rb +13 -0
- data/lib/vmopt/utils/wmi.rb +19 -0
- data/lib/vmopt/version.rb +3 -0
- data/lib/vmopt/windows/win_net.rb +295 -0
- data/lib/vmopt/windows/win_winutils.rb +200 -0
- data/vmopt.gemspec +37 -0
- metadata +170 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2014 xhb
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# Vmopt
|
2
|
+
|
3
|
+
TODO: Write a gem description
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
gem 'vmopt'
|
10
|
+
|
11
|
+
And then execute:
|
12
|
+
|
13
|
+
$ bundle
|
14
|
+
|
15
|
+
Or install it yourself as:
|
16
|
+
|
17
|
+
$ gem install vmopt
|
18
|
+
|
19
|
+
## Usage
|
20
|
+
|
21
|
+
TODO: Write usage instructions here
|
22
|
+
|
23
|
+
## Contributing
|
24
|
+
|
25
|
+
1. Fork it
|
26
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
27
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
28
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
29
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
data/bin/devcon
ADDED
Binary file
|
data/bin/vmdrive
ADDED
@@ -0,0 +1,97 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#encoding: utf-8
|
3
|
+
|
4
|
+
require "vmopt/disk_operation"
|
5
|
+
require "optparse"
|
6
|
+
require "json"
|
7
|
+
option = {}
|
8
|
+
option_parser = OptionParser.new do | opts |
|
9
|
+
opts.banner = %q/
|
10
|
+
Help:
|
11
|
+
Description:
|
12
|
+
vmdrive tool, use for hard disk drive operation.
|
13
|
+
function:
|
14
|
+
1.get_disk_information
|
15
|
+
2.get_partition_information
|
16
|
+
3.unformat_disk
|
17
|
+
4.chk_format_disk
|
18
|
+
5.format_disk_by_index
|
19
|
+
6.delete_partition
|
20
|
+
Example:
|
21
|
+
vmdrive --query harddisk
|
22
|
+
vmdrive --query partition
|
23
|
+
vmdrive --query unformated_disk
|
24
|
+
vmdrive --format unformated_disk
|
25
|
+
vmdrive --format [diskindex]
|
26
|
+
vmdrive --delete [diskindex]
|
27
|
+
/
|
28
|
+
|
29
|
+
opts.on('-q queryopt', '--query queryopt', 'Query harddisk information') do |value|
|
30
|
+
option[:queryopt] = value
|
31
|
+
option[:cmd] = "query"
|
32
|
+
end
|
33
|
+
|
34
|
+
opts.on('-d disk', '--delete disk', 'Delete harddisk information') do |value|
|
35
|
+
option[:disk] = value
|
36
|
+
option[:cmd] = "delete"
|
37
|
+
end
|
38
|
+
|
39
|
+
opts.on('-f disk', '--format disk', 'Specify harddrive index to format') do |value|
|
40
|
+
option[:disk] = value
|
41
|
+
option[:cmd] = "format"
|
42
|
+
end
|
43
|
+
end.parse!
|
44
|
+
|
45
|
+
resultok = {"status"=>"0"}
|
46
|
+
resultfail = {"status"=>"-1"}
|
47
|
+
data_value={}
|
48
|
+
$disk = Vmopt::DiskOperation.new
|
49
|
+
|
50
|
+
if option[:cmd] == "query"
|
51
|
+
if option[:queryopt] == 'harddisk'
|
52
|
+
data_value = $disk.get_disk_information
|
53
|
+
elsif option[:queryopt] == 'partition'
|
54
|
+
data_value = $disk.get_partition_information
|
55
|
+
elsif option[:queryopt] == 'unformated_disk'
|
56
|
+
data_value = $disk.unformat_disk
|
57
|
+
else
|
58
|
+
system("vmdrive -help")
|
59
|
+
option.clear
|
60
|
+
end
|
61
|
+
|
62
|
+
elsif option[:cmd] == "format"
|
63
|
+
if option[:disk] == 'unformated_disk'
|
64
|
+
ret = $disk.chk_format_disk
|
65
|
+
data_value="format disk success"
|
66
|
+
elsif option[:disk] =~ /^\d$/
|
67
|
+
ret = $disk.format_disk_by_index(option[:disk].to_i)
|
68
|
+
data_value="format disk success"
|
69
|
+
else
|
70
|
+
system("vmdrive -help")
|
71
|
+
option.clear
|
72
|
+
end
|
73
|
+
elsif option[:cmd] == "delete"
|
74
|
+
if option[:disk] =~ /^\d$/
|
75
|
+
ret = $disk.delete_partition(option[:disk].to_i)
|
76
|
+
data_value="delete disk success"
|
77
|
+
else
|
78
|
+
system("vmdrive -help")
|
79
|
+
option.clear
|
80
|
+
end
|
81
|
+
else
|
82
|
+
system("vmdrive -help")
|
83
|
+
option.clear
|
84
|
+
end
|
85
|
+
|
86
|
+
if ret==false
|
87
|
+
resultfail["data"]="format disk fail"
|
88
|
+
retjson = JSON.generate resultfail
|
89
|
+
else
|
90
|
+
resultok["data"]=data_value
|
91
|
+
retjson = JSON.generate resultok
|
92
|
+
end
|
93
|
+
|
94
|
+
puts retjson unless option[:cmd].nil?
|
95
|
+
|
96
|
+
|
97
|
+
|
data/bin/vmdvd
ADDED
@@ -0,0 +1,193 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#encoding: utf-8
|
3
|
+
|
4
|
+
require "vmopt/dvd_operation"
|
5
|
+
require "optparse"
|
6
|
+
require "json"
|
7
|
+
option = {}
|
8
|
+
option_parser = OptionParser.new do | opts |
|
9
|
+
opts.banner = %q/
|
10
|
+
Help:
|
11
|
+
Description:
|
12
|
+
vmdrive tool, use for DVD\CD drive operation.
|
13
|
+
function:
|
14
|
+
1.get_dvd_information
|
15
|
+
2.eject_dvd
|
16
|
+
3.close_dvd
|
17
|
+
4.disable_all_dvd
|
18
|
+
5.disable_index_dvd
|
19
|
+
6.enable_all_dvd
|
20
|
+
7.remove_all_dvd
|
21
|
+
8.remove_index_dvd
|
22
|
+
9.mount_all_dvd
|
23
|
+
10.read_dvd
|
24
|
+
|
25
|
+
Example:
|
26
|
+
vmdvd --query dvd_information
|
27
|
+
vmdvd --query read_dvd --symbol disksymbol
|
28
|
+
|
29
|
+
vmdvd --disable disable_all_dvd
|
30
|
+
vmdvd --disable disable_index_dvd --index diskindex
|
31
|
+
vmdvd --enable enable_all_dvd
|
32
|
+
|
33
|
+
vmdvd --remove remove_all_dvd
|
34
|
+
vmdvd --mount mount_all_dvd
|
35
|
+
vmdvd --remove remove_index_dvd --index diskindex
|
36
|
+
|
37
|
+
vmdvd --eject eject_dvd
|
38
|
+
vmdvd --close close_dvd
|
39
|
+
/
|
40
|
+
#查询时使用
|
41
|
+
opts.on('-q queryopt', '--query queryopt', 'Query DVD/CD information') do |value|
|
42
|
+
option[:cmd] = "query"
|
43
|
+
option[:queryopt] = value
|
44
|
+
end
|
45
|
+
opts.on('-s disksymbol', '--symbol disksymbol', 'list DVD/CD files') do |value|
|
46
|
+
option[:disksymbol] = value
|
47
|
+
end
|
48
|
+
|
49
|
+
#禁用时使用
|
50
|
+
opts.on('-d disableopt', '--disable disableopt', 'Specify dvd option to disable') do |value|
|
51
|
+
option[:disable_opt] = value
|
52
|
+
option[:cmd] = "disable"
|
53
|
+
end
|
54
|
+
|
55
|
+
#启用时使用
|
56
|
+
opts.on('-e alldisk', '--enable alldisk', 'Enable all dvd drive') do |value|
|
57
|
+
option[:enabl_all_disks] = value
|
58
|
+
option[:cmd] = "enable"
|
59
|
+
end
|
60
|
+
|
61
|
+
#卸载光驱时使用
|
62
|
+
opts.on('-r remov_disks', '--remove remov_disks', 'remove dvd drive') do |value|
|
63
|
+
option[:remov_disks] = value
|
64
|
+
option[:cmd] = "remove"
|
65
|
+
end
|
66
|
+
|
67
|
+
#挂载全部磁盘
|
68
|
+
opts.on('-m mount_all_dvd', '--mount mount_all_dvd', 'mount all dvd drive') do |value|
|
69
|
+
option[:mount_all_dvd] = value
|
70
|
+
option[:cmd] = "mount"
|
71
|
+
end
|
72
|
+
|
73
|
+
#弹出光驱
|
74
|
+
opts.on('-j enject_dvd', '--eject enject_dvd', 'mount all dvd drive') do |value|
|
75
|
+
option[:enject_dvd] = value
|
76
|
+
option[:cmd] = "enject"
|
77
|
+
end
|
78
|
+
|
79
|
+
#关闭光驱
|
80
|
+
opts.on('-c close_dvd', '--close close_dvd', 'mount all dvd drive') do |value|
|
81
|
+
option[:close_dvd] = value
|
82
|
+
option[:cmd] = "close"
|
83
|
+
end
|
84
|
+
|
85
|
+
#磁盘索引号
|
86
|
+
opts.on('-i diskindex', '--index diskindex', 'Specify dvd index') do |value|
|
87
|
+
option[:diskindex] = value
|
88
|
+
end
|
89
|
+
|
90
|
+
end.parse!
|
91
|
+
|
92
|
+
resultok = {"status"=>"0"}
|
93
|
+
resultfail = {"status"=>"-1"}
|
94
|
+
data_value={}
|
95
|
+
$dvd = Vmopt::DVDOperation.new
|
96
|
+
|
97
|
+
case option[:cmd]
|
98
|
+
when "query"
|
99
|
+
if option[:queryopt] == "dvd_information"
|
100
|
+
data_value = $dvd.get_dvd_information
|
101
|
+
elsif option[:queryopt] == "read_dvd"
|
102
|
+
if option[:disksymbol].nil?
|
103
|
+
system("vmdvd -help");
|
104
|
+
option.clear
|
105
|
+
else
|
106
|
+
ret = $dvd.read_dvd(option[:disksymbol])
|
107
|
+
data_value="read dvd success"
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
when "disable"
|
112
|
+
if option[:disable_opt] == "disable_all_dvd"
|
113
|
+
ret = $dvd.disable_all_dvd
|
114
|
+
data_value="disable all dvd success"
|
115
|
+
elsif option[:disable_opt] == "disable_index_dvd"
|
116
|
+
if option[:diskindex].nil?
|
117
|
+
system("vmdvd -help");
|
118
|
+
option.clear
|
119
|
+
else
|
120
|
+
ret = $dvd.disable_index_dvd(option[:diskindex])
|
121
|
+
data_value="disable dvd success"
|
122
|
+
end
|
123
|
+
else
|
124
|
+
system("vmdvd -help");
|
125
|
+
option.clear
|
126
|
+
end
|
127
|
+
|
128
|
+
when "enable"
|
129
|
+
if option[:enabl_all_disks] == "enable_all_dvd"
|
130
|
+
ret = $dvd.enable_all_dvd
|
131
|
+
data_value="enable all dvd success"
|
132
|
+
else
|
133
|
+
system("vmdvd -help");
|
134
|
+
option.clear
|
135
|
+
end
|
136
|
+
|
137
|
+
when "remove"
|
138
|
+
if option[:remov_disks] == "remove_all_dvd"
|
139
|
+
ret = $dvd.remove_all_dvd
|
140
|
+
data_value="remove all dvd success"
|
141
|
+
elsif option[:remov_disks] == "remove_index_dvd"
|
142
|
+
if option[:diskindex].nil?
|
143
|
+
system("vmdvd -help");
|
144
|
+
option.clear
|
145
|
+
else
|
146
|
+
$dvd.remove_index_dvd(option[:diskindex])
|
147
|
+
data_value="remove dvd success"
|
148
|
+
end
|
149
|
+
|
150
|
+
end
|
151
|
+
|
152
|
+
when "mount"
|
153
|
+
if option[:mount_all_dvd] == "mount_all_dvd"
|
154
|
+
ret = $dvd.mount_all_dvd
|
155
|
+
data_value="mount all dvd success"
|
156
|
+
else
|
157
|
+
system("vmdvd -help");
|
158
|
+
option.clear
|
159
|
+
end
|
160
|
+
|
161
|
+
when "enject"
|
162
|
+
if option[:enject_dvd] == "eject_dvd"
|
163
|
+
ret = $dvd.eject_dvd
|
164
|
+
data_value="eject dvd success"
|
165
|
+
else
|
166
|
+
system("vmdvd -help");
|
167
|
+
option.clear
|
168
|
+
end
|
169
|
+
|
170
|
+
when "close"
|
171
|
+
if option[:close_dvd] == "close_dvd"
|
172
|
+
ret = $dvd.close_dvd
|
173
|
+
data_value="close dvd success"
|
174
|
+
else
|
175
|
+
system("vmdvd -help");
|
176
|
+
option.clear
|
177
|
+
end
|
178
|
+
|
179
|
+
else
|
180
|
+
system("vmdvd -help");
|
181
|
+
option.clear
|
182
|
+
end
|
183
|
+
|
184
|
+
|
185
|
+
if ret==false
|
186
|
+
resultfail["data"]="dvd operation fail"
|
187
|
+
retjson = JSON.generate resultfail
|
188
|
+
else
|
189
|
+
resultok["data"]=data_value
|
190
|
+
retjson = JSON.generate resultok
|
191
|
+
end
|
192
|
+
|
193
|
+
puts retjson unless option[:cmd].nil?
|
data/bin/vmnetwork
ADDED
@@ -0,0 +1,172 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#encoding: utf-8
|
3
|
+
require "vmopt/network"
|
4
|
+
require "optparse"
|
5
|
+
require 'json'
|
6
|
+
|
7
|
+
option = {}
|
8
|
+
option_parser = OptionParser.new do | opts |
|
9
|
+
opts.banner = %q/
|
10
|
+
Help:
|
11
|
+
Description:
|
12
|
+
vmnetwork tool, use for network operation.
|
13
|
+
function:
|
14
|
+
1.show_netinterface
|
15
|
+
2.show_interface_stat
|
16
|
+
3.adapter_opt
|
17
|
+
4.adapter_rescan
|
18
|
+
5.adapter_discript
|
19
|
+
6.adapter_set_dhcp
|
20
|
+
7.adapter_set_static
|
21
|
+
|
22
|
+
Example:
|
23
|
+
vmnetwork --query allinterface
|
24
|
+
vmnetwork --query interface_discrip
|
25
|
+
vmnetwork --query interface_stat --interface "本地连接 2"
|
26
|
+
|
27
|
+
vmnetwork --modify --interface "本地连接 2" --operation "禁用"
|
28
|
+
vmnetwork --modify --interface "本地连接 2" --operation "启用"
|
29
|
+
vmnetwork --modify --interface "本地连接 2" --operation "卸载"
|
30
|
+
|
31
|
+
vmnetwork --rescan allinterface
|
32
|
+
|
33
|
+
vmnetwork --set --linktype dhcp --interface "本地连接 2"
|
34
|
+
vmnetwork --set --linktype static --interface "本地连接 2" --addr 192.168.1.10 --mask 255.255.255.0 --gateway 192.168.1.1
|
35
|
+
/
|
36
|
+
#查询接口信息
|
37
|
+
opts.on('-q queryopt', '--query queryopt', 'Query network information') do |value|
|
38
|
+
option[:queryopt] = value
|
39
|
+
option[:cmd] = "query"
|
40
|
+
end
|
41
|
+
|
42
|
+
#改变接口状态
|
43
|
+
opts.on('-m', '--modify', 'modify network status') do
|
44
|
+
option[:cmd] = "modify"
|
45
|
+
end
|
46
|
+
|
47
|
+
#重新扫描硬件
|
48
|
+
opts.on('-r allinterface', '--rescan allinterface', 'rescan network adapter') do |value|
|
49
|
+
option[:rescan] = value
|
50
|
+
option[:cmd] = "rescan"
|
51
|
+
end
|
52
|
+
|
53
|
+
#获取操作
|
54
|
+
opts.on('-o opera', '--operation opera', 'Specify a network interface') do |value|
|
55
|
+
option[:opera] = value
|
56
|
+
end
|
57
|
+
|
58
|
+
#获取接口名称
|
59
|
+
opts.on('-i inf', '--interface inf', 'Specify a network interface') do |value|
|
60
|
+
option[:inf] = value
|
61
|
+
end
|
62
|
+
|
63
|
+
#设置接口
|
64
|
+
opts.on('-s', '--set', 'Set ip for network interface') do
|
65
|
+
option[:cmd] = "set"
|
66
|
+
end
|
67
|
+
|
68
|
+
#设置连接方式
|
69
|
+
opts.on('-l type', '--linktype type', 'set linktype(dhcp or static) to netinterface') do|value|
|
70
|
+
option[:linktype] = value
|
71
|
+
end
|
72
|
+
|
73
|
+
#设置ip地址
|
74
|
+
opts.on('-a address', '--addr address', 'set linktype = static and set ip address') do|value|
|
75
|
+
option[:address] = value
|
76
|
+
end
|
77
|
+
|
78
|
+
#设置掩码
|
79
|
+
opts.on('-m netmask', '--mask netmask', 'set linktype = static and set netmask') do|value|
|
80
|
+
option[:netmask] = value
|
81
|
+
end
|
82
|
+
|
83
|
+
#设置网关
|
84
|
+
opts.on('-g gateway', '--gateway gateway', 'set linktype = static and set gateway') do|value|
|
85
|
+
option[:gateway] = value
|
86
|
+
end
|
87
|
+
|
88
|
+
end.parse!
|
89
|
+
|
90
|
+
$result_json = {};
|
91
|
+
|
92
|
+
def param_error
|
93
|
+
$result_json = {:status => "-1",:data=>"Please check the params..."}
|
94
|
+
end
|
95
|
+
|
96
|
+
begin
|
97
|
+
|
98
|
+
case option[:cmd]
|
99
|
+
#查询接口
|
100
|
+
when "query"
|
101
|
+
if option[:queryopt] == 'allinterface'
|
102
|
+
data = Vmopt::NetWork.show_netinterface
|
103
|
+
$result_json = {:status => "0", :data => data}
|
104
|
+
elsif option[:queryopt] == 'interface_discrip'
|
105
|
+
data = Vmopt::NetWork.adapter_discript
|
106
|
+
$result_json = {:status => "0", :data => data}
|
107
|
+
elsif option[:queryopt] == 'interface_stat'
|
108
|
+
if !option[:inf].nil?
|
109
|
+
data = Vmopt::NetWork.show_interface_stat(option[:inf])
|
110
|
+
$result_json = {:status => "0", :data => data}
|
111
|
+
else
|
112
|
+
param_error
|
113
|
+
end
|
114
|
+
|
115
|
+
else
|
116
|
+
param_error
|
117
|
+
end
|
118
|
+
|
119
|
+
#改变接口状态
|
120
|
+
when "modify"
|
121
|
+
if !option[:inf].nil? and !option[:opera].nil?
|
122
|
+
stat = Vmopt::NetWork.adapter_opt(option[:inf],option[:opera]);
|
123
|
+
status = stat ? 0 : -1 ;
|
124
|
+
$result_json ={:status=>"#{status}", :data=>"modify interface #{option[:inf].to_utf8} to #{option[:opera].to_utf8}"}
|
125
|
+
else
|
126
|
+
param_error
|
127
|
+
end
|
128
|
+
|
129
|
+
#重新扫描
|
130
|
+
when "rescan"
|
131
|
+
if option[:rescan] == "allinterface"
|
132
|
+
stat = Vmopt::NetWork.adapter_rescan
|
133
|
+
status = stat ? 0 : -1 ;
|
134
|
+
$result_json ={:status=>"#{status}", :data=>"rescan all hardware"}
|
135
|
+
else
|
136
|
+
param_error
|
137
|
+
end
|
138
|
+
|
139
|
+
#设置网卡IP
|
140
|
+
when "set"
|
141
|
+
if option[:linktype] == "dhcp"
|
142
|
+
if !option[:inf].nil?
|
143
|
+
stat = Vmopt::NetWork.adapter_set_dhcp(option[:inf])
|
144
|
+
status = stat ? 0 : -1 ;
|
145
|
+
$result_json ={:status=>"#{status}", :data=>"set interface #{option[:inf].to_utf8} with dhcp"}
|
146
|
+
else
|
147
|
+
param_error
|
148
|
+
end
|
149
|
+
|
150
|
+
elsif option[:linktype] == "static"
|
151
|
+
if !option[:inf].nil? and !option[:address].nil? and !option[:netmask].nil? and !option[:gateway].nil?
|
152
|
+
op = {}
|
153
|
+
op[:addr] = option[:address]
|
154
|
+
op[:mask] = option[:netmask]
|
155
|
+
op[:gateway]= option[:gateway]
|
156
|
+
stat = Vmopt::NetWork.adapter_set_static(option[:inf], op)
|
157
|
+
status = stat ? 0 : -1 ;
|
158
|
+
$result_json ={:status=>"#{status}", :data=>"set interface #{option[:inf].to_utf8} with static IP option"}
|
159
|
+
else
|
160
|
+
param_error
|
161
|
+
end
|
162
|
+
|
163
|
+
else
|
164
|
+
system("vmnetwork --help");
|
165
|
+
end
|
166
|
+
end
|
167
|
+
rescue Exception => e
|
168
|
+
$result_json = {:status => "-1", :data=>"Catch exception #{e}"}
|
169
|
+
end
|
170
|
+
puts JSON.generate($result_json) unless option[:cmd].nil?
|
171
|
+
|
172
|
+
|