avoid to create same FileSR on host more than once

This commit is contained in:
Anthony Xu 2014-04-10 17:47:27 -07:00
parent fc8e79c17b
commit 1c10d00ec9
2 changed files with 15 additions and 4 deletions

View File

@ -127,7 +127,7 @@ public class XenServer620Resource extends XenServer610Resource {
@SuppressWarnings("unchecked")
Set<Event.Record> events = (Set<Event.Record>)map.get("events");
if (events.size() == 0) {
String msg = "Async " + timeout / 1000 + " seconds timeout for task " + task.toString();
String msg = "No event for task " + task.toString();
s_logger.warn(msg);
task.cancel(c);
throw new TimeoutException(msg);
@ -144,11 +144,14 @@ public class XenServer620Resource extends XenServer610Resource {
if (taskRecord.status != Types.TaskStatusType.PENDING) {
if (s_logger.isDebugEnabled()) {
s_logger.debug("Task is done " + taskRecord.status);
s_logger.debug("Task: " + taskRecord.uuid + " is done " + taskRecord.status);
}
return;
} else {
s_logger.debug("Task is not done " + taskRecord);
if (s_logger.isDebugEnabled()) {
s_logger.debug("Task: " + taskRecord.uuid + " progress: " + taskRecord.progress);
}
}
}
if (System.currentTimeMillis() - beginTime > timeout) {

View File

@ -86,11 +86,19 @@ public class Xenserver625StorageProcessor extends XenServerStorageProcessor {
SR sr = null;
PBD pbd = null;
try {
String srname = hypervisorResource.getHost().uuid + path.trim();
try {
Set<SR> srs = SR.getByNameLabel(conn, srname);
if ( srs != null && !srs.isEmpty()) {
return srs.iterator().next();
}
} catch (Exception e) {
}
Map<String, String> smConfig = new HashMap<String, String>();
Host host = Host.getByUuid(conn, hypervisorResource.getHost().uuid);
String uuid = UUID.randomUUID().toString();
sr = SR.introduce(conn,uuid, uuid, uuid, "file", "file", false, smConfig);
sr = SR.introduce(conn,uuid, srname, srname, "file", "file", false, smConfig);
PBD.Record record = new PBD.Record();
record.host = host;
record.SR = sr;