Search in sources :

Example 1 with LocalEntryServiceProxy

use of org.wso2.carbon.apimgt.gateway.utils.LocalEntryServiceProxy in project carbon-apimgt by wso2.

the class GatewayUtils method retrieveDeployedLocalEntries.

public static List<String> retrieveDeployedLocalEntries(String apiName, String version, String tenantDomain) throws APIManagementException {
    try {
        SubscriptionDataStore tenantSubscriptionStore = SubscriptionDataHolder.getInstance().getTenantSubscriptionStore(tenantDomain);
        List<String> deployedLocalEntries = new ArrayList<>();
        if (tenantSubscriptionStore != null) {
            API retrievedAPI = tenantSubscriptionStore.getApiByNameAndVersion(apiName, version);
            if (retrievedAPI != null) {
                MessageContext.setCurrentMessageContext(createAxis2MessageContext());
                LocalEntryServiceProxy localEntryServiceProxy = new LocalEntryServiceProxy(tenantDomain);
                String localEntryKey = retrievedAPI.getUuid();
                if (APIConstants.GRAPHQL_API.equals(retrievedAPI.getApiType())) {
                    localEntryKey = retrievedAPI.getUuid().concat(APIConstants.GRAPHQL_LOCAL_ENTRY_EXTENSION);
                }
                if (localEntryServiceProxy.isEntryExists(localEntryKey)) {
                    OMElement entry = localEntryServiceProxy.getEntry(localEntryKey);
                    deployedLocalEntries.add(entry.toString());
                }
            }
        }
        return deployedLocalEntries;
    } catch (AxisFault axisFault) {
        throw new APIManagementException("Error while retrieving LocalEntries", axisFault, ExceptionCodes.INTERNAL_ERROR);
    } finally {
        MessageContext.destroyCurrentMessageContext();
    }
}
Also used : AxisFault(org.apache.axis2.AxisFault) APIManagementException(org.wso2.carbon.apimgt.api.APIManagementException) ArrayList(java.util.ArrayList) API(org.wso2.carbon.apimgt.keymgt.model.entity.API) OMElement(org.apache.axiom.om.OMElement) SubscriptionDataStore(org.wso2.carbon.apimgt.keymgt.model.SubscriptionDataStore)

Example 2 with LocalEntryServiceProxy

use of org.wso2.carbon.apimgt.gateway.utils.LocalEntryServiceProxy in project carbon-apimgt by wso2.

the class APIGatewayAdmin method unDeployAPI.

