SWIFT : big file fix

This commit is contained in:
anthony 2011-12-21 18:43:38 -08:00
parent ebe787704b
commit b2f8c4bb2b

View File

@ -269,9 +269,7 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
} }
String swiftUpload(SwiftTO swift, String container, String lDir, String lFilename) { String swiftUpload(SwiftTO swift, String container, String lDir, String lFilename) {
Script command = new Script("/bin/bash", s_logger);
long SWIFT_MAX_SIZE = 5L * 1024L * 1024L * 1024L; long SWIFT_MAX_SIZE = 5L * 1024L * 1024L * 1024L;
command.add("-c");
List<String> files = new ArrayList<String>(); List<String> files = new ArrayList<String>();
if (lFilename.equals("*")) { if (lFilename.equals("*")) {
File dir = new File(lDir); File dir = new File(lDir);
@ -286,33 +284,36 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S
} }
for (String file : files) { for (String file : files) {
long size = file.length(); File f = new File(lDir + "/" + file);
long size = f.length();
Script command = new Script("/bin/bash", s_logger);
command.add("-c");
if (size <= SWIFT_MAX_SIZE) { if (size <= SWIFT_MAX_SIZE) {
command.add("cd " + lDir + ";/usr/bin/python /usr/local/cloud/systemvm/scripts/storage/secondary/swift -A " + swift.getUrl() + " -U " + swift.getAccount() + ":" + swift.getUserName() command.add("cd " + lDir + ";/usr/bin/python /usr/local/cloud/systemvm/scripts/storage/secondary/swift -A " + swift.getUrl() + " -U " + swift.getAccount() + ":" + swift.getUserName()
+ " -K " + swift.getKey() + " upload " + container + " " + lFilename); + " -K " + swift.getKey() + " upload " + container + " " + file);
} else { } else {
command.add("cd " + lDir + ";/usr/bin/python /usr/local/cloud/systemvm/scripts/storage/secondary/swift -A " + swift.getUrl() + " -U " + swift.getAccount() + ":" + swift.getUserName() command.add("cd " + lDir + ";/usr/bin/python /usr/local/cloud/systemvm/scripts/storage/secondary/swift -A " + swift.getUrl() + " -U " + swift.getAccount() + ":" + swift.getUserName()
+ " -K " + swift.getKey() + " upload -S " + SWIFT_MAX_SIZE + " " + container + " " + lFilename); + " -K " + swift.getKey() + " upload -S " + SWIFT_MAX_SIZE + " " + container + " " + file);
} }
} OutputInterpreter.AllLinesParser parser = new OutputInterpreter.AllLinesParser();
String result = command.execute(parser);
OutputInterpreter.AllLinesParser parser = new OutputInterpreter.AllLinesParser(); if (result != null) {
String result = command.execute(parser); String errMsg = "swiftUpload failed , err=" + result;
if (result != null) { s_logger.warn(errMsg);
String errMsg = "swiftUpload failed , err=" + result; return errMsg;
s_logger.warn(errMsg); }
return errMsg; if (parser.getLines() != null) {
} String[] lines = parser.getLines().split("\\n");
if (parser.getLines() != null) { for (String line : lines) {
String[] lines = parser.getLines().split("\\n"); if (line.contains("Errno") || line.contains("failed")) {
for (String line : lines) { String errMsg = "swiftUpload failed , err=" + lines.toString();
if (line.contains("Errno") || line.contains("failed")) { s_logger.warn(errMsg);
String errMsg = "swiftUpload failed , err=" + lines.toString(); return errMsg;
s_logger.warn(errMsg); }
return errMsg;
} }
} }
} }
return null; return null;
} }