mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
CLOUDSTACK-6058: XenServer 6.2sp1 xenapi customization as per CloudStack resource code.
Signed-off-by: Hugo Trippaers <htrippaers@schubergphilis.com>
This commit is contained in:
parent
2ff9abadf6
commit
505da760e0
@ -58,6 +58,8 @@ public class Connection
|
|||||||
|
|
||||||
private APIVersion apiVersion;
|
private APIVersion apiVersion;
|
||||||
|
|
||||||
|
protected int _wait = 600;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Updated when Session.login_with_password() is called.
|
* Updated when Session.login_with_password() is called.
|
||||||
*/
|
*/
|
||||||
@ -142,10 +144,10 @@ public class Connection
|
|||||||
* When this constructor is used, a call to dispose() will do nothing. The programmer is responsible for manually
|
* When this constructor is used, a call to dispose() will do nothing. The programmer is responsible for manually
|
||||||
* logging out the Session.
|
* logging out the Session.
|
||||||
*/
|
*/
|
||||||
public Connection(URL url)
|
public Connection(URL url, int wait)
|
||||||
{
|
{
|
||||||
deprecatedConstructorUsed = false;
|
deprecatedConstructorUsed = false;
|
||||||
|
_wait = wait;
|
||||||
this.client = getClientFromURL(url);
|
this.client = getClientFromURL(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -257,6 +259,8 @@ public class Connection
|
|||||||
{
|
{
|
||||||
config.setTimeZone(TimeZone.getTimeZone("UTC"));
|
config.setTimeZone(TimeZone.getTimeZone("UTC"));
|
||||||
config.setServerURL(url);
|
config.setServerURL(url);
|
||||||
|
config.setReplyTimeout(_wait * 1000);
|
||||||
|
config.setConnectionTimeout(5000);
|
||||||
XmlRpcClient client = new XmlRpcClient();
|
XmlRpcClient client = new XmlRpcClient();
|
||||||
client.setConfig(config);
|
client.setConfig(config);
|
||||||
return client;
|
return client;
|
||||||
@ -276,7 +280,7 @@ public class Connection
|
|||||||
/**
|
/**
|
||||||
* The (auto-generated parts of) the bindings dispatch XMLRPC calls on this Connection's client through this method.
|
* The (auto-generated parts of) the bindings dispatch XMLRPC calls on this Connection's client through this method.
|
||||||
*/
|
*/
|
||||||
Map dispatch(String method_call, Object[] method_params) throws XmlRpcException, XenAPIException
|
protected Map dispatch(String method_call, Object[] method_params) throws XmlRpcException, XenAPIException
|
||||||
{
|
{
|
||||||
Map response = (Map) client.execute(method_call, method_params);
|
Map response = (Map) client.execute(method_call, method_params);
|
||||||
|
|
||||||
@ -320,7 +324,7 @@ public class Connection
|
|||||||
new Connection(new URL(client_url.getProtocol(),
|
new Connection(new URL(client_url.getProtocol(),
|
||||||
(String)error[1],
|
(String)error[1],
|
||||||
client_url.getPort(),
|
client_url.getPort(),
|
||||||
client_url.getFile()));
|
client_url.getFile()), _wait);
|
||||||
tmp_conn.sessionReference = sessionReference;
|
tmp_conn.sessionReference = sessionReference;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|||||||
@ -301,4 +301,19 @@ public class Event extends XenAPIObject {
|
|||||||
return Types.toString(result);
|
return Types.toString(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Map properFrom(Connection c, Set<String> classes, String token, Double timeout) throws BadServerResponse, XenAPIException, XmlRpcException,
|
||||||
|
Types.SessionNotRegistered,
|
||||||
|
Types.EventsLost {
|
||||||
|
String method_call = "event.from";
|
||||||
|
String session = c.getSessionReference();
|
||||||
|
Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(classes), Marshalling.toXMLRPC(token), Marshalling.toXMLRPC(timeout)};
|
||||||
|
Map response = c.dispatch(method_call, method_params);
|
||||||
|
Object result = response.get("Value");
|
||||||
|
Map value = (Map)result;
|
||||||
|
Map<String, Object> from = new HashMap<String, Object>();
|
||||||
|
from.put("token", value.get("token"));
|
||||||
|
from.put("events", Types.toSetOfEventRecord(value.get("events")));
|
||||||
|
return from;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1469,6 +1469,27 @@ public class VDI extends XenAPIObject {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Copy either a full VDI or the block differences between two VDIs into either a fresh VDI or an existing VDI.
|
||||||
|
*
|
||||||
|
* @param sr The destination SR (only required if the destination VDI is not specified
|
||||||
|
* @param baseVdi The base VDI (only required if copying only changed blocks, by default all blocks will be copied)
|
||||||
|
* @param intoVdi The destination VDI to copy blocks into (if omitted then a destination SR must be provided and a fresh VDI will be created)
|
||||||
|
* @return Task
|
||||||
|
*/
|
||||||
|
public Task copyAsync2(Connection c, SR sr, VDI baseVdi, VDI intoVdi) throws
|
||||||
|
BadServerResponse,
|
||||||
|
XenAPIException,
|
||||||
|
XmlRpcException,
|
||||||
|
Types.VdiReadonly {
|
||||||
|
String method_call = "Async.VDI.copy";
|
||||||
|
String session = c.getSessionReference();
|
||||||
|
Object[] method_params = {Marshalling.toXMLRPC(session), Marshalling.toXMLRPC(this.ref), Marshalling.toXMLRPC(sr), Marshalling.toXMLRPC(baseVdi), Marshalling.toXMLRPC(intoVdi)};
|
||||||
|
Map response = c.dispatch(method_call, method_params);
|
||||||
|
Object result = response.get("Value");
|
||||||
|
return Types.toTask(result);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Make a fresh VDI in the specified SR and copy the supplied VDI's data to the new disk
|
* Make a fresh VDI in the specified SR and copy the supplied VDI's data to the new disk
|
||||||
*
|
*
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user