You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bh...@apache.org on 2015/04/02 20:22:47 UTC
[06/39] git commit: updated refs/heads/master to 3e28747
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/30e72e4a/plugins/hypervisors/xenserver/src/org/apache/cloudstack/hypervisor/xenserver/XenServerResourceNewBase.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/xenserver/src/org/apache/cloudstack/hypervisor/xenserver/XenServerResourceNewBase.java b/plugins/hypervisors/xenserver/src/org/apache/cloudstack/hypervisor/xenserver/XenServerResourceNewBase.java
index 161a7b2..4971eb3 100644
--- a/plugins/hypervisors/xenserver/src/org/apache/cloudstack/hypervisor/xenserver/XenServerResourceNewBase.java
+++ b/plugins/hypervisors/xenserver/src/org/apache/cloudstack/hypervisor/xenserver/XenServerResourceNewBase.java
@@ -25,6 +25,11 @@ import java.util.concurrent.TimeoutException;
import org.apache.log4j.Logger;
import org.apache.xmlrpc.XmlRpcException;
+import com.cloud.agent.api.StartupCommand;
+import com.cloud.hypervisor.xenserver.resource.XenServer620SP1Resource;
+import com.cloud.utils.Pair;
+import com.cloud.utils.exception.CloudRuntimeException;
+import com.cloud.vm.VirtualMachine;
import com.xensource.xenapi.Connection;
import com.xensource.xenapi.Event;
import com.xensource.xenapi.EventBatch;
@@ -35,12 +40,6 @@ import com.xensource.xenapi.Types;
import com.xensource.xenapi.Types.XenAPIException;
import com.xensource.xenapi.VM;
-import com.cloud.agent.api.StartupCommand;
-import com.cloud.hypervisor.xenserver.resource.XenServer620SP1Resource;
-import com.cloud.utils.Pair;
-import com.cloud.utils.exception.CloudRuntimeException;
-import com.cloud.vm.VirtualMachine;
-
/**
*
* XenServerResourceNewBase is an abstract base class that encapsulates how
@@ -67,16 +66,16 @@ public class XenServerResourceNewBase extends XenServer620SP1Resource {
@Override
public StartupCommand[] initialize() throws IllegalArgumentException {
- StartupCommand[] cmds = super.initialize();
+ final StartupCommand[] cmds = super.initialize();
- Connection conn = getConnection();
+ final Connection conn = getConnection();
Pool pool;
try {
- pool = Pool.getByUuid(conn, _host.pool);
- Pool.Record poolr = pool.getRecord(conn);
+ pool = Pool.getByUuid(conn, _host.getPool());
+ final Pool.Record poolr = pool.getRecord(conn);
- Host.Record masterRecord = poolr.master.getRecord(conn);
- if (_host.uuid.equals(masterRecord.uuid)) {
+ final Host.Record masterRecord = poolr.master.getRecord(conn);
+ if (_host.getUuid().equals(masterRecord.uuid)) {
_listener = new VmEventListener(true);
//
@@ -87,36 +86,37 @@ public class XenServerResourceNewBase extends XenServer620SP1Resource {
} else {
_listener = new VmEventListener(false);
}
- } catch (XenAPIException e) {
+ } catch (final XenAPIException e) {
throw new CloudRuntimeException("Unable to determine who is the master", e);
- } catch (XmlRpcException e) {
+ } catch (final XmlRpcException e) {
throw new CloudRuntimeException("Unable to determine who is the master", e);
}
return cmds;
}
- protected void waitForTask2(Connection c, Task task, long pollInterval, long timeout) throws XenAPIException, XmlRpcException, TimeoutException {
- long beginTime = System.currentTimeMillis();
+ protected void waitForTask2(final Connection c, final Task task, final long pollInterval, final long timeout) throws XenAPIException, XmlRpcException, TimeoutException {
+ final long beginTime = System.currentTimeMillis();
if (s_logger.isTraceEnabled()) {
s_logger.trace("Task " + task.getNameLabel(c) + " (" + task.getType(c) + ") sent to " + c.getSessionReference() + " is pending completion with a " + timeout +
- "ms timeout");
+ "ms timeout");
}
- Set<String> classes = new HashSet<String>();
+ final Set<String> classes = new HashSet<String>();
classes.add("Task/" + task.toWireString());
String token = "";
- Double t = new Double(timeout / 1000);
+ final Double t = new Double(timeout / 1000);
while (true) {
- EventBatch map = Event.from(c, classes, token, t);
+ final EventBatch map = Event.from(c, classes, token, t);
token = map.token;
@SuppressWarnings("unchecked")
+ final
Set<Event.Record> events = map.events;
if (events.size() == 0) {
- String msg = "No event for task " + task.toWireString();
+ final String msg = "No event for task " + task.toWireString();
s_logger.warn(msg);
task.cancel(c);
throw new TimeoutException(msg);
}
- for (Event.Record rec : events) {
+ for (final Event.Record rec : events) {
if (!(rec.snapshot instanceof Task.Record)) {
if (s_logger.isDebugEnabled()) {
s_logger.debug("Skipping over " + rec);
@@ -124,7 +124,7 @@ public class XenServerResourceNewBase extends XenServer620SP1Resource {
continue;
}
- Task.Record taskRecord = (Task.Record)rec.snapshot;
+ final Task.Record taskRecord = (Task.Record)rec.snapshot;
if (taskRecord.status != Types.TaskStatusType.PENDING) {
if (s_logger.isDebugEnabled()) {
@@ -139,7 +139,7 @@ public class XenServerResourceNewBase extends XenServer620SP1Resource {
}
}
if (System.currentTimeMillis() - beginTime > timeout) {
- String msg = "Async " + timeout / 1000 + " seconds timeout for task " + task.toString();
+ final String msg = "Async " + timeout / 1000 + " seconds timeout for task " + task.toString();
s_logger.warn(msg);
task.cancel(c);
throw new TimeoutException(msg);
@@ -155,7 +155,7 @@ public class XenServerResourceNewBase extends XenServer620SP1Resource {
Set<String> _classes;
String _token = "";
- public VmEventListener(boolean isMaster) {
+ public VmEventListener(final boolean isMaster) {
_isMaster = isMaster;
_classes = new HashSet<String>();
_classes.add("VM");
@@ -163,22 +163,23 @@ public class XenServerResourceNewBase extends XenServer620SP1Resource {
@Override
public void run() {
- setName("XS-Listener-" + _host.ip);
+ setName("XS-Listener-" + _host.getIp());
while (!_stop) {
try {
- Connection conn = getConnection();
+ final Connection conn = getConnection();
EventBatch results;
try {
results = Event.from(conn, _classes, _token, new Double(30));
- } catch (Exception e) {
+ } catch (final Exception e) {
s_logger.error("Retrying the waiting on VM events due to: ", e);
continue;
}
_token = results.token;
@SuppressWarnings("unchecked")
+ final
Set<Event.Record> events = results.events;
- for (Event.Record event : events) {
+ for (final Event.Record event : events) {
try {
if (!(event.snapshot instanceof VM.Record)) {
if (s_logger.isDebugEnabled()) {
@@ -186,24 +187,24 @@ public class XenServerResourceNewBase extends XenServer620SP1Resource {
}
continue;
}
- VM.Record vm = (VM.Record)event.snapshot;
+ final VM.Record vm = (VM.Record)event.snapshot;
String hostUuid = null;
if (vm.residentOn != null && !vm.residentOn.toWireString().contains("OpaqueRef:NULL")) {
hostUuid = vm.residentOn.getUuid(conn);
}
recordChanges(conn, vm, hostUuid);
- } catch (Exception e) {
+ } catch (final Exception e) {
s_logger.error("Skipping over " + event, e);
}
}
- } catch (Throwable th) {
+ } catch (final Throwable th) {
s_logger.error("Exception caught in eventlistener thread: ", th);
}
}
}
- protected void recordChanges(Connection conn, VM.Record rec, String hostUuid) {
+ protected void recordChanges(final Connection conn, final VM.Record rec, final String hostUuid) {
}
@@ -211,16 +212,16 @@ public class XenServerResourceNewBase extends XenServer620SP1Resource {
public void start() {
if (_isMaster) {
// Throw away the initial set of events because they're history
- Connection conn = getConnection();
+ final Connection conn = getConnection();
EventBatch results;
try {
results = Event.from(conn, _classes, _token, new Double(30));
- } catch (Exception e) {
+ } catch (final Exception e) {
s_logger.error("Retrying the waiting on VM events due to: ", e);
throw new CloudRuntimeException("Unable to start a listener thread to listen to VM events", e);
}
_token = results.token;
- s_logger.debug("Starting the event listener thread for " + _host.uuid);
+ s_logger.debug("Starting the event listener thread for " + _host.getUuid());
super.start();
}
}
@@ -234,7 +235,7 @@ public class XenServerResourceNewBase extends XenServer620SP1Resource {
if (_changes.size() == 0) {
return null;
}
- HashMap<String, Pair<String, VirtualMachine.State>> diff = _changes;
+ final HashMap<String, Pair<String, VirtualMachine.State>> diff = _changes;
_changes = new HashMap<String, Pair<String, VirtualMachine.State>>();
return diff;
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/30e72e4a/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/CitrixResourceBaseTest.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/CitrixResourceBaseTest.java b/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/CitrixResourceBaseTest.java
index 0c2944c..e79e8af 100644
--- a/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/CitrixResourceBaseTest.java
+++ b/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/CitrixResourceBaseTest.java
@@ -39,6 +39,10 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.mockito.Spy;
+import com.cloud.agent.api.ScaleVmAnswer;
+import com.cloud.agent.api.ScaleVmCommand;
+import com.cloud.agent.api.to.IpAddressTO;
+import com.cloud.agent.api.to.VirtualMachineTO;
import com.xensource.xenapi.Connection;
import com.xensource.xenapi.Host;
import com.xensource.xenapi.Types;
@@ -46,35 +50,29 @@ import com.xensource.xenapi.VIF;
import com.xensource.xenapi.VM;
import com.xensource.xenapi.XenAPIObject;
-import com.cloud.agent.api.ScaleVmAnswer;
-import com.cloud.agent.api.ScaleVmCommand;
-import com.cloud.agent.api.to.IpAddressTO;
-import com.cloud.agent.api.to.VirtualMachineTO;
-import com.cloud.hypervisor.xenserver.resource.CitrixResourceBase.XsHost;
-
public class CitrixResourceBaseTest {
@Spy
CitrixResourceBase _resource = new CitrixResourceBase() {
@Override
- public ScaleVmAnswer execute(ScaleVmCommand cmd) {
+ public ScaleVmAnswer execute(final ScaleVmCommand cmd) {
return super.execute(cmd);
}
@Override
- public String callHostPlugin(Connection conn, String plugin, String cmd, String... params) {
+ public String callHostPlugin(final Connection conn, final String plugin, final String cmd, final String... params) {
return "Success";
}
@Override
- protected void scaleVM(Connection conn, VM vm, VirtualMachineTO vmSpec, Host host) throws Types.XenAPIException, XmlRpcException {
- _host.speed = 500;
+ protected void scaleVM(final Connection conn, final VM vm, final VirtualMachineTO vmSpec, final Host host) throws Types.XenAPIException, XmlRpcException {
+ _host.setSpeed(500);
super.scaleVM(conn, vm, vmSpec, host);
}
@Override
- protected boolean isDmcEnabled(Connection conn, Host host) throws Types.XenAPIException, XmlRpcException {
+ protected boolean isDmcEnabled(final Connection conn, final Host host) throws Types.XenAPIException, XmlRpcException {
return true;
}
};
@@ -105,18 +103,18 @@ public class CitrixResourceBaseTest {
@Test(expected = XmlRpcException.class)
public void testScaleVMF1() throws Types.BadServerResponse, Types.XenAPIException, XmlRpcException {
doReturn(conn).when(_resource).getConnection();
- Set<VM> vms = mock(Set.class);
+ final Set<VM> vms = mock(Set.class);
- Iterator iter = mock(Iterator.class);
+ final Iterator iter = mock(Iterator.class);
doReturn(iter).when(vms).iterator();
when(iter.hasNext()).thenReturn(true).thenReturn(false);
doReturn(vm).when(iter).next();
- VM.Record vmr = mock(VM.Record.class);
+ final VM.Record vmr = mock(VM.Record.class);
when(vm.getRecord(conn)).thenThrow(new XmlRpcException("XmlRpcException"));
when(vm.getRecord(conn)).thenReturn(vmr);
vmr.powerState = Types.VmPowerState.RUNNING;
vmr.residentOn = mock(Host.class);
- XenAPIObject object = mock(XenAPIObject.class);
+ final XenAPIObject object = mock(XenAPIObject.class);
doReturn(new String("OpaqueRef:NULL")).when(object).toWireString();
doNothing().when(_resource).scaleVM(conn, vm, vmSpec, host);
@@ -139,7 +137,7 @@ public class CitrixResourceBaseTest {
doNothing().when(vm).setVCPUsNumberLive(conn, 1L);
doReturn(500).when(vmSpec).getMinSpeed();
doReturn(false).when(vmSpec).getLimitCpuUse();
- Map<String, String> args = mock(HashMap.class);
+ final Map<String, String> args = mock(HashMap.class);
when(host.callPlugin(conn, "vmops", "add_to_VCPUs_params_live", args)).thenReturn("Success");
doReturn(null).when(_resource).callHostPlugin(conn, "vmops", "add_to_VCPUs_params_live", "key", "weight", "value", "253", "vmname", "i-2-3-VM");
@@ -164,7 +162,7 @@ public class CitrixResourceBaseTest {
doReturn(500).when(vmSpec).getMaxSpeed();
doReturn(true).when(vmSpec).getLimitCpuUse();
doReturn(null).when(_resource).callHostPlugin(conn, "vmops", "add_to_VCPUs_params_live", "key", "cap", "value", "99", "vmname", "i-2-3-VM");
- Map<String, String> args = mock(HashMap.class);
+ final Map<String, String> args = mock(HashMap.class);
when(host.callPlugin(conn, "vmops", "add_to_VCPUs_params_live", args)).thenReturn("Success");
doReturn(null).when(_resource).callHostPlugin(conn, "vmops", "add_to_VCPUs_params_live", "key", "weight", "value", "253", "vmname", "i-2-3-VM");
@@ -178,12 +176,12 @@ public class CitrixResourceBaseTest {
@Test
public void testSetNicDevIdIfCorrectVifIsNotNull() throws Exception {
- IpAddressTO ip = mock(IpAddressTO.class);
+ final IpAddressTO ip = mock(IpAddressTO.class);
when(ip.isAdd()).thenReturn(false);
- VIF correctVif = null;
+ final VIF correctVif = null;
try {
_resource.setNicDevIdIfCorrectVifIsNotNull(conn, ip, correctVif);
- } catch (NullPointerException e) {
+ } catch (final NullPointerException e) {
fail("this test is meant to show that null pointer is not thrown");
}
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/30e72e4a/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/CitrixRequestWrapperTest.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/CitrixRequestWrapperTest.java b/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/CitrixRequestWrapperTest.java
index f8af543..3e7fb57 100644
--- a/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/CitrixRequestWrapperTest.java
+++ b/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/CitrixRequestWrapperTest.java
@@ -14,6 +14,7 @@ import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import com.cloud.agent.api.Answer;
+import com.cloud.agent.api.ReadyCommand;
import com.cloud.agent.api.RebootAnswer;
import com.cloud.agent.api.RebootCommand;
import com.cloud.agent.api.RebootRouterCommand;
@@ -96,4 +97,16 @@ public class CitrixRequestWrapperTest {
assertFalse(answer.getResult());
}
+
+ @Test
+ public void testReadyCommandCommand() {
+ final ReadyCommand readyCommand = new ReadyCommand();
+
+ final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance();
+ assertNotNull(wrapper);
+
+ final Answer answer = wrapper.execute(readyCommand, citrixResourceBase);
+
+ assertFalse(answer.getResult());
+ }
}
\ No newline at end of file