mirror of
https://github.com/OpenNebula/one.git
synced 2025-02-03 13:47:01 +03:00
F #911: call reconfigure when detaching a nic/alias.
This commit is contained in:
parent
6f59f41de2
commit
e65dd8c251
@ -1068,9 +1068,25 @@ VM_RESTRICTED_ATTR = "NIC/OPENNEBULA_MANAGED"
|
||||
VM_RESTRICTED_ATTR = "NIC/VCENTER_INSTANCE_ID"
|
||||
VM_RESTRICTED_ATTR = "NIC/VCENTER_NET_REF"
|
||||
VM_RESTRICTED_ATTR = "NIC/VCENTER_PORTGROUP_TYPE"
|
||||
VM_RESTRICTED_ATTR = "NIC/EXTERNAL"
|
||||
VM_RESTRICTED_ATTR = "NIC_ALIAS/MAC"
|
||||
VM_RESTRICTED_ATTR = "NIC_ALIAS/VLAN_ID"
|
||||
VM_RESTRICTED_ATTR = "NIC_ALIAS/BRIDGE"
|
||||
VM_RESTRICTED_ATTR = "NIC_ALIAS/INBOUND_AVG_BW"
|
||||
VM_RESTRICTED_ATTR = "NIC_ALIAS/INBOUND_PEAK_BW"
|
||||
VM_RESTRICTED_ATTR = "NIC_ALIAS/INBOUND_PEAK_KB"
|
||||
VM_RESTRICTED_ATTR = "NIC_ALIAS/OUTBOUND_AVG_BW"
|
||||
VM_RESTRICTED_ATTR = "NIC_ALIAS/OUTBOUND_PEAK_BW"
|
||||
VM_RESTRICTED_ATTR = "NIC_ALIAS/OUTBOUND_PEAK_KB"
|
||||
VM_RESTRICTED_ATTR = "NIC_ALIAS/OPENNEBULA_MANAGED"
|
||||
VM_RESTRICTED_ATTR = "NIC_ALIAS/VCENTER_INSTANCE_ID"
|
||||
VM_RESTRICTED_ATTR = "NIC_ALIAS/VCENTER_NET_REF"
|
||||
VM_RESTRICTED_ATTR = "NIC_ALIAS/VCENTER_PORTGROUP_TYPE"
|
||||
VM_RESTRICTED_ATTR = "NIC_ALIAS/EXTERNAL"
|
||||
VM_RESTRICTED_ATTR = "NIC_DEFAULT/MAC"
|
||||
VM_RESTRICTED_ATTR = "NIC_DEFAULT/VLAN_ID"
|
||||
VM_RESTRICTED_ATTR = "NIC_DEFAULT/BRIDGE"
|
||||
VM_RESTRICTED_ATTR = "NIC_DEFAULT/EXTERNAL"
|
||||
VM_RESTRICTED_ATTR = "DISK/TOTAL_BYTES_SEC"
|
||||
VM_RESTRICTED_ATTR = "DISK/TOTAL_BYTES_SEC_MAX_LENGTH"
|
||||
VM_RESTRICTED_ATTR = "DISK/TOTAL_BYTES_SEC_MAX"
|
||||
@ -1141,6 +1157,8 @@ VNET_RESTRICTED_ATTR = "AR/FILTER_MAC_SPOOFING"
|
||||
|
||||
VNET_RESTRICTED_ATTR = "CLUSTER_IDS"
|
||||
|
||||
VNET_RESTRICTED_ATTR = "EXTERNAL"
|
||||
|
||||
#*******************************************************************************
|
||||
# Inherited Attributes Configuration
|
||||
#*******************************************************************************
|
||||
@ -1209,6 +1227,7 @@ INHERIT_VNET_ATTR = "CONF"
|
||||
INHERIT_VNET_ATTR = "BRIDGE_CONF"
|
||||
INHERIT_VNET_ATTR = "OVS_BRIDGE_CONF"
|
||||
INHERIT_VNET_ATTR = "IP_LINK_CONF"
|
||||
INHERIT_VNET_ATTR = "EXTERNAL"
|
||||
|
||||
INHERIT_VNET_ATTR = "VCENTER_NET_REF"
|
||||
INHERIT_VNET_ATTR = "VCENTER_SWITCH_NAME"
|
||||
|
@ -2408,6 +2408,9 @@ void VirtualMachineManager::detach_nic_action(
|
||||
string vm_tmpl;
|
||||
string * drv_msg;
|
||||
string error_str;
|
||||
string prolog_cmd;
|
||||
string disk_path;
|
||||
string password;
|
||||
|
||||
// Get the VM from the pool
|
||||
vm = vmpool->get(vid);
|
||||
@ -2430,6 +2433,11 @@ void VirtualMachineManager::detach_nic_action(
|
||||
goto error_driver;
|
||||
}
|
||||
|
||||
if ( do_context_command(vm, password, prolog_cmd, disk_path) == -1 )
|
||||
{
|
||||
goto error_no_tm_command;
|
||||
}
|
||||
|
||||
// Invoke driver method
|
||||
drv_msg = format_message(
|
||||
vm->get_hostname(),
|
||||
@ -2438,9 +2446,9 @@ void VirtualMachineManager::detach_nic_action(
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
prolog_cmd,
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
disk_path,
|
||||
vm->to_xml(vm_tmpl),
|
||||
vm->get_ds_id(),
|
||||
-1);
|
||||
@ -2463,6 +2471,11 @@ error_driver:
|
||||
os << "detach_nic_action, error getting driver " << vm->get_vmm_mad();
|
||||
goto error_common;
|
||||
|
||||
error_no_tm_command:
|
||||
os.str("");
|
||||
os << "Cannot set context disk to update it for VM " << vm->get_oid();
|
||||
goto error_common;
|
||||
|
||||
error_common:
|
||||
Nebula &ne = Nebula::instance();
|
||||
LifeCycleManager * lcm = ne.get_lcm();
|
||||
|
@ -1015,6 +1015,15 @@ class ExecDriver < VirtualMachineDriver
|
||||
action = ACTION[:detach_nic]
|
||||
xml_data = decode(drv_message)
|
||||
|
||||
tm_command = xml_data.elements['TM_COMMAND']
|
||||
tm_command = tm_command.text if tm_command
|
||||
|
||||
target_path = xml_data.elements['DISK_TARGET_PATH']
|
||||
target_path = target_path.text if target_path
|
||||
|
||||
target_device = xml_data.elements['VM/TEMPLATE/CONTEXT/TARGET']
|
||||
target_device = target_device.text if target_device
|
||||
|
||||
nic_alias = false
|
||||
external = false
|
||||
|
||||
@ -1036,6 +1045,8 @@ class ExecDriver < VirtualMachineDriver
|
||||
return
|
||||
end
|
||||
|
||||
action = VmmAction.new(self, id, :detach_nic, drv_message)
|
||||
|
||||
if !nic_alias
|
||||
steps=[
|
||||
# Detach the NIC
|
||||
@ -1062,13 +1073,27 @@ class ExecDriver < VirtualMachineDriver
|
||||
steps = []
|
||||
end
|
||||
|
||||
if steps.empty?
|
||||
send_message(action, RESULT[:success], id, "")
|
||||
else
|
||||
action = VmmAction.new(self, id, :detach_nic, drv_message)
|
||||
steps << {
|
||||
:driver => :vmm,
|
||||
:action => :prereconfigure,
|
||||
:parameters => [:deploy_id, target_device]
|
||||
}
|
||||
|
||||
action.run(steps)
|
||||
if tm_command && !tm_command.empty?
|
||||
steps << {
|
||||
:driver => :tm,
|
||||
:action => :tm_context,
|
||||
:parameters => tm_command.strip.split(' ')
|
||||
}
|
||||
end
|
||||
|
||||
steps << {
|
||||
:driver => :vmm,
|
||||
:action => :reconfigure,
|
||||
:parameters => [:deploy_id, target_device, target_path]
|
||||
}
|
||||
|
||||
action.run(steps)
|
||||
end
|
||||
|
||||
#
|
||||
|
Loading…
x
Reference in New Issue
Block a user