package org.ovirt.engine.core.vdsbroker.vdsbroker; import java.util.HashMap; import java.util.Map; import javax.inject.Inject; import org.ovirt.engine.core.common.businessentities.VmDevice; import org.ovirt.engine.core.common.businessentities.network.VmNic; import org.ovirt.engine.core.common.vdscommands.VmNicDeviceVDSParameters; import org.ovirt.engine.core.vdsbroker.builder.vminfo.VmInfoBuildUtils; public class UpdateVmInterfaceVDSCommand extends VdsBrokerCommand<VmNicDeviceVDSParameters> { @Inject private VmInfoBuildUtils vmInfoBuildUtils; public UpdateVmInterfaceVDSCommand(VmNicDeviceVDSParameters parameters) { super(parameters); } @Override protected void executeVdsBrokerCommand() { status = getBroker().vmUpdateDevice(getParameters().getVm().getId().toString(), initDeviceStructure()); proceedProxyReturnValue(); } protected Map<String, Object> initDeviceStructure() { Map<String, Object> deviceStruct = new HashMap<>(); deviceStruct.put(VdsProperties.DeviceType, getParameters().getVmDevice().getType().getValue()); deviceStruct.put(VdsProperties.Alias, getParameters().getVmDevice().getAlias()); VmNic nic = getParameters().getNic(); deviceStruct.put(VdsProperties.LINK_ACTIVE, String.valueOf(nic.isLinked())); VmDevice vmDevice = getParameters().getVmDevice(); vmInfoBuildUtils.addProfileDataToNic(deviceStruct, getParameters().getVm(), vmDevice, nic); return deviceStruct; } }