private void unDeployAPI(CertificateManager certificateManager, SequenceAdminServiceProxy sequenceAdminServiceProxy, RESTAPIAdminServiceProxy restapiAdminServiceProxy, LocalEntryServiceProxy localEntryServiceProxy, EndpointAdminServiceProxy endpointAdminServiceProxy, GatewayAPIDTO gatewayAPIDTO, MediationSecurityAdminServiceProxy mediationSecurityAdminServiceProxy) throws AxisFault {
    if (log.isDebugEnabled()) {
        log.debug("Start to undeploy default api " + gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion());
    }
    // Delete Default API
    String qualifiedDefaultApiName = GatewayUtils.getQualifiedDefaultApiName(gatewayAPIDTO.getName());
    if (restapiAdminServiceProxy.getApi(qualifiedDefaultApiName) != null) {
        restapiAdminServiceProxy.deleteApi(qualifiedDefaultApiName);
    }
    if (log.isDebugEnabled()) {
        log.debug(gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion() + " Default API Definition " + "undeployed successfully");
        log.debug("Start to undeploy API Definition" + gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion());
    }
    // Delete API
    String qualifiedName = GatewayUtils.getQualifiedApiName(gatewayAPIDTO.getName(), gatewayAPIDTO.getVersion());
    if (restapiAdminServiceProxy.getApi(qualifiedName) != null) {
        restapiAdminServiceProxy.deleteApi(qualifiedName);
    }
    if (log.isDebugEnabled()) {
        log.debug(gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion() + " API Definition undeployed " + "successfully");
        log.debug("Start to undeploy custom sequences" + gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion());
    }
    // Remove Sequences to be remove.
    if (gatewayAPIDTO.getSequencesToBeRemove() != null) {
        for (String sequenceName : gatewayAPIDTO.getSequencesToBeRemove()) {
            if (sequenceAdminServiceProxy.isExistingSequence(sequenceName)) {
                sequenceAdminServiceProxy.deleteSequence(sequenceName);
            }
        }
    }
    if (log.isDebugEnabled()) {
        log.debug(gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion() + " custom sequences undeployed " + "successfully");
        log.debug("Start to undeploy endpoints" + gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion());
    }
    // Remove endpoints
    if (gatewayAPIDTO.getEndpointEntriesToBeRemove() != null) {
        for (String endpoint : gatewayAPIDTO.getEndpointEntriesToBeRemove()) {
            if (endpointAdminServiceProxy.isEndpointExist(endpoint)) {
                endpointAdminServiceProxy.deleteEndpoint(endpoint);
            }
        }
    }
    if (log.isDebugEnabled()) {
        log.debug(gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion() + " endpoints undeployed " + "successfully");
        log.debug("Start to undeploy client certificates" + gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion());
    }
    // Remove clientCertificates
    if (gatewayAPIDTO.getClientCertificatesToBeRemove() != null) {
        for (String alias : gatewayAPIDTO.getClientCertificatesToBeRemove()) {
            certificateManager.deleteClientCertificateFromGateway(alias);
        }
    }
    if (log.isDebugEnabled()) {
        log.debug(gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion() + " client certificates undeployed " + "successfully");
        log.debug("Start to undeploy local entries" + gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion());
    }
    // Remove Local Entries if Exist
    if (gatewayAPIDTO.getLocalEntriesToBeRemove() != null) {
        for (String localEntryKey : gatewayAPIDTO.getLocalEntriesToBeRemove()) {
            if (localEntryServiceProxy.isEntryExists(localEntryKey)) {
                localEntryServiceProxy.deleteEntry(localEntryKey);
            }
        }
    }
    if (log.isDebugEnabled()) {
        log.debug(gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion() + " Local entries undeployed " + "successfully");
        log.debug("Start to remove vault entries" + gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion());
    }
    if (gatewayAPIDTO.getCredentialsToBeRemove() != null) {
        for (String alias : gatewayAPIDTO.getCredentialsToBeRemove()) {
            try {
                if (mediationSecurityAdminServiceProxy.isAliasExist(alias)) {
                    GatewayUtils.deleteRegistryProperty(alias, APIConstants.API_SYSTEM_CONFIG_SECURE_VAULT_LOCATION, gatewayAPIDTO.getTenantDomain());
                }
            } catch (APIManagementException e) {
                String msg = "Error while checking existence of vault entry";
                log.error(msg, e);
                throw new AxisFault(msg, e);
            }
        }
    }
    if (log.isDebugEnabled()) {
        log.debug(gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion() + " Vault entries removed " + "successfully");
        log.debug(gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion() + "undeployed successfully");
    }
}
Also used : AxisFault(org.apache.axis2.AxisFault) APIManagementException(org.wso2.carbon.apimgt.api.APIManagementException)

Example 3 with LocalEntryServiceProxy

use of org.wso2.carbon.apimgt.gateway.utils.LocalEntryServiceProxy in project carbon-apimgt by wso2.

the class GoogleAnalyticsConfigDeployer method deployAsLocalEntry.

