mirror of
https://github.com/dianping/camel.git
synced 2024-09-20 06:56:03 +08:00
fix a bug about script path
This commit is contained in:
parent
6d90bf1a16
commit
b8ef311901
|
@ -1,17 +1,20 @@
|
|||
package com.dianping.platform.slb.agent.conf;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.net.URL;
|
||||
import java.util.Iterator;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
|
||||
/**
|
||||
* dianping.com @2015
|
||||
* slb - soft load balance
|
||||
* <p/>
|
||||
* Created by leon.li(Li Yang)
|
||||
*/
|
||||
* dianping.com @2015
|
||||
* slb - soft load balance
|
||||
* <p>
|
||||
* Created by leon.li(Li Yang)
|
||||
*/
|
||||
public class ConfigureManager {
|
||||
|
||||
private static final String COMMAND_LIST_VS = "ls -l /usr/local/nginx/conf/phoenix-slb";
|
||||
|
@ -20,12 +23,61 @@ public class ConfigureManager {
|
|||
|
||||
private static final String PATH_NGINX_CONF_DIR = "/usr/local/nginx/conf/phoenix-slb";
|
||||
|
||||
static {
|
||||
File scriptDir = getNginxReloadScriptFile().getParentFile();
|
||||
Iterator<File> scriptIter = FileUtils.iterateFiles(scriptDir, new String[] { "sh" }, true);
|
||||
private static final String DIR_AGENT_SCRIPT = "/data/appdatas/camel/script/";
|
||||
|
||||
while (scriptIter != null && scriptIter.hasNext()) {
|
||||
scriptIter.next().setExecutable(true, false);
|
||||
private static final String STATUS_SCRIPT_READY = "/data/appdatas/camel/script/status";
|
||||
|
||||
private static final Set<String> SET_SCRIPT_NAMES = new HashSet<String>() {
|
||||
{
|
||||
add("tengine.sh");
|
||||
add("tengine_func.sh");
|
||||
add("tengine_reload.sh");
|
||||
add("util.sh");
|
||||
}
|
||||
};
|
||||
|
||||
static {
|
||||
boolean scriptReady = false;
|
||||
|
||||
File statusFile = new File(STATUS_SCRIPT_READY);
|
||||
if (statusFile.exists()) {
|
||||
try {
|
||||
String statusContent = FileUtils.readFileToString(statusFile);
|
||||
scriptReady = Boolean.parseBoolean(statusContent);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
|
||||
if (!scriptReady) {
|
||||
boolean initialStatus = true;
|
||||
RuntimeException ex = null;
|
||||
|
||||
File scriptDir = new File(DIR_AGENT_SCRIPT);
|
||||
if (!scriptDir.exists() || scriptDir.isFile()) {
|
||||
scriptDir.mkdirs();
|
||||
}
|
||||
|
||||
for (String scriptName : SET_SCRIPT_NAMES) {
|
||||
InputStream inputStream = ConfigureManager.class.getClassLoader().getResourceAsStream("script/" + scriptName);
|
||||
File targetFile = new File(scriptDir, scriptName);
|
||||
|
||||
try {
|
||||
FileUtils.writeByteArrayToFile(targetFile, IOUtils.toByteArray(inputStream));
|
||||
targetFile.setExecutable(true, false);
|
||||
} catch (IOException e) {
|
||||
ex = new RuntimeException(e);
|
||||
initialStatus = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!initialStatus) {
|
||||
throw ex;
|
||||
} else {
|
||||
try {
|
||||
FileUtils.writeByteArrayToFile(statusFile, "true".getBytes());
|
||||
} catch (IOException e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -38,12 +90,7 @@ public class ConfigureManager {
|
|||
}
|
||||
|
||||
private static File getScriptFile(String scriptFileName) {
|
||||
URL url = ConfigureManager.class.getClassLoader().getResource("script/" + scriptFileName);
|
||||
|
||||
if (url == null) {
|
||||
throw new IllegalArgumentException("script not exists: " + scriptFileName);
|
||||
}
|
||||
return new File(url.getPath());
|
||||
return new File(DIR_AGENT_SCRIPT + scriptFileName);
|
||||
}
|
||||
|
||||
public static File getNginxReloadScriptFile() {
|
||||
|
|
Loading…
Reference in a new issue