use of com.hp.octane.integrations.dto.general.OctaneConnectivityStatus in project octane-ci-java-sdk by MicroFocus.
the class OctaneSDK method testOctaneConfigurationAndFetchAvailableWorkspaces.
/**
* This method allows to test Octane configuration prior to creating full functioning Octane client (use case - test connection in UI)
* In case of failed configuration , IllegalArgumentException is thrown
*
* @param octaneServerUrl base Octane server URL
* @param sharedSpaceId shared space ID
* @param client client / api key
* @param secret secret / api secret
* @param pluginServicesClass class that extends CIPluginServices
* @return List of available workspaces
* @throws IOException in case of basic connectivity failure
*/
public static List<Entity> testOctaneConfigurationAndFetchAvailableWorkspaces(String octaneServerUrl, String sharedSpaceId, String client, String secret, Class<? extends CIPluginServices> pluginServicesClass) throws IOException {
// instance ID is a MUST parameter but not needed for configuration validation, therefore RANDOM value provided
OctaneConfiguration configuration = OctaneConfiguration.create(UUID.randomUUID().toString(), octaneServerUrl, sharedSpaceId);
configuration.setSecret(secret);
configuration.setClient(client);
if (pluginServicesClass == null) {
throw new IllegalArgumentException("plugin services provider is invalid");
}
CIPluginServices pluginServices;
try {
pluginServices = pluginServicesClass.newInstance();
} catch (InstantiationException | IllegalAccessException e) {
throw new IllegalArgumentException("failed to instantiate plugin services '" + pluginServicesClass.getSimpleName() + "'", e);
}
SDKServicesConfigurer configurer = new SDKServicesConfigurer(configuration, pluginServices);
RestService restService = RestService.newInstance(configurer);
ConfigurationService configurationService = ConfigurationService.newInstance(configurer, restService);
OctaneConnectivityStatus octaneConnectivityStatus = configurationService.validateConfigurationAndGetConnectivityStatus();
if (!CIPluginSDKUtils.isSdkSupported(octaneConnectivityStatus)) {
throw new OctaneConnectivityException(0, OctaneConnectivityException.UNSUPPORTED_SDK_VERSION_KEY, OctaneConnectivityException.UNSUPPORTED_SDK_VERSION_MESSAGE);
}
try {
EntitiesService entitiesService = EntitiesService.newInstance(configurer, restService);
List<Entity> workspaces = entitiesService.getEntities(null, /*no workspace*/
EntityConstants.Workspaces.COLLECTION_NAME, null, /*no conditions*/
Arrays.asList(EntityConstants.Base.NAME_FIELD));
return workspaces;
} catch (Exception e) {
logger.error(configuration.getLocationForLog() + "Failed to fetch workspaces in testOctaneConfigurationAndFetchAvailableWorkspaces : " + e.getMessage());
return null;
}
}
use of com.hp.octane.integrations.dto.general.OctaneConnectivityStatus in project octane-ci-java-sdk by MicroFocus.
the class OctaneClientImpl method getMetrics.
@Override
public Map<String, Object> getMetrics() {
Map<String, Object> map = new LinkedHashMap<>();
map.put("location", configurer.octaneConfiguration.getLocationForLog());
map.put("instanceId", configurer.octaneConfiguration.getInstanceId());
map.put("sdkSupported", configurer.octaneConfiguration.isSdkSupported());
map.put("isDisabled", configurer.octaneConfiguration.isDisabled());
map.put("shutdownHookActivated", this.isShutdownHookActivated);
if (isShutdownHookActivated) {
map.put("shutdownHookActivatedTime", new Date(shutdownHookActivatedTime));
}
map.put("isConnected", this.getConfigurationService().isConnected());
OctaneConnectivityStatus status = this.getConfigurationService().getOctaneConnectivityStatus();
if (status != null) {
map.put("octaneVersion", status.getOctaneVersion());
map.put("supportedSdkVersion", status.getSupportedSdkVersion());
}
map.put("started", new Date(started));
return map;
}
use of com.hp.octane.integrations.dto.general.OctaneConnectivityStatus in project octane-ci-java-sdk by MicroFocus.
the class OctaneClientImpl method refreshSdkSupported.
@Override
public void refreshSdkSupported() {
OctaneConnectivityStatus octaneConnectivityStatus = configurationService.getOctaneConnectivityStatus();
if (octaneConnectivityStatus != null) {
configurer.octaneConfiguration.setSdkSupported(CIPluginSDKUtils.isSdkSupported(octaneConnectivityStatus));
logger.info(configurer.octaneConfiguration.getLocationForLog() + "sdkSupported = " + configurer.octaneConfiguration.isSdkSupported());
} else {
logger.info(configurer.octaneConfiguration.getLocationForLog() + "refreshSdkSupported : octaneConnectivityStatus==null");
}
}
use of com.hp.octane.integrations.dto.general.OctaneConnectivityStatus in project octane-ci-java-sdk by MicroFocus.
the class ConfigurationServiceImpl method validateConfigurationAndGetConnectivityStatus.
@Override
public OctaneConnectivityStatus validateConfigurationAndGetConnectivityStatus() throws IOException {
OctaneRequest request = dtoFactory.newDTO(OctaneRequest.class).setMethod(HttpMethod.GET).setUrl(configurer.octaneConfiguration.getUrl() + RestService.SHARED_SPACE_INTERNAL_API_PATH_PART + configurer.octaneConfiguration.getSharedSpace() + CONNECTIVITY_STATUS_URL);
OctaneResponse response = restService.obtainOctaneRestClient().execute(request, configurer.octaneConfiguration);
if (response.getStatus() == 401) {
throw new OctaneConnectivityException(response.getStatus(), OctaneConnectivityException.AUTHENTICATION_FAILURE_KEY, OctaneConnectivityException.AUTHENTICATION_FAILURE_MESSAGE);
} else if (response.getStatus() == 403) {
throw new OctaneConnectivityException(response.getStatus(), OctaneConnectivityException.AUTHORIZATION_FAILURE_KEY, OctaneConnectivityException.AUTHORIZATION_FAILURE_MESSAGE);
} else if (response.getStatus() == 404) {
throw new OctaneConnectivityException(response.getStatus(), OctaneConnectivityException.CONN_SHARED_SPACE_INVALID_KEY, OctaneConnectivityException.CONN_SHARED_SPACE_INVALID_MESSAGE);
} else if (response.getStatus() == 200) {
OctaneConnectivityStatus octaneConnectivityStatus = DTOFactory.getInstance().dtoFromJson(response.getBody(), OctaneConnectivityStatus.class);
return octaneConnectivityStatus;
} else {
throw new OctaneConnectivityException(response.getStatus(), OctaneConnectivityException.UNEXPECTED_FAILURE_KEY, OctaneConnectivityException.UNEXPECTED_FAILURE_MESSAGE + ": " + response.getStatus());
}
}
Aggregations