private void deployAsLocalEntry(CloseableHttpResponse closeableHttpResponse, LocalEntryServiceProxy localEntryServiceProxy) throws IOException, ArtifactSynchronizerException {
    if (closeableHttpResponse.getStatusLine().getStatusCode() == 200) {
        try (InputStream content = closeableHttpResponse.getEntity().getContent()) {
            MessageContext.setCurrentMessageContext(GatewayUtils.createAxis2MessageContext());
            PrivilegedCarbonContext.startTenantFlow();
            PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantDomain(tenantDomain, true);
            String resourceContent = IOUtils.toString(content);
            if (localEntryServiceProxy.localEntryExists(APIConstants.GA_CONF_KEY)) {
                localEntryServiceProxy.deleteEntry(APIConstants.GA_CONF_KEY);
            }
            DataHolder.getInstance().addGoogleAnalyticsConfig(tenantDomain, resourceContent);
            localEntryServiceProxy.addLocalEntry("<localEntry key=\"" + APIConstants.GA_CONF_KEY + "\">" + resourceContent + "</localEntry>");
        } catch (LocalEntryAdminException e) {
            log.error("Error while deploying LocalEntry ga-config", e);
        } finally {
            MessageContext.destroyCurrentMessageContext();
            PrivilegedCarbonContext.endTenantFlow();
        }
    } else {
        throw new ArtifactSynchronizerException("Error while deploying localEntry status code : " + closeableHttpResponse.getStatusLine().getStatusCode());
    }
}
Also used : ArtifactSynchronizerException(org.wso2.carbon.apimgt.impl.gatewayartifactsynchronizer.exception.ArtifactSynchronizerException) InputStream(java.io.InputStream) LocalEntryAdminException(org.wso2.carbon.localentry.LocalEntryAdminException)

Example 4 with LocalEntryServiceProxy

use of org.wso2.carbon.apimgt.gateway.utils.LocalEntryServiceProxy in project carbon-apimgt by wso2.

the class APIGatewayAdmin method deployAPI.

