use of com.accenture.trac.common.exception.EStartup in project tracdap by finos.
the class TracDataService method checkDefaultStorageAndFormat.
private void checkDefaultStorageAndFormat(IStorageManager storage, ICodecManager formats, DataServiceConfig config) {
try {
storage.getFileStorage(config.getDefaultStorageKey());
storage.getDataStorage(config.getDefaultStorageKey());
formats.getCodec(config.getDefaultStorageFormat());
} catch (EStorageConfig e) {
var msg = String.format("Storage not configured for default storage key: [%s]", config.getDefaultStorageKey());
log.error(msg);
throw new EStartup(msg, e);
} catch (EPluginNotAvailable e) {
var msg = String.format("Codec not available for default storage format: [%s]", config.getDefaultStorageFormat());
log.error(msg);
throw new EStartup(msg, e);
}
}
use of com.accenture.trac.common.exception.EStartup in project tracdap by finos.
the class TracOrchestratorService method doStartup.
@Override
protected void doStartup(Duration startupTimeout) {
PlatformConfig platformConfig;
OrchServiceConfig orchestratorConfig;
try {
pluginManager.initRegularPlugins();
} catch (Exception e) {
var errorMessage = "There was a problem loading the plugins: " + e.getMessage();
log.error(errorMessage, e);
throw new EStartup(errorMessage, e);
}
try {
log.info("Loading TRAC platform config...");
platformConfig = configManager.loadRootConfigObject(PlatformConfig.class);
orchestratorConfig = platformConfig.getServices().getOrch();
// TODO: Config validation
log.info("Config looks ok");
} catch (Exception e) {
var errorMessage = "There was a problem loading the platform config: " + e.getMessage();
log.error(errorMessage, e);
throw new EStartup(errorMessage, e);
}
try {
var channelType = NioServerSocketChannel.class;
var clientChannelType = NioSocketChannel.class;
bossGroup = new NioEventLoopGroup(1, new DefaultThreadFactory("orch-boss"));
nettyGroup = new NioEventLoopGroup(2, new DefaultThreadFactory("orch-netty"));
serviceGroup = new NioEventLoopGroup(CONCURRENT_REQUESTS, new DefaultThreadFactory("orch-svc"));
prepareMetadataClientChannel(platformConfig, clientChannelType);
var metaClient = TrustedMetadataApiGrpc.newFutureStub(clientChannel);
var jobLifecycle = new JobLifecycle(platformConfig, metaClient);
jobCache = new LocalJobCache();
// jobCache = InterfaceLogging.wrap(jobCache, IJobCache.class);
var executors = new ExecutionManager(pluginManager);
executors.initExecutor(orchestratorConfig.getExecutor());
jobExecCtrl = executors.getExecutor();
jobMonitor = new JobManagementService(jobLifecycle, jobCache, jobExecCtrl, serviceGroup);
jobMonitor.start();
var orchestrator = new JobApiService(jobLifecycle, jobCache);
var orchestratorApi = new TracOrchestratorApi(orchestrator);
this.server = NettyServerBuilder.forPort(orchestratorConfig.getPort()).addService(orchestratorApi).channelType(channelType).bossEventLoopGroup(bossGroup).workerEventLoopGroup(nettyGroup).executor(serviceGroup).build();
this.server.start();
log.info("Orchestrator is listening on port {}", server.getPort());
} catch (IOException e) {
throw new EStartup(e.getMessage(), e);
}
}
use of com.accenture.trac.common.exception.EStartup in project tracdap by finos.
the class GcpConfigLoader method loadTextFile.
@Override
public String loadTextFile(URI uri) {
var ERROR_MSG_TEMPLATE = "Failed to load config file from GCP: %2$s [%1$s]";
String path = uri.getPath();
if (path.startsWith("/")) {
path = path.substring(1);
}
StorageOptions options = StorageOptions.newBuilder().build();
Storage storage = options.getService();
Blob blob = storage.get(uri.getHost(), path);
if (blob == null) {
var message = String.format("Cannot load config from GCP: [%s]. File does not exist.", uri);
throw new EStartup(message);
}
ReadChannel readChannel = blob.reader();
BufferedReader br = new BufferedReader(Channels.newReader(readChannel, StandardCharsets.UTF_8));
String output;
try {
output = br.lines().collect(Collectors.joining());
return output;
} catch (IllegalArgumentException | UncheckedIOException e) {
var message = String.format(ERROR_MSG_TEMPLATE, path, e.getMessage());
throw new EStartup(message, e);
}
}
Aggregations