@Override public void destroy(final RuntimeId runtimeId) { final Optional<WildflyProvider> _wildflyProvider = runtimeRegistry.getProvider(runtimeId.getProviderId(), WildflyProvider.class); WildflyProvider wildflyProvider = _wildflyProvider.get(); int result = wildfly.getWildflyClient(wildflyProvider).undeploy(runtimeId.getId()); if (result != 200) { throw new ProvisioningException("UnDeployment to Wildfly Failed with error code: " + result); } runtimeRegistry.deregisterRuntime(runtimeId); } }
@Override public boolean supports(final RuntimeId runtimeId) { return runtimeId instanceof DockerRuntime || runtimeRegistry.getRuntimeById(runtimeId.getId()) instanceof DockerRuntime; }
@Override public void registerProvider(ProviderConfig conf) throws BusinessException { final Optional<Provider> newProvider = providerFactory.newProvider(conf); if (newProvider.isPresent()) { runtimeRegistry.registerProvider(newProvider.get()); } }
@Override public void destroyRuntime(String runtimeId, boolean forced) throws BusinessException { final Runtime runtimeById = runtimeRegistry.getRuntimeById(runtimeId); if (runtimeById == null) { throw new BusinessException("No runtime was found for runtimeId: " + runtimeId); } final PipelineExecutorTrace pipelineTrace = pipelineExecutorRegistry.getExecutorTrace(runtimeById); try { runtimeFactory.destroyRuntime(runtimeById); } catch (Exception e) { if (forced) { LOG.warn("Runtime destroy raised the following error for runtime: " + runtimeId + " but forced destroy will still remove the runtime from registry.", e); runtimeRegistry.deregisterRuntime(runtimeById); } else { throw e; } } if (pipelineTrace != null) { pipelineExecutorRegistry.deregister(pipelineTrace.getTaskId()); } }
@Override public void refresh(RuntimeId runtimeId) throws RuntimeOperationException { OpenShiftRuntime runtime = (OpenShiftRuntime) runtimeRegistry.getRuntimeById(runtimeId.getId()); if (runtime != null) { try { //LOG.info( "Refreshing runtime: " + runtimeId.getId() ); OpenShiftRuntimeState runtimeState = openshift.getOpenShiftClient(runtime.getProviderId()).getRuntimeState(runtime.getId()); OpenShiftRuntime newRuntime = new OpenShiftRuntime(runtime.getId(), runtime.getName(), runtime.getConfig(), runtime.getProviderId(), runtime.getEndpoint(), runtime.getInfo(), runtimeState); runtimeRegistry.registerRuntime(newRuntime); } catch (OpenShiftClientException ex) { LOG.error("Error Refreshing runtime: " + runtimeId.getId(), ex); throw new RuntimeOperationException("Error Refreshing runtime: " + runtimeId.getId(), ex); } } }
@Override public Optional<OpenShiftProvider> apply(final OpenShiftProviderConfig openshiftProviderConfig) { if (openshiftProviderConfig.getName() == null || openshiftProviderConfig.getName().isEmpty()) { throw new ProvisioningException("No name was provided for the OpenShiftProviderConfig.getName() " + "configuration parameter. You might probably have to properly set " + "the pipeline input parameter: " + ProviderConfig.PROVIDER_NAME); } Provider provider = runtimeRegistry.getProvider(openshiftProviderConfig.getName()); OpenShiftProvider openshiftProvider; if (provider != null) { if (!(provider instanceof OpenShiftProvider)) { throw new ProvisioningException("The provider: " + openshiftProviderConfig.getName() + " must be an instance of " + OpenShiftProviderConfig.class + " but is: " + provider.getClass()); } else { openshiftProvider = (OpenShiftProvider) provider; } } else { openshiftProvider = new OpenShiftProviderImpl(openshiftProviderConfig.getName(), openshiftProviderConfig); runtimeRegistry.registerProvider(openshiftProvider); } return Optional.of(openshiftProvider); }
private Optional<OpenShiftRuntime> create(final OpenShiftRuntimeConfig runtimeConfig) throws ProvisioningException { final Optional<OpenShiftProvider> _openshiftProvider = runtimeRegistry.getProvider(runtimeConfig.getProviderId(), OpenShiftProvider.class); if (!_openshiftProvider.isPresent()) { return Optional.empty(); } OpenShiftProvider openshiftProvider = _openshiftProvider.get(); OpenShiftClient openshiftClient = openshift.getOpenShiftClient(openshiftProvider); LOG.info("Creating runtime..."); OpenShiftRuntimeState runtimeState; try { runtimeState = openshiftClient.create(runtimeConfig); } catch (OpenShiftClientException ex) { throw new ProvisioningException(ex.getMessage(), ex); } final String id = runtimeConfig.getRuntimeId().toString(); LOG.info("Created runtime: " + id); OpenShiftRuntimeEndpoint endpoint = openshiftClient.getRuntimeEndpoint(id); return Optional.of(new OpenShiftRuntime(id, buildRuntimeName(runtimeConfig, id), runtimeConfig, openshiftProvider, endpoint, new OpenShiftRuntimeInfo(runtimeConfig), runtimeState)); }
@Override public Optional<WildflyRuntime> apply(final WildflyRuntimeConfiguration config) { final Optional<WildflyRuntime> runtime = create(config); if (runtime.isPresent()) { runtimeRegistry.registerRuntime(runtime.get()); } return runtime; }
@Override public void destroy(final RuntimeId runtimeId) { try { LOG.info("Killing Container: " + runtimeId.getId()); docker.getDockerClient(runtimeId.getProviderId()).killContainer(runtimeId.getId()); LOG.info("Removing Container: " + runtimeId.getId()); docker.getDockerClient(runtimeId.getProviderId()).removeContainer(runtimeId.getId()); runtimeRegistry.deregisterRuntime(runtimeId); } catch (DockerException | InterruptedException ex) { LOG.debug(ex.getMessage(), ex); try { // Trying to remove the container if it cannot be killed LOG.info("Attempting to Remove Container without Killing: " + runtimeId.getId()); docker.getDockerClient(runtimeId.getProviderId()).removeContainer(runtimeId.getId()); runtimeRegistry.deregisterRuntime(runtimeId); } catch (DockerException | InterruptedException ex2) { LOG.error(ex.getMessage(), ex2); throw new ProvisioningException("Error destroying Docker Runtime: " + ex.getMessage(), ex2); } } } }
@Override public RuntimeList getRuntimes(Integer page, Integer pageSize, String sort, boolean sortOrder) throws BusinessException { return new RuntimeList(runtimeRegistry.getRuntimes(page, pageSize, sort, sortOrder)); }
@Override public void refresh(RuntimeId runtimeId) throws RuntimeOperationException { WildflyRuntime runtime = (WildflyRuntime) runtimeRegistry.getRuntimeById(runtimeId.getId()); try { WildflyAppState appState = wildfly.getWildflyClient(runtime.getProviderId()).getAppState(runtime.getId()); WildflyRuntime newRuntime = new WildflyRuntime(runtime.getId(), runtime.getName(), runtime.getConfig(), runtime.getProviderId(), runtime.getEndpoint(), runtime.getInfo(), new WildflyRuntimeState(appState.getState(), runtime.getState().getStartedAt())); runtimeRegistry.registerRuntime(newRuntime); } catch (WildflyClientException ex) { throw new RuntimeOperationException("Error Refreshing container: " + runtimeId.getId() + "\n\t There as a problem with refreshing your application, please check into the Wildfly Logs for more information.", ex); } }
@Override public Optional<WildflyProvider> apply(final WildflyProviderConfig wildflyProviderConfig) { if (wildflyProviderConfig.getName() == null || wildflyProviderConfig.getName().isEmpty()) { throw new ProvisioningException("No name was provided for the WildflyProviderConfig.getName() " + "configuration parameter. You might probably have to properly set " + "the pipeline input parameter: " + ProviderConfig.PROVIDER_NAME); } Provider provider = runtimeRegistry.getProvider(wildflyProviderConfig.getName()); WildflyProvider wildflyProvider; if (provider != null) { if (!(provider instanceof WildflyProvider)) { throw new ProvisioningException("The provider: " + wildflyProviderConfig.getName() + " must be an instance of " + WildflyProviderConfig.class + " but is: " + provider.getClass()); } else { wildflyProvider = (WildflyProvider) provider; } } else { wildflyProvider = new WildflyProviderImpl(new WildflyProviderConfigImpl(wildflyProviderConfig.getName(), wildflyProviderConfig.getHost(), wildflyProviderConfig.getPort(), wildflyProviderConfig.getManagementPort(), wildflyProviderConfig.getUser(), wildflyProviderConfig.getPassword())); runtimeRegistry.registerProvider(wildflyProvider); } return Optional.of(wildflyProvider); }
private Optional<WildflyRuntime> create(final WildflyRuntimeConfiguration runtimeConfig) throws ProvisioningException { final Optional<WildflyProvider> _wildflyProvider = runtimeRegistry.getProvider(runtimeConfig.getProviderId(), WildflyProvider.class); if (!_wildflyProvider.isPresent()) {
@Override public Optional<OpenShiftRuntime> apply(final OpenShiftRuntimeConfig config) { final Optional<OpenShiftRuntime> runtime = create(config); if (runtime.isPresent()) { runtimeRegistry.registerRuntime(runtime.get()); } return runtime; }
@Override public void destroy(final RuntimeId runtimeId) { try { LOG.info("Killing Container: " + runtimeId.getId()); docker.getDockerClient(runtimeId.getProviderId()).killContainer(runtimeId.getId()); LOG.info("Removing Container: " + runtimeId.getId()); docker.getDockerClient(runtimeId.getProviderId()).removeContainer(runtimeId.getId()); runtimeRegistry.deregisterRuntime(runtimeId); } catch (DockerException | InterruptedException ex) { LOG.debug(ex.getMessage(), ex); try { // Trying to remove the container if it cannot be killed LOG.info("Attempting to Remove Container without Killing: " + runtimeId.getId()); docker.getDockerClient(runtimeId.getProviderId()).removeContainer(runtimeId.getId()); runtimeRegistry.deregisterRuntime(runtimeId); } catch (DockerException | InterruptedException ex2) { LOG.error(ex.getMessage(), ex2); throw new ProvisioningException("Error destroying Docker Runtime: " + ex.getMessage(), ex2); } } } }
private OpenShiftRuntime getRuntime( RuntimeRegistry runtimeRegistry, OpenShiftRuntimeManager runtimeManager, OpenShiftRuntime openshiftRuntime, boolean expected ) { if (openshiftRuntime != null) { runtimeManager.refresh(openshiftRuntime); } if (expected) { List<Runtime> allRuntimes = runtimeRegistry.getRuntimes(0, 10, "", true); assertEquals( 1, allRuntimes.size() ); Runtime runtime = allRuntimes.get( 0 ); assertTrue( runtime instanceof OpenShiftRuntime ); return ( OpenShiftRuntime ) runtime; } else { return null; } }
@Override public boolean supports(final RuntimeId runtimeId) { return runtimeId instanceof DockerRuntime || runtimeRegistry.getRuntimeById(runtimeId.getId()) instanceof DockerRuntime; }
@Override public void refresh(RuntimeId runtimeId) throws RuntimeOperationException { WildflyRuntime runtime = (WildflyRuntime) runtimeRegistry.getRuntimeById(runtimeId.getId()); try { WildflyAppState appState = wildfly.getWildflyClient(runtime.getProviderId()).getAppState(runtime.getId()); WildflyRuntime newRuntime = new WildflyRuntime(runtime.getId(), runtime.getName(), runtime.getConfig(), runtime.getProviderId(), runtime.getEndpoint(), runtime.getInfo(), new WildflyRuntimeState(appState.getState(), runtime.getState().getStartedAt())); runtimeRegistry.registerRuntime(newRuntime); } catch (WildflyClientException ex) { throw new RuntimeOperationException("Error Refreshing container: " + runtimeId.getId() + "\n\t There as a problem with refreshing your application, please check into the Wildfly Logs for more information.", ex); } }
@Override public void destroy(final RuntimeId runtimeId) { final Optional<WildflyProvider> _wildflyProvider = runtimeRegistry.getProvider(runtimeId.getProviderId(), WildflyProvider.class); WildflyProvider wildflyProvider = _wildflyProvider.get(); int result = wildfly.getWildflyClient(wildflyProvider).undeploy(runtimeId.getId()); if (result != 200) { throw new ProvisioningException("UnDeployment to Wildfly Failed with error code: " + result); } runtimeRegistry.deregisterRuntime(runtimeId); } }
@Override public Optional<WildflyProvider> apply(final WildflyProviderConfig wildflyProviderConfig) { if (wildflyProviderConfig.getName() == null || wildflyProviderConfig.getName().isEmpty()) { throw new ProvisioningException("No name was provided for the WildflyProviderConfig.getName() " + "configuration parameter. You might probably have to properly set " + "the pipeline input parameter: " + ProviderConfig.PROVIDER_NAME); } Provider provider = runtimeRegistry.getProvider(wildflyProviderConfig.getName()); WildflyProvider wildflyProvider; if (provider != null) { if (!(provider instanceof WildflyProvider)) { throw new ProvisioningException("The provider: " + wildflyProviderConfig.getName() + " must be an instance of " + WildflyProviderConfig.class + " but is: " + provider.getClass()); } else { wildflyProvider = (WildflyProvider) provider; } } else { wildflyProvider = new WildflyProviderImpl(new WildflyProviderConfigImpl(wildflyProviderConfig.getName(), wildflyProviderConfig.getHost(), wildflyProviderConfig.getPort(), wildflyProviderConfig.getManagementPort(), wildflyProviderConfig.getUser(), wildflyProviderConfig.getPassword())); runtimeRegistry.registerProvider(wildflyProvider); } return Optional.of(wildflyProvider); }