Sync Integ to Master
[sdc.git] / catalog-dao / src / main / java / org / openecomp / sdc / be / resources / data / auditing / DistributionNotificationEvent.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.be.resources.data.auditing.model.OperationalEnvAuditData;
28 import org.openecomp.sdc.common.datastructure.AuditingFieldsKeysEnum;
29
30 import com.datastax.driver.core.utils.UUIDs;
31 import com.datastax.driver.mapping.annotations.ClusteringColumn;
32 import com.datastax.driver.mapping.annotations.Column;
33 import com.datastax.driver.mapping.annotations.PartitionKey;
34 import com.datastax.driver.mapping.annotations.Table;
35
36 @Table(keyspace = AuditingTypesConstants.AUDIT_KEYSPACE, name = AuditingTypesConstants.DISTRIBUTION_NOTIFICATION_EVENT_TYPE)
37 public class DistributionNotificationEvent extends AuditingGenericEvent {
38
39         private static String DISTRIBUTION_NOTIFICATION_EVENT_TEMPLATE = "action=\"%s\" timestamp=\"%s\" "
40                         + "resourceName=\"%s\" resourceType=\"%s\" currVersion=\"%s\" " + "modifierName=\"%s\" modifierUid=\"%s\" "
41                         + "currState=\"%s\" distributionId=\"%s\" " + "topicName=\"%s\" status=\"%s\" description=\"%s\"";
42
43         @PartitionKey
44         protected UUID timebaseduuid;
45
46         @ClusteringColumn
47         protected Date timestamp1;
48
49         @Column(name = "request_id")
50         protected String requestId;
51
52         @Column(name = "service_instance_id")
53         protected String serviceInstanceId;
54         @Column
55         protected String action;
56         @Column
57         protected String status;
58
59         @Column(name = "description")
60         protected String desc;
61
62         @Column(name = "resource_name")
63         private String resourceName;
64
65         @Column(name = "resource_type")
66         private String resourceType;
67
68         @Column(name = "curr_version")
69         private String currVersion;
70
71         @Column
72         private String modifier;
73
74         @Column(name = "curr_state")
75         private String currState;
76
77         @Column(name = "topic_name")
78         private String topicName;
79
80         @Column
81         private String did;
82
83         @Column(name = "env_id")
84         private String envId;
85
86         @Column(name = "vnf_workload_context")
87         private String vnfWorkloadContext;
88
89         @Column(name = "tenant")
90         private String tenant;
91
92         public DistributionNotificationEvent() {
93                 super();
94                 timestamp1 = new Date();
95                 timebaseduuid = UUIDs.timeBased();
96         }
97
98         public DistributionNotificationEvent(Map<AuditingFieldsKeysEnum, Object> auditingFields) {
99                 this();
100                 Object value;
101                 value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_REQUEST_ID);
102                 if (value != null) {
103                         setRequestId((String) value);
104                 }
105                 value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_SERVICE_INSTANCE_ID);
106                 if (value != null) {
107                         setServiceInstanceId((String) value);
108                 }
109                 value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_ACTION);
110                 if (value != null) {
111                         setAction((String) value);
112                 }
113                 value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_STATUS);
114                 if (value != null) {
115                         setStatus((String) value);
116                 }
117                 value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_DESC);
118                 if (value != null) {
119                         setDesc((String) value);
120                 }
121                 value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_ID);
122                 if (value != null) {
123                         setDid((String) value);
124                 }
125                 value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_MODIFIER_UID);
126                 if (value != null) {
127                         setModifier((String) value);
128                 }
129                 value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_RESOURCE_CURR_STATE);
130                 if (value != null) {
131                         setCurrState((String) value);
132                 }
133                 value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_RESOURCE_CURR_VERSION);
134                 if (value != null) {
135                         setCurrVersion((String) value);
136                 }
137                 value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME);
138                 if (value != null) {
139                         setResourceName((String) value);
140                 }
141                 value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_RESOURCE_TYPE);
142                 if (value != null) {
143                         setResourceType((String) value);
144                 }
145                 value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_TOPIC_NAME);
146                 if (value != null) {
147                         setTopicName((String) value);
148                 }
149         value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_ENVIRONMENT_ID);
150         if (value != null) {
151             setEnvId((String) value);
152         }
153         value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_VNF_WORKLOAD_CONTEXT);
154         if (value != null) {
155             setVnfWorkloadContext((String) value);
156         }
157         value = auditingFields.get(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_TENANT);
158         if (value != null) {
159             setTenant((String) value);
160         }
161
162         }
163
164         public DistributionNotificationEvent(String action, CommonAuditData commonAuditData, String did, String modifier, String resourceCurrState,
165                                          String resourceCurrVersion, String resourceName, String resourceType, String topicName,
166                                          OperationalEnvAuditData opEnvFields) {
167                 this();
168         this.action = action;
169                 this.requestId = commonAuditData.getRequestId();
170                 this.serviceInstanceId = commonAuditData.getServiceInstanceId();
171                 this.status = commonAuditData.getStatus();
172                 this.desc = commonAuditData.getDescription();
173                 this.did = did;
174                 this.modifier = modifier;
175                 this.currState = resourceCurrState;
176                 this.currVersion = resourceCurrVersion;
177                 this.resourceName = resourceName;
178                 this.resourceType = resourceType;
179                 this.topicName = topicName;
180                 this.envId = opEnvFields.getEnvId();
181                 this.vnfWorkloadContext = opEnvFields.getVnfWorkloadContext();
182                 this.tenant = opEnvFields.getTenant();
183
184         }
185
186         @Override
187         public void fillFields() {
188                 fields.put(AuditingFieldsKeysEnum.AUDIT_REQUEST_ID.getDisplayName(), getRequestId());
189
190                 fields.put(AuditingFieldsKeysEnum.AUDIT_SERVICE_INSTANCE_ID.getDisplayName(), getServiceInstanceId());
191                 fields.put(AuditingFieldsKeysEnum.AUDIT_ACTION.getDisplayName(), getAction());
192                 fields.put(AuditingFieldsKeysEnum.AUDIT_STATUS.getDisplayName(), getStatus());
193                 fields.put(AuditingFieldsKeysEnum.AUDIT_DESC.getDisplayName(), getDesc());
194                 fields.put(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_ENVIRONMENT_ID.getDisplayName(), getEnvId());
195                 fields.put(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_VNF_WORKLOAD_CONTEXT.getDisplayName(), getVnfWorkloadContext());
196                 fields.put(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_TENANT.getDisplayName(), getTenant());
197
198                 fields.put(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_ID.getDisplayName(), getDid());
199                 fields.put(AuditingFieldsKeysEnum.AUDIT_MODIFIER_UID.getDisplayName(), getModifier());
200                 fields.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_CURR_STATE.getDisplayName(), getCurrState());
201                 fields.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_CURR_VERSION.getDisplayName(), getCurrVersion());
202                 fields.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME.getDisplayName(), getResourceName());
203                 fields.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_TYPE.getDisplayName(), getResourceType());
204                 fields.put(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_TOPIC_NAME.getDisplayName(), getTopicName());
205                 SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormatPattern);
206                 simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
207                 fields.put(AuditingFieldsKeysEnum.AUDIT_TIMESTAMP.getDisplayName(), simpleDateFormat.format(timestamp1));
208         }
209
210         public String getResourceName() {
211                 return resourceName;
212         }
213
214         public void setResourceName(String resourceName) {
215                 this.resourceName = resourceName;
216         }
217
218         public String getResourceType() {
219                 return resourceType;
220         }
221
222         public void setResourceType(String resourceType) {
223                 this.resourceType = resourceType;
224         }
225
226         public String getCurrVersion() {
227                 return currVersion;
228         }
229
230         public void setCurrVersion(String currVersion) {
231                 this.currVersion = currVersion;
232         }
233
234         public String getCurrState() {
235                 return currState;
236         }
237
238         public void setCurrState(String currState) {
239                 this.currState = currState;
240         }
241
242         public String getTopicName() {
243                 return topicName;
244         }
245
246         public void setTopicName(String topicName) {
247                 this.topicName = topicName;
248         }
249
250         public UUID getTimebaseduuid() {
251                 return timebaseduuid;
252         }
253
254         public void setTimebaseduuid(UUID timebaseduuid) {
255                 this.timebaseduuid = timebaseduuid;
256         }
257
258         public Date getTimestamp1() {
259                 return timestamp1;
260         }
261
262         public void setTimestamp1(Date timestamp1) {
263                 this.timestamp1 = timestamp1;
264         }
265
266         public String getRequestId() {
267                 return requestId;
268         }
269
270         public void setRequestId(String requestId) {
271                 this.requestId = requestId;
272         }
273
274         public String getServiceInstanceId() {
275                 return serviceInstanceId;
276         }
277
278         public void setServiceInstanceId(String serviceInstanceId) {
279                 this.serviceInstanceId = serviceInstanceId;
280         }
281
282         public String getAction() {
283                 return action;
284         }
285
286         public void setAction(String action) {
287                 this.action = action;
288         }
289
290         public String getStatus() {
291                 return status;
292         }
293
294         public void setStatus(String status) {
295                 this.status = status;
296         }
297
298         public String getDesc() {
299                 return desc;
300         }
301
302         public void setDesc(String desc) {
303                 this.desc = desc;
304         }
305
306         public String getModifier() {
307                 return modifier;
308         }
309
310         public void setModifier(String modifier) {
311                 this.modifier = modifier;
312         }
313
314         public String getDid() {
315                 return did;
316         }
317
318         public void setDid(String did) {
319                 this.did = did;
320         }
321
322         public String getVnfWorkloadContext() {
323                 return vnfWorkloadContext;
324         }
325
326         public void setVnfWorkloadContext(String vnfWorkloadContext) {
327                 this.vnfWorkloadContext = vnfWorkloadContext;
328         }
329
330         public String getEnvId() {
331                 return envId;
332         }
333
334         public void setEnvId(String envId) {
335                 this.envId = envId;
336         }
337
338         public String getTenant() {
339                 return tenant;
340         }
341
342         public void setTenant(String tenant) {
343                 this.tenant = tenant;
344         }
345
346         @Override
347         public String toString() {
348                 return "DistributionNotificationEvent [timebaseduuid=" + timebaseduuid + ", timestamp1=" + timestamp1
349                                 + ", requestId=" + requestId + ", serviceInstanceId=" + serviceInstanceId + ", action=" + action
350                                 + ", status=" + status + ", desc=" + desc + ", resourceName=" + resourceName + ", resourceType="
351                                 + resourceType + ", currVersion=" + currVersion + ", modifier=" + modifier + ", currState=" + currState
352                                 + ", topicName=" + topicName + ", did=" + did
353                 + ", envId=" + envId + ", vnfWorkloadContext=" + vnfWorkloadContext + ", tenant=" + tenant + "]";
354         }
355
356 }