public boolean deployAPI(GatewayAPIDTO gatewayAPIDTO) throws AxisFault {
    CertificateManager certificateManager = CertificateManagerImpl.getInstance();
    SequenceAdminServiceProxy sequenceAdminServiceProxy = getSequenceAdminServiceClient(gatewayAPIDTO.getTenantDomain());
    RESTAPIAdminServiceProxy restapiAdminServiceProxy = getRestapiAdminClient(gatewayAPIDTO.getTenantDomain());
    LocalEntryServiceProxy localEntryServiceProxy = new LocalEntryServiceProxy(gatewayAPIDTO.getTenantDomain());
    EndpointAdminServiceProxy endpointAdminServiceProxy = new EndpointAdminServiceProxy(gatewayAPIDTO.getTenantDomain());
    MediationSecurityAdminServiceProxy mediationSecurityAdminServiceProxy = new MediationSecurityAdminServiceProxy(gatewayAPIDTO.getTenantDomain());
    if (log.isDebugEnabled()) {
        log.debug("Start to undeploy API" + gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion());
    }
    unDeployAPI(certificateManager, sequenceAdminServiceProxy, restapiAdminServiceProxy, localEntryServiceProxy, endpointAdminServiceProxy, gatewayAPIDTO, mediationSecurityAdminServiceProxy);
    if (log.isDebugEnabled()) {
        log.debug(gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion() + " undeployed");
        log.debug("Start to deploy Local entries" + gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion());
    }
    // Add Local Entries
    if (gatewayAPIDTO.getLocalEntriesToBeAdd() != null) {
        for (GatewayContentDTO localEntry : gatewayAPIDTO.getLocalEntriesToBeAdd()) {
            if (localEntryServiceProxy.isEntryExists(localEntry.getName())) {
                localEntryServiceProxy.deleteEntry(localEntry.getName());
                localEntryServiceProxy.addLocalEntry(localEntry.getContent());
            } else {
                localEntryServiceProxy.addLocalEntry(localEntry.getContent());
            }
        }
    }
    if (log.isDebugEnabled()) {
        log.debug(gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion() + " Local Entries deployed");
        log.debug("Start to deploy Endpoint entries" + gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion());
    }
    // Add Endpoints
    if (gatewayAPIDTO.getEndpointEntriesToBeAdd() != null) {
        for (GatewayContentDTO endpointEntry : gatewayAPIDTO.getEndpointEntriesToBeAdd()) {
            if (endpointAdminServiceProxy.isEndpointExist(endpointEntry.getName())) {
                endpointAdminServiceProxy.deleteEndpoint(endpointEntry.getName());
                endpointAdminServiceProxy.addEndpoint(endpointEntry.getContent());
            } else {
                endpointAdminServiceProxy.addEndpoint(endpointEntry.getContent());
            }
        }
    }
    if (log.isDebugEnabled()) {
        log.debug(gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion() + " Endpoints deployed");
        log.debug("Start to deploy Client certificates" + gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion());
    }
    // Add Client Certificates
    if (gatewayAPIDTO.getClientCertificatesToBeAdd() != null) {
        for (GatewayContentDTO certificate : gatewayAPIDTO.getClientCertificatesToBeAdd()) {
            certificateManager.addClientCertificateToGateway(certificate.getContent(), certificate.getName());
        }
    }
    if (log.isDebugEnabled()) {
        log.debug(gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion() + " client certificates deployed");
        log.debug("Start to add vault entries " + gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion());
    }
    // Add vault entries
    if (gatewayAPIDTO.getCredentialsToBeAdd() != null) {
        for (CredentialDto certificate : gatewayAPIDTO.getCredentialsToBeAdd()) {
            try {
                String encryptedValue = mediationSecurityAdminServiceProxy.doEncryption(certificate.getPassword());
                if (mediationSecurityAdminServiceProxy.isAliasExist(certificate.getAlias())) {
                    setRegistryProperty(gatewayAPIDTO.getTenantDomain(), certificate.getAlias(), encryptedValue);
                } else {
                    setRegistryProperty(gatewayAPIDTO.getTenantDomain(), certificate.getAlias(), encryptedValue);
                }
            } catch (APIManagementException e) {
                log.error("Exception occurred while encrypting password.", e);
                throw new AxisFault(e.getMessage());
            }
        }
    }
    if (log.isDebugEnabled()) {
        log.debug(gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion() + " Vault Entries Added successfully");
        log.debug("Start to deploy custom sequences" + gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion());
    }
    // Add Sequences
    if (gatewayAPIDTO.getSequenceToBeAdd() != null) {
        for (GatewayContentDTO sequence : gatewayAPIDTO.getSequenceToBeAdd()) {
            OMElement element;
            try {
                element = AXIOMUtil.stringToOM(sequence.getContent());
            } catch (XMLStreamException e) {
                log.error("Exception occurred while converting String to an OM.", e);
                throw new AxisFault(e.getMessage());
            }
            if (sequenceAdminServiceProxy.isExistingSequence(sequence.getName())) {
                sequenceAdminServiceProxy.deleteSequence(sequence.getName());
                sequenceAdminServiceProxy.addSequence(element);
            } else {
                sequenceAdminServiceProxy.addSequence(element);
            }
        }
    }
    if (log.isDebugEnabled()) {
        log.debug(gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion() + " custom sequences deployed");
        log.debug("Start to deploy API Definition" + gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion());
    }
    // Add API
    if (StringUtils.isNotEmpty(gatewayAPIDTO.getApiDefinition())) {
        restapiAdminServiceProxy.addApi(gatewayAPIDTO.getApiDefinition());
    }
    if (log.isDebugEnabled()) {
        log.debug(gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion() + " API Definition deployed");
        log.debug("Start to deploy Default API Definition" + gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion());
    }
    if (log.isDebugEnabled()) {
        log.debug(gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion() + " Default API Definition deployed");
        log.debug(gatewayAPIDTO.getName() + ":" + gatewayAPIDTO.getVersion() + "Deployed successfully");
    }
    return true;
}
Also used : AxisFault(org.apache.axis2.AxisFault) MediationSecurityAdminServiceProxy(org.wso2.carbon.apimgt.gateway.utils.MediationSecurityAdminServiceProxy) CertificateManager(org.wso2.carbon.apimgt.impl.certificatemgt.CertificateManager) OMElement(org.apache.axiom.om.OMElement) RESTAPIAdminServiceProxy(org.wso2.carbon.apimgt.gateway.utils.RESTAPIAdminServiceProxy) CredentialDto(org.wso2.carbon.apimgt.api.gateway.CredentialDto) APIManagementException(org.wso2.carbon.apimgt.api.APIManagementException) XMLStreamException(javax.xml.stream.XMLStreamException) LocalEntryServiceProxy(org.wso2.carbon.apimgt.gateway.utils.LocalEntryServiceProxy) EndpointAdminServiceProxy(org.wso2.carbon.apimgt.gateway.utils.EndpointAdminServiceProxy) GatewayContentDTO(org.wso2.carbon.apimgt.api.gateway.GatewayContentDTO) SequenceAdminServiceProxy(org.wso2.carbon.apimgt.gateway.utils.SequenceAdminServiceProxy)

