Containerization feature of SO
[so.git] / asdc-controller / src / main / java / org / onap / so / 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.onap.so.asdc.client.test.emulators;
22
23 import java.io.IOException;
24 import java.nio.file.Files;
25 import java.nio.file.Paths;
26 import java.util.LinkedList;
27 import java.util.List;
28
29 import org.onap.so.asdc.installer.IVfModuleData;
30 import org.onap.so.logger.MsoLogger;
31 import org.onap.sdc.api.IDistributionClient;
32 import org.onap.sdc.api.consumer.IComponentDoneStatusMessage;
33 import org.onap.sdc.api.consumer.IConfiguration;
34 import org.onap.sdc.api.consumer.IDistributionStatusMessage;
35 import org.onap.sdc.api.consumer.IFinalDistrStatusMessage;
36 import org.onap.sdc.api.consumer.INotificationCallback;
37 import org.onap.sdc.api.consumer.IStatusCallback;
38 import org.onap.sdc.api.notification.IArtifactInfo;
39 import org.onap.sdc.api.notification.IVfModuleMetadata;
40 import org.onap.sdc.api.results.IDistributionClientDownloadResult;
41 import org.onap.sdc.api.results.IDistributionClientResult;
42 import org.onap.sdc.impl.DistributionClientDownloadResultImpl;
43 import org.onap.sdc.impl.DistributionClientResultImpl;
44 import org.onap.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         
55         private static final MsoLogger logger = MsoLogger.getMsoLogger (MsoLogger.Catalog.ASDC,DistributionClientEmulator.class );
56         
57         public DistributionClientEmulator() {                   
58         }
59         
60         public DistributionClientEmulator(String notifFolderInResource) {               
61                 resourcePath = notifFolderInResource;
62         }
63
64         public List<IDistributionStatusMessage> getDistributionMessageReceived() {
65                 return distributionMessageReceived;
66         }
67         
68         @Override
69         public List<IVfModuleMetadata> decodeVfModuleArtifact(byte[] arg0) {
70                 return null;
71         }
72         
73         public String getResourcePath() {
74                 return resourcePath;
75         }
76
77         public void setResourcePath(String resourcePath) {
78                 this.resourcePath = resourcePath;
79         }
80
81         public List<IVfModuleData> getListVFModuleMetaData() {
82                 return listVFModuleMetaData;
83         }
84
85         @Override
86         public IDistributionClientDownloadResult download (IArtifactInfo arg0) {                
87                 
88                 String filename = arg0.getArtifactURL();
89         
90                 byte[] inputStream=null;
91                 try {
92                         inputStream = getData(filename);
93                 } catch (IOException e) {                       
94                         e.printStackTrace();
95                         logger.debug("InputStream is NULL for:"+ resourcePath + filename);
96                 }               
97         
98                 return new DistributionClientDownloadResultImpl(DistributionActionResultEnum.SUCCESS, DistributionActionResultEnum.SUCCESS.name(),arg0.getArtifactName(),inputStream);          
99         }
100         
101         private byte[] getData(String filename) throws IOException {
102                  return Files.readAllBytes(Paths.get(resourcePath + filename));
103         }
104
105         @Override
106         public IConfiguration getConfiguration() {
107                 return null;
108         }
109
110         @Override
111         public IDistributionClientResult init(IConfiguration arg0, INotificationCallback arg1) {
112                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
113         }
114         
115         @Override
116         public IDistributionClientResult init(IConfiguration arg0, INotificationCallback arg1, IStatusCallback arg2) {
117                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
118         }
119
120         @Override
121         public IDistributionClientResult sendDeploymentStatus(IDistributionStatusMessage arg0) {
122                 this.distributionMessageReceived.add(arg0);
123                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
124         }
125
126         @Override
127         public IDistributionClientResult sendDeploymentStatus(IDistributionStatusMessage arg0, String arg1) {
128                 this.distributionMessageReceived.add(arg0);
129                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
130         }
131
132         @Override
133         public IDistributionClientResult sendDownloadStatus(IDistributionStatusMessage arg0) {
134                 this.distributionMessageReceived.add(arg0);
135                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
136         }
137
138         @Override
139         public IDistributionClientResult sendDownloadStatus(IDistributionStatusMessage arg0, String arg1) {
140                 this.distributionMessageReceived.add(arg0);
141                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
142         }
143
144         @Override
145         public IDistributionClientResult start() {
146                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
147         }
148
149         @Override
150         public IDistributionClientResult stop() {
151                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
152                 
153         }
154
155         @Override
156         public IDistributionClientResult updateConfiguration(IConfiguration arg0) {
157                 return new DistributionClientResultImpl(DistributionActionResultEnum.SUCCESS,DistributionActionResultEnum.SUCCESS.name());
158         }
159
160         @Override
161         public IDistributionClientResult sendComponentDoneStatus(
162                         IComponentDoneStatusMessage arg0) {
163                 // TODO Auto-generated method stub
164                 return null;
165         }
166
167         @Override
168         public IDistributionClientResult sendFinalDistrStatus(
169                         IFinalDistrStatusMessage arg0) {
170                 // TODO Auto-generated method stub
171                 return null;
172         }
173
174         @Override
175         public IDistributionClientResult sendComponentDoneStatus(
176                         IComponentDoneStatusMessage arg0, String arg1) {
177                 // TODO Auto-generated method stub
178                 return null;
179         }
180
181         @Override
182         public IDistributionClientResult sendFinalDistrStatus(
183                         IFinalDistrStatusMessage arg0, String arg1) {
184                 // TODO Auto-generated method stub
185                 return null;
186         }
187
188 }