mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Removed the getByTypeAndId() method and replace it with getById method
This commit is contained in:
parent
9f15779f10
commit
319d91e1c2
@ -16,9 +16,9 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package com.cloud.ha;
|
package com.cloud.ha;
|
||||||
|
|
||||||
import com.cloud.host.HostVO;
|
import com.cloud.host.Host;
|
||||||
import com.cloud.utils.component.Adapter;
|
import com.cloud.utils.component.Adapter;
|
||||||
import com.cloud.vm.VMInstanceVO;
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
|
||||||
public interface FenceBuilder extends Adapter {
|
public interface FenceBuilder extends Adapter {
|
||||||
/**
|
/**
|
||||||
@ -27,5 +27,5 @@ public interface FenceBuilder extends Adapter {
|
|||||||
* @param vm vm
|
* @param vm vm
|
||||||
* @param host host where the vm was running on.
|
* @param host host where the vm was running on.
|
||||||
*/
|
*/
|
||||||
public Boolean fenceOff(VMInstanceVO vm, HostVO host);
|
public Boolean fenceOff(VirtualMachine vm, Host host);
|
||||||
}
|
}
|
||||||
@ -16,10 +16,10 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package com.cloud.ha;
|
package com.cloud.ha;
|
||||||
|
|
||||||
import com.cloud.host.HostVO;
|
import com.cloud.host.Host;
|
||||||
import com.cloud.host.Status;
|
import com.cloud.host.Status;
|
||||||
import com.cloud.utils.component.Adapter;
|
import com.cloud.utils.component.Adapter;
|
||||||
import com.cloud.vm.VMInstanceVO;
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
|
||||||
public interface Investigator extends Adapter {
|
public interface Investigator extends Adapter {
|
||||||
/**
|
/**
|
||||||
@ -27,7 +27,7 @@ public interface Investigator extends Adapter {
|
|||||||
*
|
*
|
||||||
* @param vm to work on.
|
* @param vm to work on.
|
||||||
*/
|
*/
|
||||||
public Boolean isVmAlive(VMInstanceVO vm, HostVO host);
|
public Boolean isVmAlive(VirtualMachine vm, Host host);
|
||||||
|
|
||||||
public Status isAgentAlive(HostVO agent);
|
public Status isAgentAlive(Host agent);
|
||||||
}
|
}
|
||||||
@ -158,7 +158,7 @@ public interface VirtualMachine extends RunningOn, ControlledEntity, Identity, I
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final String IsDynamicScalingEnabled = "enable.dynamic.scaling";
|
static final String IsDynamicScalingEnabled = "enable.dynamic.scaling";
|
||||||
|
|
||||||
public enum Event {
|
public enum Event {
|
||||||
CreateRequested,
|
CreateRequested,
|
||||||
@ -182,27 +182,28 @@ public interface VirtualMachine extends RunningOn, ControlledEntity, Identity, I
|
|||||||
};
|
};
|
||||||
|
|
||||||
public enum Type {
|
public enum Type {
|
||||||
User,
|
User(false),
|
||||||
DomainRouter,
|
DomainRouter(true),
|
||||||
ConsoleProxy,
|
ConsoleProxy(true),
|
||||||
SecondaryStorageVm,
|
SecondaryStorageVm(true),
|
||||||
ElasticIpVm,
|
ElasticIpVm(true),
|
||||||
ElasticLoadBalancerVm,
|
ElasticLoadBalancerVm(true),
|
||||||
InternalLoadBalancerVm,
|
InternalLoadBalancerVm(true),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* UserBareMetal is only used for selecting VirtualMachineGuru, there is no
|
* UserBareMetal is only used for selecting VirtualMachineGuru, there is no
|
||||||
* VM with this type. UserBareMetal should treat exactly as User.
|
* VM with this type. UserBareMetal should treat exactly as User.
|
||||||
*/
|
*/
|
||||||
UserBareMetal;
|
UserBareMetal(false);
|
||||||
|
|
||||||
public static boolean isSystemVM(VirtualMachine.Type vmtype) {
|
boolean _isUsedBySystem;
|
||||||
if (DomainRouter.equals(vmtype)
|
|
||||||
|| ConsoleProxy.equals(vmtype)
|
private Type(boolean isUsedBySystem) {
|
||||||
|| SecondaryStorageVm.equals(vmtype) || InternalLoadBalancerVm.equals(vmtype)) {
|
_isUsedBySystem = isUsedBySystem;
|
||||||
return true;
|
}
|
||||||
}
|
|
||||||
return false;
|
public boolean isUsedBySystem() {
|
||||||
|
return _isUsedBySystem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -211,39 +212,39 @@ public interface VirtualMachine extends RunningOn, ControlledEntity, Identity, I
|
|||||||
* reference this VM. You can build names that starts with this name and it
|
* reference this VM. You can build names that starts with this name and it
|
||||||
* guarantees uniqueness for things related to the VM.
|
* guarantees uniqueness for things related to the VM.
|
||||||
*/
|
*/
|
||||||
public String getInstanceName();
|
String getInstanceName();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the host name of the virtual machine. If the user did not
|
* @return the host name of the virtual machine. If the user did not
|
||||||
* specify the host name when creating the virtual machine then it is
|
* specify the host name when creating the virtual machine then it is
|
||||||
* defaults to the instance name.
|
* defaults to the instance name.
|
||||||
*/
|
*/
|
||||||
public String getHostName();
|
String getHostName();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the ip address of the virtual machine.
|
* @return the ip address of the virtual machine.
|
||||||
*/
|
*/
|
||||||
public String getPrivateIpAddress();
|
String getPrivateIpAddress();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return mac address.
|
* @return mac address.
|
||||||
*/
|
*/
|
||||||
public String getPrivateMacAddress();
|
String getPrivateMacAddress();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return password of the host for vnc purposes.
|
* @return password of the host for vnc purposes.
|
||||||
*/
|
*/
|
||||||
public String getVncPassword();
|
String getVncPassword();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the state of the virtual machine
|
* @return the state of the virtual machine
|
||||||
*/
|
*/
|
||||||
// public State getState();
|
// State getState();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return template id.
|
* @return template id.
|
||||||
*/
|
*/
|
||||||
public long getTemplateId();
|
long getTemplateId();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -252,49 +253,51 @@ public interface VirtualMachine extends RunningOn, ControlledEntity, Identity, I
|
|||||||
*
|
*
|
||||||
* @return guestOSId
|
* @return guestOSId
|
||||||
*/
|
*/
|
||||||
public long getGuestOSId();
|
long getGuestOSId();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return pod id.
|
* @return pod id.
|
||||||
*/
|
*/
|
||||||
public Long getPodIdToDeployIn();
|
Long getPodIdToDeployIn();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return data center id.
|
* @return data center id.
|
||||||
*/
|
*/
|
||||||
public long getDataCenterId();
|
long getDataCenterId();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return id of the host it was assigned last time.
|
* @return id of the host it was assigned last time.
|
||||||
*/
|
*/
|
||||||
public Long getLastHostId();
|
Long getLastHostId();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long getHostId();
|
Long getHostId();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return should HA be enabled for this machine?
|
* @return should HA be enabled for this machine?
|
||||||
*/
|
*/
|
||||||
public boolean isHaEnabled();
|
boolean isHaEnabled();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return should limit CPU usage to the service offering?
|
* @return should limit CPU usage to the service offering?
|
||||||
*/
|
*/
|
||||||
public boolean limitCpuUse();
|
boolean limitCpuUse();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return date when machine was created
|
* @return date when machine was created
|
||||||
*/
|
*/
|
||||||
public Date getCreated();
|
Date getCreated();
|
||||||
|
|
||||||
public long getServiceOfferingId();
|
long getServiceOfferingId();
|
||||||
|
|
||||||
public Long getDiskOfferingId();
|
Long getDiskOfferingId();
|
||||||
|
|
||||||
Type getType();
|
Type getType();
|
||||||
|
|
||||||
HypervisorType getHypervisorType();
|
HypervisorType getHypervisorType();
|
||||||
|
|
||||||
public Map<String, String> getDetails();
|
Map<String, String> getDetails();
|
||||||
|
|
||||||
|
long getUpdated();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -31,12 +31,13 @@ import com.cloud.agent.api.FenceCommand;
|
|||||||
import com.cloud.exception.AgentUnavailableException;
|
import com.cloud.exception.AgentUnavailableException;
|
||||||
import com.cloud.exception.OperationTimedoutException;
|
import com.cloud.exception.OperationTimedoutException;
|
||||||
import com.cloud.ha.FenceBuilder;
|
import com.cloud.ha.FenceBuilder;
|
||||||
|
import com.cloud.host.Host;
|
||||||
import com.cloud.host.HostVO;
|
import com.cloud.host.HostVO;
|
||||||
import com.cloud.host.Status;
|
import com.cloud.host.Status;
|
||||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||||
import com.cloud.utils.component.AdapterBase;
|
|
||||||
import com.cloud.vm.VMInstanceVO;
|
|
||||||
import com.cloud.resource.ResourceManager;
|
import com.cloud.resource.ResourceManager;
|
||||||
|
import com.cloud.utils.component.AdapterBase;
|
||||||
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
|
||||||
@Local(value=FenceBuilder.class)
|
@Local(value=FenceBuilder.class)
|
||||||
public class OvmFencer extends AdapterBase implements FenceBuilder {
|
public class OvmFencer extends AdapterBase implements FenceBuilder {
|
||||||
@ -66,7 +67,7 @@ public class OvmFencer extends AdapterBase implements FenceBuilder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean fenceOff(VMInstanceVO vm, HostVO host) {
|
public Boolean fenceOff(VirtualMachine vm, Host host) {
|
||||||
if (host.getHypervisorType() != HypervisorType.Ovm) {
|
if (host.getHypervisorType() != HypervisorType.Ovm) {
|
||||||
s_logger.debug("Don't know how to fence non Ovm hosts " + host.getHypervisorType());
|
s_logger.debug("Don't know how to fence non Ovm hosts " + host.getHypervisorType());
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@ -11,25 +11,22 @@
|
|||||||
// Unless required by applicable law or agreed to in writing,
|
// Unless required by applicable law or agreed to in writing,
|
||||||
// software distributed under the License is distributed on an
|
// software distributed under the License is distributed on an
|
||||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
// KIND, either express or implied. See the License for the
|
// KIND, either express or implied. See the License for the
|
||||||
// specific language governing permissions and limitations
|
// specific language governing permissions and limitations
|
||||||
// under the License.
|
// under the License.
|
||||||
package com.cloud.ha;
|
package com.cloud.ha;
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import javax.ejb.Local;
|
import javax.ejb.Local;
|
||||||
import javax.naming.ConfigurationException;
|
|
||||||
|
|
||||||
import com.cloud.host.HostVO;
|
import com.cloud.host.Host;
|
||||||
import com.cloud.utils.component.AdapterBase;
|
import com.cloud.utils.component.AdapterBase;
|
||||||
import com.cloud.vm.VMInstanceVO;
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
|
||||||
@Local(value=FenceBuilder.class)
|
@Local(value=FenceBuilder.class)
|
||||||
public class VmwareFencer extends AdapterBase implements FenceBuilder {
|
public class VmwareFencer extends AdapterBase implements FenceBuilder {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean fenceOff(VMInstanceVO vm, HostVO host) {
|
public Boolean fenceOff(VirtualMachine vm, Host host) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -11,18 +11,18 @@
|
|||||||
// Unless required by applicable law or agreed to in writing,
|
// Unless required by applicable law or agreed to in writing,
|
||||||
// software distributed under the License is distributed on an
|
// software distributed under the License is distributed on an
|
||||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
// KIND, either express or implied. See the License for the
|
// KIND, either express or implied. See the License for the
|
||||||
// specific language governing permissions and limitations
|
// specific language governing permissions and limitations
|
||||||
// under the License.
|
// under the License.
|
||||||
package com.cloud.ha;
|
package com.cloud.ha;
|
||||||
|
|
||||||
import javax.ejb.Local;
|
import javax.ejb.Local;
|
||||||
|
|
||||||
import com.cloud.host.HostVO;
|
import com.cloud.host.Host;
|
||||||
import com.cloud.host.Status;
|
import com.cloud.host.Status;
|
||||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||||
import com.cloud.utils.component.AdapterBase;
|
import com.cloud.utils.component.AdapterBase;
|
||||||
import com.cloud.vm.VMInstanceVO;
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
|
||||||
@Local(value=Investigator.class)
|
@Local(value=Investigator.class)
|
||||||
public class VmwareInvestigator extends AdapterBase implements Investigator {
|
public class VmwareInvestigator extends AdapterBase implements Investigator {
|
||||||
@ -30,7 +30,7 @@ public class VmwareInvestigator extends AdapterBase implements Investigator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Status isAgentAlive(HostVO agent) {
|
public Status isAgentAlive(Host agent) {
|
||||||
if(agent.getHypervisorType() == HypervisorType.VMware)
|
if(agent.getHypervisorType() == HypervisorType.VMware)
|
||||||
return Status.Disconnected;
|
return Status.Disconnected;
|
||||||
|
|
||||||
@ -38,7 +38,7 @@ public class VmwareInvestigator extends AdapterBase implements Investigator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean isVmAlive(VMInstanceVO vm, HostVO host) {
|
public Boolean isVmAlive(VirtualMachine vm, Host host) {
|
||||||
if(vm.getHypervisorType() == HypervisorType.VMware)
|
if(vm.getHypervisorType() == HypervisorType.VMware)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
|||||||
@ -11,7 +11,7 @@
|
|||||||
// Unless required by applicable law or agreed to in writing,
|
// Unless required by applicable law or agreed to in writing,
|
||||||
// software distributed under the License is distributed on an
|
// software distributed under the License is distributed on an
|
||||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
// KIND, either express or implied. See the License for the
|
// KIND, either express or implied. See the License for the
|
||||||
// specific language governing permissions and limitations
|
// specific language governing permissions and limitations
|
||||||
// under the License.
|
// under the License.
|
||||||
package com.cloud.ha;
|
package com.cloud.ha;
|
||||||
@ -31,13 +31,14 @@ import com.cloud.agent.api.FenceAnswer;
|
|||||||
import com.cloud.agent.api.FenceCommand;
|
import com.cloud.agent.api.FenceCommand;
|
||||||
import com.cloud.exception.AgentUnavailableException;
|
import com.cloud.exception.AgentUnavailableException;
|
||||||
import com.cloud.exception.OperationTimedoutException;
|
import com.cloud.exception.OperationTimedoutException;
|
||||||
|
import com.cloud.host.Host;
|
||||||
import com.cloud.host.HostVO;
|
import com.cloud.host.HostVO;
|
||||||
import com.cloud.host.Status;
|
import com.cloud.host.Status;
|
||||||
import com.cloud.host.dao.HostDao;
|
import com.cloud.host.dao.HostDao;
|
||||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||||
import com.cloud.resource.ResourceManager;
|
import com.cloud.resource.ResourceManager;
|
||||||
import com.cloud.utils.component.AdapterBase;
|
import com.cloud.utils.component.AdapterBase;
|
||||||
import com.cloud.vm.VMInstanceVO;
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
|
||||||
@Local(value=FenceBuilder.class)
|
@Local(value=FenceBuilder.class)
|
||||||
public class XenServerFencer extends AdapterBase implements FenceBuilder {
|
public class XenServerFencer extends AdapterBase implements FenceBuilder {
|
||||||
@ -49,7 +50,7 @@ public class XenServerFencer extends AdapterBase implements FenceBuilder {
|
|||||||
@Inject ResourceManager _resourceMgr;
|
@Inject ResourceManager _resourceMgr;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean fenceOff(VMInstanceVO vm, HostVO host) {
|
public Boolean fenceOff(VirtualMachine vm, Host host) {
|
||||||
if (host.getHypervisorType() != HypervisorType.XenServer) {
|
if (host.getHypervisorType() != HypervisorType.XenServer) {
|
||||||
s_logger.debug("Don't know how to fence non XenServer hosts " + host.getHypervisorType());
|
s_logger.debug("Don't know how to fence non XenServer hosts " + host.getHypervisorType());
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@ -26,10 +26,10 @@ import com.cloud.agent.api.CheckVirtualMachineAnswer;
|
|||||||
import com.cloud.agent.api.CheckVirtualMachineCommand;
|
import com.cloud.agent.api.CheckVirtualMachineCommand;
|
||||||
import com.cloud.exception.AgentUnavailableException;
|
import com.cloud.exception.AgentUnavailableException;
|
||||||
import com.cloud.exception.OperationTimedoutException;
|
import com.cloud.exception.OperationTimedoutException;
|
||||||
import com.cloud.host.HostVO;
|
import com.cloud.host.Host;
|
||||||
import com.cloud.host.Status;
|
import com.cloud.host.Status;
|
||||||
import com.cloud.utils.component.AdapterBase;
|
import com.cloud.utils.component.AdapterBase;
|
||||||
import com.cloud.vm.VMInstanceVO;
|
import com.cloud.vm.VirtualMachine;
|
||||||
import com.cloud.vm.VirtualMachine.State;
|
import com.cloud.vm.VirtualMachine.State;
|
||||||
|
|
||||||
@Local(value=Investigator.class)
|
@Local(value=Investigator.class)
|
||||||
@ -42,12 +42,12 @@ public class CheckOnAgentInvestigator extends AdapterBase implements Investigato
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Status isAgentAlive(HostVO agent) {
|
public Status isAgentAlive(Host agent) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean isVmAlive(VMInstanceVO vm, HostVO host) {
|
public Boolean isVmAlive(VirtualMachine vm, Host host) {
|
||||||
CheckVirtualMachineCommand cmd = new CheckVirtualMachineCommand(vm.getInstanceName());
|
CheckVirtualMachineCommand cmd = new CheckVirtualMachineCommand(vm.getInstanceName());
|
||||||
try {
|
try {
|
||||||
CheckVirtualMachineAnswer answer = (CheckVirtualMachineAnswer)_agentMgr.send(vm.getHostId(), cmd);
|
CheckVirtualMachineAnswer answer = (CheckVirtualMachineAnswer)_agentMgr.send(vm.getHostId(), cmd);
|
||||||
|
|||||||
@ -388,7 +388,7 @@ public class HighAvailabilityManagerImpl extends ManagerBase implements HighAvai
|
|||||||
|
|
||||||
long vmId = work.getInstanceId();
|
long vmId = work.getInstanceId();
|
||||||
|
|
||||||
VMInstanceVO vm = _itMgr.findByIdAndType(work.getType(), work.getInstanceId());
|
VirtualMachine vm = _itMgr.findById(work.getInstanceId());
|
||||||
if (vm == null) {
|
if (vm == null) {
|
||||||
s_logger.info("Unable to find vm: " + vmId);
|
s_logger.info("Unable to find vm: " + vmId);
|
||||||
return null;
|
return null;
|
||||||
@ -506,7 +506,7 @@ public class HighAvailabilityManagerImpl extends ManagerBase implements HighAvai
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
vm = _itMgr.findByIdAndType(vm.getType(), vm.getId());
|
vm = _itMgr.findById(vm.getId());
|
||||||
|
|
||||||
if (!_forceHA && !vm.isHaEnabled()) {
|
if (!_forceHA && !vm.isHaEnabled()) {
|
||||||
if (s_logger.isDebugEnabled()) {
|
if (s_logger.isDebugEnabled()) {
|
||||||
@ -560,7 +560,7 @@ public class HighAvailabilityManagerImpl extends ManagerBase implements HighAvai
|
|||||||
_alertMgr.sendAlert(alertType, vm.getDataCenterId(), vm.getPodIdToDeployIn(), "Unable to restart " + vm.getHostName() + " which was running on host " + hostDesc,
|
_alertMgr.sendAlert(alertType, vm.getDataCenterId(), vm.getPodIdToDeployIn(), "Unable to restart " + vm.getHostName() + " which was running on host " + hostDesc,
|
||||||
"The Storage is unavailable for trying to restart VM, name: " + vm.getHostName() + ", id: " + vmId + " which was running on host " + hostDesc);
|
"The Storage is unavailable for trying to restart VM, name: " + vm.getHostName() + ", id: " + vmId + " which was running on host " + hostDesc);
|
||||||
}
|
}
|
||||||
vm = _itMgr.findByIdAndType(vm.getType(), vm.getId());
|
vm = _itMgr.findById(vm.getId());
|
||||||
work.setUpdateTime(vm.getUpdated());
|
work.setUpdateTime(vm.getUpdated());
|
||||||
work.setPreviousState(vm.getState());
|
work.setPreviousState(vm.getState());
|
||||||
return (System.currentTimeMillis() >> 10) + _restartRetryInterval;
|
return (System.currentTimeMillis() >> 10) + _restartRetryInterval;
|
||||||
@ -606,7 +606,7 @@ public class HighAvailabilityManagerImpl extends ManagerBase implements HighAvai
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected Long destroyVM(HaWorkVO work) {
|
protected Long destroyVM(HaWorkVO work) {
|
||||||
final VMInstanceVO vm = _itMgr.findByIdAndType(work.getType(), work.getInstanceId());
|
final VirtualMachine vm = _itMgr.findById(work.getInstanceId());
|
||||||
s_logger.info("Destroying " + vm.toString());
|
s_logger.info("Destroying " + vm.toString());
|
||||||
try {
|
try {
|
||||||
if (vm.getState() != State.Destroyed) {
|
if (vm.getState() != State.Destroyed) {
|
||||||
@ -639,7 +639,7 @@ public class HighAvailabilityManagerImpl extends ManagerBase implements HighAvai
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected Long stopVM(final HaWorkVO work) throws ConcurrentOperationException {
|
protected Long stopVM(final HaWorkVO work) throws ConcurrentOperationException {
|
||||||
VMInstanceVO vm = _itMgr.findByIdAndType(work.getType(), work.getInstanceId());
|
VirtualMachine vm = _itMgr.findById(work.getInstanceId());
|
||||||
if (vm == null) {
|
if (vm == null) {
|
||||||
s_logger.info("No longer can find VM " + work.getInstanceId() + ". Throwing away " + work);
|
s_logger.info("No longer can find VM " + work.getInstanceId() + ". Throwing away " + work);
|
||||||
work.setStep(Step.Done);
|
work.setStep(Step.Done);
|
||||||
|
|||||||
@ -17,7 +17,6 @@
|
|||||||
package com.cloud.ha;
|
package com.cloud.ha;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.ejb.Local;
|
import javax.ejb.Local;
|
||||||
@ -31,13 +30,14 @@ import com.cloud.agent.api.FenceAnswer;
|
|||||||
import com.cloud.agent.api.FenceCommand;
|
import com.cloud.agent.api.FenceCommand;
|
||||||
import com.cloud.exception.AgentUnavailableException;
|
import com.cloud.exception.AgentUnavailableException;
|
||||||
import com.cloud.exception.OperationTimedoutException;
|
import com.cloud.exception.OperationTimedoutException;
|
||||||
|
import com.cloud.host.Host;
|
||||||
import com.cloud.host.HostVO;
|
import com.cloud.host.HostVO;
|
||||||
import com.cloud.host.Status;
|
import com.cloud.host.Status;
|
||||||
import com.cloud.host.dao.HostDao;
|
import com.cloud.host.dao.HostDao;
|
||||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||||
import com.cloud.resource.ResourceManager;
|
import com.cloud.resource.ResourceManager;
|
||||||
import com.cloud.utils.component.AdapterBase;
|
import com.cloud.utils.component.AdapterBase;
|
||||||
import com.cloud.vm.VMInstanceVO;
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
|
||||||
@Local(value=FenceBuilder.class)
|
@Local(value=FenceBuilder.class)
|
||||||
public class KVMFencer extends AdapterBase implements FenceBuilder {
|
public class KVMFencer extends AdapterBase implements FenceBuilder {
|
||||||
@ -70,7 +70,7 @@ public class KVMFencer extends AdapterBase implements FenceBuilder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean fenceOff(VMInstanceVO vm, HostVO host) {
|
public Boolean fenceOff(VirtualMachine vm, Host host) {
|
||||||
if (host.getHypervisorType() != HypervisorType.KVM) {
|
if (host.getHypervisorType() != HypervisorType.KVM) {
|
||||||
s_logger.debug("Don't know how to fence non kvm hosts " + host.getHypervisorType());
|
s_logger.debug("Don't know how to fence non kvm hosts " + host.getHypervisorType());
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@ -25,13 +25,13 @@ import javax.naming.ConfigurationException;
|
|||||||
|
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
|
import com.cloud.host.Host;
|
||||||
import com.cloud.host.HostVO;
|
import com.cloud.host.HostVO;
|
||||||
import com.cloud.host.Status;
|
import com.cloud.host.Status;
|
||||||
import com.cloud.host.dao.HostDao;
|
import com.cloud.host.dao.HostDao;
|
||||||
import com.cloud.network.NetworkModel;
|
import com.cloud.network.NetworkModel;
|
||||||
import com.cloud.network.Networks.TrafficType;
|
import com.cloud.network.Networks.TrafficType;
|
||||||
import com.cloud.vm.Nic;
|
import com.cloud.vm.Nic;
|
||||||
import com.cloud.vm.VMInstanceVO;
|
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
|
||||||
@Local(value={Investigator.class})
|
@Local(value={Investigator.class})
|
||||||
@ -39,13 +39,13 @@ public class ManagementIPSystemVMInvestigator extends AbstractInvestigatorImpl {
|
|||||||
private static final Logger s_logger = Logger.getLogger(ManagementIPSystemVMInvestigator.class);
|
private static final Logger s_logger = Logger.getLogger(ManagementIPSystemVMInvestigator.class);
|
||||||
|
|
||||||
private String _name = null;
|
private String _name = null;
|
||||||
@Inject private HostDao _hostDao = null;
|
@Inject private final HostDao _hostDao = null;
|
||||||
@Inject private NetworkModel _networkMgr = null;
|
@Inject private final NetworkModel _networkMgr = null;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean isVmAlive(VMInstanceVO vm, HostVO host) {
|
public Boolean isVmAlive(VirtualMachine vm, Host host) {
|
||||||
if (!VirtualMachine.Type.isSystemVM(vm.getType())) {
|
if (!vm.getType().isUsedBySystem()) {
|
||||||
s_logger.debug("Not a System Vm, unable to determine state of " + vm + " returning null");
|
s_logger.debug("Not a System Vm, unable to determine state of " + vm + " returning null");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -110,7 +110,7 @@ public class ManagementIPSystemVMInvestigator extends AbstractInvestigatorImpl {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Status isAgentAlive(HostVO agent) {
|
public Status isAgentAlive(Host agent) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -21,15 +21,15 @@ import java.util.List;
|
|||||||
import javax.ejb.Local;
|
import javax.ejb.Local;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
|
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import com.cloud.host.HostVO;
|
import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
|
||||||
|
|
||||||
|
import com.cloud.host.Host;
|
||||||
import com.cloud.storage.VolumeVO;
|
import com.cloud.storage.VolumeVO;
|
||||||
import com.cloud.storage.dao.VolumeDao;
|
import com.cloud.storage.dao.VolumeDao;
|
||||||
import com.cloud.utils.component.AdapterBase;
|
import com.cloud.utils.component.AdapterBase;
|
||||||
import com.cloud.vm.VMInstanceVO;
|
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@ -44,7 +44,7 @@ public class RecreatableFencer extends AdapterBase implements FenceBuilder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean fenceOff(VMInstanceVO vm, HostVO host) {
|
public Boolean fenceOff(VirtualMachine vm, Host host) {
|
||||||
VirtualMachine.Type type = vm.getType();
|
VirtualMachine.Type type = vm.getType();
|
||||||
if (type != VirtualMachine.Type.ConsoleProxy && type != VirtualMachine.Type.DomainRouter && type != VirtualMachine.Type.SecondaryStorageVm) {
|
if (type != VirtualMachine.Type.ConsoleProxy && type != VirtualMachine.Type.DomainRouter && type != VirtualMachine.Type.SecondaryStorageVm) {
|
||||||
if (s_logger.isDebugEnabled()) {
|
if (s_logger.isDebugEnabled()) {
|
||||||
|
|||||||
@ -29,7 +29,7 @@ import org.apache.log4j.Logger;
|
|||||||
import com.cloud.agent.AgentManager;
|
import com.cloud.agent.AgentManager;
|
||||||
import com.cloud.agent.api.Answer;
|
import com.cloud.agent.api.Answer;
|
||||||
import com.cloud.agent.api.PingTestCommand;
|
import com.cloud.agent.api.PingTestCommand;
|
||||||
import com.cloud.host.HostVO;
|
import com.cloud.host.Host;
|
||||||
import com.cloud.host.Status;
|
import com.cloud.host.Status;
|
||||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||||
import com.cloud.network.NetworkModel;
|
import com.cloud.network.NetworkModel;
|
||||||
@ -38,7 +38,6 @@ import com.cloud.network.router.VirtualRouter;
|
|||||||
import com.cloud.network.router.VpcVirtualNetworkApplianceManager;
|
import com.cloud.network.router.VpcVirtualNetworkApplianceManager;
|
||||||
import com.cloud.vm.Nic;
|
import com.cloud.vm.Nic;
|
||||||
import com.cloud.vm.UserVmVO;
|
import com.cloud.vm.UserVmVO;
|
||||||
import com.cloud.vm.VMInstanceVO;
|
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
import com.cloud.vm.dao.UserVmDao;
|
import com.cloud.vm.dao.UserVmDao;
|
||||||
|
|
||||||
@ -53,7 +52,7 @@ public class UserVmDomRInvestigator extends AbstractInvestigatorImpl {
|
|||||||
@Inject private final VpcVirtualNetworkApplianceManager _vnaMgr = null;
|
@Inject private final VpcVirtualNetworkApplianceManager _vnaMgr = null;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean isVmAlive(VMInstanceVO vm, HostVO host) {
|
public Boolean isVmAlive(VirtualMachine vm, Host host) {
|
||||||
if (vm.getType() != VirtualMachine.Type.User) {
|
if (vm.getType() != VirtualMachine.Type.User) {
|
||||||
if (s_logger.isDebugEnabled()) {
|
if (s_logger.isDebugEnabled()) {
|
||||||
s_logger.debug("Not a User Vm, unable to determine state of " + vm + " returning null");
|
s_logger.debug("Not a User Vm, unable to determine state of " + vm + " returning null");
|
||||||
@ -104,7 +103,7 @@ public class UserVmDomRInvestigator extends AbstractInvestigatorImpl {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Status isAgentAlive(HostVO agent) {
|
public Status isAgentAlive(Host agent) {
|
||||||
if (s_logger.isDebugEnabled()) {
|
if (s_logger.isDebugEnabled()) {
|
||||||
s_logger.debug("checking if agent (" + agent.getId() + ") is alive");
|
s_logger.debug("checking if agent (" + agent.getId() + ") is alive");
|
||||||
}
|
}
|
||||||
@ -166,7 +165,7 @@ public class UserVmDomRInvestigator extends AbstractInvestigatorImpl {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Boolean testUserVM(VMInstanceVO vm, Nic nic, VirtualRouter router) {
|
private Boolean testUserVM(VirtualMachine vm, Nic nic, VirtualRouter router) {
|
||||||
String privateIp = nic.getIp4Address();
|
String privateIp = nic.getIp4Address();
|
||||||
String routerPrivateIp = router.getPrivateIpAddress();
|
String routerPrivateIp = router.getPrivateIpAddress();
|
||||||
|
|
||||||
|
|||||||
@ -23,17 +23,18 @@ import javax.inject.Inject;
|
|||||||
|
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
|
import com.cloud.agent.AgentManager;
|
||||||
import com.cloud.agent.api.Answer;
|
import com.cloud.agent.api.Answer;
|
||||||
import com.cloud.agent.api.CheckOnHostAnswer;
|
import com.cloud.agent.api.CheckOnHostAnswer;
|
||||||
import com.cloud.agent.api.CheckOnHostCommand;
|
import com.cloud.agent.api.CheckOnHostCommand;
|
||||||
import com.cloud.agent.AgentManager;
|
import com.cloud.host.Host;
|
||||||
import com.cloud.host.HostVO;
|
import com.cloud.host.HostVO;
|
||||||
import com.cloud.host.Status;
|
import com.cloud.host.Status;
|
||||||
import com.cloud.host.dao.HostDao;
|
import com.cloud.host.dao.HostDao;
|
||||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||||
import com.cloud.resource.ResourceManager;
|
import com.cloud.resource.ResourceManager;
|
||||||
import com.cloud.utils.component.AdapterBase;
|
import com.cloud.utils.component.AdapterBase;
|
||||||
import com.cloud.vm.VMInstanceVO;
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
|
||||||
@Local(value=Investigator.class)
|
@Local(value=Investigator.class)
|
||||||
public class XenServerInvestigator extends AdapterBase implements Investigator {
|
public class XenServerInvestigator extends AdapterBase implements Investigator {
|
||||||
@ -46,7 +47,7 @@ public class XenServerInvestigator extends AdapterBase implements Investigator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Status isAgentAlive(HostVO agent) {
|
public Status isAgentAlive(Host agent) {
|
||||||
if (agent.getHypervisorType() != HypervisorType.XenServer) {
|
if (agent.getHypervisorType() != HypervisorType.XenServer) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -72,7 +73,7 @@ public class XenServerInvestigator extends AdapterBase implements Investigator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean isVmAlive(VMInstanceVO vm, HostVO host) {
|
public Boolean isVmAlive(VirtualMachine vm, Host host) {
|
||||||
Status status = isAgentAlive(host);
|
Status status = isAgentAlive(host);
|
||||||
if (status == null) {
|
if (status == null) {
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@ -35,12 +35,16 @@ import javax.servlet.http.HttpServletRequest;
|
|||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import javax.servlet.http.HttpSession;
|
import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
import org.apache.cloudstack.api.IdentityService;
|
|
||||||
import org.apache.commons.codec.binary.Base64;
|
import org.apache.commons.codec.binary.Base64;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.web.context.support.SpringBeanAutowiringSupport;
|
import org.springframework.web.context.support.SpringBeanAutowiringSupport;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import com.google.gson.GsonBuilder;
|
||||||
|
|
||||||
|
import org.apache.cloudstack.api.IdentityService;
|
||||||
|
|
||||||
import com.cloud.exception.PermissionDeniedException;
|
import com.cloud.exception.PermissionDeniedException;
|
||||||
import com.cloud.host.HostVO;
|
import com.cloud.host.HostVO;
|
||||||
import com.cloud.server.ManagementServer;
|
import com.cloud.server.ManagementServer;
|
||||||
@ -51,12 +55,10 @@ import com.cloud.user.User;
|
|||||||
import com.cloud.uservm.UserVm;
|
import com.cloud.uservm.UserVm;
|
||||||
import com.cloud.utils.Pair;
|
import com.cloud.utils.Pair;
|
||||||
import com.cloud.utils.Ternary;
|
import com.cloud.utils.Ternary;
|
||||||
|
import com.cloud.utils.db.EntityManager;
|
||||||
import com.cloud.utils.db.Transaction;
|
import com.cloud.utils.db.Transaction;
|
||||||
import com.cloud.vm.VMInstanceVO;
|
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
import com.cloud.vm.VirtualMachineManager;
|
import com.cloud.vm.VirtualMachineManager;
|
||||||
import com.google.gson.Gson;
|
|
||||||
import com.google.gson.GsonBuilder;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Thumbnail access : /console?cmd=thumbnail&vm=xxx&w=xxx&h=xxx
|
* Thumbnail access : /console?cmd=thumbnail&vm=xxx&w=xxx&h=xxx
|
||||||
@ -74,10 +76,12 @@ public class ConsoleProxyServlet extends HttpServlet {
|
|||||||
@Inject VirtualMachineManager _vmMgr;
|
@Inject VirtualMachineManager _vmMgr;
|
||||||
@Inject ManagementServer _ms;
|
@Inject ManagementServer _ms;
|
||||||
@Inject IdentityService _identityService;
|
@Inject IdentityService _identityService;
|
||||||
|
@Inject
|
||||||
|
EntityManager _entityMgr;
|
||||||
|
|
||||||
static ManagementServer s_ms;
|
static ManagementServer s_ms;
|
||||||
|
|
||||||
private Gson _gson = new GsonBuilder().create();
|
private final Gson _gson = new GsonBuilder().create();
|
||||||
|
|
||||||
public ConsoleProxyServlet() {
|
public ConsoleProxyServlet() {
|
||||||
}
|
}
|
||||||
@ -179,7 +183,7 @@ public class ConsoleProxyServlet extends HttpServlet {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void handleThumbnailRequest(HttpServletRequest req, HttpServletResponse resp, long vmId) {
|
private void handleThumbnailRequest(HttpServletRequest req, HttpServletResponse resp, long vmId) {
|
||||||
VMInstanceVO vm = _vmMgr.findById(vmId);
|
VirtualMachine vm = _vmMgr.findById(vmId);
|
||||||
if(vm == null) {
|
if(vm == null) {
|
||||||
s_logger.warn("VM " + vmId + " does not exist, sending blank response for thumbnail request");
|
s_logger.warn("VM " + vmId + " does not exist, sending blank response for thumbnail request");
|
||||||
sendResponse(resp, "");
|
sendResponse(resp, "");
|
||||||
@ -230,7 +234,7 @@ public class ConsoleProxyServlet extends HttpServlet {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void handleAccessRequest(HttpServletRequest req, HttpServletResponse resp, long vmId) {
|
private void handleAccessRequest(HttpServletRequest req, HttpServletResponse resp, long vmId) {
|
||||||
VMInstanceVO vm = _vmMgr.findById(vmId);
|
VirtualMachine vm = _vmMgr.findById(vmId);
|
||||||
if(vm == null) {
|
if(vm == null) {
|
||||||
s_logger.warn("VM " + vmId + " does not exist, sending blank response for console access request");
|
s_logger.warn("VM " + vmId + " does not exist, sending blank response for console access request");
|
||||||
sendResponse(resp, "");
|
sendResponse(resp, "");
|
||||||
@ -258,7 +262,7 @@ public class ConsoleProxyServlet extends HttpServlet {
|
|||||||
|
|
||||||
String vmName = vm.getHostName();
|
String vmName = vm.getHostName();
|
||||||
if(vm.getType() == VirtualMachine.Type.User) {
|
if(vm.getType() == VirtualMachine.Type.User) {
|
||||||
UserVm userVm = (UserVm)_vmMgr.findByIdAndType(VirtualMachine.Type.User, vmId);
|
UserVm userVm = _entityMgr.findById(UserVm.class, vmId);
|
||||||
String displayName = userVm.getDisplayName();
|
String displayName = userVm.getDisplayName();
|
||||||
if(displayName != null && !displayName.isEmpty() && !displayName.equals(vmName)) {
|
if(displayName != null && !displayName.isEmpty() && !displayName.equals(vmName)) {
|
||||||
vmName += "(" + displayName + ")";
|
vmName += "(" + displayName + ")";
|
||||||
@ -276,7 +280,7 @@ public class ConsoleProxyServlet extends HttpServlet {
|
|||||||
|
|
||||||
// TODO authentication channel between console proxy VM and management server needs to be secured,
|
// TODO authentication channel between console proxy VM and management server needs to be secured,
|
||||||
// the data is now being sent through private network, but this is apparently not enough
|
// the data is now being sent through private network, but this is apparently not enough
|
||||||
VMInstanceVO vm = _vmMgr.findById(vmId);
|
VirtualMachine vm = _vmMgr.findById(vmId);
|
||||||
if(vm == null) {
|
if(vm == null) {
|
||||||
s_logger.warn("VM " + vmId + " does not exist, sending failed response for authentication request from console proxy");
|
s_logger.warn("VM " + vmId + " does not exist, sending failed response for authentication request from console proxy");
|
||||||
sendResponse(resp, "failed");
|
sendResponse(resp, "failed");
|
||||||
@ -339,7 +343,7 @@ public class ConsoleProxyServlet extends HttpServlet {
|
|||||||
return _gson.toJson(keyIvPair);
|
return _gson.toJson(keyIvPair);
|
||||||
}
|
}
|
||||||
|
|
||||||
private String composeThumbnailUrl(String rootUrl, VMInstanceVO vm, HostVO hostVo, int w, int h) {
|
private String composeThumbnailUrl(String rootUrl, VirtualMachine vm, HostVO hostVo, int w, int h) {
|
||||||
StringBuffer sb = new StringBuffer(rootUrl);
|
StringBuffer sb = new StringBuffer(rootUrl);
|
||||||
|
|
||||||
String host = hostVo.getPrivateIpAddress();
|
String host = hostVo.getPrivateIpAddress();
|
||||||
@ -374,7 +378,7 @@ public class ConsoleProxyServlet extends HttpServlet {
|
|||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private String composeConsoleAccessUrl(String rootUrl, VMInstanceVO vm, HostVO hostVo) {
|
private String composeConsoleAccessUrl(String rootUrl, VirtualMachine vm, HostVO hostVo) {
|
||||||
StringBuffer sb = new StringBuffer(rootUrl);
|
StringBuffer sb = new StringBuffer(rootUrl);
|
||||||
String host = hostVo.getPrivateIpAddress();
|
String host = hostVo.getPrivateIpAddress();
|
||||||
|
|
||||||
@ -454,7 +458,7 @@ public class ConsoleProxyServlet extends HttpServlet {
|
|||||||
|
|
||||||
private boolean checkSessionPermision(HttpServletRequest req, long vmId, Account accountObj) {
|
private boolean checkSessionPermision(HttpServletRequest req, long vmId, Account accountObj) {
|
||||||
|
|
||||||
VMInstanceVO vm = _vmMgr.findById(vmId);
|
VirtualMachine vm = _vmMgr.findById(vmId);
|
||||||
if(vm == null) {
|
if(vm == null) {
|
||||||
s_logger.debug("Console/thumbnail access denied. VM " + vmId + " does not exist in system any more");
|
s_logger.debug("Console/thumbnail access denied. VM " + vmId + " does not exist in system any more");
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@ -4201,9 +4201,8 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
|||||||
|
|
||||||
txn.commit();
|
txn.commit();
|
||||||
|
|
||||||
VMInstanceVO vmoi = _itMgr.findByIdAndType(vm.getType(), vm.getId());
|
VirtualMachine vmoi = _itMgr.findById(vm.getId());
|
||||||
VirtualMachineProfileImpl vmOldProfile = new VirtualMachineProfileImpl(
|
VirtualMachineProfileImpl vmOldProfile = new VirtualMachineProfileImpl(vmoi);
|
||||||
vmoi);
|
|
||||||
|
|
||||||
// OS 3: update the network
|
// OS 3: update the network
|
||||||
List<Long> networkIdList = cmd.getNetworkIds();
|
List<Long> networkIdList = cmd.getNetworkIds();
|
||||||
@ -4279,9 +4278,8 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
|||||||
networks.add(new Pair<NetworkVO, NicProfile>(networkList.get(0),
|
networks.add(new Pair<NetworkVO, NicProfile>(networkList.get(0),
|
||||||
profile));
|
profile));
|
||||||
|
|
||||||
VMInstanceVO vmi = _itMgr.findByIdAndType(vm.getType(), vm.getId());
|
VirtualMachine vmi = _itMgr.findById(vm.getId());
|
||||||
VirtualMachineProfileImpl vmProfile = new VirtualMachineProfileImpl(
|
VirtualMachineProfileImpl vmProfile = new VirtualMachineProfileImpl(vmi);
|
||||||
vmi);
|
|
||||||
_networkMgr.allocate(vmProfile, networks);
|
_networkMgr.allocate(vmProfile, networks);
|
||||||
|
|
||||||
_securityGroupMgr.addInstanceToGroups(vm.getId(),
|
_securityGroupMgr.addInstanceToGroups(vm.getId(),
|
||||||
@ -4413,10 +4411,8 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
|||||||
networks.add(new Pair<NetworkVO, NicProfile>(appNet,
|
networks.add(new Pair<NetworkVO, NicProfile>(appNet,
|
||||||
defaultNic));
|
defaultNic));
|
||||||
}
|
}
|
||||||
VMInstanceVO vmi = _itMgr.findByIdAndType(vm.getType(),
|
VirtualMachine vmi = _itMgr.findById(vm.getId());
|
||||||
vm.getId());
|
VirtualMachineProfileImpl vmProfile = new VirtualMachineProfileImpl(vmi);
|
||||||
VirtualMachineProfileImpl vmProfile = new VirtualMachineProfileImpl(
|
|
||||||
vmi);
|
|
||||||
_networkMgr.allocate(vmProfile, networks);
|
_networkMgr.allocate(vmProfile, networks);
|
||||||
s_logger.debug("AssignVM: Advance virtual, adding networks no "
|
s_logger.debug("AssignVM: Advance virtual, adding networks no "
|
||||||
+ networks.size() + " to " + vm.getInstanceName());
|
+ networks.size() + " to " + vm.getInstanceName());
|
||||||
|
|||||||
@ -108,8 +108,6 @@ public interface VirtualMachineManager extends Manager {
|
|||||||
|
|
||||||
<T extends VMInstanceVO> T advanceReboot(T vm, Map<VirtualMachineProfile.Param, Object> params, User caller, Account account) throws InsufficientCapacityException, ResourceUnavailableException, ConcurrentOperationException, OperationTimedoutException;
|
<T extends VMInstanceVO> T advanceReboot(T vm, Map<VirtualMachineProfile.Param, Object> params, User caller, Account account) throws InsufficientCapacityException, ResourceUnavailableException, ConcurrentOperationException, OperationTimedoutException;
|
||||||
|
|
||||||
VMInstanceVO findByIdAndType(VirtualMachine.Type type, long vmId);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check to see if a virtual machine can be upgraded to the given service offering
|
* Check to see if a virtual machine can be upgraded to the given service offering
|
||||||
*
|
*
|
||||||
@ -119,7 +117,7 @@ public interface VirtualMachineManager extends Manager {
|
|||||||
*/
|
*/
|
||||||
boolean isVirtualMachineUpgradable(final VirtualMachine vm, final ServiceOffering offering);
|
boolean isVirtualMachineUpgradable(final VirtualMachine vm, final ServiceOffering offering);
|
||||||
|
|
||||||
VMInstanceVO findById(long vmId);
|
VirtualMachine findById(long vmId);
|
||||||
|
|
||||||
<T extends VMInstanceVO> T storageMigration(T vm, StoragePool storagePoolId);
|
<T extends VMInstanceVO> T storageMigration(T vm, StoragePool storagePoolId);
|
||||||
|
|
||||||
|
|||||||
@ -2017,11 +2017,6 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
return rebootedVm;
|
return rebootedVm;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public VMInstanceVO findByIdAndType(VirtualMachine.Type type, long vmId) {
|
|
||||||
return _vmDao.findById(vmId);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Command cleanup(VirtualMachine vm) {
|
public Command cleanup(VirtualMachine vm) {
|
||||||
return new StopCommand(vm, _mgmtServer.getExecuteInSequence());
|
return new StopCommand(vm, _mgmtServer.getExecuteInSequence());
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user