Search in sources :

Example 1 with OctaneConnectivityStatus

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;
    }
}
Also used : OctaneConnectivityException(com.hp.octane.integrations.exceptions.OctaneConnectivityException) Entity(com.hp.octane.integrations.dto.entities.Entity) IOException(java.io.IOException) OctaneConnectivityException(com.hp.octane.integrations.exceptions.OctaneConnectivityException) OctaneConnectivityStatus(com.hp.octane.integrations.dto.general.OctaneConnectivityStatus) ConfigurationService(com.hp.octane.integrations.services.configuration.ConfigurationService) EntitiesService(com.hp.octane.integrations.services.entities.EntitiesService) RestService(com.hp.octane.integrations.services.rest.RestService)

Example 2 with OctaneConnectivityStatus

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;
}
Also used : OctaneConnectivityStatus(com.hp.octane.integrations.dto.general.OctaneConnectivityStatus) Date(java.util.Date) LinkedHashMap(java.util.LinkedHashMap)

Example 3 with OctaneConnectivityStatus

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");
    }
}
Also used : OctaneConnectivityStatus(com.hp.octane.integrations.dto.general.OctaneConnectivityStatus)

Example 4 with OctaneConnectivityStatus

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());
    }
}
Also used : OctaneConnectivityException(com.hp.octane.integrations.exceptions.OctaneConnectivityException) OctaneConnectivityStatus(com.hp.octane.integrations.dto.general.OctaneConnectivityStatus) OctaneResponse(com.hp.octane.integrations.dto.connectivity.OctaneResponse) OctaneRequest(com.hp.octane.integrations.dto.connectivity.OctaneRequest)

Aggregations

OctaneConnectivityStatus (com.hp.octane.integrations.dto.general.OctaneConnectivityStatus)4 OctaneConnectivityException (com.hp.octane.integrations.exceptions.OctaneConnectivityException)2 OctaneRequest (com.hp.octane.integrations.dto.connectivity.OctaneRequest)1 OctaneResponse (com.hp.octane.integrations.dto.connectivity.OctaneResponse)1 Entity (com.hp.octane.integrations.dto.entities.Entity)1 ConfigurationService (com.hp.octane.integrations.services.configuration.ConfigurationService)1 EntitiesService (com.hp.octane.integrations.services.entities.EntitiesService)1 RestService (com.hp.octane.integrations.services.rest.RestService)1 IOException (java.io.IOException)1 Date (java.util.Date)1 LinkedHashMap (java.util.LinkedHashMap)1