package org.openecomp.mso.global_tests.asdc.notif_emulator; import java.io.IOException; import java.io.InputStream; import java.util.LinkedList; import java.util.List; import org.apache.commons.io.IOUtils; import org.codehaus.jackson.JsonParseException; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.type.TypeReference; 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; import org.openecomp.sdc.impl.DistributionClientDownloadResultImpl; import org.openecomp.sdc.impl.DistributionClientResultImpl; import org.openecomp.sdc.utils.DistributionActionResultEnum; public class DistributionClientEmulator implements IDistributionClient { private String resourcePath; private List listVFModuleMetaData; private List distributionMessageReceived = new LinkedList<>(); public DistributionClientEmulator(String notifFolderInResource) { resourcePath = notifFolderInResource; } public List getDistributionMessageReceived() { return distributionMessageReceived; } @Override public List decodeVfModuleArtifact(byte[] arg0) { try { listVFModuleMetaData = new ObjectMapper().readValue(arg0, new TypeReference>(){}); return listVFModuleMetaData; } catch (JsonParseException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } public List getListVFModuleMetaData() { return listVFModuleMetaData; } @Override public IDistributionClientDownloadResult download (IArtifactInfo arg0) { //String filename = resourcePath+"/artifacts/"+arg0.getArtifactURL(); String filename = arg0.getArtifactURL(); System.out.println("Emulating the download from resources files:"+filename); InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(resourcePath+"/artifacts/"+filename); if (inputStream == null) { System.out.println("InputStream is NULL for:"+filename); } try { return new DistributionClientDownloadResultImpl(DistributionActionResultEnum.SUCCESS, DistributionActionResultEnum.SUCCESS.name(),arg0.getArtifactName(),IOUtils.toByteArray(inputStream)); } catch (IOException e) { e.printStackTrace(); } return null; } @Override public IConfiguration getConfiguration() { return null; } @Override public IDistributionClientResult init(IConfiguration arg0, INotificationCallback arg1) { return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name()); } @Override public IDistributionClientResult sendDeploymentStatus(IDistributionStatusMessage arg0) { this.distributionMessageReceived.add(arg0); return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name()); } @Override public IDistributionClientResult sendDeploymentStatus(IDistributionStatusMessage arg0, String arg1) { this.distributionMessageReceived.add(arg0); return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name()); } @Override public IDistributionClientResult sendDownloadStatus(IDistributionStatusMessage arg0) { this.distributionMessageReceived.add(arg0); return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name()); } @Override public IDistributionClientResult sendDownloadStatus(IDistributionStatusMessage arg0, String arg1) { this.distributionMessageReceived.add(arg0); return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name()); } @Override public IDistributionClientResult start() { return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name()); } @Override public IDistributionClientResult stop() { return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name()); } @Override public IDistributionClientResult updateConfiguration(IConfiguration arg0) { return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name()); } }