Sync Integ to Master
[sdc.git] / catalog-dao / src / main / java / org / openecomp / sdc / be / resources / data / auditing / DistributionStatusEvent.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
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.sdc.be.resources.data.auditing;
22
23 import java.text.SimpleDateFormat;
24 import java.util.*;
25
26 import org.openecomp.sdc.be.resources.data.auditing.model.CommonAuditData;
27 import org.openecomp.sdc.common.datastructure.AuditingFieldsKeysEnum;
28
29 import com.datastax.driver.core.utils.UUIDs;
30 import com.datastax.driver.mapping.annotations.ClusteringColumn;
31 import com.datastax.driver.mapping.annotations.Column;
32 import com.datastax.driver.mapping.annotations.PartitionKey;
33 import com.datastax.driver.mapping.annotations.Table;
34
35 @Table(keyspace = AuditingTypesConstants.AUDIT_KEYSPACE, name = AuditingTypesConstants.DISTRIBUTION_STATUS_EVENT_TYPE)
36 public class DistributionStatusEvent extends AuditingGenericEvent {
37
38         private static String DISTRIBUTION_STATUS_NOTIFICATION_EVENT_TEMPLATE = "action=\"%s\" timestamp=\"%s\" "
39                         + "did=\"%s\" consumerId=\"%s\" topicName=\"%s\" resoureURL=\"%s\" statusTime=\"%s\" status=\"%s\" ";
40
41         @PartitionKey
42         protected UUID timebaseduuid;
43
44         @ClusteringColumn
45         protected Date timestamp1;
46
47         @Column(name = "request_id")
48         protected String requestId;
49
50         @Column(name = "service_instance_id")
51         protected String serviceInstanceId;
52
53         @Column
54         protected String action;
55         @Column
56         protected String status;
57
58         @Column(name = "description")
59         protected String desc;
60
61         @Column
62         private String did;
63
64         @Column(name = "consumer_id")
65         private String consumerId;
66
67         @Column(name = "topic_name")
68         private String topicName;
69
70         @Column(name = "resoure_url")
71         private String resoureURL;
72
73         @Column(name = "status_time")
74         private String statusTime;
75
76         public DistributionStatusEvent() {
77                 super();
78                 timestamp1 = new Date();
79                 timebaseduuid = UUIDs.timeBased();
80
81         }
82
83         public DistributionStatusEvent(Map<AuditingFieldsKeysEnum, Object> auditingFields) {
84                 this();
85                 Object value;
86                 value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_REQUEST_ID);
87                 if (value != null) {
88                         setRequestId((String) value);
89                 }
90                 value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_SERVICE_INSTANCE_ID);
91                 if (value != null) {
92                         setServiceInstanceId((String) value);
93                 }
94                 value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_ACTION);
95                 if (value != null) {
96                         setAction((String) value);
97                 }
98                 value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_STATUS);
99                 if (value != null) {
100                         setStatus((String) value);
101                 }
102                 value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_DESC);
103                 if (value != null) {
104                         setDesc((String) value);
105                 }
106                 value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_ID);
107                 if (value != null) {
108                         setDid((String) value);
109                 }
110                 value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_CONSUMER_ID);
111                 if (value != null) {
112                         setConsumerId((String) value);
113                 }
114                 value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_TOPIC_NAME);
115                 if (value != null) {
116                         setTopicName((String) value);
117                 }
118                 value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_RESOURCE_URL);
119                 if (value != null) {
120                         setResoureURL((String) value);
121                 }
122                 value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_STATUS_TIME);
123                 if (value != null) {
124                         setStatusTime((String) value);
125                 }
126         }
127
128         public DistributionStatusEvent(String action, CommonAuditData commonAuditData, String did, String consumerId, String topicName,
129                                    String resourceURL, String statusTime) {
130                 this();
131                 this.action = action;
132                 this.requestId = commonAuditData.getRequestId();
133                 this.serviceInstanceId = commonAuditData.getServiceInstanceId();
134                 this.status = commonAuditData.getStatus();
135                 this.desc = commonAuditData.getDescription();
136                 this.did = did;
137                 this.consumerId = consumerId;
138                 this.topicName = topicName;
139                 this.resoureURL = resourceURL;
140                 this.statusTime = statusTime;
141         }
142
143         @Override
144         public void fillFields() {
145                 fields.put(AuditingFieldsKeysEnum.AUDIT_REQUEST_ID.getDisplayName(), getRequestId());
146
147                 fields.put(AuditingFieldsKeysEnum.AUDIT_SERVICE_INSTANCE_ID.getDisplayName(), getServiceInstanceId());
148                 fields.put(AuditingFieldsKeysEnum.AUDIT_ACTION.getDisplayName(), getAction());
149                 fields.put(AuditingFieldsKeysEnum.AUDIT_STATUS.getDisplayName(), getStatus());
150                 fields.put(AuditingFieldsKeysEnum.AUDIT_DESC.getDisplayName(), getDesc());
151                 fields.put(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_CONSUMER_ID.getDisplayName(), getConsumerId());
152
153                 fields.put(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_ID.getDisplayName(), getDid());
154                 fields.put(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_STATUS_TIME.getDisplayName(), getStatusTime());
155                 fields.put(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_TOPIC_NAME.getDisplayName(), getTopicName());
156                 fields.put(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_RESOURCE_URL.getDisplayName(), getResoureURL());
157                 SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormatPattern);
158                 simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
159                 fields.put(AuditingFieldsKeysEnum.AUDIT_TIMESTAMP.getDisplayName(), simpleDateFormat.format(timestamp1));
160
161         }
162
163         public String getDid() {
164                 return did;
165         }
166
167         public void setDid(String did) {
168                 this.did = did;
169         }
170
171         public String getConsumerId() {
172                 return consumerId;
173         }
174
175         public void setConsumerId(String consumerId) {
176                 this.consumerId = consumerId;
177         }
178
179         public String getTopicName() {
180                 return topicName;
181         }
182
183         public void setTopicName(String topicName) {
184                 this.topicName = topicName;
185         }
186
187         public String getResoureURL() {
188                 return resoureURL;
189         }
190
191         public void setResoureURL(String resoureURL) {
192                 this.resoureURL = resoureURL;
193         }
194
195         public String getRequestId() {
196                 return requestId;
197         }
198
199         public void setRequestId(String requestId) {
200                 this.requestId = requestId;
201         }
202
203         public String getServiceInstanceId() {
204                 return serviceInstanceId;
205         }
206
207         public void setServiceInstanceId(String serviceInstanceId) {
208                 this.serviceInstanceId = serviceInstanceId;
209         }
210
211         public String getAction() {
212                 return action;
213         }
214
215         public void setAction(String action) {
216                 this.action = action;
217         }
218
219         public String getStatus() {
220                 return status;
221         }
222
223         public void setStatus(String status) {
224                 this.status = status;
225         }
226
227         public String getDesc() {
228                 return desc;
229         }
230
231         public void setDesc(String desc) {
232                 this.desc = desc;
233         }
234
235         public UUID getTimebaseduuid() {
236                 return timebaseduuid;
237         }
238
239         public void setTimebaseduuid(UUID timebaseduuid) {
240                 this.timebaseduuid = timebaseduuid;
241         }
242
243         public Date getTimestamp1() {
244                 return timestamp1;
245         }
246
247         public void setTimestamp1(Date timestamp) {
248                 this.timestamp1 = timestamp;
249         }
250
251         public String getStatusTime() {
252                 return statusTime;
253         }
254
255         public void setStatusTime(String statusTime) {
256                 this.statusTime = statusTime;
257         }
258
259         @Override
260         public String toString() {
261                 return "DistributionStatusEvent [timebaseduuid=" + timebaseduuid + ", timestamp1=" + timestamp1 + ", requestId="
262                                 + requestId + ", serviceInstanceId=" + serviceInstanceId + ", action=" + action + ", status=" + status
263                                 + ", desc=" + desc + ", did=" + did + ", consumerId=" + consumerId + ", topicName=" + topicName
264                                 + ", resoureURL=" + resoureURL + ", statusTime=" + statusTime + "]";
265         }
266
267 }