use of alien4cloud.paas.exception.PluginConfigurationException in project alien4cloud by alien4cloud.
the class OrchestratorStateService method load.
/**
* Load and connect the given orchestrator.
*
* @param orchestrator the orchestrator to load and connect.
*/
private void load(Orchestrator orchestrator) throws PluginConfigurationException {
log.info("Loading and connecting orchestrator {} (id: {})", orchestrator.getName(), orchestrator.getId());
// check that the orchestrator is not already loaded.
if (orchestratorPluginService.get(orchestrator.getId()) != null) {
throw new AlreadyExistException("Plugin is already loaded.");
}
// switch the state to connecting
orchestrator.setState(OrchestratorState.CONNECTING);
alienDAO.save(orchestrator);
// TODO move below in a thread to perform plugin loading and connection asynchronously
IOrchestratorPluginFactory orchestratorFactory = orchestratorService.getPluginFactory(orchestrator);
IOrchestratorPlugin<Object> orchestratorInstance = orchestratorFactory.newInstance();
// Set the configuration for the provider
OrchestratorConfiguration orchestratorConfiguration = orchestratorConfigurationService.getConfigurationOrFail(orchestrator.getId());
try {
Object configuration = orchestratorConfigurationService.configurationAsValidObject(orchestrator.getId(), orchestratorConfiguration.getConfiguration());
orchestratorInstance.setConfiguration(orchestrator.getId(), configuration);
} catch (IOException e) {
throw new PluginConfigurationException("Failed convert configuration json in object.", e);
}
// index the archive in alien catalog
archiveIndexer.indexOrchestratorArchives(orchestratorFactory, orchestratorInstance);
// connect the orchestrator
orchestratorInstance.init(deploymentService.getCloudActiveDeploymentContexts(orchestrator.getId()));
// register the orchestrator instance to be polled for updates
orchestratorPluginService.register(orchestrator.getId(), orchestratorInstance);
orchestrator.setState(OrchestratorState.CONNECTED);
alienDAO.save(orchestrator);
if (orchestratorInstance instanceof ILocationAutoConfigurer) {
// trigger locations auto-configurations
locationService.autoConfigure(orchestrator, (ILocationAutoConfigurer) orchestratorInstance);
}
indexLocationsArchives(orchestrator);
}
use of alien4cloud.paas.exception.PluginConfigurationException in project yorc-a4c-plugin by ystia.
the class RestClient method setProviderConfiguration.
public void setProviderConfiguration(ProviderConfig providerConfiguration) throws PluginConfigurationException {
this.providerConfiguration = providerConfiguration;
log.debug("setProviderConfiguration YorcURL=" + providerConfiguration.getUrlYorc());
try {
getDeployments();
} catch (UnirestException e) {
log.warn("Cannot access Yorc: " + e.getCause());
throw new PluginConfigurationException("Cannot access Yorc: " + e.getCause());
}
if (Boolean.TRUE.equals(providerConfiguration.getInsecureTLS())) {
SSLContext sslContext;
try {
sslContext = SSLContexts.custom().loadTrustMaterial(null, (chain, authType) -> true).build();
} catch (NoSuchAlgorithmException | KeyManagementException | KeyStoreException e) {
e.printStackTrace();
throw new PluginConfigurationException("Failed to create SSL socket factory", e);
}
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
RequestConfig clientConfig = RequestConfig.custom().setConnectTimeout(((Long) CONNECTION_TIMEOUT).intValue()).setSocketTimeout(((Long) SOCKET_TIMEOUT).intValue()).setConnectionRequestTimeout(((Long) SOCKET_TIMEOUT).intValue()).build();
CloseableHttpClient httpClient = HttpClients.custom().setDefaultRequestConfig(clientConfig).setSSLSocketFactory(sslsf).build();
Unirest.setHttpClient(httpClient);
}
}
Aggregations