From e601bbdc43bae9a08e2e10c5139a6f76b47860d7 Mon Sep 17 00:00:00 2001 From: Einat Vinouze Date: Tue, 16 Jul 2019 17:17:36 +0300 Subject: Implant vid-app-common org.onap.vid.job (main and test) Issue-ID: VID-378 Change-Id: I41b0bdc2c4e3635f3f3319b1cd63cefc61912dfc Signed-off-by: Einat Vinouze Signed-off-by: Ittay Stern --- .../java/org/onap/vid/model/JobAuditStatus.java | 100 ++++++++++++++------- 1 file changed, 69 insertions(+), 31 deletions(-) (limited to 'vid-app-common/src/main/java/org/onap/vid/model/JobAuditStatus.java') diff --git a/vid-app-common/src/main/java/org/onap/vid/model/JobAuditStatus.java b/vid-app-common/src/main/java/org/onap/vid/model/JobAuditStatus.java index 49e25ecb0..645934530 100644 --- a/vid-app-common/src/main/java/org/onap/vid/model/JobAuditStatus.java +++ b/vid-app-common/src/main/java/org/onap/vid/model/JobAuditStatus.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -20,6 +20,21 @@ package org.onap.vid.model; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.TimeZone; +import java.util.UUID; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.Table; +import javax.persistence.Transient; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; @@ -29,14 +44,6 @@ import org.hibernate.annotations.Type; import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; import org.onap.vid.job.Job.JobStatus; -import javax.persistence.*; -import java.text.DateFormat; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.TimeZone; -import java.util.UUID; - /* The following 2 annotations let hibernate to update only fields that actually have been changed. DynamicUpdate tell hibernate to update only dirty fields. @@ -54,43 +61,40 @@ public class JobAuditStatus extends VidBaseEntity { public JobAuditStatus(){} - public JobAuditStatus(UUID jobId, String jobStatus, SourceStatus source){ + private JobAuditStatus(UUID jobId, String instanceName, String instanceType, String jobStatus, + SourceStatus source, UUID requestId, String additionalInfo, Date date, int ordinal) { this.jobId = jobId; + this.instanceName = instanceName; + this.instanceType = instanceType; this.jobStatus = jobStatus; this.source = source; + this.requestId = requestId; + setAdditionalInfo(additionalInfo); + this.ordinal = ordinal; + this.created = date; } - public JobAuditStatus(UUID jobId, String jobStatus, SourceStatus source, Date date){ - this(jobId, jobStatus, source); - this.created = date; + public JobAuditStatus(UUID jobId, String jobStatus, SourceStatus source){ + this(jobId, null, null, jobStatus, source, null, null, null, 0); } public JobAuditStatus(UUID jobId, String jobStatus, SourceStatus source, UUID requestId, String additionalInfo) { - this(jobId, jobStatus, source); - this.requestId = requestId; - setAdditionalInfo(additionalInfo); + this(jobId, null, null, jobStatus, source, requestId, additionalInfo, null, 0); } - public JobAuditStatus(UUID jobId, String jobStatus, SourceStatus source, UUID requestId, String additionalInfo, Date date){ - this(jobId, jobStatus, source, requestId, additionalInfo); - this.created = date; + public JobAuditStatus(String instanceName, String jobStatus, UUID requestId, String additionalInfo, String date, String instanceType) { + this(null, instanceName, instanceType, jobStatus, null, requestId, additionalInfo, null, 0); + this.created = dateStringToDate(date); } - public JobAuditStatus(String instanceName, String jobStatus, UUID requestId, String additionalInfo) { - this.instanceName = instanceName; - this.jobStatus = jobStatus; - this.requestId = requestId; - this.additionalInfo = additionalInfo; - + public static JobAuditStatus createForTest(UUID jobId, String jobStatus, SourceStatus source, Date date, int ordinal) { + return new JobAuditStatus(jobId, null, null, jobStatus, source, null, null, date, ordinal); } - public JobAuditStatus(String instanceName, String jobStatus, UUID requestId, String additionalInfo, String date, String instanceType) { - this(instanceName, jobStatus, requestId, additionalInfo); - this.created = dateStringToDate(date); - this.instanceType = instanceType; + public static JobAuditStatus createForTest(UUID jobId, String jobStatus, SourceStatus source, UUID requestId, String additionalInfo, Date date) { + return new JobAuditStatus(jobId, null, null, jobStatus, source, requestId, additionalInfo, date, 0); } - private Date dateStringToDate(String dateAsString){ if (StringUtils.isEmpty(dateAsString)) { return null; @@ -121,6 +125,7 @@ public class JobAuditStatus extends VidBaseEntity { .append(source, that.source) .append(requestId, that.requestId) .append(additionalInfo, that.additionalInfo) + // ordinal is not part of equality (similarly to "created" field) .isEquals(); } @@ -132,6 +137,7 @@ public class JobAuditStatus extends VidBaseEntity { .append(source) .append(requestId) .append(additionalInfo) + // ordinal is not part of equality (similarly to "created" field) .toHashCode(); } @@ -140,6 +146,25 @@ public class JobAuditStatus extends VidBaseEntity { VID } + public enum ResourceTypeFilter { + SERVICE("serviceInstanceId"), + VNF("vnfInstanceId"), + VFMODULE("vfModuleInstanceId"), + NETWORK("networkInstanceId"), + VNFGROUP("instanceGroupId"); + + private final String filterBy; + + ResourceTypeFilter(String filterBy) { + this.filterBy = filterBy; + } + + public String getFilterBy() { + return filterBy; + } + } + + private UUID jobId; private String instanceName; private String instanceType; @@ -147,6 +172,7 @@ public class JobAuditStatus extends VidBaseEntity { private SourceStatus source; private UUID requestId; private String additionalInfo; + private int ordinal; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @@ -206,6 +232,18 @@ public class JobAuditStatus extends VidBaseEntity { this.additionalInfo = StringUtils.substring(additionalInfo, 0, MAX_ADDITIONAL_INFO_LENGTH); } + @Column(name = "ORDINAL", columnDefinition = "INT") + public int getOrdinal() { + // Ordinal allows sorting audit statuses by + // insertion order, regardless of "created" + // field + return ordinal; + } + + public void setOrdinal(int ordinal) { + this.ordinal = ordinal; + } + @Transient public String getInstanceName() { return instanceName; -- cgit 1.2.3-korg