in frontend/server/src/main/java/com/amazonaws/ml/mms/util/ConfigManager.java [107:166]
private ConfigManager(Arguments args) {
prop = new Properties();
String filePath = System.getenv("MMS_CONFIG_FILE");
if (filePath == null) {
filePath = args.getMmsConfigFile();
if (filePath == null) {
filePath = System.getProperty("mmsConfigFile", "config.properties");
}
}
File file = new File(filePath);
if (file.exists()) {
try (FileInputStream stream = new FileInputStream(file)) {
prop.load(stream);
prop.put("mmsConfigFile", filePath);
} catch (IOException e) {
throw new IllegalStateException("Unable to read configuration file", e);
}
}
resolveEnvVarVals(prop);
String modelStore = args.getModelStore();
if (modelStore != null) {
prop.setProperty(MMS_MODEL_STORE, modelStore);
}
String[] models = args.getModels();
if (models != null) {
prop.setProperty(MMS_LOAD_MODELS, String.join(",", models));
}
prop.setProperty(
MMS_NUMBER_OF_GPU,
String.valueOf(
Integer.min(
getAvailableGpu(),
getIntProperty(MMS_NUMBER_OF_GPU, Integer.MAX_VALUE))));
String pythonExecutable = args.getPythonExecutable();
if (pythonExecutable != null) {
prop.setProperty("PYTHON_EXECUTABLE", pythonExecutable);
}
try {
InetAddress ip = InetAddress.getLocalHost();
hostName = ip.getHostName();
} catch (UnknownHostException e) {
hostName = "Unknown";
}
if (Boolean.parseBoolean(prop.getProperty(MMS_ASYNC_LOGGING))) {
enableAsyncLogging();
}
if (Boolean.parseBoolean(getEnableEnvVarsConfig())) {
// Environment variables have higher precedence over the config file variables
setSystemVars();
}
}