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