diff options
author | 2017-03-29 13:35:45 +0300 | |
---|---|---|
committer | 2017-03-29 13:35:45 +0300 | |
commit | e2cc2530fc6d54ebc975c01a4ff887ce12f0a736 (patch) | |
tree | 38385867295c8a09fb0d7f8eaf5fa78179e5b13a /src/main/java | |
parent | bccebaa9888906f8ff78172f62ec592956066d82 (diff) |
[SDC-6] sdc-distribution-client 1707 rebasing
Change-Id: I322a05fd79beb6ba4fee4d32afffecf531b86e98
Signed-off-by: Pavel Aharoni <pa0916@att.com>
Diffstat (limited to 'src/main/java')
46 files changed, 0 insertions, 4654 deletions
diff --git a/src/main/java/org/openecomp/sdc/api/IDistributionClient.java b/src/main/java/org/openecomp/sdc/api/IDistributionClient.java deleted file mode 100644 index a620e49..0000000 --- a/src/main/java/org/openecomp/sdc/api/IDistributionClient.java +++ /dev/null @@ -1,137 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.api; - -import java.util.List; - -import org.openecomp.sdc.api.consumer.IConfiguration; -import org.openecomp.sdc.api.consumer.IDistributionStatusMessage; -import org.openecomp.sdc.api.consumer.INotificationCallback; -import org.openecomp.sdc.api.notification.IArtifactInfo; -import org.openecomp.sdc.api.notification.IVfModuleMetadata; -import org.openecomp.sdc.api.results.IDistributionClientDownloadResult; -import org.openecomp.sdc.api.results.IDistributionClientResult; - -public interface IDistributionClient { - - /** - * Update the configuration of the distribution client <br> - * Updatable configuration parameters are: pollingInterval, pollingTimeout, consumerGroup and relevantArtifactTypes - * - * @param newConf - contains updated configuration - * - * @return IDistributionClientResult - */ - IDistributionClientResult updateConfiguration(IConfiguration newConf); - - /** - * Retrieve the configuration of the distribution client <br> - * - * @return IConfiguration - */ - IConfiguration getConfiguration(); - - /** - * Start distribution client <br> - * - start polling notification topic <br> - * - * @return IDistributionClientResult - */ - IDistributionClientResult start(); - - /** - * Stop distribution client <br> - * - stop polling notification topic <br> - * - unregister topics (via ASDC) <br> - * - delete keys from UEB - * - * @return IDistributionClientResult - */ - IDistributionClientResult stop(); - - /** - * Downloads an artifact from ASDC Catalog <br> - * - * @param artifactInfo - * @return IDistributionClientDownloadResult - */ - IDistributionClientDownloadResult download(IArtifactInfo artifactInfo); - - /** - * Initialize the distribution client <br> - * - fetch the UEB server list from ASDC <br> - * - create keys in UEB <br> - * - register for topics (via ASDC) <br> - * - set the notification callback <br> - * - * Note: all configuration fields are mandatory. <br> - * Password must be in clear text and not encrypted <br> - * ECOMP-Component MUST store password as SHA-2 (256) hashed with dynamically generated salt value <br> - * - * @param conf - * @param callback - * @return IDistributionClientResult - */ - IDistributionClientResult init(IConfiguration conf, INotificationCallback callback); - - - /** - * Build and publish Distribution Download Status event to Distribution Status Topic - * - * @param statusMessage - * @return IDistributionClientResult - */ - IDistributionClientResult sendDownloadStatus(IDistributionStatusMessage statusMessage); - - /** - * Build and publish Distribution Download Status event to Distribution Status Topic With Error Reason. - * - * @param statusMessage - * @param errorReason - * @return IDistributionClientResult - */ - IDistributionClientResult sendDownloadStatus(IDistributionStatusMessage statusMessage, String errorReason); - - - /** - * Build and publish Distribution Deployment Status event to Distribution Status Topic - * - * @param statusMessage - * @return IDistributionClientResult - */ - IDistributionClientResult sendDeploymentStatus(IDistributionStatusMessage statusMessage); - - /** - * Build and publish Distribution Deployment Status event to Distribution Status Topic With Error Reason. - * - * @param statusMessage - * @param errorReason - * @return IDistributionClientResult - */ - IDistributionClientResult sendDeploymentStatus(IDistributionStatusMessage statusMessage, String errorReason); - - /**This method parses artifact of type VF_MODULES_METADATA payload data . - * @param artifactPayload - * @return IVfModuleMetadata list - */ - List<IVfModuleMetadata> decodeVfModuleArtifact(byte[] artifactPayload); - -} diff --git a/src/main/java/org/openecomp/sdc/api/IDistributionStatusMessageJsonBuilder.java b/src/main/java/org/openecomp/sdc/api/IDistributionStatusMessageJsonBuilder.java deleted file mode 100644 index 7c28271..0000000 --- a/src/main/java/org/openecomp/sdc/api/IDistributionStatusMessageJsonBuilder.java +++ /dev/null @@ -1,25 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.api; - -public interface IDistributionStatusMessageJsonBuilder { - String build(); -} diff --git a/src/main/java/org/openecomp/sdc/api/asdc/RegistrationRequest.java b/src/main/java/org/openecomp/sdc/api/asdc/RegistrationRequest.java deleted file mode 100644 index f6ce949..0000000 --- a/src/main/java/org/openecomp/sdc/api/asdc/RegistrationRequest.java +++ /dev/null @@ -1,33 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.api.asdc; - -public class RegistrationRequest { - - String apiPublicKey; - String distrEnvName; - - public RegistrationRequest(String apiPublicKey, String distrEnvName) { - this.apiPublicKey = apiPublicKey; - this.distrEnvName = distrEnvName; - } - -} diff --git a/src/main/java/org/openecomp/sdc/api/asdc/ServerListResponse.java b/src/main/java/org/openecomp/sdc/api/asdc/ServerListResponse.java deleted file mode 100644 index c131a95..0000000 --- a/src/main/java/org/openecomp/sdc/api/asdc/ServerListResponse.java +++ /dev/null @@ -1,36 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.api.asdc; - -import java.util.List; - -public class ServerListResponse { - - private List<String> uebServerList; - - public List<String> getUebServerList() { - return uebServerList; - } - - public void setUebServerList(List<String> uebServerList) { - this.uebServerList = uebServerList; - } -} diff --git a/src/main/java/org/openecomp/sdc/api/consumer/IConfiguration.java b/src/main/java/org/openecomp/sdc/api/consumer/IConfiguration.java deleted file mode 100644 index 67eebce..0000000 --- a/src/main/java/org/openecomp/sdc/api/consumer/IConfiguration.java +++ /dev/null @@ -1,65 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.api.consumer; - -import java.util.List; - -public interface IConfiguration { - /**ASDC Distribution Engine address. - * Value can be either hostname (with or without port), IP:port or FQDN (Fully Qualified Domain Name). */ - String getAsdcAddress(); - /** User Name for ASDC distribution consumer authentication. */ - String getUser(); - /** User Password for ASDC distribution consumer authentication. */ - String getPassword(); - /** Distribution Client Polling Interval towards UEB in seconds. - * Can Be reconfigured in runtime */ - int getPollingInterval(); - /** Distribution Client Timeout in seconds waiting to UEB server response in each fetch interval. - * Can Be reconfigured in runtime */ - int getPollingTimeout(); - /** List of artifact types.<br> - * If the service contains any of the artifacts in the list, the callback will be activated. - * Can Be reconfigured in runtime */ - List<String> getRelevantArtifactTypes(); - /** Returns the consumer group defined for this ECOMP component, if no consumer group is defined return null. */ - String getConsumerGroup(); - /** Returns the environment name (testing, production etc...) - * Can Be reconfigured in runtime */ - String getEnvironmentName(); - /**Unique ID of ECOMP component instance (e.x INSTAR name)*/ - String getConsumerID(); - /**Return full path to Client's Key Store that contains either CA certificate or the ASDC's public key (e.g /etc/keystore/asdc-client.jks) - * file will be deployed with asdc-distribution jar */ - String getKeyStorePath(); - - /**return client's Key Store password */ - String getKeyStorePassword(); - - /** - * Sets whether ASDC server TLS authentication is activated. - * If set to false, Key Store path and password are not needed to be set. - * @return - */ - boolean activateServerTLSAuth(); -} - - diff --git a/src/main/java/org/openecomp/sdc/api/consumer/IDistributionStatusMessage.java b/src/main/java/org/openecomp/sdc/api/consumer/IDistributionStatusMessage.java deleted file mode 100644 index 86251d1..0000000 --- a/src/main/java/org/openecomp/sdc/api/consumer/IDistributionStatusMessage.java +++ /dev/null @@ -1,52 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.api.consumer; - -import org.openecomp.sdc.utils.DistributionStatusEnum; - -public interface IDistributionStatusMessage { - /** - * Distribution ID published in the distribution notification.<br> - * Should be used to link the distribution status reports to the appropriate - * distribution activation.<br> - * Global Distribution Identifier: UUID generated by ASDC per each - * distribution activation.<br> - * Generated UUID is compliant with RFC 4122. It is a 128-bit value - * formatted into blocks of hexadecimal digits separated by a hyphen ("-"). - * Ex.: AA97B177-9383-4934-8543-0F91A7A02836 - */ - String getDistributionID(); - - /**Unique ID of ECOMP component instance (e.x INSTAR name)*/ - String getConsumerID(); - - /** - * Timestamp of the distribution status report creation.<br> - * The number of seconds that have elapsed since January 1, 1970. - */ - long getTimestamp(); - - /**Resource URL of the downloaded/deployed artifact - URL specified in the distribution notification message*/ - String getArtifactURL(); - - /**Download/Deployment status*/ - DistributionStatusEnum getStatus(); -} diff --git a/src/main/java/org/openecomp/sdc/api/consumer/INotificationCallback.java b/src/main/java/org/openecomp/sdc/api/consumer/INotificationCallback.java deleted file mode 100644 index 60666ed..0000000 --- a/src/main/java/org/openecomp/sdc/api/consumer/INotificationCallback.java +++ /dev/null @@ -1,29 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.api.consumer; - -import org.openecomp.sdc.api.notification.INotificationData; -/**When a relevant notification will be found activateCallback method will be activated with the notification data.<br> - * Please implement it according to your desired callback logic.*/ -public interface INotificationCallback { - void activateCallback(INotificationData data); -} - diff --git a/src/main/java/org/openecomp/sdc/api/notification/IArtifactInfo.java b/src/main/java/org/openecomp/sdc/api/notification/IArtifactInfo.java deleted file mode 100644 index 135fd45..0000000 --- a/src/main/java/org/openecomp/sdc/api/notification/IArtifactInfo.java +++ /dev/null @@ -1,84 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.api.notification; - -import java.util.List; - - -public interface IArtifactInfo { - - /**Artifact File name */ - String getArtifactName(); - - /**Artifact Type.<br> - Following are valid values : HEAT , DG_XML. <br> - List of values will be extended in post-1510 releases.*/ - String getArtifactType(); - - /**Relative artifact's URL. Should be used in REST GET API to download the artifact's payload.<br> - The full artifact URL will be in the following format :<br> - https://{serverBaseURL}/{resourcePath}<br> - serverBaseURL - Hostname ( ASDC LB FQDN) + optional port <br> - resourcePath - "artifactURL" <br> - Ex : https://asdc.att.com/v1/catalog/services/srv1/2.0/resources/aaa/1.0/artifacts/aaa.yml */ - String getArtifactURL(); - - /**Base-64 encoded MD5 checksum of the artifact's payload.<br> - Should be used for data integrity validation when an artifact's payload is downloaded.<br>*/ - String getArtifactChecksum(); - - /** - * Installation timeout in minutes.<br> - * Used by the Orchestrator to determine how much time to wait for a heat (or other deployment artifact)<br> - * This field is only relevant for artifacts of ArtifactTypeEnum HEAT, for other artifacts it will be null.<br> - * deployment process to finish.<br> - * - */ - Integer getArtifactTimeout(); - - /** - * Artifact description - */ - String getArtifactDescription(); - - /** - * Artifact Version - */ - String getArtifactVersion(); - - /** - * Artifact Unique ID - */ - String getArtifactUUID(); - - - /** - * Returns the artifact it is generated from (relevant for heat_env), or null if there is no such artifact. - */ - IArtifactInfo getGeneratedArtifact(); - - /** - * Returns the list of related artifacts (relevant for HEAT_NESTED or HEAT_ARTIFACT), or null if there is no such artifacts. - */ - List<IArtifactInfo> getRelatedArtifacts(); - - -} diff --git a/src/main/java/org/openecomp/sdc/api/notification/INotificationData.java b/src/main/java/org/openecomp/sdc/api/notification/INotificationData.java deleted file mode 100644 index df314ea..0000000 --- a/src/main/java/org/openecomp/sdc/api/notification/INotificationData.java +++ /dev/null @@ -1,67 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.api.notification; - -import java.util.List; - - - - - -public interface INotificationData { - /** Global Distribution Identifier: UUID generated by ASDC per each distribution activation.<br> - * Generated UUID is compliant with RFC 4122.<br> - * It is a 128-bit value formatted into blocks of hexadecimal digits separated by a hyphen ("-").<br> - Ex.: AA97B177-9383-4934-8543-0F91A7A02836 */ - String getDistributionID(); - - /**Logical Service Name.*/ - String getServiceName(); - - /** Service Version.<br> - * Two dot (".") separated digit blocks.<br> - Ex. : "2.0"*/ - String getServiceVersion(); - - /**Global UUID generated by ASDC per each service version. Generated UUID is compliant with RFC 4122.<br> - It is a 128-bit value formatted into blocks of hexadecimal digits separated by a hyphen ("-").<br> - Ex. : AA97B177-9383-4934-8543-0F91A7A02836*/ - String getServiceUUID(); - - /** - * Service description - */ - String getServiceDescription(); - - /** List of the resource instances */ - List<IResourceInstance> getResources(); - - /** List of Artifacts On Service Level */ - List<IArtifactInfo> getServiceArtifacts(); - - /**This method allows getting details of the artifact by its uuid.*/ - IArtifactInfo getArtifactMetadataByUUID(String artifactUUID); - - /** - * Invariant UUID - */ - String getServiceInvariantUUID(); -} diff --git a/src/main/java/org/openecomp/sdc/api/notification/IResourceInstance.java b/src/main/java/org/openecomp/sdc/api/notification/IResourceInstance.java deleted file mode 100644 index 5a29d4b..0000000 --- a/src/main/java/org/openecomp/sdc/api/notification/IResourceInstance.java +++ /dev/null @@ -1,50 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.api.notification; - -import java.util.List; - -public interface IResourceInstance { - /**Logical Resource Instance Name. <br> - * Unique Identifier of the instance of the specific resource in the service context.**/ - String getResourceInstanceName(); - - /**resource name */ - String getResourceName(); - - /**resource version */ - String getResourceVersion(); - - /**Resource Type (For Example: VF (Virtual Function) - A subsystem in a service, it can include one or more VFCs. This is what NFV spec refers as VNF.)**/ - String getResourceType(); - - /**Global UUID of the resource that specific artifact belongs to.<br> - It is generated by ASDC per each resource version.<br> - Generated UUID is compliant with RFC 4122. It is a 128-bit value formatted into blocks of hexadecimal digits separated by a hyphen ("-"). <br> - Ex.: AA97B177-9383-4934-8543-0F91A7A02836*/ - String getResourceUUID(); - - /**List of resource instance deployment artifacts. **/ - List<IArtifactInfo> getArtifacts(); - - String getResourceInvariantUUID(); - -} diff --git a/src/main/java/org/openecomp/sdc/api/notification/IVfModuleMetadata.java b/src/main/java/org/openecomp/sdc/api/notification/IVfModuleMetadata.java deleted file mode 100644 index a769d71..0000000 --- a/src/main/java/org/openecomp/sdc/api/notification/IVfModuleMetadata.java +++ /dev/null @@ -1,63 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.api.notification; - -import java.util.List; -/**VF Module in the resource (VF) context*/ -public interface IVfModuleMetadata { - /**Logical VF Module Name. Unique Identifier of VF Module in the resource (VF) context.<br> - Ex. : "PCRF-module-0" - */ - String getVfModuleModelName(); - - /**Invariant VF Module UUID generated on VF Module creation according to RFC 4122 <br> - It is generated on service creation and stays invariant even if service name /version are updated. - */ - String getVfModuleModelInvariantUUID(); - - /** - Resource Version . Ex. : "1" - */ - String getVfModuleModelVersion(); - - /**Global UUID of the VF Module.<br> - It is generated by ASDC per each new VF module version. Generated UUID is compliant with RFC 4122. It is a 128-bit value formatted into blocks of hexadecimal digits separated by a hyphen ("-").<br> - Ex.: AA97B177-9383-4934-8543-0F91A7A02836 - */ - String getVfModuleModelUUID(); - - - /** - * VF Module textual description. Can be empty. - */ - String getVfModuleModelDescription(); - - - /** - * Is this VF module is the base module of the VF. - * */ - boolean isBase(); - - /** - * Array of VF Module deployment artifacts UUID. - * */ - List<String> getArtifacts(); -} diff --git a/src/main/java/org/openecomp/sdc/api/results/IDistributionClientDownloadResult.java b/src/main/java/org/openecomp/sdc/api/results/IDistributionClientDownloadResult.java deleted file mode 100644 index e101636..0000000 --- a/src/main/java/org/openecomp/sdc/api/results/IDistributionClientDownloadResult.java +++ /dev/null @@ -1,27 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.api.results; - -/**Distribution Client Result For Download API*/ -public interface IDistributionClientDownloadResult extends IDistributionClientResult{ - byte[] getArtifactPayload(); - String getArtifactName(); -} diff --git a/src/main/java/org/openecomp/sdc/api/results/IDistributionClientResult.java b/src/main/java/org/openecomp/sdc/api/results/IDistributionClientResult.java deleted file mode 100644 index b4086ac..0000000 --- a/src/main/java/org/openecomp/sdc/api/results/IDistributionClientResult.java +++ /dev/null @@ -1,28 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.api.results; - -import org.openecomp.sdc.utils.DistributionActionResultEnum; -/**General Distribution Client Result*/ -public interface IDistributionClientResult { - DistributionActionResultEnum getDistributionActionResult(); - String getDistributionMessageResult(); -} diff --git a/src/main/java/org/openecomp/sdc/http/AsdcConnectorClient.java b/src/main/java/org/openecomp/sdc/http/AsdcConnectorClient.java deleted file mode 100644 index 59a879c..0000000 --- a/src/main/java/org/openecomp/sdc/http/AsdcConnectorClient.java +++ /dev/null @@ -1,410 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.http; - -import java.io.IOException; -import java.io.InputStream; -import java.lang.reflect.Type; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; - -import org.apache.commons.io.IOUtils; -import org.apache.http.HttpEntity; -import org.apache.http.HttpHeaders; -import org.apache.http.HttpStatus; -import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.entity.ContentType; -import org.apache.http.entity.StringEntity; -import org.openecomp.sdc.api.asdc.RegistrationRequest; -import org.openecomp.sdc.api.asdc.ServerListResponse; -import org.openecomp.sdc.api.consumer.IConfiguration; -import org.openecomp.sdc.api.notification.IArtifactInfo; -import org.openecomp.sdc.api.results.IDistributionClientResult; -import org.openecomp.sdc.impl.DistributionClientDownloadResultImpl; -import org.openecomp.sdc.impl.DistributionClientResultImpl; -import org.openecomp.sdc.utils.DistributionActionResultEnum; -import org.openecomp.sdc.utils.DistributionClientConstants; -import org.openecomp.sdc.utils.GeneralUtils; -import org.openecomp.sdc.utils.Pair; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.att.nsa.apiClient.credentials.ApiCredential; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.reflect.TypeToken; - -import fj.data.Either; - -public class AsdcConnectorClient { - String contentDispositionHeader = "Content-Disposition"; - private static Logger log = LoggerFactory.getLogger(AsdcConnectorClient.class.getName()); - private IConfiguration configuration; - private HttpAsdcClient httpClient = null; - - public void init(IConfiguration configuraion) { - this.configuration = configuraion; - httpClient = new HttpAsdcClient(configuration); - } - - public void close() { - if (httpClient != null) { - httpClient.closeHttpClient(); - } - } - - public IConfiguration getConfiguration() { - return configuration; - } - - public void setConfiguration(IConfiguration configuration) { - this.configuration = configuration; - } - - public HttpAsdcClient getHttpClient() { - return httpClient; - } - - public void setHttpClient(HttpAsdcClient httpClient) { - this.httpClient = httpClient; - } - - public Either<List<String>, IDistributionClientResult> getServerList() { - Pair<HttpAsdcResponse, CloseableHttpResponse> getServersResponsePair = performAsdcServerRequest(AsdcUrls.GET_CLUSTER_SERVER_LIST); - HttpAsdcResponse getServersResponse = getServersResponsePair.getFirst(); - - Either<List<String>, IDistributionClientResult> response; - if (getServersResponse.getStatus() == HttpStatus.SC_OK) { - response = parseGetServersResponse(getServersResponse); - } else { - IDistributionClientResult asdcError = handleAsdcError(getServersResponse); - response = Either.right(asdcError); - - } - handeAsdcConnectionClose(getServersResponsePair); - return response; - - } - - public Either<List<String>, IDistributionClientResult> getValidArtifactTypesList() { - Pair<HttpAsdcResponse, CloseableHttpResponse> getServersResponsePair = performAsdcServerRequest(AsdcUrls.GET_VALID_ARTIFACT_TYPES); - HttpAsdcResponse getArtifactTypeResponse = getServersResponsePair.getFirst(); - - Either<List<String>, IDistributionClientResult> response; - if (getArtifactTypeResponse.getStatus() == HttpStatus.SC_OK) { - response = parseGetValidArtifactTypesResponse(getArtifactTypeResponse); - } else { - IDistributionClientResult asdcError = handleAsdcError(getArtifactTypeResponse); - response = Either.right(asdcError); - - } - handeAsdcConnectionClose(getServersResponsePair); - return response; - - } - - private void handeAsdcConnectionClose(Pair<HttpAsdcResponse, CloseableHttpResponse> getServersResponsePair) { - if (getServersResponsePair.getSecond() != null) { - try { - getServersResponsePair.getSecond().close(); - - } catch (IOException e) { - log.error("failed to close http response"); - } - - } - } - - private Pair<HttpAsdcResponse, CloseableHttpResponse> performAsdcServerRequest(final String url) { - String requestId = UUID.randomUUID().toString(); - Map<String, String> requestHeaders = addHeadersToHttpRequest(requestId); - log.debug("about to perform getServerList. requestId= {} url= {}", requestId, url); - Pair<HttpAsdcResponse, CloseableHttpResponse> getServersResponsePair = httpClient.getRequest(url, requestHeaders, false); - return getServersResponsePair; - } - - public Either<TopicRegistrationResponse, DistributionClientResultImpl> registerAsdcTopics(ApiCredential credential) { - - Either<TopicRegistrationResponse, DistributionClientResultImpl> response = null; - - String requestId = UUID.randomUUID().toString(); - Map<String, String> requestHeaders = addHeadersToHttpRequest(requestId); - - RegistrationRequest registrationRequest = new RegistrationRequest(credential.getApiKey(), configuration.getEnvironmentName()); - Gson gson = new GsonBuilder().setPrettyPrinting().create(); - String jsonRequest = gson.toJson(registrationRequest); - StringEntity body = new StringEntity(jsonRequest, ContentType.APPLICATION_JSON); - - log.debug("about to perform registerAsdcTopics. requestId= " + requestId + " url= " + AsdcUrls.POST_FOR_TOPIC_REGISTRATION); - Pair<HttpAsdcResponse, CloseableHttpResponse> registerResponsePair = httpClient.postRequest(AsdcUrls.POST_FOR_TOPIC_REGISTRATION, body, requestHeaders, false); - HttpAsdcResponse registerResponse = registerResponsePair.getFirst(); - int status = registerResponse.getStatus(); - - if (status == HttpStatus.SC_OK) { - response = parseRegistrationResponse(registerResponse); - - } else { - DistributionClientResultImpl asdcError = handleAsdcError(registerResponse); - return Either.right(asdcError); - } - handeAsdcConnectionClose(registerResponsePair); - - log.debug("registerAsdcTopics response= " + status + ". requestId= " + requestId + " url= " + AsdcUrls.POST_FOR_TOPIC_REGISTRATION); - return response; - - } - - public IDistributionClientResult unregisterTopics(ApiCredential credential) { - - DistributionClientResultImpl response = null; - - String requestId = UUID.randomUUID().toString(); - HttpAsdcClient httpClient = new HttpAsdcClient(configuration); - Map<String, String> requestHeaders = addHeadersToHttpRequest(requestId); - - RegistrationRequest registrationRequest = new RegistrationRequest(credential.getApiKey(), configuration.getEnvironmentName()); - Gson gson = new GsonBuilder().setPrettyPrinting().create(); - String jsonRequest = gson.toJson(registrationRequest); - StringEntity body = new StringEntity(jsonRequest, ContentType.APPLICATION_JSON); - - log.debug("about to perform unregisterTopics. requestId= " + requestId + " url= " + AsdcUrls.POST_FOR_UNREGISTER); - Pair<HttpAsdcResponse, CloseableHttpResponse> unRegisterResponsePair = httpClient.postRequest(AsdcUrls.POST_FOR_UNREGISTER, body, requestHeaders, false); - HttpAsdcResponse unRegisterResponse = unRegisterResponsePair.getFirst(); - int status = unRegisterResponse.getStatus(); - if (status == HttpStatus.SC_NO_CONTENT || status == HttpStatus.SC_OK) { - response = new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS, "unregistration successful"); - - } else { - response = handleAsdcError(unRegisterResponse); - } - - handeAsdcConnectionClose(unRegisterResponsePair); - - log.debug("unregisterTopics response = " + status + ". requestId= " + requestId + " url= " + AsdcUrls.POST_FOR_UNREGISTER); - - return response; - - } - - public DistributionClientDownloadResultImpl dowloadArtifact(IArtifactInfo artifactInfo) { - DistributionClientDownloadResultImpl response = new DistributionClientDownloadResultImpl(DistributionActionResultEnum.GENERAL_ERROR, "failed to download artifact from ASDC"); - - String requestId = UUID.randomUUID().toString(); - Map<String, String> requestHeaders = new HashMap<String, String>(); - requestHeaders.put(DistributionClientConstants.HEADER_REQUEST_ID, requestId); - requestHeaders.put(DistributionClientConstants.HEADER_INSTANCE_ID, configuration.getConsumerID()); - requestHeaders.put(HttpHeaders.ACCEPT, ContentType.APPLICATION_OCTET_STREAM.toString()); - String requestUrl = artifactInfo.getArtifactURL(); - Pair<HttpAsdcResponse, CloseableHttpResponse> downloadPair = httpClient.getRequest(requestUrl, requestHeaders, false); - HttpAsdcResponse downloadResponse = downloadPair.getFirst(); - - int status = downloadResponse.getStatus(); - if (status == 200) { - - response = parseDownloadArtifactResponse(artifactInfo, downloadResponse); - } else { - response = handleAsdcDownloadArtifactError(downloadResponse); - - } - handeAsdcConnectionClose(downloadPair); - return response; - } - - /* **************************** private methods ********************************************/ - - private Either<List<String>, IDistributionClientResult> parseGetServersResponse(HttpAsdcResponse getServersResponse) { - Either<List<String>, IDistributionClientResult> result; - try { - String jsonMessage = IOUtils.toString(getServersResponse.getMessage().getContent()); - - Gson gson = new GsonBuilder().create(); - ServerListResponse serverListResponse = gson.fromJson(jsonMessage, ServerListResponse.class); - List<String> serverList = serverListResponse.getUebServerList(); - result = Either.left(serverList); - - } catch (UnsupportedOperationException | IOException e) { - result = handleParsingError(e); - } - - return result; - } - - private Either<List<String>, IDistributionClientResult> parseGetValidArtifactTypesResponse(HttpAsdcResponse getArtifactTypesResponse) { - Either<List<String>, IDistributionClientResult> result; - try { - String jsonMessage = IOUtils.toString(getArtifactTypesResponse.getMessage().getContent()); - Type listType = new TypeToken<ArrayList<String>>() { - }.getType(); - Gson gson = new GsonBuilder().create(); - List<String> artifactTypesList = gson.fromJson(jsonMessage, listType); - result = Either.left(artifactTypesList); - - } catch (UnsupportedOperationException | IOException e) { - result = handleParsingError(e); - } - - return result; - } - - private Either<List<String>, IDistributionClientResult> handleParsingError(Exception e) { - Either<List<String>, IDistributionClientResult> result; - log.error("failed to parse response from ASDC. error: " + e.getMessage()); - IDistributionClientResult response = new DistributionClientResultImpl(DistributionActionResultEnum.GENERAL_ERROR, "failed to parse response from ASDC"); - result = Either.right(response); - return result; - } - - private Either<TopicRegistrationResponse, DistributionClientResultImpl> parseRegistrationResponse(HttpAsdcResponse registerResponse) { - - String jsonMessage; - try { - jsonMessage = IOUtils.toString(registerResponse.getMessage().getContent()); - - Gson gson = new GsonBuilder().create(); - TopicRegistrationResponse registrationResponse = gson.fromJson(jsonMessage, TopicRegistrationResponse.class); - - if (registrationResponse.getDistrNotificationTopicName() == null) { - DistributionClientResultImpl response = new DistributionClientResultImpl(DistributionActionResultEnum.FAIL, "failed to receive notification topic from ASDC"); - return Either.right(response); - } - - if (registrationResponse.getDistrStatusTopicName() == null) { - DistributionClientResultImpl response = new DistributionClientResultImpl(DistributionActionResultEnum.FAIL, "failed to receive status topic from ASDC"); - return Either.right(response); - } - return Either.left(registrationResponse); - - } catch (UnsupportedOperationException | IOException e) { - log.error("failed to pars response from ASDC. error: " + e.getMessage()); - DistributionClientResultImpl response = new DistributionClientResultImpl(DistributionActionResultEnum.GENERAL_ERROR, "failed to parse response from ASDC"); - return Either.right(response); - } - } - - private Map<String, String> addHeadersToHttpRequest(String requestId) { - Map<String, String> requestHeaders = new HashMap<String, String>(); - requestHeaders.put(DistributionClientConstants.HEADER_REQUEST_ID, requestId); - requestHeaders.put(DistributionClientConstants.HEADER_INSTANCE_ID, configuration.getConsumerID()); - requestHeaders.put(HttpHeaders.CONTENT_TYPE, ContentType.APPLICATION_JSON.toString()); - - return requestHeaders; - } - - private DistributionClientResultImpl handleAsdcError(HttpAsdcResponse registerResponse) { - int status = registerResponse.getStatus(); - DistributionClientResultImpl errorResponse = new DistributionClientResultImpl(DistributionActionResultEnum.GENERAL_ERROR, "failed to send request to ASDC"); - if (status == HttpStatus.SC_UNAUTHORIZED) { - errorResponse = new DistributionClientResultImpl(DistributionActionResultEnum.ASDC_AUTHENTICATION_FAILED, "authentication to ASDC failed for user " + configuration.getUser()); - } else if (status == HttpStatus.SC_FORBIDDEN) { - errorResponse = new DistributionClientResultImpl(DistributionActionResultEnum.ASDC_AUTHORIZATION_FAILED, "authorization failure for user " + configuration.getUser()); - } else if (status == HttpStatus.SC_BAD_REQUEST) { - errorResponse = new DistributionClientResultImpl(DistributionActionResultEnum.BAD_REQUEST, "ASDC call failed due to missing information"); - } else if (status == HttpStatus.SC_NOT_FOUND) { - errorResponse = new DistributionClientResultImpl(DistributionActionResultEnum.ASDC_NOT_FOUND, "ASDC not found"); - } else if (status == HttpStatus.SC_INTERNAL_SERVER_ERROR) { - errorResponse = new DistributionClientResultImpl(DistributionActionResultEnum.ASDC_SERVER_PROBLEM, "ASDC server problem"); - } else if (status == HttpStatus.SC_BAD_GATEWAY) { - errorResponse = new DistributionClientResultImpl(DistributionActionResultEnum.ASDC_CONNECTION_FAILED, "ASDC server problem"); - } else if (status == HttpStatus.SC_GATEWAY_TIMEOUT) { - errorResponse = new DistributionClientResultImpl(DistributionActionResultEnum.ASDC_SERVER_TIMEOUT, "ASDC server problem"); - } - log.error("status from ASDC is " + registerResponse); - log.error(errorResponse.toString()); - try { - String errorString = IOUtils.toString(registerResponse.getMessage().getContent()); - log.debug("error from ASDC is: " + errorString); - } catch (UnsupportedOperationException | IOException e) { - } - return errorResponse; - - } - - private DistributionClientDownloadResultImpl handleAsdcDownloadArtifactError(HttpAsdcResponse registerResponse) { - int status = registerResponse.getStatus(); - DistributionClientDownloadResultImpl errorResponse = new DistributionClientDownloadResultImpl(DistributionActionResultEnum.GENERAL_ERROR, "failed to send request to ASDC"); - if (status == HttpStatus.SC_UNAUTHORIZED) { - errorResponse = new DistributionClientDownloadResultImpl(DistributionActionResultEnum.ASDC_AUTHENTICATION_FAILED, "authentication to ASDC failed for user " + configuration.getUser()); - } else if (status == HttpStatus.SC_FORBIDDEN) { - errorResponse = new DistributionClientDownloadResultImpl(DistributionActionResultEnum.ASDC_AUTHORIZATION_FAILED, "authorization failure for user " + configuration.getUser()); - } else if (status == HttpStatus.SC_BAD_REQUEST || status == HttpStatus.SC_NOT_FOUND) { - errorResponse = new DistributionClientDownloadResultImpl(DistributionActionResultEnum.ARTIFACT_NOT_FOUND, "Specified artifact is not found"); - // } else if (status == 404){ - // errorResponse = new DistributionClientDownloadResultImpl( - // DistributionActionResultEnum.ASDC_NOT_FOUND, - // "ASDC not found"); - } else if (status == HttpStatus.SC_INTERNAL_SERVER_ERROR) { - errorResponse = new DistributionClientDownloadResultImpl(DistributionActionResultEnum.ASDC_SERVER_PROBLEM, "ASDC server problem"); - } - log.error("status from ASDC is " + registerResponse); - log.error(errorResponse.toString()); - try { - String errorString = IOUtils.toString(registerResponse.getMessage().getContent()); - log.debug("error from ASDC is: " + errorString); - } catch (UnsupportedOperationException | IOException e) { - } - return errorResponse; - - } - - private DistributionClientDownloadResultImpl parseDownloadArtifactResponse(IArtifactInfo artifactInfo, HttpAsdcResponse getServersResponse) { - HttpEntity entity = getServersResponse.getMessage(); - InputStream is; - try { - is = entity.getContent(); - String artifactName = ""; - if (getServersResponse.getHeadersMap().containsKey(contentDispositionHeader)) - artifactName = getServersResponse.getHeadersMap().get(contentDispositionHeader); - - byte[] payload = IOUtils.toByteArray(is); - if (artifactInfo.getArtifactChecksum() == null || artifactInfo.getArtifactChecksum().isEmpty()) { - return new DistributionClientDownloadResultImpl(DistributionActionResultEnum.DATA_INTEGRITY_PROBLEM, "failed to get artifact from ASDC. Empty checksum"); - } - - if (validateChecksum(artifactInfo, payload)) { - DistributionClientDownloadResultImpl resResponse = new DistributionClientDownloadResultImpl(DistributionActionResultEnum.SUCCESS, "success", artifactName, payload); - return resResponse; - - } else { - - return new DistributionClientDownloadResultImpl(DistributionActionResultEnum.GENERAL_ERROR, "Invalid checksum. ArtifactInfo checksum "); - } - - } catch (UnsupportedOperationException | IOException e) { - log.error("failed to get artifact from response "); - return new DistributionClientDownloadResultImpl(DistributionActionResultEnum.GENERAL_ERROR, "UnsupportedOperationException "); - } - - } - - private boolean validateChecksum(IArtifactInfo artifactInfo, byte[] payload) { - boolean bRes = false; - String calculatedMD5 = GeneralUtils.calculateMD5(payload); - if (artifactInfo.getArtifactChecksum().equals(calculatedMD5)) { - bRes = true; - } - - return bRes; - } - -} diff --git a/src/main/java/org/openecomp/sdc/http/AsdcUrls.java b/src/main/java/org/openecomp/sdc/http/AsdcUrls.java deleted file mode 100644 index 2112f39..0000000 --- a/src/main/java/org/openecomp/sdc/http/AsdcUrls.java +++ /dev/null @@ -1,30 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.http; - -public class AsdcUrls { - - public static final String GET_CLUSTER_SERVER_LIST = "/asdc/v1/distributionUebCluster"; - public static final String GET_VALID_ARTIFACT_TYPES = "/asdc/v1/artifactTypes"; - public static final String POST_FOR_TOPIC_REGISTRATION = "/asdc/v1/registerForDistribution"; - public static final String POST_FOR_UNREGISTER = "/asdc/v1/unRegisterForDistribution"; - -} diff --git a/src/main/java/org/openecomp/sdc/http/HttpAsdcClient.java b/src/main/java/org/openecomp/sdc/http/HttpAsdcClient.java deleted file mode 100644 index a08416c..0000000 --- a/src/main/java/org/openecomp/sdc/http/HttpAsdcClient.java +++ /dev/null @@ -1,352 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.http; - -import java.io.FileInputStream; -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.net.ConnectException; -import java.net.UnknownHostException; -import java.security.KeyStore; -import java.security.cert.CertificateException; -import java.security.cert.X509Certificate; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.net.ssl.HostnameVerifier; -import javax.net.ssl.SSLContext; -import javax.net.ssl.SSLSession; -import javax.net.ssl.TrustManager; -import javax.net.ssl.TrustManagerFactory; -import javax.net.ssl.X509TrustManager; - -import org.apache.commons.codec.binary.Base64; -import org.apache.http.Header; -import org.apache.http.HttpEntity; -import org.apache.http.HttpStatus; -import org.apache.http.auth.AuthScope; -import org.apache.http.auth.UsernamePasswordCredentials; -import org.apache.http.client.CredentialsProvider; -import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.methods.HttpPost; -import org.apache.http.conn.ssl.SSLConnectionSocketFactory; -import org.apache.http.entity.StringEntity; -import org.apache.http.impl.client.BasicCredentialsProvider; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClientBuilder; -import org.apache.http.message.BasicHeader; -import org.apache.http.ssl.SSLContextBuilder; -import org.apache.http.ssl.TrustStrategy; -import org.openecomp.sdc.api.consumer.IConfiguration; -import org.openecomp.sdc.impl.DistributionClientImpl; -import org.openecomp.sdc.utils.Pair; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class HttpAsdcClient implements IHttpAsdcClient { - - private static final String TLS = "TLS"; - private static final String AUTHORIZATION_HEADER = "Authorization"; - private static final String HTTPS = "https://"; - private static Logger log = LoggerFactory.getLogger(DistributionClientImpl.class.getName()); - private CloseableHttpClient httpClient = null; - private String serverFqdn = null; - private String authHeaderValue = ""; - - public HttpAsdcClient(IConfiguration configuraion/* String serverFqdn, String username, String password */) { - this.serverFqdn = configuraion.getAsdcAddress(); - String username = configuraion.getUser(); - String password = configuraion.getPassword(); - - initSSL(serverFqdn, username, password, configuraion.getKeyStorePath(), configuraion.getKeyStorePassword(), configuraion.activateServerTLSAuth()); - - String userNameAndPassword = username + ":" + password; - this.authHeaderValue = "Basic " + Base64.encodeBase64String(userNameAndPassword.getBytes()); - } - - // @SuppressWarnings("deprecation") - private void initSSL(String serverFqdn, String username, String password, String keyStorePath, String keyStoePass, boolean isSupportSSLVerification) { - - try { - HostnameVerifier hostnameVerifier = new HostnameVerifier() { - - @Override - public boolean verify(String hostname, SSLSession session) { - return true; - } - }; - - // SSLContextBuilder is not thread safe - // @SuppressWarnings("deprecation") - CredentialsProvider credsProvider = new BasicCredentialsProvider(); - credsProvider.setCredentials(new AuthScope("localhost", 443), new UsernamePasswordCredentials(username, password)); - SSLContext sslContext; - sslContext = SSLContext.getInstance(TLS); - TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); - KeyStore trustStore = null; - tmf.init(trustStore); - TrustManager[] tms = tmf.getTrustManagers(); - if (isSupportSSLVerification) { - - if (keyStorePath != null && !keyStorePath.isEmpty()) { - // trustStore = KeyStore.getInstance(KeyStore.getDefaultType()); - // trustStore.load(new FileInputStream(keyStorePath), keyStoePass.toCharArray()); - - // Using null here initialises the TMF with the default trust store. - - // Get hold of the default trust manager - X509TrustManager defaultTm = null; - for (TrustManager tm : tmf.getTrustManagers()) { - if (tm instanceof X509TrustManager) { - defaultTm = (X509TrustManager) tm; - break; - } - } - - // Do the same with your trust store this time - // Adapt how you load the keystore to your needs - trustStore = KeyStore.getInstance(KeyStore.getDefaultType()); - trustStore.load(new FileInputStream(keyStorePath), keyStoePass.toCharArray()); - - tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); - tmf.init(trustStore); - - // Get hold of the default trust manager - X509TrustManager myTm = null; - for (TrustManager tm : tmf.getTrustManagers()) { - if (tm instanceof X509TrustManager) { - myTm = (X509TrustManager) tm; - break; - } - } - - // Wrap it in your own class. - final X509TrustManager finalDefaultTm = defaultTm; - final X509TrustManager finalMyTm = myTm; - X509TrustManager customTm = new X509TrustManager() { - @Override - public X509Certificate[] getAcceptedIssuers() { - // If you're planning to use client-cert auth, - // merge results from "defaultTm" and "myTm". - return finalDefaultTm.getAcceptedIssuers(); - } - - @Override - public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { - try { - finalMyTm.checkServerTrusted(chain, authType); - } catch (CertificateException e) { - // This will throw another CertificateException if this fails too. - finalDefaultTm.checkServerTrusted(chain, authType); - } - } - - @Override - public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { - // If you're planning to use client-cert auth, - // do the same as checking the server. - finalDefaultTm.checkClientTrusted(chain, authType); - } - }; - - tms = new TrustManager[] { customTm }; - - } - - sslContext.init(null, tms, null); - SSLContext.setDefault(sslContext); - - SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, new String[] { "TLSv1", "TLSv1.1" }, null, hostnameVerifier); - httpClient = HttpClientBuilder.create().setDefaultCredentialsProvider(credsProvider).setSSLSocketFactory(sslsf).build(); - - } else { - - SSLContextBuilder builder = new SSLContextBuilder(); - - builder.loadTrustMaterial(null, new TrustStrategy() { - public boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException { - return true; - } - }); - - sslContext = builder.build(); - - httpClient = HttpClientBuilder.create().setSSLHostnameVerifier(hostnameVerifier).setSslcontext(sslContext).setDefaultCredentialsProvider(credsProvider).build(); - } - - } catch (Exception e) { - log.error("Failed to create https client", e); - - } - - return; - } - - public HttpAsdcResponse postRequest(String requestUrl, HttpEntity entity, Map<String, String> headersMap) { - return postRequest(requestUrl, entity, headersMap, true).getFirst(); - } - - public Pair<HttpAsdcResponse, CloseableHttpResponse> postRequest(String requestUrl, HttpEntity entity, Map<String, String> headersMap, boolean closeTheRequest) { - Pair<HttpAsdcResponse, CloseableHttpResponse> ret; - CloseableHttpResponse httpResponse = null; - HttpAsdcResponse response = null; - HttpPost httpPost = new HttpPost(HTTPS + serverFqdn + requestUrl); - List<Header> headers = addHeadersToHttpRequest(headersMap); - for (Header header : headers) { - httpPost.addHeader(header); - } - - httpPost.setHeader(AUTHORIZATION_HEADER, this.authHeaderValue); - - httpPost.setEntity(entity); - try { - httpResponse = httpClient.execute(httpPost); - response = new HttpAsdcResponse(httpResponse.getStatusLine().getStatusCode(), httpResponse.getEntity()); - - } catch (IOException e) { - log.error("failed to send request to url: " + requestUrl); - StringEntity errorEntity = null; - try { - errorEntity = new StringEntity("failed to send request"); - } catch (UnsupportedEncodingException e1) { - } - - response = new HttpAsdcResponse(500, errorEntity); - - } finally { - if (closeTheRequest) { - if (httpResponse != null) { - try { - httpResponse.close(); - - } catch (IOException e) { - log.error("failed to close http response"); - } - } - ret = new Pair<HttpAsdcResponse, CloseableHttpResponse>(response, null); - } else { - ret = new Pair<HttpAsdcResponse, CloseableHttpResponse>(response, httpResponse); - } - } - - return ret; - } - - public HttpAsdcResponse getRequest(String requestUrl, Map<String, String> headersMap) { - - return getRequest(requestUrl, headersMap, true).getFirst(); - - } - - public Pair<HttpAsdcResponse, CloseableHttpResponse> getRequest(String requestUrl, Map<String, String> headersMap, boolean closeTheRequest) { - Pair<HttpAsdcResponse, CloseableHttpResponse> ret; - CloseableHttpResponse httpResponse = null; - String url = HTTPS + serverFqdn + requestUrl; - log.debug("url to send " + url); - HttpGet httpGet = new HttpGet(url); - List<Header> headers = addHeadersToHttpRequest(headersMap); - for (Header header : headers) { - httpGet.addHeader(header); - } - - httpGet.setHeader(AUTHORIZATION_HEADER, this.authHeaderValue); - - HttpAsdcResponse response = null; - try { - httpResponse = httpClient.execute(httpGet); - - log.debug("GET Response Status " + httpResponse.getStatusLine().getStatusCode()); - Header[] headersRes = httpResponse.getAllHeaders(); - Map<String, String> headersResMap = new HashMap<String, String>(); - for (Header header : headersRes) { - headersResMap.put(header.getName(), header.getValue()); - } - response = new HttpAsdcResponse(httpResponse.getStatusLine().getStatusCode(), httpResponse.getEntity(), headersResMap); - - } catch (UnknownHostException | ConnectException e) { - log.error("failed to connect to url: " + requestUrl, e); - StringEntity errorEntity = null; - try { - errorEntity = new StringEntity("failed to connect"); - } catch (UnsupportedEncodingException e1) { - } - - response = new HttpAsdcResponse(HttpStatus.SC_BAD_GATEWAY, errorEntity); - - } catch (IOException e) { - log.error("failed to send request to url: " + requestUrl + " error " + e.getMessage()); - StringEntity errorEntity = null; - try { - errorEntity = new StringEntity("failed to send request " + e.getMessage()); - } catch (UnsupportedEncodingException e1) { - } - - response = new HttpAsdcResponse(HttpStatus.SC_BAD_GATEWAY, errorEntity); - - } finally { - - if (closeTheRequest) { - if (httpResponse != null) { - try { - httpResponse.close(); - - } catch (IOException e) { - log.error("failed to close http response"); - } - } - ret = new Pair<HttpAsdcResponse, CloseableHttpResponse>(response, null); - } else { - ret = new Pair<HttpAsdcResponse, CloseableHttpResponse>(response, httpResponse); - } - } - - return ret; - - } - - public void closeHttpClient() { - try { - httpClient.close(); - } catch (IOException e) { - // TODO Auto-generated catch block - log.error("failed to close http client"); - } - - } - - private List<Header> addHeadersToHttpRequest(Map<String, String> headersMap) { - - List<Header> requestHeaders = new ArrayList<Header>(); - - Set<String> headersKyes = headersMap.keySet(); - for (String key : headersKyes) { - Header requestHeader = new BasicHeader(key, headersMap.get(key)); - requestHeaders.add(requestHeader); - } - - return requestHeaders; - } - -} diff --git a/src/main/java/org/openecomp/sdc/http/HttpAsdcResponse.java b/src/main/java/org/openecomp/sdc/http/HttpAsdcResponse.java deleted file mode 100644 index 9e48d5e..0000000 --- a/src/main/java/org/openecomp/sdc/http/HttpAsdcResponse.java +++ /dev/null @@ -1,71 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.http; - -import java.util.Map; - -import org.apache.http.HttpEntity; - -public class HttpAsdcResponse { - - int status; - HttpEntity message; - Map<String, String> headersMap; - - public HttpAsdcResponse(int status, HttpEntity message) { - super(); - this.status = status; - this.message = message; - } - - public HttpAsdcResponse(int status, HttpEntity message, Map<String, String> headersMap) { - super(); - this.status = status; - this.message = message; - this.headersMap = headersMap; - } - - public Map<String, String> getHeadersMap() { - return headersMap; - } - - public void setHeadersMap(Map<String, String> headersMap) { - this.headersMap = headersMap; - } - - public int getStatus() { - return status; - } - - public void setStatus(int status) { - this.status = status; - } - - public HttpEntity getMessage() { - return message; - } - - public void setMessage(HttpEntity message) { - this.message = message; - } - - -} diff --git a/src/main/java/org/openecomp/sdc/http/IHttpAsdcClient.java b/src/main/java/org/openecomp/sdc/http/IHttpAsdcClient.java deleted file mode 100644 index aa62bac..0000000 --- a/src/main/java/org/openecomp/sdc/http/IHttpAsdcClient.java +++ /dev/null @@ -1,33 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.http; - -import java.util.Map; - -import org.apache.http.HttpEntity; - -public interface IHttpAsdcClient { - - HttpAsdcResponse postRequest(String requestUrl, HttpEntity entity, Map<String, String> headersMap); - HttpAsdcResponse getRequest(String requestUrl, Map<String, String> headersMap); - void closeHttpClient(); - -} diff --git a/src/main/java/org/openecomp/sdc/http/TopicRegistrationResponse.java b/src/main/java/org/openecomp/sdc/http/TopicRegistrationResponse.java deleted file mode 100644 index 280d7da..0000000 --- a/src/main/java/org/openecomp/sdc/http/TopicRegistrationResponse.java +++ /dev/null @@ -1,41 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.http; - -public class TopicRegistrationResponse { - String distrNotificationTopicName; - String distrStatusTopicName; - - - public void setDistrNotificationTopicName(String distrNotificationTopicName) { - this.distrNotificationTopicName = distrNotificationTopicName; - } - public void setDistrStatusTopicName(String distrStatusTopicName) { - this.distrStatusTopicName = distrStatusTopicName; - } - - public String getDistrNotificationTopicName() { - return distrNotificationTopicName; - } - public String getDistrStatusTopicName() { - return distrStatusTopicName; - } -} diff --git a/src/main/java/org/openecomp/sdc/impl/ArtifactInfoImpl.java b/src/main/java/org/openecomp/sdc/impl/ArtifactInfoImpl.java deleted file mode 100644 index 64ff9a8..0000000 --- a/src/main/java/org/openecomp/sdc/impl/ArtifactInfoImpl.java +++ /dev/null @@ -1,192 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.impl; - -import java.util.ArrayList; -import java.util.List; - -import org.openecomp.sdc.api.notification.IArtifactInfo; - -class ArtifactInfoImpl implements IArtifactInfo { - - private String artifactName; - private String artifactType; - private String artifactURL; - private String artifactChecksum; - private String artifactDescription; - private Integer artifactTimeout; - private String artifactVersion; - private String artifactUUID; - private String generatedFromUUID; - private IArtifactInfo generatedArtifact; - private List<String> relatedArtifacts; - private List<IArtifactInfo> relatedArtifactsInfo; - ArtifactInfoImpl(){} - - private ArtifactInfoImpl(IArtifactInfo iArtifactInfo){ - artifactName = iArtifactInfo.getArtifactName(); - artifactType = iArtifactInfo.getArtifactType(); - artifactURL = iArtifactInfo.getArtifactURL(); - artifactChecksum = iArtifactInfo.getArtifactChecksum(); - artifactDescription = iArtifactInfo.getArtifactDescription(); - artifactTimeout = iArtifactInfo.getArtifactTimeout(); - artifactVersion = iArtifactInfo.getArtifactVersion(); - artifactUUID = iArtifactInfo.getArtifactUUID(); - generatedArtifact = iArtifactInfo.getGeneratedArtifact(); - relatedArtifactsInfo = iArtifactInfo.getRelatedArtifacts(); - relatedArtifacts = fillRelatedArtifactsUUID(relatedArtifactsInfo); - - } - - - private List<String> fillRelatedArtifactsUUID(List<IArtifactInfo> relatedArtifactsInfo) { - List<String> relatedArtifactsUUID = null; - if( relatedArtifactsInfo != null && !relatedArtifactsInfo.isEmpty()){ - relatedArtifactsUUID = new ArrayList<>(); - for(IArtifactInfo curr: relatedArtifactsInfo){ - relatedArtifactsUUID.add(curr.getArtifactUUID()); - } - } - return relatedArtifactsUUID; - } - - public static List<ArtifactInfoImpl> convertToArtifactInfoImpl(List<IArtifactInfo> list){ - List<ArtifactInfoImpl> ret = new ArrayList<ArtifactInfoImpl>(); - if( list != null ){ - for(IArtifactInfo artifactInfo : list ){ - ret.add(new ArtifactInfoImpl(artifactInfo)); - } - } - return ret; - } - - public String getArtifactName() { - return artifactName; - } - - public void setArtifactName(String artifactName) { - this.artifactName = artifactName; - } - - public String getArtifactType() { - return artifactType; - } - - public void setArtifactType(String artifactType) { - this.artifactType = artifactType; - } - - public String getArtifactURL() { - return artifactURL; - } - - public void setArtifactURL(String artifactURL) { - this.artifactURL = artifactURL; - } - - public String getArtifactChecksum() { - return artifactChecksum; - } - - public void setArtifactChecksum(String artifactChecksum) { - this.artifactChecksum = artifactChecksum; - } - - public String getArtifactDescription() { - return artifactDescription; - } - - public void setArtifactDescription(String artifactDescription) { - this.artifactDescription = artifactDescription; - } - - public Integer getArtifactTimeout() { - return artifactTimeout; - } - - public void setArtifactTimeout(Integer artifactTimeout) { - this.artifactTimeout = artifactTimeout; - } - - @Override - public String toString() { - return "BaseArtifactInfoImpl [artifactName=" + artifactName - + ", artifactType=" + artifactType + ", artifactURL=" - + artifactURL + ", artifactChecksum=" + artifactChecksum - + ", artifactDescription=" + artifactDescription - + ", artifactVersion=" + artifactVersion - + ", artifactUUID=" + artifactUUID - + ", artifactTimeout=" + artifactTimeout + "]"; - } - - public String getArtifactVersion() { - return artifactVersion; - } - - public void setArtifactVersion(String artifactVersion) { - this.artifactVersion = artifactVersion; - } - - public String getArtifactUUID() { - return artifactUUID; - } - - public void setArtifactUUID(String artifactUUID) { - this.artifactUUID = artifactUUID; - } - - public String getGeneratedFromUUID() { - return generatedFromUUID; - } - - public void setGeneratedFromUUID(String generatedFromUUID) { - this.generatedFromUUID = generatedFromUUID; - } - - public IArtifactInfo getGeneratedArtifact() { - return generatedArtifact; - } - - public void setGeneratedArtifact(IArtifactInfo generatedArtifact) { - this.generatedArtifact = generatedArtifact; - } - - public List<IArtifactInfo> getRelatedArtifacts(){ - List<IArtifactInfo> temp = new ArrayList<IArtifactInfo>(); - if( relatedArtifactsInfo != null ){ - temp.addAll(relatedArtifactsInfo); - } - return temp; - } - - public void setRelatedArtifacts(List<String> relatedArtifacts) { - this.relatedArtifacts = relatedArtifacts; - } - - public void setRelatedArtifactsInfo(List<IArtifactInfo> relatedArtifactsInfo) { - this.relatedArtifactsInfo = relatedArtifactsInfo; - } - - public List<String> getRelatedArtifactsUUID(){ - return relatedArtifacts; - } - -} diff --git a/src/main/java/org/openecomp/sdc/impl/Configuration.java b/src/main/java/org/openecomp/sdc/impl/Configuration.java deleted file mode 100644 index 3b8f3bd..0000000 --- a/src/main/java/org/openecomp/sdc/impl/Configuration.java +++ /dev/null @@ -1,183 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.impl; - -import java.util.List; - -import org.openecomp.sdc.api.consumer.IConfiguration; -import org.openecomp.sdc.utils.DistributionClientConstants; - -public class Configuration implements IConfiguration{ - - - private String asdcAddress; - private String user; - private String password; - private int pollingInterval = DistributionClientConstants.MIN_POLLING_INTERVAL_SEC; - private int pollingTimeout = DistributionClientConstants.POLLING_TIMEOUT_SEC; - private List<String> relevantArtifactTypes; - private String consumerGroup; - private String environmentName; - private String comsumerID; - private String keyStorePath; - private String keyStorePassword; - private boolean activateServerTLSAuth; - - public Configuration(IConfiguration other) { - this.asdcAddress = other.getAsdcAddress(); - this.comsumerID = other.getConsumerID(); - this.consumerGroup = other.getConsumerGroup(); - this.environmentName = other.getEnvironmentName(); - this.password = other.getPassword(); - this.pollingInterval = other.getPollingInterval(); - this.pollingTimeout = other.getPollingTimeout(); - this.relevantArtifactTypes = other.getRelevantArtifactTypes(); - this.user = other.getUser(); - this.keyStorePath = other.getKeyStorePath(); - this.keyStorePassword = other.getKeyStorePassword(); - this.activateServerTLSAuth = other.activateServerTLSAuth(); - } - - @Override - public String getAsdcAddress() { - return asdcAddress; - } - - @Override - public String getUser() { - return user; - } - - @Override - public String getPassword() { - return password; - } - - @Override - public int getPollingInterval() { - return pollingInterval; - } - - @Override - public int getPollingTimeout() { - return pollingTimeout; - } - - @Override - public List<String> getRelevantArtifactTypes() { - return relevantArtifactTypes; - } - - @Override - public String getConsumerGroup() { - return consumerGroup; - } - - @Override - public String getEnvironmentName() { - return environmentName; - } - - @Override - public String getConsumerID() { - return comsumerID; - } - - @Override - public String getKeyStorePath() { - return keyStorePath; - } - - @Override - public String getKeyStorePassword() { - return keyStorePassword; - } - - public String getComsumerID() { - return comsumerID; - } - - public void setComsumerID(String comsumerID) { - this.comsumerID = comsumerID; - } - - public void setAsdcAddress(String asdcAddress) { - this.asdcAddress = asdcAddress; - } - - public void setUser(String user) { - this.user = user; - } - - public void setPassword(String password) { - this.password = password; - } - - public void setPollingInterval(int pollingInterval) { - this.pollingInterval = pollingInterval; - } - - public void setPollingTimeout(int pollingTimeout) { - this.pollingTimeout = pollingTimeout; - } - - public void setRelevantArtifactTypes(List<String> relevantArtifactTypes) { - this.relevantArtifactTypes = relevantArtifactTypes; - } - - public void setConsumerGroup(String consumerGroup) { - this.consumerGroup = consumerGroup; - } - - public void setEnvironmentName(String environmentName) { - this.environmentName = environmentName; - } - - public void setKeyStorePath(String keyStorePath) { - this.keyStorePath = keyStorePath; - } - - public void setKeyStorePassword(String keyStorePassword) { - this.keyStorePassword = keyStorePassword; - } - - @Override - public String toString() { - return "Configuration [asdcAddress=" + asdcAddress + ", user=" + user - + ", password=" + password + ", pollingInterval=" - + pollingInterval + ", pollingTimeout=" + pollingTimeout - + ", relevantArtifactTypes=" + relevantArtifactTypes - + ", consumerGroup=" + consumerGroup + ", environmentName=" - + environmentName + ", comsumerID=" + comsumerID + "]"; - } - - - public void setactivateServerTLSAuth(boolean activateServerTLSAuth) { - this.activateServerTLSAuth = activateServerTLSAuth; - } - - @Override - public boolean activateServerTLSAuth() { - - return this.activateServerTLSAuth; - } - -} diff --git a/src/main/java/org/openecomp/sdc/impl/DistributionClientDownloadResultImpl.java b/src/main/java/org/openecomp/sdc/impl/DistributionClientDownloadResultImpl.java deleted file mode 100644 index b69cb24..0000000 --- a/src/main/java/org/openecomp/sdc/impl/DistributionClientDownloadResultImpl.java +++ /dev/null @@ -1,64 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.impl; - -import org.openecomp.sdc.api.results.IDistributionClientDownloadResult; -import org.openecomp.sdc.utils.DistributionActionResultEnum; - -public class DistributionClientDownloadResultImpl extends DistributionClientResultImpl implements IDistributionClientDownloadResult{ - byte[] artifactPayload; - String artifactName; - - - public DistributionClientDownloadResultImpl( - DistributionActionResultEnum responseStatus, String responseMessage) { - super(responseStatus, responseMessage); - - } - - public DistributionClientDownloadResultImpl( - DistributionActionResultEnum responseStatus, - String responseMessage, String artifactName, byte[] artifactPayload) { - super(responseStatus, responseMessage); - this.artifactPayload = artifactPayload; - this.artifactName = artifactName; - } - - - public void setArtifactPayload(byte[] payload) { - this.artifactPayload = payload; - } - - - public byte[] getArtifactPayload() { - - return artifactPayload; - } - - public String getArtifactName(){ - return artifactName; - } - - public void setArtifactName(String artifactName){ - this.artifactName = artifactName; - } - -} diff --git a/src/main/java/org/openecomp/sdc/impl/DistributionClientFactory.java b/src/main/java/org/openecomp/sdc/impl/DistributionClientFactory.java deleted file mode 100644 index 467f9cb..0000000 --- a/src/main/java/org/openecomp/sdc/impl/DistributionClientFactory.java +++ /dev/null @@ -1,34 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.impl; - -import org.openecomp.sdc.api.IDistributionClient; -import org.openecomp.sdc.impl.mock.DistributionClientStubImpl; - -public class DistributionClientFactory { - public static IDistributionClient createDistributionClient(){ - return new DistributionClientImpl(); - } - - public static IDistributionClient createMockDistributionClient(){ - return new DistributionClientStubImpl(); - } -} diff --git a/src/main/java/org/openecomp/sdc/impl/DistributionClientImpl.java b/src/main/java/org/openecomp/sdc/impl/DistributionClientImpl.java deleted file mode 100644 index ce74b26..0000000 --- a/src/main/java/org/openecomp/sdc/impl/DistributionClientImpl.java +++ /dev/null @@ -1,634 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.impl; - -import java.io.IOException; -import java.lang.reflect.Type; -import java.net.MalformedURLException; -import java.nio.charset.StandardCharsets; -import java.security.GeneralSecurityException; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; -import java.util.regex.Matcher; - -import org.openecomp.sdc.api.IDistributionClient; -import org.openecomp.sdc.api.IDistributionStatusMessageJsonBuilder; -import org.openecomp.sdc.api.consumer.IConfiguration; -import org.openecomp.sdc.api.consumer.IDistributionStatusMessage; -import org.openecomp.sdc.api.consumer.INotificationCallback; -import org.openecomp.sdc.api.notification.IArtifactInfo; -import org.openecomp.sdc.api.notification.IVfModuleMetadata; -import org.openecomp.sdc.api.results.IDistributionClientDownloadResult; -import org.openecomp.sdc.api.results.IDistributionClientResult; -import org.openecomp.sdc.http.AsdcConnectorClient; -import org.openecomp.sdc.http.TopicRegistrationResponse; -import org.openecomp.sdc.utils.DistributionActionResultEnum; -import org.openecomp.sdc.utils.DistributionClientConstants; -import org.openecomp.sdc.utils.Wrapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.att.nsa.apiClient.credentials.ApiCredential; -import com.att.nsa.apiClient.http.HttpException; -import com.att.nsa.cambria.client.CambriaBatchingPublisher; -import com.att.nsa.cambria.client.CambriaClient.CambriaApiException; -import com.att.nsa.cambria.client.CambriaClientBuilders.PublisherBuilder; -import com.att.nsa.cambria.client.CambriaClientBuilders.ConsumerBuilder; -import com.att.nsa.cambria.client.CambriaClientBuilders.IdentityManagerBuilder; -import com.att.nsa.cambria.client.CambriaConsumer; -import com.att.nsa.cambria.client.CambriaIdentityManager; -import com.att.nsa.cambria.client.CambriaPublisher.message; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.reflect.TypeToken; - -import fj.data.Either; - -public class DistributionClientImpl implements IDistributionClient { - - private static Logger log = LoggerFactory.getLogger(DistributionClientImpl.class.getName()); - - protected AsdcConnectorClient asdcConnector = new AsdcConnectorClient(); - private ScheduledExecutorService executorPool = null; - protected CambriaIdentityManager cambriaIdentityManager = null; - private List<String> brokerServers; - protected ApiCredential credential; - protected Configuration configuration; - private INotificationCallback callback; - private String notificationTopic; - private String statusTopic; - private boolean isConsumerGroupGenerated = false; - - private boolean isInitialized, isStarted, isTerminated; - - @Override - public IConfiguration getConfiguration() { - return configuration; - } - - @Override - /* see javadoc */ - public synchronized IDistributionClientResult updateConfiguration(IConfiguration conf) { - - log.info("update DistributionClient configuration"); - Wrapper<IDistributionClientResult> errorWrapper = new Wrapper<>(); - validateRunReady(errorWrapper); - - if (!errorWrapper.isEmpty()) { - return errorWrapper.getInnerElement(); - } - - IDistributionClientResult updateResult = new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS, "configuration updated successfuly"); - - boolean needToUpdateCambriaConsumer = false; - - if (conf.getRelevantArtifactTypes() != null && !conf.getRelevantArtifactTypes().isEmpty()) { - configuration.setRelevantArtifactTypes(conf.getRelevantArtifactTypes()); - needToUpdateCambriaConsumer = true; - } - if (isPollingIntervalValid(conf.getPollingInterval())) { - configuration.setPollingInterval(conf.getPollingInterval()); - needToUpdateCambriaConsumer = true; - } - if (isPollingTimeoutValid(conf.getPollingTimeout())) { - configuration.setPollingTimeout(conf.getPollingTimeout()); - needToUpdateCambriaConsumer = true; - } - if (conf.getConsumerGroup() != null) { - configuration.setConsumerGroup(conf.getConsumerGroup()); - isConsumerGroupGenerated = false; - needToUpdateCambriaConsumer = true; - } else if (!isConsumerGroupGenerated) { - generateConsumerGroup(); - } - - if (needToUpdateCambriaConsumer) { - updateResult = restartConsumer(); - } - - return updateResult; - } - - @Override - /** - * Start polling the Notification topic - */ - public synchronized IDistributionClientResult start() { - - log.info("start DistributionClient"); - CambriaConsumer cambriaConsumer = null; - Wrapper<IDistributionClientResult> errorWrapper = new Wrapper<>(); - validateRunReady(errorWrapper); - if (errorWrapper.isEmpty()) { - validateNotStarted(errorWrapper); - } - if (errorWrapper.isEmpty()) { - try { - cambriaConsumer = new ConsumerBuilder().authenticatedBy(credential.getApiKey(), credential.getApiSecret()).knownAs(configuration.getConsumerGroup(), configuration.getConsumerID()).onTopic(notificationTopic).usingHosts(brokerServers) - .withSocketTimeout(configuration.getPollingTimeout() * 1000).build(); - } catch (MalformedURLException | GeneralSecurityException e) { - handleCambriaInitFailure(errorWrapper, e); - } - } - - if (!errorWrapper.isEmpty()) { - return errorWrapper.getInnerElement(); - } - - List<String> relevantArtifactTypes = configuration.getRelevantArtifactTypes(); - // Remove nulls from list - workaround for how configuration is built - while (relevantArtifactTypes.remove(null)); - - NotificationConsumer consumer = new NotificationConsumer(cambriaConsumer, callback, relevantArtifactTypes, this); - executorPool = Executors.newScheduledThreadPool(DistributionClientConstants.POOL_SIZE); - executorPool.scheduleAtFixedRate(consumer, 0, configuration.getPollingInterval(), TimeUnit.SECONDS); - - DistributionClientResultImpl startResult = new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS, "distribution client started successfuly"); - isStarted = true; - return startResult; - } - - @Override - /* see javadoc */ - public synchronized IDistributionClientResult stop() { - - log.info("stop DistributionClient"); - Wrapper<IDistributionClientResult> errorWrapper = new Wrapper<>(); - validateRunReady(errorWrapper); - if (!errorWrapper.isEmpty()) { - return errorWrapper.getInnerElement(); - } - // 1. stop polling notification topic - shutdownExecutor(); - - // 2. send to ASDC unregister to topic - IDistributionClientResult unregisterResult = asdcConnector.unregisterTopics(credential); - if (unregisterResult.getDistributionActionResult() != DistributionActionResultEnum.SUCCESS) { - log.info("client failed to unregister from topics"); - } else { - log.info("client unregistered from topics successfully"); - } - asdcConnector.close(); - - try { - cambriaIdentityManager.deleteCurrentApiKey(); - } catch (HttpException | IOException e) { - log.debug("failed to delete cambria keys", e); - } - cambriaIdentityManager.close(); - - isInitialized = false; - isTerminated = true; - - DistributionClientResultImpl stopResult = new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS, "distribution client stopped successfuly"); - return stopResult; - } - - @Override - public IDistributionClientDownloadResult download(IArtifactInfo artifactInfo) { - log.info("DistributionClient - download"); - Wrapper<IDistributionClientResult> errorWrapper = new Wrapper<>(); - validateRunReady(errorWrapper); - if (!errorWrapper.isEmpty()) { - IDistributionClientResult result = errorWrapper.getInnerElement(); - IDistributionClientDownloadResult downloadResult = new DistributionClientDownloadResultImpl(result.getDistributionActionResult(), result.getDistributionMessageResult()); - return downloadResult; - } - return asdcConnector.dowloadArtifact(artifactInfo); - } - - @Override - /* - * see javadoc - */ - public synchronized IDistributionClientResult init(IConfiguration conf, INotificationCallback callback) { - - log.info("DistributionClient - init"); - - Wrapper<IDistributionClientResult> errorWrapper = new Wrapper<>(); - validateNotInitilized(errorWrapper); - if (errorWrapper.isEmpty()) { - validateNotTerminated(errorWrapper); - } - if (errorWrapper.isEmpty()) { - validateAndInitConfiguration(errorWrapper, conf); - } - // 1. get servers list from ASDC - if (errorWrapper.isEmpty()) { - initUebServerList(errorWrapper); - } - // 2.validate artifact types against asdc server - if (errorWrapper.isEmpty()) { - validateArtifactTypesWithAsdcServer(conf, errorWrapper); - } - // 3. create keys - if (errorWrapper.isEmpty()) { - this.callback = callback; - createUebKeys(errorWrapper); - } - // 4. register for topics - if (errorWrapper.isEmpty()) { - registerForTopics(errorWrapper); - } - - IDistributionClientResult result; - if (errorWrapper.isEmpty()) { - isInitialized = true; - result = new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS, "distribution client initialized successfuly"); - } else { - result = errorWrapper.getInnerElement(); - } - - return result; - } - - private void registerForTopics(Wrapper<IDistributionClientResult> errorWrapper) { - Either<TopicRegistrationResponse, DistributionClientResultImpl> registerAsdcTopics = asdcConnector.registerAsdcTopics(credential); - if (registerAsdcTopics.isRight()) { - - try { - cambriaIdentityManager.deleteCurrentApiKey(); - } catch (HttpException | IOException e) { - log.debug("failed to delete cambria keys", e); - } - errorWrapper.setInnerElement(registerAsdcTopics.right().value()); - } else { - TopicRegistrationResponse topics = registerAsdcTopics.left().value(); - notificationTopic = topics.getDistrNotificationTopicName(); - statusTopic = topics.getDistrStatusTopicName(); - } - - } - - private void createUebKeys(Wrapper<IDistributionClientResult> errorWrapper) { - initCambriaClient(errorWrapper); - if (errorWrapper.isEmpty()) { - log.debug("create keys"); - DistributionClientResultImpl createKeysResponse = createUebKeys(); - if (createKeysResponse.getDistributionActionResult() != DistributionActionResultEnum.SUCCESS) { - errorWrapper.setInnerElement(createKeysResponse); - } - } - } - - private void validateArtifactTypesWithAsdcServer(IConfiguration conf, Wrapper<IDistributionClientResult> errorWrapper) { - Either<List<String>, IDistributionClientResult> eitherValidArtifactTypesList = asdcConnector.getValidArtifactTypesList(); - if (eitherValidArtifactTypesList.isRight()) { - DistributionActionResultEnum errorType = eitherValidArtifactTypesList.right().value().getDistributionActionResult(); - // Support the case of a new client and older ASDC Server which does not have the API - if (errorType != DistributionActionResultEnum.ASDC_NOT_FOUND) { - errorWrapper.setInnerElement(eitherValidArtifactTypesList.right().value()); - } - } else { - final List<String> artifactTypesFromAsdc = eitherValidArtifactTypesList.left().value(); - boolean isArtifactTypesValid = artifactTypesFromAsdc.containsAll(conf.getRelevantArtifactTypes()); - if (!isArtifactTypesValid) { - List<String> invalidArtifactTypes = new ArrayList<>(); - invalidArtifactTypes.addAll(conf.getRelevantArtifactTypes()); - invalidArtifactTypes.removeAll(artifactTypesFromAsdc); - DistributionClientResultImpl errorResponse = new DistributionClientResultImpl(DistributionActionResultEnum.CONF_CONTAINS_INVALID_ARTIFACT_TYPES, - "configuration contains invalid artifact types:" + invalidArtifactTypes + " valid types are:" + artifactTypesFromAsdc); - errorWrapper.setInnerElement(errorResponse); - } else { - log.debug("Artifact types: {} were validated with ASDC server", conf.getRelevantArtifactTypes()); - } - } - } - - private void initUebServerList(Wrapper<IDistributionClientResult> errorWrapper) { - log.debug("get cluster server list from ASDC"); - asdcConnector.init(configuration); - - Either<List<String>, IDistributionClientResult> serverListResponse = asdcConnector.getServerList(); - if (serverListResponse.isRight()) { - errorWrapper.setInnerElement(serverListResponse.right().value()); - } else { - brokerServers = serverListResponse.left().value(); - } - } - - private void validateNotInitilized(Wrapper<IDistributionClientResult> errorWrapper) { - if (isInitialized) { - log.warn("distribution client already initialized"); - DistributionClientResultImpl alreadyInitResponse = new DistributionClientResultImpl(DistributionActionResultEnum.DISTRIBUTION_CLIENT_ALREADY_INITIALIZED, "distribution client already initialized"); - errorWrapper.setInnerElement(alreadyInitResponse); - } - } - - @Override - public IDistributionClientResult sendDownloadStatus(IDistributionStatusMessage statusMessage) { - log.info("DistributionClient - sendDownloadStatus"); - Wrapper<IDistributionClientResult> errorWrapper = new Wrapper<>(); - validateRunReady(errorWrapper); - if (!errorWrapper.isEmpty()) { - return errorWrapper.getInnerElement(); - } - - return sendStatus(DistributionStatusMessageJsonBuilderFactory.getSimpleBuilder(statusMessage)); - } - - private IDistributionClientResult sendStatus(IDistributionStatusMessageJsonBuilder builder) { - DistributionClientResultImpl statusResult = new DistributionClientResultImpl(DistributionActionResultEnum.GENERAL_ERROR, "Failed to send status"); - log.info("DistributionClient - sendStatus"); - Either<CambriaBatchingPublisher, IDistributionClientResult> eitherPublisher = getCambriaPublisher(); - if (eitherPublisher.isRight()) { - return eitherPublisher.right().value(); - } - CambriaBatchingPublisher pub = eitherPublisher.left().value(); - - log.debug("after create publisher server list " + brokerServers.toString()); - String jsonRequest = builder.build(); - - log.debug("try to send status " + jsonRequest); - - try { - pub.send("MyPartitionKey", jsonRequest); - Thread.sleep(1000L); - } catch (IOException e) { - log.debug("DistributionClient - sendDownloadStatus. Failed to send download status"); - } catch (InterruptedException e) { - log.debug("DistributionClient - sendDownloadStatus. thread was interrupted"); - } - - finally { - - try { - List<message> stuck = pub.close(10L, TimeUnit.SECONDS); - - if (!stuck.isEmpty()) { - log.debug("DistributionClient - sendDownloadStatus. " + stuck.size() + " messages unsent"); - } else { - statusResult = new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS, "messages successfully sent"); - } - } catch (IOException | InterruptedException e) { - log.debug("DistributionClient - sendDownloadStatus. failed to send messages and close publisher "); - } - - } - return statusResult; - } - - private Either<CambriaBatchingPublisher, IDistributionClientResult> getCambriaPublisher() { - CambriaBatchingPublisher cambriaPublisher = null; - try { - cambriaPublisher = new PublisherBuilder().onTopic(statusTopic).usingHosts(brokerServers).build(); - cambriaPublisher.setApiCredentials(credential.getApiKey(), credential.getApiSecret()); - } catch (MalformedURLException | GeneralSecurityException e) { - Wrapper<IDistributionClientResult> errorWrapper = new Wrapper<>(); - handleCambriaInitFailure(errorWrapper, e); - return Either.right(errorWrapper.getInnerElement()); - } - return Either.left(cambriaPublisher); - } - - @Override - public IDistributionClientResult sendDeploymentStatus(IDistributionStatusMessage statusMessage) { - log.info("DistributionClient - sendDeploymentStatus"); - Wrapper<IDistributionClientResult> errorWrapper = new Wrapper<>(); - validateRunReady(errorWrapper); - if (!errorWrapper.isEmpty()) { - return errorWrapper.getInnerElement(); - } - return sendStatus(DistributionStatusMessageJsonBuilderFactory.getSimpleBuilder(statusMessage)); - } - - IDistributionClientResult sendNotificationStatus(long currentTimeMillis, String distributionId, ArtifactInfoImpl artifactInfo, boolean isNotified) { - log.info("DistributionClient - sendNotificationStatus"); - Wrapper<IDistributionClientResult> errorWrapper = new Wrapper<>(); - validateRunReady(errorWrapper); - if (!errorWrapper.isEmpty()) { - return errorWrapper.getInnerElement(); - } - return sendStatus(DistributionStatusMessageJsonBuilderFactory.prepareBuilderForNotificationStatus(getConfiguration().getConsumerID(), currentTimeMillis, distributionId, artifactInfo, isNotified)); - } - - /* *************************** Private Methods *************************************************** */ - - protected DistributionClientResultImpl createUebKeys() { - DistributionClientResultImpl response = new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS, "keys created successfuly"); - try { - String description = String.format(DistributionClientConstants.CLIENT_DESCRIPTION, configuration.getConsumerID()); - credential = cambriaIdentityManager.createApiKey(DistributionClientConstants.EMAIL, description); - cambriaIdentityManager.setApiCredentials(credential.getApiKey(), credential.getApiSecret()); - - } catch (HttpException | CambriaApiException | IOException e) { - response = new DistributionClientResultImpl(DistributionActionResultEnum.UEB_KEYS_CREATION_FAILED, "failed to create keys: " + e.getMessage()); - log.error(response.toString()); - } - return response; - } - - private IDistributionClientResult restartConsumer() { - shutdownExecutor(); - return start(); - } - - protected DistributionActionResultEnum validateAndInitConfiguration(Wrapper<IDistributionClientResult> errorWrapper, IConfiguration conf) { - DistributionActionResultEnum result = DistributionActionResultEnum.SUCCESS; - - if (conf == null) { - result = DistributionActionResultEnum.CONFIGURATION_IS_MISSING; - } else if (conf.getConsumerID() == null || conf.getConsumerID().isEmpty()) { - result = DistributionActionResultEnum.CONF_MISSING_CONSUMER_ID; - } else if (conf.getUser() == null || conf.getUser().isEmpty()) { - result = DistributionActionResultEnum.CONF_MISSING_USERNAME; - } else if (conf.getPassword() == null || conf.getPassword().isEmpty()) { - result = DistributionActionResultEnum.CONF_MISSING_PASSWORD; - } else if (conf.getAsdcAddress() == null || conf.getAsdcAddress().isEmpty()) { - result = DistributionActionResultEnum.CONF_MISSING_ASDC_FQDN; - } else if (!isValidFqdn(conf.getAsdcAddress())) { - result = DistributionActionResultEnum.CONF_INVALID_ASDC_FQDN; - } else if (conf.getEnvironmentName() == null || conf.getEnvironmentName().isEmpty()) { - result = DistributionActionResultEnum.CONF_MISSING_ENVIRONMENT_NAME; - } else if (conf.getRelevantArtifactTypes() == null || conf.getRelevantArtifactTypes().isEmpty()) { - result = DistributionActionResultEnum.CONF_MISSING_ARTIFACT_TYPES; - } - // DistributionActionResultEnum.SUCCESS - else { - this.configuration = new Configuration(conf); - if (!isPollingIntervalValid(conf.getPollingInterval())) { - configuration.setPollingInterval(DistributionClientConstants.MIN_POLLING_INTERVAL_SEC); - } - if (!isPollingTimeoutValid(conf.getPollingTimeout())) { - configuration.setPollingTimeout(DistributionClientConstants.POLLING_TIMEOUT_SEC); - } - if (conf.getConsumerGroup() == null) { - generateConsumerGroup(); - } - } - - if (result != DistributionActionResultEnum.SUCCESS) { - - DistributionClientResultImpl initResult = new DistributionClientResultImpl(result, "configuration is invalid: " + result.name()); - - log.error(initResult.toString()); - errorWrapper.setInnerElement(initResult); - } - return result; - } - - private void generateConsumerGroup() { - String generatedConsumerGroup = UUID.randomUUID().toString(); - configuration.setConsumerGroup(generatedConsumerGroup); - isConsumerGroupGenerated = true; - } - - protected boolean isValidFqdn(String fqdn) { - try { - Matcher matcher = DistributionClientConstants.FQDN_PATTERN.matcher(fqdn); - return matcher.matches(); - } catch (Exception e) { - } - return false; - } - - private void shutdownExecutor() { - if (executorPool == null) - return; - - executorPool.shutdown(); // Disable new tasks from being submitted - try { - // Wait a while for existing tasks to terminate - if (!executorPool.awaitTermination(60, TimeUnit.SECONDS)) { - executorPool.shutdownNow(); // Cancel currently executing tasks - // Wait a while for tasks to respond to being cancelled - if (!executorPool.awaitTermination(60, TimeUnit.SECONDS)) - log.error("Pool did not terminate"); - } - } catch (InterruptedException ie) { - // (Re-)Cancel if current thread also interrupted - executorPool.shutdownNow(); - // Preserve interrupt status - Thread.currentThread().interrupt(); - } finally { - isStarted = false; - } - } - - private void validateRunReady(Wrapper<IDistributionClientResult> errorWrapper) { - if (errorWrapper.isEmpty()) { - validateInitilized(errorWrapper); - } - if (errorWrapper.isEmpty()) { - validateNotTerminated(errorWrapper); - } - - } - - private void validateInitilized(Wrapper<IDistributionClientResult> errorWrapper) { - if (!isInitialized) { - log.debug("client was not initialized"); - IDistributionClientResult result = new DistributionClientResultImpl(DistributionActionResultEnum.DISTRIBUTION_CLIENT_NOT_INITIALIZED, "distribution client was not initialized"); - errorWrapper.setInnerElement(result); - } - } - - private void validateNotStarted(Wrapper<IDistributionClientResult> errorWrapper) { - if (isStarted) { - log.debug("client already started"); - IDistributionClientResult result = new DistributionClientResultImpl(DistributionActionResultEnum.DISTRIBUTION_CLIENT_ALREADY_STARTED, "distribution client already started"); - errorWrapper.setInnerElement(result); - } - } - - private void validateNotTerminated(Wrapper<IDistributionClientResult> errorWrapper) { - if (isTerminated) { - log.debug("client was terminated"); - IDistributionClientResult result = new DistributionClientResultImpl(DistributionActionResultEnum.DISTRIBUTION_CLIENT_IS_TERMINATED, "distribution client was terminated"); - errorWrapper.setInnerElement(result); - } - } - - private boolean isPollingTimeoutValid(int timeout) { - boolean isValid = (timeout >= DistributionClientConstants.POLLING_TIMEOUT_SEC); - if (!isValid) { - log.warn("polling interval is out of range. value should be greater than or equals to " + DistributionClientConstants.POLLING_TIMEOUT_SEC); - log.warn("setting polling interval to default: " + DistributionClientConstants.POLLING_TIMEOUT_SEC); - } - return isValid; - } - - private boolean isPollingIntervalValid(int pollingInt) { - boolean isValid = (pollingInt >= DistributionClientConstants.MIN_POLLING_INTERVAL_SEC); - if (!isValid) { - log.warn("polling interval is out of range. value should be greater than or equals to " + DistributionClientConstants.MIN_POLLING_INTERVAL_SEC); - log.warn("setting polling interval to default: " + DistributionClientConstants.MIN_POLLING_INTERVAL_SEC); - } - return isValid; - } - - private synchronized void initCambriaClient(Wrapper<IDistributionClientResult> errorWrapper) { - if (cambriaIdentityManager == null) { - try { - cambriaIdentityManager = new IdentityManagerBuilder().usingHosts(brokerServers).build(); - } catch (MalformedURLException | GeneralSecurityException e) { - handleCambriaInitFailure(errorWrapper, e); - } - } - } - - private void handleCambriaInitFailure(Wrapper<IDistributionClientResult> errorWrapper, Exception e) { - final String errorMessage = "Failed initilizing cambria component:" + e.getMessage(); - IDistributionClientResult errorResponse = new DistributionClientResultImpl(DistributionActionResultEnum.CAMBRIA_INIT_FAILED, errorMessage); - errorWrapper.setInnerElement(errorResponse); - log.error(errorMessage); - log.debug(errorMessage, e); - } - - @Override - public IDistributionClientResult sendDownloadStatus(IDistributionStatusMessage statusMessage, String errorReason) { - log.info("DistributionClient - sendDownloadStatus with errorReason"); - Wrapper<IDistributionClientResult> errorWrapper = new Wrapper<>(); - validateRunReady(errorWrapper); - if (!errorWrapper.isEmpty()) { - return errorWrapper.getInnerElement(); - } - - return sendStatus(DistributionStatusMessageJsonBuilderFactory.getErrorReasonBuilder(statusMessage, errorReason)); - - } - - @Override - public IDistributionClientResult sendDeploymentStatus(IDistributionStatusMessage statusMessage, String errorReason) { - log.info("DistributionClient - sendDeploymentStatus with errorReason"); - Wrapper<IDistributionClientResult> errorWrapper = new Wrapper<>(); - validateRunReady(errorWrapper); - if (!errorWrapper.isEmpty()) { - return errorWrapper.getInnerElement(); - } - return sendStatus(DistributionStatusMessageJsonBuilderFactory.getErrorReasonBuilder(statusMessage, errorReason)); - - } - - @Override - public List<IVfModuleMetadata> decodeVfModuleArtifact(byte[] artifactPayload) { - Gson gson = new GsonBuilder().setPrettyPrinting().create(); - String vfModuleJsonString = new String(artifactPayload, StandardCharsets.UTF_8); - final Type type = new TypeToken<List<VfModuleMetadata>>() { - }.getType(); - List<IVfModuleMetadata> vfModules = gson.fromJson(vfModuleJsonString, type); - return vfModules; - } -} diff --git a/src/main/java/org/openecomp/sdc/impl/DistributionClientResultImpl.java b/src/main/java/org/openecomp/sdc/impl/DistributionClientResultImpl.java deleted file mode 100644 index a5af31a..0000000 --- a/src/main/java/org/openecomp/sdc/impl/DistributionClientResultImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.impl; - -import org.openecomp.sdc.api.results.IDistributionClientResult; -import org.openecomp.sdc.utils.DistributionActionResultEnum; - -public class DistributionClientResultImpl implements IDistributionClientResult { - - DistributionActionResultEnum responseStatus; - String responseMessage; - - public DistributionClientResultImpl(DistributionActionResultEnum responseStatus, String responseMessage) { - this.responseStatus = responseStatus; - this.responseMessage = responseMessage; - } - - @Override - public DistributionActionResultEnum getDistributionActionResult() { - return responseStatus; - } - - @Override - public String getDistributionMessageResult() { - return responseMessage; - } - - @Override - public String toString() { - return "DistributionClientResultImpl [responseStatus=" + responseStatus + ", responseMessage=" + responseMessage + "]"; - } -} diff --git a/src/main/java/org/openecomp/sdc/impl/DistributionStatusMessageImpl.java b/src/main/java/org/openecomp/sdc/impl/DistributionStatusMessageImpl.java deleted file mode 100644 index d570142..0000000 --- a/src/main/java/org/openecomp/sdc/impl/DistributionStatusMessageImpl.java +++ /dev/null @@ -1,105 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.impl; - -import org.openecomp.sdc.api.consumer.IDistributionStatusMessage; -import org.openecomp.sdc.utils.DistributionStatusEnum; - -class DistributionStatusMessageImpl implements IDistributionStatusMessage { - - - String distributionID; - String consumerID; - long timestamp; - String artifactURL; - DistributionStatusEnum status; - String errorReason; - - - public DistributionStatusMessageImpl(IDistributionStatusMessage message){ - super(); - distributionID = message.getDistributionID(); - consumerID = message.getConsumerID(); - timestamp = message.getTimestamp(); - artifactURL = message.getArtifactURL(); - status = message.getStatus(); - - } - - @Override - public String getDistributionID() { - - return distributionID; - } - - @Override - public String getConsumerID() { - - return consumerID; - } - - @Override - public long getTimestamp() { - - return timestamp; - } - - @Override - public String getArtifactURL() { - - return artifactURL; - } - - @Override - public DistributionStatusEnum getStatus() { - - return status; - } - - public void setDistributionID(String distributionID) { - this.distributionID = distributionID; - } - - public void setConsumerID(String consumerID) { - this.consumerID = consumerID; - } - - public void setTimestamp(long timestamp) { - this.timestamp = timestamp; - } - - public void setArtifactURL(String artifactURL) { - this.artifactURL = artifactURL; - } - - public void setStatus(DistributionStatusEnum status) { - this.status = status; - } - - public String getErrorReason() { - return errorReason; - } - - public void setErrorReason(String errorReason) { - this.errorReason = errorReason; - } - -} diff --git a/src/main/java/org/openecomp/sdc/impl/DistributionStatusMessageJsonBuilderFactory.java b/src/main/java/org/openecomp/sdc/impl/DistributionStatusMessageJsonBuilderFactory.java deleted file mode 100644 index 9d97805..0000000 --- a/src/main/java/org/openecomp/sdc/impl/DistributionStatusMessageJsonBuilderFactory.java +++ /dev/null @@ -1,117 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.impl; - -import org.openecomp.sdc.api.IDistributionStatusMessageJsonBuilder; -import org.openecomp.sdc.api.consumer.IDistributionStatusMessage; -import org.openecomp.sdc.utils.DistributionStatusEnum; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; - -public class DistributionStatusMessageJsonBuilderFactory { - static Gson gson = new GsonBuilder().setPrettyPrinting().create(); - - public static IDistributionStatusMessageJsonBuilder getSimpleBuilder(IDistributionStatusMessage statusMessage){ - DistributionStatusMessageImpl message = new DistributionStatusMessageImpl(statusMessage); - - return prepareBuilderFromImpl(message); - } - - public static IDistributionStatusMessageJsonBuilder getErrorReasonBuilder(IDistributionStatusMessage statusMessage, String errorReason){ - DistributionStatusMessageImpl message = new DistributionStatusMessageImpl(statusMessage); - message.setErrorReason(errorReason); - - return prepareBuilderFromImpl(message); - } - - static IDistributionStatusMessageJsonBuilder prepareBuilderForNotificationStatus(final String consumerId, final long currentTimeMillis, final String distributionId, - final ArtifactInfoImpl artifactInfo, boolean isNotified){ - - final DistributionStatusEnum fakeStatusToReplace = DistributionStatusEnum.DOWNLOAD_OK; - final String jsonRequest = buildDistributionStatusJson(consumerId, currentTimeMillis, distributionId, artifactInfo, fakeStatusToReplace); - - DistributionStatusNotificationEnum notificationStatus = isNotified ? DistributionStatusNotificationEnum.NOTIFIED : DistributionStatusNotificationEnum.NOT_NOTIFIED; - final String changedRequest = jsonRequest.replace(fakeStatusToReplace.name(), notificationStatus.name()); - IDistributionStatusMessageJsonBuilder builder = new IDistributionStatusMessageJsonBuilder() { - @Override - public String build() { - return changedRequest; - } - }; - return builder; - - } - - private static String buildDistributionStatusJson(final String consumerId, - final long currentTimeMillis, final String distributionId, - final ArtifactInfoImpl artifactInfo, - final DistributionStatusEnum fakeStatusToBeReplaced) { - IDistributionStatusMessage statusMessage = new IDistributionStatusMessage() { - @Override - public long getTimestamp() { - return currentTimeMillis; - } - - @Override - public DistributionStatusEnum getStatus() { - - return fakeStatusToBeReplaced; - } - - @Override - public String getDistributionID() { - return distributionId; - } - - @Override - public String getConsumerID() { - return consumerId; - } - - @Override - public String getArtifactURL() { - return artifactInfo.getArtifactURL(); - } - }; - - DistributionStatusMessageImpl message = new DistributionStatusMessageImpl(statusMessage); - final String jsonRequest = gson.toJson(message); - return jsonRequest; - } - - private static IDistributionStatusMessageJsonBuilder prepareBuilderFromImpl( DistributionStatusMessageImpl message) { - final String jsonRequest = gson.toJson(message); - IDistributionStatusMessageJsonBuilder builder = new IDistributionStatusMessageJsonBuilder() { - @Override - public String build() { - return jsonRequest; - } - }; - return builder; - } - - private enum DistributionStatusNotificationEnum { - NOTIFIED, NOT_NOTIFIED - } - - -} diff --git a/src/main/java/org/openecomp/sdc/impl/JsonContainerResourceInstance.java b/src/main/java/org/openecomp/sdc/impl/JsonContainerResourceInstance.java deleted file mode 100644 index 68d557c..0000000 --- a/src/main/java/org/openecomp/sdc/impl/JsonContainerResourceInstance.java +++ /dev/null @@ -1,124 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.impl; - -import java.util.ArrayList; -import java.util.List; - -import org.openecomp.sdc.api.notification.IArtifactInfo; -import org.openecomp.sdc.api.notification.IResourceInstance; - -class JsonContainerResourceInstance implements IResourceInstance{ - JsonContainerResourceInstance (){} - private String resourceInstanceName, resourceName, resourceVersion, resoucreType, resourceUUID, resourceInvariantUUID;; - private List<ArtifactInfoImpl> artifacts; - - private JsonContainerResourceInstance(IResourceInstance resourceInstance){ - resourceInstanceName = resourceInstance.getResourceInstanceName(); - resourceName = resourceInstance.getResourceName(); - resourceVersion = resourceInstance.getResourceVersion(); - resoucreType = resourceInstance.getResourceType(); - resourceUUID = resourceInstance.getResourceUUID(); - resourceInvariantUUID = resourceInstance.getResourceInvariantUUID(); - artifacts = ArtifactInfoImpl.convertToArtifactInfoImpl(resourceInstance.getArtifacts()); - } - - public static List<JsonContainerResourceInstance> convertToJsonContainer(List<IResourceInstance> resources){ - List<JsonContainerResourceInstance> buildResources = new ArrayList<JsonContainerResourceInstance>(); - if( resources != null ){ - for( IResourceInstance resourceInstance : resources ){ - buildResources.add(new JsonContainerResourceInstance(resourceInstance)); - } - } - return buildResources; - } - - @Override - public String getResourceInstanceName() { - return resourceInstanceName; - } - - public void setResourceInstanceName(String resourceInstanceName) { - this.resourceInstanceName = resourceInstanceName; - } - - @Override - public String getResourceName() { - return resourceName; - } - - public void setResourceName(String resourceName) { - this.resourceName = resourceName; - } - - @Override - public String getResourceVersion() { - return resourceVersion; - } - - public void setResourceVersion(String resourceVersion) { - this.resourceVersion = resourceVersion; - } - - @Override - public String getResourceType() { - return resoucreType; - } - - public void setResoucreType(String resoucreType) { - this.resoucreType = resoucreType; - } - - @Override - public String getResourceUUID() { - return resourceUUID; - } - - public void setResourceUUID(String resourceUUID) { - this.resourceUUID = resourceUUID; - } - - @Override - public List<IArtifactInfo> getArtifacts() { - List<IArtifactInfo> temp = new ArrayList<IArtifactInfo>(); - if( artifacts != null ){ - temp.addAll(artifacts); - } - return temp; - } - - public void setArtifacts(List<ArtifactInfoImpl> artifacts) { - this.artifacts = artifacts; - } - - public List<ArtifactInfoImpl> getArtifactsImpl(){ - return artifacts; - } - - @Override - public String getResourceInvariantUUID() { - return resourceInvariantUUID; - } - - public void setResourceInvariantUUID(String resourceInvariantUUID) { - this.resourceInvariantUUID = resourceInvariantUUID; - } -} diff --git a/src/main/java/org/openecomp/sdc/impl/NotificationConsumer.java b/src/main/java/org/openecomp/sdc/impl/NotificationConsumer.java deleted file mode 100644 index d337650..0000000 --- a/src/main/java/org/openecomp/sdc/impl/NotificationConsumer.java +++ /dev/null @@ -1,180 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.impl; - -import java.util.ArrayList; -import java.util.List; - -import org.openecomp.sdc.api.consumer.INotificationCallback; -import org.openecomp.sdc.api.notification.IArtifactInfo; -import org.openecomp.sdc.api.notification.INotificationData; -import org.openecomp.sdc.api.notification.IResourceInstance; -import org.openecomp.sdc.api.results.IDistributionClientResult; -import org.openecomp.sdc.utils.ArtifactTypeEnum; -import org.openecomp.sdc.utils.DistributionActionResultEnum; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.att.nsa.cambria.client.CambriaConsumer; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; - -class NotificationConsumer implements Runnable { - - private static Logger log = LoggerFactory.getLogger(NotificationConsumer.class.getName()); - - private CambriaConsumer cambriaConsumer; - private INotificationCallback clientCallback; - private List<String> artifactsTypes; - private DistributionClientImpl distributionClient; - - public NotificationConsumer(CambriaConsumer cambriaConsumer, INotificationCallback clientCallback, List<String> artifactsTypes, DistributionClientImpl distributionClient) { - this.cambriaConsumer = cambriaConsumer; - this.clientCallback = clientCallback; - this.artifactsTypes = artifactsTypes; - this.distributionClient = distributionClient; - } - - @Override - public void run() { - - try { - Gson gson = new GsonBuilder().setPrettyPrinting().create(); - long currentTimeMillis = System.currentTimeMillis(); - for (String notificationMsg : cambriaConsumer.fetch()) { - log.debug("received message from topic"); - log.debug("recieved notification from broker: {}", notificationMsg); - - final NotificationDataImpl notificationFromUEB = gson.fromJson(notificationMsg, NotificationDataImpl.class); - NotificationDataImpl notificationForCallback = buildCallbackNotificationLogic(currentTimeMillis, notificationFromUEB); - if (isActivateCallback(notificationForCallback)) { - log.debug("sending notification to client: {}", notificationForCallback); - clientCallback.activateCallback(notificationForCallback); - } - } - - } catch (Exception e) { - log.error("Error exception occured when fetching with Cambria Client:{}", e.getMessage()); - log.debug("Error exception occured when fetching with Cambria Client:{}", e.getMessage(), e); - } - } - - private boolean isActivateCallback(NotificationDataImpl notificationForCallback) { - boolean hasRelevantArtifactsInResourceInstance = notificationForCallback.getResources() != null && !notificationForCallback.getResources().isEmpty(); - boolean hasRelevantArtifactsInService = notificationForCallback.getServiceArtifacts() != null && !notificationForCallback.getServiceArtifacts().isEmpty(); - - return hasRelevantArtifactsInResourceInstance || hasRelevantArtifactsInService; - } - - private NotificationDataImpl buildCallbackNotificationLogic(long currentTimeMillis, final NotificationDataImpl notificationFromUEB) { - List<IResourceInstance> relevantResourceInstances = buildResourceInstancesLogic(notificationFromUEB, currentTimeMillis); - List<ArtifactInfoImpl> relevantServiceArtifacts = handleRelevantArtifacts(notificationFromUEB, currentTimeMillis, notificationFromUEB.getServiceArtifactsImpl()); - notificationFromUEB.setResources(relevantResourceInstances); - notificationFromUEB.setServiceArtifacts(relevantServiceArtifacts); - return notificationFromUEB; - } - - private List<IResourceInstance> buildResourceInstancesLogic(NotificationDataImpl notificationFromUEB, long currentTimeMillis) { - - List<IResourceInstance> relevantResourceInstances = new ArrayList<>(); - - for (JsonContainerResourceInstance resourceInstance : notificationFromUEB.getResourcesImpl()) { - final List<ArtifactInfoImpl> artifactsImplList = resourceInstance.getArtifactsImpl(); - List<ArtifactInfoImpl> foundRelevantArtifacts = handleRelevantArtifacts(notificationFromUEB, currentTimeMillis, artifactsImplList); - if (!foundRelevantArtifacts.isEmpty()) { - resourceInstance.setArtifacts(foundRelevantArtifacts); - relevantResourceInstances.add(resourceInstance); - } - } - return relevantResourceInstances; - - } - - private List<ArtifactInfoImpl> handleRelevantArtifacts(NotificationDataImpl notificationFromUEB, long currentTimeMillis, final List<ArtifactInfoImpl> artifactsImplList) { - List<ArtifactInfoImpl> relevantArtifacts = new ArrayList<>(); - if (artifactsImplList != null) { - for (ArtifactInfoImpl artifactInfo : artifactsImplList) { - handleRelevantArtifact(notificationFromUEB, currentTimeMillis, artifactsImplList, relevantArtifacts, artifactInfo); - } - } - return relevantArtifacts; - } - - private void handleRelevantArtifact(NotificationDataImpl notificationFromUEB, long currentTimeMillis, final List<ArtifactInfoImpl> artifactsImplList, List<ArtifactInfoImpl> relevantArtifacts, ArtifactInfoImpl artifactInfo) { - boolean isArtifactRelevant = artifactsTypes.contains(artifactInfo.getArtifactType()); - String artifactType = artifactInfo.getArtifactType(); - if (artifactInfo.getGeneratedFromUUID() != null && !artifactInfo.getGeneratedFromUUID().isEmpty()) { - IArtifactInfo generatedFromArtInfo = findGeneratedFromArtifact(artifactInfo.getGeneratedFromUUID(), artifactsImplList); - if (generatedFromArtInfo != null) - isArtifactRelevant = isArtifactRelevant && artifactsTypes.contains(generatedFromArtInfo.getArtifactType()); - else - isArtifactRelevant = false; - } - if (isArtifactRelevant) { - setRelatedArtifacts(artifactInfo, notificationFromUEB); - if (artifactType.equals(ArtifactTypeEnum.HEAT.name()) || artifactType.equals(ArtifactTypeEnum.HEAT_VOL.name()) || artifactType.equals(ArtifactTypeEnum.HEAT_NET.name())) { - setGeneratedArtifact(artifactsImplList, artifactInfo); - } - relevantArtifacts.add(artifactInfo); - - } - IDistributionClientResult notificationStatus = distributionClient.sendNotificationStatus(currentTimeMillis, notificationFromUEB.getDistributionID(), artifactInfo, isArtifactRelevant); - if (notificationStatus.getDistributionActionResult() != DistributionActionResultEnum.SUCCESS) { - log.error("Error failed to send notification status to UEB failed status:{}, error message:{}", notificationStatus.getDistributionActionResult().name(), notificationStatus.getDistributionMessageResult()); - } - } - - private void setRelatedArtifacts(ArtifactInfoImpl artifact, INotificationData notificationData) { - if (artifact.getRelatedArtifactsUUID() != null) { - List<IArtifactInfo> relatedArtifacts = new ArrayList<>(); - for (String relatedArtifactUUID : artifact.getRelatedArtifactsUUID()) { - relatedArtifacts.add(notificationData.getArtifactMetadataByUUID(relatedArtifactUUID)); - } - artifact.setRelatedArtifactsInfo(relatedArtifacts); - } - - } - - private void setGeneratedArtifact(final List<ArtifactInfoImpl> artifactsImplList, ArtifactInfoImpl artifactInfo) { - IArtifactInfo found = null; - String artifactUUID = artifactInfo.getArtifactUUID(); - for (ArtifactInfoImpl generatedArtifactInfo : artifactsImplList) { - if (generatedArtifactInfo.getArtifactType().equals(ArtifactTypeEnum.HEAT_ENV.name()) && artifactUUID.equals(generatedArtifactInfo.getGeneratedFromUUID())) { - found = generatedArtifactInfo; - break; - } - } - - artifactInfo.setGeneratedArtifact(found); - } - - private IArtifactInfo findGeneratedFromArtifact(String getGeneratedFromUUID, List<ArtifactInfoImpl> list) { - IArtifactInfo found = null; - for (ArtifactInfoImpl artifactInfo : list) { - if (getGeneratedFromUUID.equals(artifactInfo.getArtifactUUID())) { - found = artifactInfo; - break; - } - } - return found; - } - -} diff --git a/src/main/java/org/openecomp/sdc/impl/NotificationDataImpl.java b/src/main/java/org/openecomp/sdc/impl/NotificationDataImpl.java deleted file mode 100644 index 7ad3987..0000000 --- a/src/main/java/org/openecomp/sdc/impl/NotificationDataImpl.java +++ /dev/null @@ -1,167 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.impl; - -import java.util.ArrayList; -import java.util.List; - -import org.openecomp.sdc.api.notification.IArtifactInfo; -import org.openecomp.sdc.api.notification.INotificationData; -import org.openecomp.sdc.api.notification.IResourceInstance; - - -class NotificationDataImpl implements INotificationData { - - private String distributionID; - private String serviceName; - private String serviceVersion; - private String serviceUUID; - private String serviceDescription; - private String serviceInvariantUUID; - private List<JsonContainerResourceInstance> resources; - private List<ArtifactInfoImpl> serviceArtifacts; - - @Override - public String getDistributionID() { - return distributionID; - } - - @Override - public String getServiceName() { - return serviceName; - } - - @Override - public String getServiceVersion() { - return serviceVersion; - } - - @Override - public String getServiceUUID() { - return serviceUUID; - } - - public void setDistributionID(String distributionID) { - this.distributionID = distributionID; - } - - public void setServiceName(String serviceName) { - this.serviceName = serviceName; - } - - public void setServiceVersion(String serviceVersion) { - this.serviceVersion = serviceVersion; - } - - public void setServiceUUID(String serviceUUID) { - this.serviceUUID = serviceUUID; - } - - - - public String getServiceDescription() { - return serviceDescription; - } - - public void setServiceDescription(String serviceDescription) { - this.serviceDescription = serviceDescription; - } - - @Override - public String toString() { - return "NotificationDataImpl [distributionID=" + distributionID - + ", serviceName=" + serviceName + ", serviceVersion=" - + serviceVersion + ", serviceUUID=" + serviceUUID+"]"; - } - - @Override - public List<IResourceInstance> getResources() { - List<IResourceInstance> ret = new ArrayList<IResourceInstance>(); - if( resources != null ){ - ret.addAll(resources); - } - return ret; - } - - public void setResources(List<IResourceInstance> resources){ - this.resources = JsonContainerResourceInstance.convertToJsonContainer(resources); - } - - public List<JsonContainerResourceInstance> getResourcesImpl(){ - return resources; - } - - List<ArtifactInfoImpl> getServiceArtifactsImpl(){ - return serviceArtifacts; - } - - @Override - public List<IArtifactInfo> getServiceArtifacts() { - - List<IArtifactInfo> temp = new ArrayList<IArtifactInfo>(); - if( serviceArtifacts != null ){ - temp.addAll(serviceArtifacts); - } - return temp; - } - - void setServiceArtifacts(List<ArtifactInfoImpl> relevantServiceArtifacts) { - serviceArtifacts = relevantServiceArtifacts; - - } - - @Override - public String getServiceInvariantUUID() { - return serviceInvariantUUID; - } - - - public void setServiceInvariantUUID(String serviceInvariantUUID) { - this.serviceInvariantUUID = serviceInvariantUUID; - } - @Override - public IArtifactInfo getArtifactMetadataByUUID(String artifactUUID){ - IArtifactInfo ret = findArtifactInfoByUUID(artifactUUID, serviceArtifacts); - if( ret == null && resources != null ){ - for( JsonContainerResourceInstance currResourceInstance : resources ){ - ret = findArtifactInfoByUUID(artifactUUID, currResourceInstance.getArtifactsImpl()); - if( ret != null ){ - break; - } - } - } - return ret; - - } - - private IArtifactInfo findArtifactInfoByUUID(String artifactUUID, List<ArtifactInfoImpl> listToCheck) { - IArtifactInfo ret = null; - if( listToCheck != null ){ - for(IArtifactInfo curr: listToCheck ){ - if(curr.getArtifactUUID().equals(artifactUUID) ){ - ret = curr; - break; - } - } - } - return ret; - } -} diff --git a/src/main/java/org/openecomp/sdc/impl/VfModuleMetadata.java b/src/main/java/org/openecomp/sdc/impl/VfModuleMetadata.java deleted file mode 100644 index 3932253..0000000 --- a/src/main/java/org/openecomp/sdc/impl/VfModuleMetadata.java +++ /dev/null @@ -1,61 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.impl; - -import java.util.List; - -import org.openecomp.sdc.api.notification.IVfModuleMetadata; - -final class VfModuleMetadata implements IVfModuleMetadata { - private VfModuleMetadata(){ - //This Class is only built by parsing Json - } - - private String vfModuleModelName; - private String vfModuleModelInvariantUUID; - private String vfModuleModelVersion; - private String vfModuleModelUUID; - private String vfModuleModelDescription; - private boolean isBase; - private List<String> artifacts; - - public String getVfModuleModelName() { - return vfModuleModelName; - } - public String getVfModuleModelInvariantUUID() { - return vfModuleModelInvariantUUID; - } - public String getVfModuleModelVersion() { - return vfModuleModelVersion; - } - public String getVfModuleModelUUID() { - return vfModuleModelUUID; - } - public String getVfModuleModelDescription() { - return vfModuleModelDescription; - } - public boolean isBase() { - return isBase; - } - public List<String> getArtifacts() { - return artifacts; - } -} diff --git a/src/main/java/org/openecomp/sdc/impl/mock/DistributionClientDownloadResultStubImpl.java b/src/main/java/org/openecomp/sdc/impl/mock/DistributionClientDownloadResultStubImpl.java deleted file mode 100644 index d69451a..0000000 --- a/src/main/java/org/openecomp/sdc/impl/mock/DistributionClientDownloadResultStubImpl.java +++ /dev/null @@ -1,72 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.impl.mock; - -import org.openecomp.sdc.api.results.IDistributionClientDownloadResult; - -/** Mock Implementation */ -public class DistributionClientDownloadResultStubImpl extends DistributionClientResultStubImpl implements IDistributionClientDownloadResult { - - @Override - public byte[] getArtifactPayload() { - String mockPayload = "heat_template_version: 2013-05-23\r\n" + - "\r\n" + - "description: >\r\n" + - " HOT template that creates one COR network (direct).\r\n" + - "\r\n" + - "parameters:\r\n" + - " cor_direct_net_name:\r\n" + - " type: string\r\n" + - " description: Name of COR direct network\r\n" + - " cor_direct_net_cidr:\r\n" + - " type: string\r\n" + - " description: Direct network address (CIDR notation)\r\n" + - " cor_direct_net_gateway:\r\n" + - " type: string\r\n" + - " description: Direct network gateway address\r\n" + - " cor_direct_net_RT:\r\n" + - " type: string\r\n" + - " description: Direct network route-target (RT)\r\n" + - "\r\n" + - "resources:\r\n" + - " cor_direct_net:\r\n" + - " type: OS::Contrail::VirtualNetwork\r\n" + - " properties:\r\n" + - " name: { get_param: cor_direct_net_name }\r\n" + - " route_targets: [ get_param: cor_direct_net_RT ]\r\n" + - "\r\n" + - " cor_direct_ip_subnet:\r\n" + - " type: OS::Neutron::Subnet\r\n" + - " properties:\r\n" + - " network_id: { get_resource: cor_direct_net }\r\n" + - " cidr: {get_param: cor_direct_net_cidr}\r\n" + - " gateway_ip: { get_param: cor_direct_net_gateway }\r\n"; - - return mockPayload.getBytes(); - } - - @Override - public String getArtifactName() { - // TODO Auto-generated method stub - return "MackArtifactName"; - } - -} diff --git a/src/main/java/org/openecomp/sdc/impl/mock/DistributionClientResultStubImpl.java b/src/main/java/org/openecomp/sdc/impl/mock/DistributionClientResultStubImpl.java deleted file mode 100644 index 13d64a4..0000000 --- a/src/main/java/org/openecomp/sdc/impl/mock/DistributionClientResultStubImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.impl.mock; - -import org.openecomp.sdc.api.results.IDistributionClientResult; -import org.openecomp.sdc.utils.DistributionActionResultEnum; -/** Mock Implementation */ -public class DistributionClientResultStubImpl implements IDistributionClientResult { - @Override - public DistributionActionResultEnum getDistributionActionResult() { - return DistributionActionResultEnum.SUCCESS; - } - - @Override - public String getDistributionMessageResult() { - return "Stub Result, method not implemented!"; - } - -} diff --git a/src/main/java/org/openecomp/sdc/impl/mock/DistributionClientStubImpl.java b/src/main/java/org/openecomp/sdc/impl/mock/DistributionClientStubImpl.java deleted file mode 100644 index b8044cd..0000000 --- a/src/main/java/org/openecomp/sdc/impl/mock/DistributionClientStubImpl.java +++ /dev/null @@ -1,97 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.impl.mock; - -import java.util.List; - -import org.openecomp.sdc.api.IDistributionClient; -import org.openecomp.sdc.api.consumer.IConfiguration; -import org.openecomp.sdc.api.consumer.IDistributionStatusMessage; -import org.openecomp.sdc.api.consumer.INotificationCallback; -import org.openecomp.sdc.api.notification.IArtifactInfo; -import org.openecomp.sdc.api.notification.IVfModuleMetadata; -import org.openecomp.sdc.api.results.IDistributionClientDownloadResult; -import org.openecomp.sdc.api.results.IDistributionClientResult; -/** Mock Implementation */ -public class DistributionClientStubImpl implements IDistributionClient{ - public DistributionClientStubImpl(){ - - } - - public IDistributionClientResult updateConfiguration(IConfiguration newConf) { - return new DistributionClientResultStubImpl(); - } - - public IDistributionClientResult start() { - return new DistributionClientResultStubImpl(); - } - - public IDistributionClientResult stop() { - return new DistributionClientResultStubImpl(); - } - - public IDistributionClientResult sendDownloadStatus( IDistributionStatusMessage statusMessage) { - return new DistributionClientResultStubImpl(); - } - - public IDistributionClientResult sendDeploymentStatus( IDistributionStatusMessage statusMessage) { - return new DistributionClientResultStubImpl(); - } - - @Override - public IDistributionClientDownloadResult download(IArtifactInfo artifactInfo) { - return new DistributionClientDownloadResultStubImpl(); - } - - @Override - public IDistributionClientResult init(IConfiguration conf, INotificationCallback callback) { - return new DistributionClientResultStubImpl(); - } - - @Override - public IConfiguration getConfiguration() { - // TODO Auto-generated method stub - return null; - } - - @Override - public IDistributionClientResult sendDownloadStatus( - IDistributionStatusMessage statusMessage, String errorReason) { - // TODO Auto-generated method stub - return null; - } - - @Override - public IDistributionClientResult sendDeploymentStatus( - IDistributionStatusMessage statusMessage, String errorReason) { - // TODO Auto-generated method stub - return null; - } - - @Override - public List<IVfModuleMetadata> decodeVfModuleArtifact(byte[] artifactPayload) { - // TODO Auto-generated method stub - return null; - } - - - -} diff --git a/src/main/java/org/openecomp/sdc/utils/ArtifactTypeEnum.java b/src/main/java/org/openecomp/sdc/utils/ArtifactTypeEnum.java deleted file mode 100644 index ca5339f..0000000 --- a/src/main/java/org/openecomp/sdc/utils/ArtifactTypeEnum.java +++ /dev/null @@ -1,46 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.utils; - -public enum ArtifactTypeEnum { - HEAT, - HEAT_VOL, - HEAT_NET, - MURANO_PKG, - HEAT_ENV, - YANG_XML, - OTHER, - VF_LICENSE, - VENDOR_LICENSE, - MODEL_INVENTORY_PROFILE, - MODEL_QUERY_SPEC, - APPC_CONFIG, - VNF_CATALOG, - HEAT_NESTED, - HEAT_ARTIFACT, - VF_MODULES_METADATA, - //DCAE Artifacts - DCAE_TOSCA, DCAE_JSON, DCAE_POLICY, DCAE_DOC, - DCAE_EVENT, DCAE_INVENTORY_TOSCA, DCAE_INVENTORY_JSON, - DCAE_INVENTORY_POLICY, DCAE_INVENTORY_DOC, - DCAE_INVENTORY_BLUEPRINT, DCAE_INVENTORY_EVENT; - -} diff --git a/src/main/java/org/openecomp/sdc/utils/DistributionActionResultEnum.java b/src/main/java/org/openecomp/sdc/utils/DistributionActionResultEnum.java deleted file mode 100644 index 47333d5..0000000 --- a/src/main/java/org/openecomp/sdc/utils/DistributionActionResultEnum.java +++ /dev/null @@ -1,55 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.utils; - -public enum DistributionActionResultEnum { - SUCCESS, - FAIL, - GENERAL_ERROR, - BAD_REQUEST, - DISTRIBUTION_CLIENT_NOT_INITIALIZED, - DISTRIBUTION_CLIENT_IS_TERMINATED, - DISTRIBUTION_CLIENT_ALREADY_INITIALIZED, - DISTRIBUTION_CLIENT_ALREADY_STARTED, - - DATA_INTEGRITY_PROBLEM, - ARTIFACT_NOT_FOUND, - - CONFIGURATION_IS_MISSING, - CONF_MISSING_USERNAME, - CONF_MISSING_PASSWORD, - CONF_MISSING_ASDC_FQDN, - CONF_MISSING_ARTIFACT_TYPES, - CONF_CONTAINS_INVALID_ARTIFACT_TYPES, - CONF_MISSING_CONSUMER_ID, - CONF_MISSING_ENVIRONMENT_NAME, - CONF_MISSING_CONSUMER_GROUP, - CONF_INVALID_ASDC_FQDN, - ASDC_AUTHENTICATION_FAILED, - ASDC_AUTHORIZATION_FAILED, - ASDC_NOT_FOUND, - ASDC_SERVER_PROBLEM, - ASDC_CONNECTION_FAILED, - ASDC_SERVER_TIMEOUT, - - CAMBRIA_INIT_FAILED, - UEB_KEYS_CREATION_FAILED -} diff --git a/src/main/java/org/openecomp/sdc/utils/DistributionClientConstants.java b/src/main/java/org/openecomp/sdc/utils/DistributionClientConstants.java deleted file mode 100644 index 37b8ae3..0000000 --- a/src/main/java/org/openecomp/sdc/utils/DistributionClientConstants.java +++ /dev/null @@ -1,44 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.utils; - -import java.util.regex.Pattern; - -/** - * Constants Used By Distribution Client - * @author mshitrit - * - */ -public final class DistributionClientConstants { - public static final String CLIENT_DESCRIPTION = "ASDC Distribution Client Key for %s"; - public static final Pattern FQDN_PATTERN = Pattern.compile("^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])(\\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9]))*(:[0-9]{2,4})*$", Pattern.CASE_INSENSITIVE); - public static final String EMAIL = ""; - public static final int MIN_POLLING_INTERVAL_SEC = 15; - public static final int POOL_SIZE = 10; - public static final int POLLING_TIMEOUT_SEC = 15; - - public static final String HEADER_INSTANCE_ID = "X-ECOMP-InstanceID"; - public static final String HEADER_REQUEST_ID = "X-ECOMP-RequestID"; - public static final String APPLICATION_JSON = "application/json"; - public static final String HEADER_CONTENT_TYPE = "Content-Type"; - - private DistributionClientConstants(){ throw new UnsupportedOperationException();} -} diff --git a/src/main/java/org/openecomp/sdc/utils/DistributionStatusEnum.java b/src/main/java/org/openecomp/sdc/utils/DistributionStatusEnum.java deleted file mode 100644 index 1d2d03c..0000000 --- a/src/main/java/org/openecomp/sdc/utils/DistributionStatusEnum.java +++ /dev/null @@ -1,41 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.utils; - -public enum DistributionStatusEnum { - /**Can be sent when ECOMP component successfully downloaded the specific artifact*/ - DOWNLOAD_OK, - - /**Can be sent when ECOMP component failed to download the specific artifact (corrupted file)*/ - DOWNLOAD_ERROR, - - /**Can be sent only if the repeated distribution notification event is sent when the ECOMP component already downloaded the artifact , but still not stored it in the local repository .*/ - ALREADY_DOWNLOADED, - - /**Can be sent when ECOMP component successfully deployed the specific artifact in the local repository*/ - DEPLOY_OK, - - /**Can be sent when ECOMP component failed to store the downloaded artifact in the local repository*/ - DEPLOY_ERROR, - - /**Sent when the repeated distribution notification event is sent for already stored in the local repository service artifact ( artifact's version and checksum match the one stored in the local repository)*/ - ALREADY_DEPLOYED -} diff --git a/src/main/java/org/openecomp/sdc/utils/GeneralUtils.java b/src/main/java/org/openecomp/sdc/utils/GeneralUtils.java deleted file mode 100644 index 9d786d0..0000000 --- a/src/main/java/org/openecomp/sdc/utils/GeneralUtils.java +++ /dev/null @@ -1,62 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.utils; - -import java.util.regex.Pattern; - -import org.apache.commons.codec.binary.Base64; - -public class GeneralUtils { - - public static String calculateMD5 (String data){ - String calculatedMd5 = org.apache.commons.codec.digest.DigestUtils.md5Hex(data); - // encode base-64 result - byte[] encodeBase64 = Base64.encodeBase64(calculatedMd5.getBytes()); - String encodeBase64Str = new String(encodeBase64); - return encodeBase64Str; - - } - - public static String calculateMD5(byte[] decodedPayload) { - String decodedMd5 = org.apache.commons.codec.digest.DigestUtils.md5Hex(decodedPayload); - byte[] encodeMd5 = Base64.encodeBase64(decodedMd5.getBytes()); - return new String(encodeMd5); - } - - public static boolean isBase64Encoded(String str){ - boolean isEncoded = false; - try - { - // If no exception is caught, then it is possibly a base64 encoded string - byte[] data = Base64.decodeBase64(str); - // checks if the string was properly padded to the - isEncoded= ((str.length() % 4 == 0) && (Pattern.matches("\\A[a-zA-Z0-9/+]+={1,2}\\z", str))); - - } - catch (Exception e) - { - // If exception is caught, then it is not a base64 encoded string - isEncoded= false; - } - return isEncoded; - } - -} diff --git a/src/main/java/org/openecomp/sdc/utils/Pair.java b/src/main/java/org/openecomp/sdc/utils/Pair.java deleted file mode 100644 index eca644a..0000000 --- a/src/main/java/org/openecomp/sdc/utils/Pair.java +++ /dev/null @@ -1,39 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.utils; - -public final class Pair<F, S> { - private final F first; - private final S second; - - public Pair(F first, S second){ - this.first = first; - this.second = second; - } - - public F getFirst() { - return first; - } - - public S getSecond() { - return second; - } -} diff --git a/src/main/java/org/openecomp/sdc/utils/Wrapper.java b/src/main/java/org/openecomp/sdc/utils/Wrapper.java deleted file mode 100644 index 047ea86..0000000 --- a/src/main/java/org/openecomp/sdc/utils/Wrapper.java +++ /dev/null @@ -1,45 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.utils; -/** - * Very Basic Wrapper class. - * @author mshitrit - * - * @param <T> - */ -public class Wrapper<T>{ - private T innerElement; - public Wrapper(T innerElement){ - this.innerElement = innerElement; - } - public Wrapper(){ - this.innerElement = null; - } - public T getInnerElement() { - return innerElement; - } - public void setInnerElement(T innerElement) { - this.innerElement = innerElement; - } - public boolean isEmpty(){ - return innerElement == null; - } -} diff --git a/src/main/java/org/openecomp/sdc/utils/YamlToObjectConverter.java b/src/main/java/org/openecomp/sdc/utils/YamlToObjectConverter.java deleted file mode 100644 index 50feb6c..0000000 --- a/src/main/java/org/openecomp/sdc/utils/YamlToObjectConverter.java +++ /dev/null @@ -1,155 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.utils; - -import java.beans.IntrospectionException; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.HashMap; - -import org.openecomp.sdc.utils.heat.HeatConfiguration; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.yaml.snakeyaml.TypeDescription; -import org.yaml.snakeyaml.Yaml; -import org.yaml.snakeyaml.introspector.BeanAccess; -import org.yaml.snakeyaml.introspector.Property; -import org.yaml.snakeyaml.introspector.PropertyUtils; - -public class YamlToObjectConverter { - - private static Logger log = LoggerFactory - .getLogger(YamlToObjectConverter.class.getName()); - - private static HashMap<String, Yaml> yamls = new HashMap<String, Yaml>(); - - private static Yaml defaultYaml = new Yaml(); - - static { - - org.yaml.snakeyaml.constructor.Constructor heatConstructor = new org.yaml.snakeyaml.constructor.Constructor(HeatConfiguration.class); - TypeDescription heatDescription = new TypeDescription(HeatConfiguration.class); - //heatDescription.putListPropertyType("parameters", HeatParameterConfiguration.class); - heatConstructor.addTypeDescription(heatDescription); - PropertyUtils propertyUtils = new PropertyUtils() { - @Override - //This is in order to workaround "default" field in HeatParameterEntry, since default is Java keyword - public Property getProperty(Class<? extends Object> type, String name, BeanAccess bAccess) - throws IntrospectionException { - name = name.substring(0, 1).toLowerCase() + name.substring(1); - return super.getProperty(type, name, bAccess); - } - - }; - //Skip properties which are not found - we only are interested in "parameters" - propertyUtils.setSkipMissingProperties(true); - heatConstructor.setPropertyUtils(propertyUtils); - - Yaml yaml = new Yaml(heatConstructor); - - yamls.put(HeatConfiguration.class.getName(), yaml); - - } - - private static <T> Yaml getYamlByClassName(Class<T> className) { - - Yaml yaml = yamls.get(className.getName()); - if (yaml == null) { - yaml = defaultYaml; - } - - return yaml; - } - - public <T> T convert(String dirPath, Class<T> className, - String configFileName) { - - T config = null; - - try { - - String fullFileName = dirPath + File.separator + configFileName; - - config = convert(fullFileName, className); - - } catch (Exception e) { - log.error("Failed to convert yaml file " + configFileName - + " to object.", e); - } - - return config; - } - - public <T> T convert(String fullFileName, Class<T> className) { - - T config = null; - - Yaml yaml = getYamlByClassName(className); - - InputStream in = null; - try { - - File f = new File(fullFileName); - if (false == f.exists()) { - log.warn("The file " + fullFileName - + " cannot be found. Ignore reading configuration."); - return null; - } - in = Files.newInputStream(Paths.get(fullFileName)); - - config = yaml.loadAs(in, className); - - // System.out.println(config.toString()); - } catch (Exception e) { - log.error("Failed to convert yaml file " + fullFileName - + " to object.", e); - } finally { - if (in != null) { - try { - in.close(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - } - - return config; - } - - public <T> T convertFromString(String yamlContents, Class<T> className) { - - T config = null; - - Yaml yaml = getYamlByClassName(className); - - try { - config = yaml.loadAs(yamlContents, className); - } catch (Exception e){ - log.error("Failed to convert YAML {} to object." , yamlContents, e); - } - - return config; - } -} diff --git a/src/main/java/org/openecomp/sdc/utils/heat/HeatConfiguration.java b/src/main/java/org/openecomp/sdc/utils/heat/HeatConfiguration.java deleted file mode 100644 index 6cd2de0..0000000 --- a/src/main/java/org/openecomp/sdc/utils/heat/HeatConfiguration.java +++ /dev/null @@ -1,42 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.utils.heat; - -import java.util.Map; - -public class HeatConfiguration { - - //All the rest of heat file is not needed for now... - Map<String, HeatParameter> parameters; - - - public Map<String, HeatParameter> getParameters() { - return parameters; - } - - - public void setParameters(Map<String, HeatParameter> parameters) { - this.parameters = parameters; - } - - - -} diff --git a/src/main/java/org/openecomp/sdc/utils/heat/HeatParameter.java b/src/main/java/org/openecomp/sdc/utils/heat/HeatParameter.java deleted file mode 100644 index 954152d..0000000 --- a/src/main/java/org/openecomp/sdc/utils/heat/HeatParameter.java +++ /dev/null @@ -1,207 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.utils.heat; - -import java.util.ArrayList; -import java.util.List; - -public class HeatParameter{ - - String type; - String label; - String description; - //This is in order to workaround "default" field in HeatParameterEntry, since default is Java keyword - //YAML constructor will lowercase it during parsing - String Default; - String hidden = "false";//Default value according to OpenStack spec - List<HeatParameterConstraint> constraints; - - - - public String getHidden() { - return hidden; - } - public void setHidden(String hidden) { - this.hidden = hidden; - } - - public List<HeatParameterConstraint> getConstraints() { - return constraints; - } - public void setConstraints(List<HeatParameterConstraint> constraints) { - this.constraints = constraints; - } - public String getType() { - return type; - } - public void setType(String type) { - this.type = type; - } - public String getLabel() { - return label; - } - public void setLabel(String label) { - this.label = label; - } - public String getDescription() { - return description; - } - public void setDescription(String description) { - this.description = description; - } - public String getDefault() { - return Default; - } - public void setDefault(String default1) { - Default = default1; - } - - - - // Getting specific constraints - /** - * Get the first "length" constraint from HEAT parameter. - * No additional "length" constraint is searched for. - * - * @return first "length" constraint found for this parameter, - * or null if no such constraint exists. - */ - public HeatParameterConstraint getLengthConstraint(){ - HeatParameterConstraint res = null; - if (constraints != null){ - for (HeatParameterConstraint entry : constraints){ - if (entry.getLength() != null){ - res = entry; - break; - } - } - } - return res; - } - - - /** - * Get the first "range" constraint from HEAT parameter. - * No additional "range" constraint is searched for. - * - * @return first "range" constraint found for this parameter, - * or null if no such constraint exists. - */ - public HeatParameterConstraint getRangeConstraint(){ - HeatParameterConstraint res = null; - if (constraints != null){ - for (HeatParameterConstraint entry : constraints){ - if (entry.getRange() != null){ - res = entry; - break; - } - } - } - return res; - } - - /** - * Get the first "allowed_values" constraint from HEAT parameter. - * No additional "allowed_values" constraint is searched for. - * - * @return first "allowed_values" constraint found for this parameter, - * or null if no such constraint exists. - */ - public HeatParameterConstraint getAllowedValuesConstraint(){ - HeatParameterConstraint res = null; - if (constraints != null){ - for (HeatParameterConstraint entry : constraints){ - if (entry.getAllowed_values() != null){ - res = entry; - break; - } - } - } - return res; - } - - /** - * Get the "allowed_pattern" constraint list from HEAT parameter. - * - * @return "allowed_pattern" constraint list found for this parameter, - * or null if no such constraint exists. - */ - public List<HeatParameterConstraint> getAllowedPatternConstraint(){ - List<HeatParameterConstraint> res = null; - if (constraints != null){ - for (HeatParameterConstraint entry : constraints){ - if (entry.getAllowed_pattern() != null){ - if (res == null){ - res = new ArrayList<>(); - } - res.add(entry); - } - } - } - return res; - } - - /** - * Get the "custom_constraint" constraint list from HEAT parameter. - * - * @return "custom_constraint" constraint list found for this parameter, - * or null if no such constraint exists. - */ - public List<HeatParameterConstraint> getCustomConstraintConstraint(){ - List<HeatParameterConstraint> res = null; - if (constraints != null){ - for (HeatParameterConstraint entry : constraints){ - if (entry.getCustom_constraint() != null){ - if (res == null){ - res = new ArrayList<>(); - } - res.add(entry); - } - } - } - return res; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - if (type != null){ - sb.append("type:"+type+", "); - } - if (label != null){ - sb.append("label:"+label+", "); - } - if (Default != null){ - sb.append("default:"+Default+", "); - } - if (hidden != null){ - sb.append("hidden:"+hidden+", "); - } - if (constraints != null){ - sb.append("constraints:"+constraints+", "); - } - if (description != null){ - sb.append("description:"+description); - } - return sb.toString(); - } - -} diff --git a/src/main/java/org/openecomp/sdc/utils/heat/HeatParameterConstraint.java b/src/main/java/org/openecomp/sdc/utils/heat/HeatParameterConstraint.java deleted file mode 100644 index b89ad48..0000000 --- a/src/main/java/org/openecomp/sdc/utils/heat/HeatParameterConstraint.java +++ /dev/null @@ -1,93 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.utils.heat; - -import java.util.List; -import java.util.Map; - -public class HeatParameterConstraint { - - Map<String, String> length; - Map<String, String> range; - List<String> allowed_values; - String allowed_pattern; - String custom_constraint; - String description; - - - public String getDescription() { - return description; - } - public void setDescription(String description) { - this.description = description; - } - public Map<String, String> getLength() { - return length; - } - public void setLength(Map<String, String> length) { - this.length = length; - } - public Map<String, String> getRange() { - return range; - } - public void setRange(Map<String, String> range) { - this.range = range; - } - public List<String> getAllowed_values() { - return allowed_values; - } - public void setAllowed_values(List<String> allowed_values) { - this.allowed_values = allowed_values; - } - public String getAllowed_pattern() { - return allowed_pattern; - } - public void setAllowed_pattern(String allowed_pattern) { - this.allowed_pattern = allowed_pattern; - } - public String getCustom_constraint() { - return custom_constraint; - } - public void setCustom_constraint(String custom_constraint) { - this.custom_constraint = custom_constraint; - } - - @Override - public String toString() { - String constraintTypeValue = "<empty>"; - String descriptionStr = "<empty>"; - if (length != null){ - constraintTypeValue = "length:"+length; - } else if (range != null){ - constraintTypeValue = "range:"+range; - } else if (allowed_values != null){ - constraintTypeValue = "allowed_values:"+allowed_values; - } else if (allowed_pattern != null){ - constraintTypeValue = "allowed_pattern:"+allowed_pattern; - } else if (custom_constraint != null){ - constraintTypeValue = "custom_constraint:"+custom_constraint; - } - if (description != null){ - descriptionStr = "description:"+description; - } - return new StringBuilder().append(constraintTypeValue).append(", ").append(descriptionStr).toString(); - } -} diff --git a/src/main/java/org/openecomp/sdc/utils/heat/HeatParser.java b/src/main/java/org/openecomp/sdc/utils/heat/HeatParser.java deleted file mode 100644 index 5aa4968..0000000 --- a/src/main/java/org/openecomp/sdc/utils/heat/HeatParser.java +++ /dev/null @@ -1,75 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.utils.heat; - -import java.util.Map; - -import org.openecomp.sdc.utils.YamlToObjectConverter; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class HeatParser { - - private static Logger log = LoggerFactory.getLogger(HeatParser.class.getName()); - - - /** - * Parses and returns the contents of the "parameters" section of YAML-formatted HEAT template. - * - * @param heatFileContents - the string contents of HEAT template - * @return map of parameter name to HeatParameter object. - * For the following YAML snippet: - * <b>parameters: - * image_name_1: - * type: string - * label: Image Name - * description: SCOIMAGE Specify an image name for instance1 - * default: cirros-0.3.1-x86_64 - * </b> - * the map with one entry will be returned, the key will be "image_name_1". - * For a HeatParameter object, getConstraints() returns the list of all constraints, - * regardless of constraint type. - * For that reason, for each constraint type a sugaring function were added on the HeatParameter type, - * for example getLengthConstraint(). A correct way to fetch the "length" constraint values map would be - * parameter.getLengthConstraint().getLength(). Same logic was implemented for all other constraint types. - * - * In case of parse error, null will be returned. - * - */ - public Map<String, HeatParameter> getHeatParameters(String heatFileContents){ - log.debug("Start of extracting HEAT parameters from file, file contents: {}", heatFileContents); - Map<String, HeatParameter> heatParameters = null; - YamlToObjectConverter yamlToObjectConverter = new YamlToObjectConverter(); - HeatConfiguration heatConfiguration = yamlToObjectConverter.convertFromString(heatFileContents, HeatConfiguration.class); - if (heatConfiguration != null){ - heatParameters = heatConfiguration.getParameters(); - } else { - log.error("Couldn't parse HEAT template."); - } - if (heatParameters != null && heatParameters.size() > 0){ - System.out.println("Found HEAT parameters: "+heatParameters.toString()); - log.debug("Found HEAT parameters: {}", heatParameters.toString()); - } else { - log.warn("HEAT template parameters section wasn't found or is empty."); - } - return heatParameters; - } -} |