mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-21 14:50:08 +03:00
Merge branch 'feature-863'
This commit is contained in:
commit
0bf92a0f22
@ -99,10 +99,10 @@ class OneVMHelper < OpenNebulaHelper::OneHelper
|
||||
CLIHelper.print_header(str_h1 % "VIRTUAL MACHINE TEMPLATE",false)
|
||||
puts vm.template_str
|
||||
|
||||
if vm.has_elements?("/VM/HISTORY_RECORDS/")
|
||||
if vm.has_elements?("/VM/HISTORY_RECORDS")
|
||||
puts
|
||||
|
||||
|
||||
|
||||
|
||||
CLIHelper.print_header(str_h1 % "VIRTUAL MACHINE HISTORY",false)
|
||||
format_history(vm)
|
||||
end
|
||||
|
@ -64,7 +64,8 @@ class OpenNebulaHM < OpenNebulaNetwork
|
||||
|
||||
def device_exists?(dev, vlan=nil)
|
||||
dev = "#{dev}.#{vlan}" if vlan
|
||||
OpenNebula.exec_and_log("#{COMMANDS[:ip]} link show #{dev}")
|
||||
`#{COMMANDS[:ip]} link show #{dev}`
|
||||
$?.exitstatus == 0
|
||||
end
|
||||
|
||||
def create_dev_vlan(dev, vlan)
|
||||
|
@ -1,10 +1,10 @@
|
||||
#!/usr/bin/env ruby
|
||||
|
||||
$: << File.dirname(__FILE__) + '/..'
|
||||
$: << File.dirname(__FILE__) + '/../ebtables'
|
||||
$: << File.dirname(__FILE__) + '/../802.1Q'
|
||||
$: << File.dirname(__FILE__) + '/../ovswitch'
|
||||
$: << File.dirname(__FILE__) + '/../../../mad/ruby'
|
||||
$: << File.dirname(__FILE__) + '/..'
|
||||
$: << File.dirname(__FILE__) + '/../ebtables'
|
||||
$: << File.dirname(__FILE__) + '/../802.1Q'
|
||||
$: << File.dirname(__FILE__) + '/../ovswitch'
|
||||
$: << File.dirname(__FILE__) + '/../../../mad/ruby'
|
||||
$: << './'
|
||||
$: << File.dirname(__FILE__)
|
||||
$: << File.join(File.dirname(__FILE__), '..')
|
||||
@ -159,34 +159,35 @@ end
|
||||
describe 'host-managed' do
|
||||
it "tag tun/tap devices with vlans in kvm" do
|
||||
$capture_commands = {
|
||||
/virsh.*dumpxml/ => OUTPUT[:virsh_dumpxml_phydev],
|
||||
/virsh.*dumpxml/ => nil,
|
||||
/brctl show/ => OUTPUT[:brctl_show],
|
||||
/brctl add/ => nil,
|
||||
/brctl add/ => nil,
|
||||
/vconfig/ => nil,
|
||||
/ip link/ => nil
|
||||
/ip link set/ => nil,
|
||||
/ip link show/ => [nil,255]
|
||||
}
|
||||
hm = OpenNebulaHM.new(OUTPUT[:onevm_show_phydev_kvm],"kvm")
|
||||
hm.activate
|
||||
|
||||
hm_activate_rules = ["sudo /sbin/brctl addbr onebr6",
|
||||
"sudo /sbin/ip link set onebr6 up",
|
||||
"sudo /sbin/ip link show eth0.8",
|
||||
"sudo /sbin/vconfig add eth0 8",
|
||||
"sudo /sbin/ip link set eth0.8 up",
|
||||
"sudo /sbin/brctl addif onebr6 eth0.8"]
|
||||
|
||||
hm_activate_rules.map{|c| c + " 2>&1 1>/dev/null"}.each do |cmd|
|
||||
$collector[:backtick].include?(cmd).should == true
|
||||
hm_activate_rules.each do |cmd|
|
||||
$collector[:backtick].grep(Regexp.new("^"+cmd)).length.should >= 1
|
||||
end
|
||||
end
|
||||
|
||||
it "force VLAN_ID for vlans in kvm" do
|
||||
$capture_commands = {
|
||||
/virsh.*dumpxml/ => OUTPUT[:virsh_dumpxml_vlan_id],
|
||||
/virsh.*dumpxml/ => nil,
|
||||
/brctl show/ => OUTPUT[:brctl_show],
|
||||
/brctl add/ => nil,
|
||||
/vconfig/ => nil,
|
||||
/ip link/ => nil
|
||||
/ip link set/ => nil,
|
||||
/ip link show/ => [nil,255]
|
||||
}
|
||||
hm = OpenNebulaHM.new(OUTPUT[:onevm_show_vlan_id_kvm],"kvm")
|
||||
hm.activate
|
||||
@ -204,8 +205,36 @@ describe 'host-managed' do
|
||||
"sudo /sbin/ip link set eth0.51 up",
|
||||
"sudo /sbin/brctl addif specialbr eth0.51"]
|
||||
|
||||
hm_vlan_id.map{|c| c + " 2>&1 1>/dev/null"}.each do |cmd|
|
||||
$collector[:backtick].include?(cmd).should == true
|
||||
hm_vlan_id.each do |cmd|
|
||||
$collector[:backtick].grep(Regexp.new("^"+cmd)).length.should >= 1
|
||||
end
|
||||
end
|
||||
|
||||
it "ignore interfaces that don't have vlan=yes" do
|
||||
$capture_commands = {
|
||||
/virsh.*dumpxml/ => nil,
|
||||
/brctl show/ => OUTPUT[:brctl_show],
|
||||
/brctl add/ => nil,
|
||||
/vconfig/ => nil,
|
||||
/ip link set/ => nil,
|
||||
/ip link show/ => [nil,255]
|
||||
}
|
||||
|
||||
|
||||
|
||||
hm = OpenNebulaHM.new(OUTPUT[:onevm_show_mixed],"kvm")
|
||||
hm.activate
|
||||
|
||||
hm_vlan_tag = [ "sudo /sbin/brctl show",
|
||||
"sudo /sbin/brctl addbr onebr1",
|
||||
"sudo /sbin/ip link set onebr1 up",
|
||||
"sudo /sbin/ip link show eth0.50",
|
||||
"sudo /sbin/vconfig add eth0 50",
|
||||
"sudo /sbin/ip link set eth0.50 up",
|
||||
"sudo /sbin/brctl addif onebr1 eth0.50" ]
|
||||
|
||||
hm_vlan_tag.each do |cmd|
|
||||
$collector[:backtick].grep(Regexp.new("^"+cmd)).length.should >= 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -2,9 +2,16 @@ module SystemMock
|
||||
|
||||
def execute_cmd(cmd)
|
||||
if $capture_commands
|
||||
$capture_commands.each do |regex, output|
|
||||
$capture_commands.each do |regex, params|
|
||||
code = nil
|
||||
if params.instance_of? Array
|
||||
output, code = params
|
||||
else
|
||||
output = params
|
||||
end
|
||||
code ||= 0
|
||||
if cmd.match(regex)
|
||||
Kernel.send(:`,":;exit 0")
|
||||
Kernel.send(:`,":;exit #{code}")
|
||||
return output
|
||||
end
|
||||
end
|
||||
|
81
src/vnm_mad/remotes/test/output/onevm_show_mixed
Normal file
81
src/vnm_mad/remotes/test/output/onevm_show_mixed
Normal file
@ -0,0 +1,81 @@
|
||||
<VM>
|
||||
<ID>12</ID>
|
||||
<UID>0</UID>
|
||||
<GID>0</GID>
|
||||
<UNAME>oneadmin</UNAME>
|
||||
<GNAME>oneadmin</GNAME>
|
||||
<NAME>ttylinux</NAME>
|
||||
<LAST_POLL>1323096916</LAST_POLL>
|
||||
<STATE>3</STATE>
|
||||
<LCM_STATE>3</LCM_STATE>
|
||||
<STIME>1323096908</STIME>
|
||||
<ETIME>0</ETIME>
|
||||
<DEPLOY_ID>one-12</DEPLOY_ID>
|
||||
<MEMORY>0</MEMORY>
|
||||
<CPU>0</CPU>
|
||||
<NET_TX>0</NET_TX>
|
||||
<NET_RX>0</NET_RX>
|
||||
<TEMPLATE>
|
||||
<CPU><![CDATA[0.1]]></CPU>
|
||||
<DISK>
|
||||
<CLONE><![CDATA[YES]]></CLONE>
|
||||
<DISK_ID><![CDATA[0]]></DISK_ID>
|
||||
<IMAGE><![CDATA[ttylinux]]></IMAGE>
|
||||
<IMAGE_ID><![CDATA[0]]></IMAGE_ID>
|
||||
<READONLY><![CDATA[NO]]></READONLY>
|
||||
<SAVE><![CDATA[NO]]></SAVE>
|
||||
<SOURCE><![CDATA[/var/lib/one/images/d7d95d4043b690b58f36f88a34910e44]]></SOURCE>
|
||||
<TARGET><![CDATA[hda]]></TARGET>
|
||||
<TYPE><![CDATA[DISK]]></TYPE>
|
||||
</DISK>
|
||||
<FEATURES>
|
||||
<ACPI><![CDATA[no]]></ACPI>
|
||||
</FEATURES>
|
||||
<GRAPHICS>
|
||||
<LISTEN><![CDATA[0.0.0.0]]></LISTEN>
|
||||
<PORT><![CDATA[5900]]></PORT>
|
||||
<TYPE><![CDATA[vnc]]></TYPE>
|
||||
</GRAPHICS>
|
||||
<MEMORY><![CDATA[64]]></MEMORY>
|
||||
<NAME><![CDATA[ttylinux]]></NAME>
|
||||
<NIC>
|
||||
<BRIDGE><![CDATA[br0]]></BRIDGE>
|
||||
<IP><![CDATA[172.16.0.201]]></IP>
|
||||
<MAC><![CDATA[02:00:ac:10:00:c9]]></MAC>
|
||||
<NETWORK><![CDATA[net_172]]></NETWORK>
|
||||
<NETWORK_ID><![CDATA[0]]></NETWORK_ID>
|
||||
<VLAN><![CDATA[NO]]></VLAN>
|
||||
</NIC>
|
||||
<NIC>
|
||||
<BRIDGE><![CDATA[onebr1]]></BRIDGE>
|
||||
<IP><![CDATA[10.0.0.250]]></IP>
|
||||
<MAC><![CDATA[02:00:0a:00:00:fa]]></MAC>
|
||||
<NETWORK><![CDATA[vlan50]]></NETWORK>
|
||||
<NETWORK_ID><![CDATA[1]]></NETWORK_ID>
|
||||
<PHYDEV><![CDATA[eth0]]></PHYDEV>
|
||||
<VLAN><![CDATA[YES]]></VLAN>
|
||||
<VLAN_ID><![CDATA[50]]></VLAN_ID>
|
||||
</NIC>
|
||||
<VMID><![CDATA[12]]></VMID>
|
||||
</TEMPLATE>
|
||||
<HISTORY_RECORDS>
|
||||
<HISTORY>
|
||||
<SEQ>0</SEQ>
|
||||
<HOSTNAME>localhost</HOSTNAME>
|
||||
<VM_DIR>/var/lib/one/</VM_DIR>
|
||||
<HID>1</HID>
|
||||
<STIME>1323096914</STIME>
|
||||
<ETIME>0</ETIME>
|
||||
<VMMMAD>vmm_kvm</VMMMAD>
|
||||
<VNMMAD>802.1Q</VNMMAD>
|
||||
<TMMAD>tm_shared</TMMAD>
|
||||
<PSTIME>1323096914</PSTIME>
|
||||
<PETIME>1323096914</PETIME>
|
||||
<RSTIME>1323096914</RSTIME>
|
||||
<RETIME>0</RETIME>
|
||||
<ESTIME>0</ESTIME>
|
||||
<EETIME>0</EETIME>
|
||||
<REASON>0</REASON>
|
||||
</HISTORY>
|
||||
</HISTORY_RECORDS>
|
||||
</VM>
|
Loading…
x
Reference in New Issue
Block a user