Example 5 with LocalEntryServiceProxy

use of org.wso2.carbon.apimgt.gateway.utils.LocalEntryServiceProxy in project carbon-apimgt by wso2.

the class APIGatewayAdmin method unDeployAPI.

public boolean unDeployAPI(GatewayAPIDTO gatewayAPIDTO) throws AxisFault {
    CertificateManager certificateManager = CertificateManagerImpl.getInstance();
    SequenceAdminServiceProxy sequenceAdminServiceProxy = getSequenceAdminServiceClient(gatewayAPIDTO.getTenantDomain());
    RESTAPIAdminServiceProxy restapiAdminServiceProxy = getRestapiAdminClient(gatewayAPIDTO.getTenantDomain());
    LocalEntryServiceProxy localEntryServiceProxy = new LocalEntryServiceProxy(gatewayAPIDTO.getTenantDomain());
    EndpointAdminServiceProxy endpointAdminServiceProxy = new EndpointAdminServiceProxy(gatewayAPIDTO.getTenantDomain());
    MediationSecurityAdminServiceProxy mediationSecurityAdminServiceProxy = new MediationSecurityAdminServiceProxy(gatewayAPIDTO.getTenantDomain());
    unDeployAPI(certificateManager, sequenceAdminServiceProxy, restapiAdminServiceProxy, localEntryServiceProxy, endpointAdminServiceProxy, gatewayAPIDTO, mediationSecurityAdminServiceProxy);
    return true;
}
Also used : RESTAPIAdminServiceProxy(org.wso2.carbon.apimgt.gateway.utils.RESTAPIAdminServiceProxy) MediationSecurityAdminServiceProxy(org.wso2.carbon.apimgt.gateway.utils.MediationSecurityAdminServiceProxy) LocalEntryServiceProxy(org.wso2.carbon.apimgt.gateway.utils.LocalEntryServiceProxy) CertificateManager(org.wso2.carbon.apimgt.impl.certificatemgt.CertificateManager) EndpointAdminServiceProxy(org.wso2.carbon.apimgt.gateway.utils.EndpointAdminServiceProxy) SequenceAdminServiceProxy(org.wso2.carbon.apimgt.gateway.utils.SequenceAdminServiceProxy)

Aggregations

APIManagementException (org.wso2.carbon.apimgt.api.APIManagementException)4 AxisFault (org.apache.axis2.AxisFault)3 LocalEntryServiceProxy (org.wso2.carbon.apimgt.gateway.utils.LocalEntryServiceProxy)3 OMElement (org.apache.axiom.om.OMElement)2 EndpointAdminServiceProxy (org.wso2.carbon.apimgt.gateway.utils.EndpointAdminServiceProxy)2 MediationSecurityAdminServiceProxy (org.wso2.carbon.apimgt.gateway.utils.MediationSecurityAdminServiceProxy)2 RESTAPIAdminServiceProxy (org.wso2.carbon.apimgt.gateway.utils.RESTAPIAdminServiceProxy)2 SequenceAdminServiceProxy (org.wso2.carbon.apimgt.gateway.utils.SequenceAdminServiceProxy)2 CertificateManager (org.wso2.carbon.apimgt.impl.certificatemgt.CertificateManager)2 ArtifactSynchronizerException (org.wso2.carbon.apimgt.impl.gatewayartifactsynchronizer.exception.ArtifactSynchronizerException)2 IOException (java.io.IOException)1 InputStream (java.io.InputStream)1 ArrayList (java.util.ArrayList)1 XMLStreamException (javax.xml.stream.XMLStreamException)1 CloseableHttpResponse (org.apache.http.client.methods.CloseableHttpResponse)1 CredentialDto (org.wso2.carbon.apimgt.api.gateway.CredentialDto)1 GatewayContentDTO (org.wso2.carbon.apimgt.api.gateway.GatewayContentDTO)1 SubscriptionDataStore (org.wso2.carbon.apimgt.keymgt.model.SubscriptionDataStore)1 API (org.wso2.carbon.apimgt.keymgt.model.entity.API)1 LocalEntryAdminException (org.wso2.carbon.localentry.LocalEntryAdminException)1