/*- * ============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.*; import org.openecomp.sdc.api.consumer.IStatusCallback; 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
* 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
* * @return IConfiguration */ IConfiguration getConfiguration(); /** * Start distribution client
* - start polling notification topic
* * @return IDistributionClientResult */ IDistributionClientResult start(); /** * Stop distribution client
* - stop polling notification topic
* - unregister topics (via ASDC)
* - delete keys from UEB * * @return IDistributionClientResult */ IDistributionClientResult stop(); /** * Downloads an artifact from ASDC Catalog
* * @param artifactInfo * @return IDistributionClientDownloadResult */ IDistributionClientDownloadResult download(IArtifactInfo artifactInfo); /** * Initialize the distribution client
* - fetch the UEB server list from ASDC
* - create keys in UEB
* - register for topics (via ASDC)
* - set the notification callback
* * Note: all configuration fields are mandatory.
* Password must be in clear text and not encrypted
* ONAP-Component MUST store password as SHA-2 (256) hashed with * dynamically generated salt value
* * @param conf * @param callback * @return IDistributionClientResult */ IDistributionClientResult init(IConfiguration conf, INotificationCallback callback); /** * Initialize the distribution client
* - fetch the UEB server list from ASDC
* - create keys in UEB
* - register for topics (via ASDC)
* - set the notification callback
* * Note: all configuration fields are mandatory.
* Password must be in clear text and not encrypted
* ONAP-Component MUST store password as SHA-2 (256) hashed with * dynamically generated salt value
* * @param conf * @param notificationCallback * @param statusCallback * @return IDistributionClientResult */ IDistributionClientResult init(IConfiguration conf, INotificationCallback notificationCallback, IStatusCallback statusCallback); /** * 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); /** * Build and publish Distribution Component Status event to Distribution * Status Topic * * @param statusMessage * @return IDistributionClientResult */ IDistributionClientResult sendComponentDoneStatus(IComponentDoneStatusMessage statusMessage); /** * Build and publish Distribution Component Status event to Distribution * Status Topic With Error Reason. * * @param statusMessage * @param errorReason * @return IDistributionClientResult */ IDistributionClientResult sendComponentDoneStatus(IComponentDoneStatusMessage statusMessage, String errorReason); /** * Build and publish Distribution Final Status event to Distribution * Status Topic * * @param statusMessage * @return IDistributionClientResult */ IDistributionClientResult sendFinalDistrStatus(IFinalDistrStatusMessage statusMessage); /** * Build and publish Distribution Final Status event to Distribution * Status Topic With Error Reason. * * @param statusMessage * @param errorReason * @return IDistributionClientResult */ IDistributionClientResult sendFinalDistrStatus(IFinalDistrStatusMessage statusMessage, String errorReason); /** * This method parses artifact of type VF_MODULES_METADATA payload data * .
* Method is deprecated due to VF Module changes. Only backward * compatibility is supported.
* * @param artifactPayload * @return IVfModuleMetadata list */ @Deprecated List decodeVfModuleArtifact(byte[] artifactPayload); }