AT&T 1712 and 1802 release code
[so.git] / asdc-controller / src / main / java / org / openecomp / mso / asdc / client / test / emulators / DistributionClientEmulator.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.mso.asdc.client.test.emulators;
22
23 import java.io.FileInputStream;
24 import java.io.IOException;
25 import java.io.InputStream;
26 import java.util.LinkedList;
27 import java.util.List;
28
29 import org.apache.commons.io.IOUtils;
30 import org.openecomp.mso.asdc.installer.IVfModuleData;
31 import org.openecomp.sdc.api.IDistributionClient;
32 import org.openecomp.sdc.api.consumer.IComponentDoneStatusMessage;
33 import org.openecomp.sdc.api.consumer.IConfiguration;
34 import org.openecomp.sdc.api.consumer.IDistributionStatusMessage;
35 import org.openecomp.sdc.api.consumer.IFinalDistrStatusMessage;
36 import org.openecomp.sdc.api.consumer.INotificationCallback;
37 import org.openecomp.sdc.api.consumer.IStatusCallback;
38 import org.openecomp.sdc.api.notification.IArtifactInfo;
39 import org.openecomp.sdc.api.notification.IVfModuleMetadata;
40 import org.openecomp.sdc.api.results.IDistributionClientDownloadResult;
41 import org.openecomp.sdc.api.results.IDistributionClientResult;
42 import org.openecomp.sdc.impl.DistributionClientDownloadResultImpl;
43 import org.openecomp.sdc.impl.DistributionClientResultImpl;
44 import org.openecomp.sdc.utils.DistributionActionResultEnum;
45
46 public class DistributionClientEmulator implements IDistributionClient {
47
48         private String resourcePath;
49         
50         private List<IVfModuleData> listVFModuleMetaData;
51         
52         private List<IDistributionStatusMessage> distributionMessageReceived = new LinkedList<>();
53         
54         public DistributionClientEmulator(String notifFolderInResource) {
55                 
56                 resourcePath = notifFolderInResource;
57         }
58
59         public List<IDistributionStatusMessage> getDistributionMessageReceived() {
60                 return distributionMessageReceived;
61         }
62         
63         @Override
64         public List<IVfModuleMetadata> decodeVfModuleArtifact(byte[] arg0) {
65                 return null;
66         }
67
68         /* @Override
69         public List<IVfModuleData> decodeVfModuleArtifact(byte[] arg0) {
70                 try {
71                         listVFModuleMetaData = new ObjectMapper().readValue(arg0, new TypeReference<List<JsonVfModuleMetaData>>(){});
72                         return listVFModuleMetaData;
73                          
74                 } catch (JsonParseException e) {
75                         e.printStackTrace();
76                 } catch (JsonMappingException e) {
77                         e.printStackTrace();
78                 } catch (IOException e) {
79                         e.printStackTrace();
80                 }
81                 return null;
82         } */
83         
84         public List<IVfModuleData> getListVFModuleMetaData() {
85                 return listVFModuleMetaData;
86         }
87
88         @Override
89         public IDistributionClientDownloadResult download (IArtifactInfo arg0) {
90                 
91                 
92                 //String filename = resourcePath+"/artifacts/"+arg0.getArtifactURL();
93                 String filename = arg0.getArtifactURL();
94                 System.out.println("Emulating the download from resources files:"+filename);
95                 
96                 InputStream inputStream = null;
97                 
98                 if(arg0.getArtifactName().equals("service_PortMirroringContainer_csar.csar")){
99                         try{
100                                 inputStream = new FileInputStream("C://Users//JM5423//git//mso//asdc-tosca-1712-test3//openecomp-mso//asdc-controller//src//main//resources//resource-examples//service_PortMirroringContainer_csar.csar");
101                         }catch(Exception e){
102                                 System.out.println("Error " + e.getMessage());
103                         }
104                 }else{
105                 
106                         inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(resourcePath + filename);
107                 }
108                 
109                 if (inputStream == null) {
110                         System.out.println("InputStream is NULL for:"+filename);
111                 }
112                 try {   
113                         return new DistributionClientDownloadResultImpl(DistributionActionResultEnum.SUCCESS, DistributionActionResultEnum.SUCCESS.name(),arg0.getArtifactName(),IOUtils.toByteArray(inputStream));
114                 } catch (IOException e) {
115                         
116                         e.printStackTrace();
117                 }
118                 return null;
119         }
120
121         @Override
122         public IConfiguration getConfiguration() {
123                 return null;
124         }
125
126         @Override
127         public IDistributionClientResult init(IConfiguration arg0, INotificationCallback arg1) {
128                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
129         }
130         
131         @Override
132         public IDistributionClientResult init(IConfiguration arg0, INotificationCallback arg1, IStatusCallback arg2) {
133                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
134         }
135
136         @Override
137         public IDistributionClientResult sendDeploymentStatus(IDistributionStatusMessage arg0) {
138                 this.distributionMessageReceived.add(arg0);
139                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
140         }
141
142         @Override
143         public IDistributionClientResult sendDeploymentStatus(IDistributionStatusMessage arg0, String arg1) {
144                 this.distributionMessageReceived.add(arg0);
145                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
146         }
147
148         @Override
149         public IDistributionClientResult sendDownloadStatus(IDistributionStatusMessage arg0) {
150                 this.distributionMessageReceived.add(arg0);
151                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
152         }
153
154         @Override
155         public IDistributionClientResult sendDownloadStatus(IDistributionStatusMessage arg0, String arg1) {
156                 this.distributionMessageReceived.add(arg0);
157                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
158         }
159
160         @Override
161         public IDistributionClientResult start() {
162                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
163         }
164
165         @Override
166         public IDistributionClientResult stop() {
167                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
168                 
169         }
170
171         @Override
172         public IDistributionClientResult updateConfiguration(IConfiguration arg0) {
173                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
174         }
175
176         @Override
177         public IDistributionClientResult sendComponentDoneStatus(
178                         IComponentDoneStatusMessage arg0) {
179                 // TODO Auto-generated method stub
180                 return null;
181         }
182
183         @Override
184         public IDistributionClientResult sendFinalDistrStatus(
185                         IFinalDistrStatusMessage arg0) {
186                 // TODO Auto-generated method stub
187                 return null;
188         }
189
190         @Override
191         public IDistributionClientResult sendComponentDoneStatus(
192                         IComponentDoneStatusMessage arg0, String arg1) {
193                 // TODO Auto-generated method stub
194                 return null;
195         }
196
197         @Override
198         public IDistributionClientResult sendFinalDistrStatus(
199                         IFinalDistrStatusMessage arg0, String arg1) {
200                 // TODO Auto-generated method stub
201                 return null;
202         }
203
204 }