package org.onap.optf.cmso.dispatcher;\r
\r
import java.util.Map;\r
+import java.util.UUID;\r
\r
import javax.ws.rs.client.Client;\r
import javax.ws.rs.client.ClientBuilder;\r
public void execute(JobExecutionContext context) throws JobExecutionException {\r
Mdc.quartzJobBegin(context);\r
debug.debug(LogMessages.CM_JOB, "Entered");\r
- Integer id = context.getJobDetail().getJobDataMap().getInt("key");\r
+ String id = context.getJobDetail().getJobDataMap().getString("key");\r
try {\r
// Hand this off to a transactional service\r
loopback(id);\r
} catch (Exception e) {\r
log.warn("Unexpected exception", e);\r
} finally {\r
- dispatchedEventList.remove(id);\r
+ dispatchedEventList.remove(UUID.fromString(id));\r
}\r
debug.debug(LogMessages.CM_JOB, "Exited");\r
}\r
\r
- public void loopback(Integer id) {\r
+ public void loopback(String id) {\r
Map<String, String> mdcSave = Mdc.save();\r
try {\r
String url = env.getProperty("cmso.dispatch.url", "http://localhost:8089");\r
/*\r
- * Copyright © 2017-2018 AT&T Intellectual Property.\r
- * Modifications Copyright © 2018 IBM.\r
+ * Copyright © 2017-2018 AT&T Intellectual Property.\r
+ * Modifications Copyright © 2018 IBM.\r
* \r
* Licensed under the Apache License, Version 2.0 (the "License");\r
* you may not use this file except in compliance with the License.\r
import java.util.Date;\r
import java.util.HashSet;\r
import java.util.Set;\r
+import java.util.UUID;\r
+\r
import org.onap.optf.cmso.common.CMSStatusEnum;\r
import org.onap.optf.cmso.common.LogMessages;\r
import org.onap.optf.cmso.model.ChangeManagementGroup;\r
import org.springframework.core.env.Environment;\r
import org.springframework.stereotype.Component;\r
import org.springframework.transaction.annotation.Transactional;\r
+\r
import com.att.eelf.configuration.EELFLogger;\r
import com.att.eelf.configuration.EELFManager;\r
import com.att.eelf.i18n.EELFResourceManager;\r
@Autowired\r
Environment env;\r
\r
- public void execute(Integer id) throws JobExecutionException {\r
+ public void execute(UUID id) throws JobExecutionException {\r
debug.debug(LogMessages.CM_JOB, "Entered");\r
try {\r
// No other instance can read this cmso until we are done.\r
ChangeManagementSchedule cmSchedule = cmScheduleDAO.lockOne(id);\r
cmSchedule.setDispatcherInstance(InetAddress.getLocalHost().getHostAddress());\r
- ChangeManagementGroup group = cmGroupDAO.findById(cmSchedule.getChangeManagementGroupsId()).orElse(null);\r
+ ChangeManagementGroup group = cmGroupDAO.findById(cmSchedule.getChangeManagementGroupUuid()).orElse(null);\r
if (group != null) {\r
- Schedule schedule = scheduleDAO.findById(group.getSchedulesId()).orElse(null);\r
+ Schedule schedule = scheduleDAO.findById(group.getSchedulesUuid()).orElse(null);\r
if (schedule != null) {\r
schedule.setStatus(CMSStatusEnum.NotificationsInitiated.toString());\r
if (safeToDispatch(cmSchedule, schedule))\r
@ApiOperation(value = "", notes = "Does dispsatch of provided cm schedule id.", response = Integer.class)\r
@ApiResponses(\r
value = {@ApiResponse(code = 200, message = "OK"), @ApiResponse(code = 400, message = "Request failed")})\r
- public Response dispatchSchedule(@ApiParam(value = "Identifier", allowMultiple = false) @PathParam("id") Integer id,\r
+ public Response dispatchSchedule(@ApiParam(value = "Identifier", allowMultiple = false) @PathParam("id") String id,\r
@Context UriInfo uri, @Context HttpServletRequest request);\r
\r
// ******************************************************************\r
@ApiResponses(\r
value = {@ApiResponse(code = 200, message = "OK"), @ApiResponse(code = 400, message = "Request failed")})\r
public Response dispatchOptimizer(\r
- @ApiParam(value = "Identifier", allowMultiple = false) @PathParam("id") Integer id, @Context UriInfo uri,\r
+ @ApiParam(value = "Identifier", allowMultiple = false) @PathParam("id") String id, @Context UriInfo uri,\r
@Context HttpServletRequest request);\r
\r
// ******************************************************************\r
@ApiResponses(\r
value = {@ApiResponse(code = 200, message = "OK"), @ApiResponse(code = 400, message = "Request failed")})\r
public Response dispatchScheduleStatus(\r
- @ApiParam(value = "Identifier", allowMultiple = false) @PathParam("id") Integer id, @Context UriInfo uri,\r
+ @ApiParam(value = "Identifier", allowMultiple = false) @PathParam("id") String id, @Context UriInfo uri,\r
@Context HttpServletRequest request);\r
\r
// ******************************************************************\r
@ApiOperation(value = "", notes = "Does dispsatch of provided cm schedule id.", response = Integer.class)\r
@ApiResponses(\r
value = {@ApiResponse(code = 200, message = "OK"), @ApiResponse(code = 400, message = "Request failed")})\r
- public Response dispatchSoStatus(@ApiParam(value = "Identifier", allowMultiple = true) @PathParam("id") Integer id,\r
+ public Response dispatchSoStatus(@ApiParam(value = "Identifier", allowMultiple = true) @PathParam("id") String id,\r
@Context UriInfo uri, @Context HttpServletRequest request);\r
\r
}\r
\r
package org.onap.optf.cmso.dispatcher.rs;\r
\r
+import java.util.UUID;\r
+\r
import javax.servlet.http.HttpServletRequest;\r
import javax.ws.rs.core.Response;\r
import javax.ws.rs.core.UriInfo;\r
\r
@Override\r
@Transactional\r
- public Response dispatchSchedule(Integer id, UriInfo uri, HttpServletRequest request) {\r
+ public Response dispatchSchedule(String id, UriInfo uri, HttpServletRequest request) {\r
debug.debug("dispatchSchedule entered {}" , id);\r
try {\r
- dispatchJob.execute(id);\r
+ UUID uuid = UUID.fromString(id);\r
+ dispatchJob.execute(uuid);\r
} catch (Exception e) {\r
errors.error(LogMessages.UNEXPECTED_EXCEPTION, e.getMessage());\r
debug.error(e.getMessage(), e);\r
\r
@Override\r
@Transactional\r
- public Response dispatchOptimizer(Integer id, UriInfo uri, HttpServletRequest request) {\r
+ public Response dispatchOptimizer(String id, UriInfo uri, HttpServletRequest request) {\r
debug.debug("dispatchOptimizer entered {}", id);\r
try {\r
- optimizerClient.scheduleOptimization(id);\r
+ UUID uuid = UUID.fromString(id);\r
+ optimizerClient.scheduleOptimization(uuid);\r
} catch (Exception e) {\r
errors.error(LogMessages.UNEXPECTED_EXCEPTION, e.getMessage());\r
debug.error(e.getMessage(), e);\r
\r
@Override\r
@Transactional\r
- public Response dispatchScheduleStatus(Integer id, UriInfo uri, HttpServletRequest request) {\r
+ public Response dispatchScheduleStatus(String id, UriInfo uri, HttpServletRequest request) {\r
debug.debug("dispatchScheduleStatus entered {}", id);\r
try {\r
tmStatusClient.checkStatus(id);\r
\r
@Override\r
@Transactional\r
- public Response dispatchSoStatus(Integer id, UriInfo uri, HttpServletRequest request) {\r
+ public Response dispatchSoStatus(String id, UriInfo uri, HttpServletRequest request) {\r
debug.debug("dispatchSoStatus entered {}", id);\r
try {\r
msoStatusClient.execute(id);\r
/*\r
- * Copyright © 2017-2018 AT&T Intellectual Property.\r
- * Modifications Copyright © 2018 IBM.\r
+ * Copyright © 2017-2018 AT&T Intellectual Property.\r
+ * Modifications Copyright © 2018 IBM.\r
* \r
* Licensed under the Apache License, Version 2.0 (the "License");\r
* you may not use this file except in compliance with the License.\r
return false;\r
for (ChangeManagementSchedule schedule : schedules) {\r
try {\r
- if (!dispatchedEventList.isAlreadyDispatched(schedule.getId())) {\r
+ if (!dispatchedEventList.isAlreadyDispatched(schedule.getUuid())) {\r
scheduleCmJob(schedule);\r
- dispatchedEventList.addToDispathcedEventList(schedule.getId());\r
+ dispatchedEventList.addToDispathcedEventList(schedule.getUuid());\r
}\r
} catch (org.quartz.SchedulerException e) {\r
debug.debug(LogMessages.UNEXPECTED_EXCEPTION, e, e.getMessage());\r
dispatchTime = startTime - dispatherLeadTime;\r
\r
JobDetail jobDetail = JobBuilder.newJob(CmJob.class).build();\r
- jobDetail.getJobDataMap().put("key", schedule.getId());\r
+ jobDetail.getJobDataMap().put("key", schedule.getUuid().toString());\r
\r
TriggerBuilder<Trigger> tb = TriggerBuilder.newTrigger().forJob(jobDetail);\r
\r
/*\r
- * Copyright © 2017-2018 AT&T Intellectual Property.\r
- * Modifications Copyright © 2018 IBM.\r
+ * Copyright © 2017-2018 AT&T Intellectual Property.\r
+ * Modifications Copyright © 2018 IBM.\r
* \r
* Licensed under the Apache License, Version 2.0 (the "License");\r
* you may not use this file except in compliance with the License.\r
\r
import java.util.HashSet;\r
import java.util.Set;\r
+import java.util.UUID;\r
+\r
import org.springframework.stereotype.Component;\r
\r
/**\r
@Component\r
public class DispatchedEventList {\r
\r
- private Set<Integer> list = new HashSet<>();\r
+ private Set<UUID> list = new HashSet<>();\r
\r
- public synchronized void addToDispathcedEventList(Integer id) {\r
+ public synchronized void addToDispathcedEventList(UUID id) {\r
list.add(id);\r
}\r
\r
- public synchronized void remove(Integer id) {\r
+ public synchronized void remove(UUID id) {\r
list.remove(id);\r
}\r
\r
- public synchronized boolean isAlreadyDispatched(Integer id) {\r
- return list.contains(id);\r
+ public synchronized boolean isAlreadyDispatched(UUID uuid) {\r
+ return list.contains(uuid);\r
}\r
\r
}\r
package org.onap.optf.cmso.model;\r
\r
import java.io.Serializable;\r
+import java.util.UUID;\r
+\r
import javax.persistence.Column;\r
import javax.persistence.Entity;\r
-import javax.persistence.GeneratedValue;\r
-import javax.persistence.GenerationType;\r
import javax.persistence.Id;\r
import javax.persistence.NamedQuery;\r
import javax.persistence.Table;\r
private static final long serialVersionUID = 1L;\r
\r
@Id\r
- @GeneratedValue(strategy=GenerationType.IDENTITY)\r
- private Integer id;\r
+ private UUID uuid;\r
\r
@Column(name = "approval_count")\r
private Integer approvalCount;\r
\r
public ApprovalType() {}\r
\r
- public Integer getId() {\r
- return this.id;\r
- }\r
\r
- public void setId(Integer id) {\r
- this.id = id;\r
- }\r
+ public UUID getUuid() {\r
+ return uuid;\r
+ }\r
+\r
+\r
+ public void setUuid(UUID uuid) {\r
+ this.uuid = uuid;\r
+ }\r
+\r
\r
- public Integer getApprovalCount() {\r
+ public Integer getApprovalCount() {\r
return this.approvalCount;\r
}\r
\r
package org.onap.optf.cmso.model;\r
\r
import java.io.Serializable;\r
+import java.util.UUID;\r
+\r
import javax.persistence.Column;\r
import javax.persistence.Entity;\r
-import javax.persistence.GeneratedValue;\r
-import javax.persistence.GenerationType;\r
import javax.persistence.Id;\r
import javax.persistence.NamedQuery;\r
import javax.persistence.Table;\r
import javax.persistence.Transient;\r
+\r
import org.joda.time.format.ISODateTimeFormat;\r
+\r
import com.fasterxml.jackson.annotation.JsonIgnore;\r
import com.fasterxml.jackson.annotation.JsonProperty;\r
+\r
import io.swagger.annotations.ApiModel;\r
import io.swagger.annotations.ApiModelProperty;\r
\r
\r
@JsonIgnore\r
@Id\r
- @GeneratedValue(strategy=GenerationType.IDENTITY)\r
- private Integer id;\r
+ private UUID uuid;\r
\r
@JsonIgnore\r
@Column(name = "finish_time")\r
private String startTime;\r
\r
@JsonIgnore\r
- @Column(name = "change_management_groups_id")\r
- private Integer changeManagementGroupsId;\r
+ @Column(name = "change_management_group_uuid")\r
+ private UUID changeManagementGroupUuid;\r
\r
public ChangeManagementChangeWindow() {}\r
\r
- public Integer getId() {\r
- return this.id;\r
- }\r
-\r
- public void setId(Integer id) {\r
- this.id = id;\r
- }\r
\r
public String getFinishTime() {\r
if (finishTimeMillis != null)\r
\r
public void setStartTime(String startTime) {}\r
\r
- public Integer getChangeManagementGroupsId() {\r
- return changeManagementGroupsId;\r
- }\r
\r
- public void setChangeManagementGroupsId(Integer changeManagementGroupsId) {\r
- this.changeManagementGroupsId = changeManagementGroupsId;\r
- }\r
+ public UUID getUuid() {\r
+ return uuid;\r
+ }\r
+\r
+\r
+ public void setUuid(UUID uuid) {\r
+ this.uuid = uuid;\r
+ }\r
+\r
+\r
+\r
+ public UUID getChangeManagementGroupUuid() {\r
+ return changeManagementGroupUuid;\r
+ }\r
+\r
+\r
+ public void setChangeManagementGroupUuid(UUID changeManagementGroupUuid) {\r
+ this.changeManagementGroupUuid = changeManagementGroupUuid;\r
+ }\r
+\r
\r
- public Long getFinishTimeMillis() {\r
+ public Long getFinishTimeMillis() {\r
return finishTimeMillis;\r
}\r
\r
\r
package org.onap.optf.cmso.model;\r
\r
+import java.util.UUID;\r
+\r
import javax.persistence.Column;\r
import javax.persistence.Entity;\r
-import javax.persistence.GeneratedValue;\r
-import javax.persistence.GenerationType;\r
import javax.persistence.Id;\r
import javax.persistence.Lob;\r
import javax.persistence.Transient;\r
+\r
import org.joda.time.format.ISODateTimeFormat;\r
+\r
import com.fasterxml.jackson.annotation.JsonIgnore;\r
import com.fasterxml.jackson.annotation.JsonProperty;\r
+\r
import io.swagger.annotations.ApiModel;\r
import io.swagger.annotations.ApiModelProperty;\r
\r
public class ChangeManagementDetail {\r
@Id\r
@JsonIgnore\r
- @GeneratedValue(strategy=GenerationType.IDENTITY)\r
- private Integer id;\r
+ private UUID uuid;\r
\r
@ApiModelProperty(value = "Name of the VNF.")\r
@Column(name = "vnf_name")\r
private String msoTime;\r
\r
@JsonIgnore\r
- private Integer schedules_id;\r
+ @Column(name = "schedules_uuid")\r
+ private UUID schedulesUuid;\r
\r
public String getVnfName() {\r
return vnfName;\r
this.policyId = policyId;\r
}\r
\r
- public Integer getSchedulesId() {\r
- return schedules_id;\r
- }\r
\r
- public void setSchedulesId(Integer schedules_id) {\r
- this.schedules_id = schedules_id;\r
- }\r
+ public UUID getUuid() {\r
+ return uuid;\r
+ }\r
+\r
+ public void setUuid(UUID uuid) {\r
+ this.uuid = uuid;\r
+ }\r
+\r
+\r
+\r
+\r
+ public UUID getSchedulesUuid() {\r
+ return schedulesUuid;\r
+ }\r
+\r
+ public void setSchedulesUuid(UUID schedulesUuid) {\r
+ this.schedulesUuid = schedulesUuid;\r
+ }\r
\r
- public Long getStartTimeMillis() {\r
+ public Long getStartTimeMillis() {\r
return startTimeMillis;\r
}\r
\r
\r
import java.io.Serializable;\r
import java.util.List;\r
+import java.util.UUID;\r
+\r
import javax.persistence.Column;\r
import javax.persistence.Entity;\r
-import javax.persistence.GeneratedValue;\r
-import javax.persistence.GenerationType;\r
import javax.persistence.Id;\r
import javax.persistence.NamedQuery;\r
import javax.persistence.Table;\r
import javax.persistence.Transient;\r
+\r
import org.joda.time.format.ISODateTimeFormat;\r
+\r
import com.fasterxml.jackson.annotation.JsonIgnore;\r
import com.fasterxml.jackson.annotation.JsonProperty;\r
+\r
import io.swagger.annotations.ApiModel;\r
import io.swagger.annotations.ApiModelProperty;\r
\r
\r
@JsonIgnore\r
@Id\r
- @GeneratedValue(strategy=GenerationType.IDENTITY)\r
- private Integer id;\r
+ private UUID uuid;\r
\r
@JsonIgnore\r
@Column(name = "finish_time")\r
private String startTime;\r
\r
@JsonIgnore\r
- @Column(name = "schedules_id")\r
- private Integer schedulesId;\r
+ @Column(name = "schedules_uuid")\r
+ private UUID schedulesUuid;\r
\r
@Column(name = "additional_duration_in_secs")\r
@ApiModelProperty(value = "Time added to the workflow interval to allow for rollback in case of failure.")\r
\r
public ChangeManagementGroup() {}\r
\r
- public Integer getId() {\r
- return this.id;\r
- }\r
-\r
- public void setId(Integer id) {\r
- this.id = id;\r
- }\r
\r
public String getFinishTime() {\r
if (finishTimeMillis != null)\r
\r
public void setStartTime(String startTime) {}\r
\r
- public Integer getSchedulesId() {\r
- return schedulesId;\r
- }\r
-\r
- public void setSchedulesId(Integer schedulesId) {\r
- this.schedulesId = schedulesId;\r
- }\r
\r
public Integer getAdditionalDurationInSecs() {\r
return additionalDurationInSecs;\r
this.changeManagementSchedules = changeManagementSchedules;\r
}\r
\r
+\r
+ public UUID getUuid() {\r
+ return uuid;\r
+ }\r
+\r
+\r
+ public void setUuid(UUID uuid) {\r
+ this.uuid = uuid;\r
+ }\r
+\r
+\r
+ public UUID getSchedulesUuid() {\r
+ return schedulesUuid;\r
+ }\r
+\r
+\r
+ public void setSchedulesUuid(UUID schedulesUuid) {\r
+ this.schedulesUuid = schedulesUuid;\r
+ }\r
+\r
}\r
package org.onap.optf.cmso.model;\r
\r
import java.io.Serializable;\r
+import java.util.UUID;\r
+\r
import javax.persistence.Column;\r
import javax.persistence.Entity;\r
-import javax.persistence.GeneratedValue;\r
-import javax.persistence.GenerationType;\r
import javax.persistence.Id;\r
import javax.persistence.Lob;\r
import javax.persistence.NamedQuery;\r
import javax.persistence.Table;\r
import javax.persistence.Transient;\r
+\r
import org.joda.time.format.ISODateTimeFormat;\r
+\r
import com.fasterxml.jackson.annotation.JsonIgnore;\r
import com.fasterxml.jackson.annotation.JsonProperty;\r
+\r
import io.swagger.annotations.ApiModel;\r
import io.swagger.annotations.ApiModelProperty;\r
\r
\r
@JsonIgnore\r
@Id\r
- @GeneratedValue(strategy=GenerationType.IDENTITY)\r
- private Integer id;\r
+ private UUID uuid;\r
\r
@ApiModelProperty(value = "TM Change Id")\r
@Column(name = "tm_change_id")\r
@Column(name = "vnf_name")\r
private String vnfName;\r
\r
- @Column(name = "change_management_groups_id")\r
+ @Column(name = "change_management_group_uuid")\r
@JsonIgnore\r
- private Integer changeManagementGroupsId;\r
+ private UUID changeManagementGroupUuid;\r
\r
@JsonIgnore\r
@Column(name = "dispatch_time")\r
\r
public ChangeManagementSchedule() {}\r
\r
- public Integer getId() {\r
- return this.id;\r
- }\r
-\r
- public void setId(Integer id) {\r
- this.id = id;\r
- }\r
-\r
public String getFinishTime() {\r
if (finishTimeMillis != null)\r
return ISODateTimeFormat.dateTimeNoMillis().print(finishTimeMillis);\r
this.tmChangeId = tmChangeId;\r
}\r
\r
- public Integer getChangeManagementGroupsId() {\r
- return changeManagementGroupsId;\r
- }\r
\r
- public void setChangeManagementGroupsId(Integer changeManagementGroupsId) {\r
- this.changeManagementGroupsId = changeManagementGroupsId;\r
- }\r
+ public UUID getUuid() {\r
+ return uuid;\r
+ }\r
+\r
+ public void setUuid(UUID uuid) {\r
+ this.uuid = uuid;\r
+ }\r
+\r
+\r
+ public UUID getChangeManagementGroupUuid() {\r
+ return changeManagementGroupUuid;\r
+ }\r
+\r
+ public void setChangeManagementGroupUuid(UUID changeManagementGroupUuid) {\r
+ this.changeManagementGroupUuid = changeManagementGroupUuid;\r
+ }\r
\r
- public String getDispatchTime() {\r
+ public String getDispatchTime() {\r
if (dispatchTimeMillis != null)\r
return ISODateTimeFormat.dateTimeNoMillis().print(dispatchTimeMillis);\r
return null;\r
package org.onap.optf.cmso.model;\r
\r
import java.io.Serializable;\r
+import java.util.UUID;\r
+\r
import javax.persistence.Entity;\r
-import javax.persistence.GeneratedValue;\r
-import javax.persistence.GenerationType;\r
import javax.persistence.Id;\r
import javax.persistence.JoinColumn;\r
import javax.persistence.ManyToOne;\r
import javax.persistence.NamedQuery;\r
import javax.persistence.Table;\r
+\r
import com.fasterxml.jackson.annotation.JsonIgnore;\r
+\r
import io.swagger.annotations.ApiModel;\r
\r
/**\r
\r
@JsonIgnore\r
@Id\r
- @GeneratedValue(strategy=GenerationType.IDENTITY)\r
- private Integer id;\r
+ private UUID uuid;\r
\r
private String name;\r
\r
private String value;\r
\r
@ManyToOne(optional = true)\r
- @JoinColumn(name = "schedules_id", nullable = false, updatable = false)\r
+ @JoinColumn(name = "schedules_uuid", nullable = false, updatable = false)\r
@JsonIgnore\r
private Schedule schedule;\r
\r
public DomainData() {}\r
\r
- public Integer getId() {\r
- return this.id;\r
- }\r
\r
- public void setId(Integer id) {\r
- this.id = id;\r
- }\r
+ public UUID getUuid() {\r
+ return uuid;\r
+ }\r
+\r
+\r
+ public void setUuid(UUID uuid) {\r
+ this.uuid = uuid;\r
+ }\r
+\r
\r
- public String getName() {\r
+ public String getName() {\r
return this.name;\r
}\r
\r
+++ /dev/null
-/*\r
- * Copyright © 2017-2018 AT&T Intellectual Property.\r
- * Modifications Copyright © 2018 IBM.\r
- * \r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- * \r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- * \r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- * \r
- * \r
- * Unless otherwise specified, all documentation contained herein is licensed\r
- * under the Creative Commons License, Attribution 4.0 Intl. (the "License");\r
- * you may not use this documentation except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- * \r
- * https://creativecommons.org/licenses/by/4.0/\r
- * \r
- * Unless required by applicable law or agreed to in writing, documentation\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
-*/\r
-\r
-package org.onap.optf.cmso.model;\r
-\r
-public class HelloWorld {\r
-\r
- private String message;\r
-\r
- public HelloWorld() {\r
- // needed for deserializer\r
- }\r
-\r
- public HelloWorld(String message) {\r
- this.message = message;\r
- }\r
-\r
- public String getMessage() {\r
- return message;\r
- }\r
-\r
- public void setMessage(String message) {\r
- this.message = message;\r
- }\r
-\r
- @Override\r
- public String toString() {\r
- return "message = " + getMessage();\r
- }\r
-}\r
import java.io.Serializable;\r
import java.util.ArrayList;\r
import java.util.List;\r
+import java.util.UUID;\r
+\r
import javax.persistence.CascadeType;\r
import javax.persistence.Column;\r
import javax.persistence.Entity;\r
-import javax.persistence.GeneratedValue;\r
-import javax.persistence.GenerationType;\r
import javax.persistence.Id;\r
import javax.persistence.Lob;\r
import javax.persistence.NamedQuery;\r
import javax.persistence.OneToMany;\r
import javax.persistence.Table;\r
import javax.persistence.Transient;\r
+\r
import org.hibernate.annotations.LazyCollection;\r
import org.hibernate.annotations.LazyCollectionOption;\r
import org.joda.time.format.ISODateTimeFormat;\r
+\r
import com.fasterxml.jackson.annotation.JsonIgnore;\r
import com.fasterxml.jackson.annotation.JsonProperty;\r
+\r
import io.swagger.annotations.ApiModelProperty;\r
\r
/**\r
\r
@JsonIgnore\r
@Id\r
- @GeneratedValue(strategy=GenerationType.IDENTITY)\r
- private Integer id;\r
+ private UUID uuid;\r
\r
@JsonIgnore\r
@Column(name = "create_date_time")\r
\r
public Schedule() {}\r
\r
- public Integer getId() {\r
- return this.id;\r
- }\r
+ public UUID getUuid() {\r
+ return uuid;\r
+ }\r
\r
- public void setId(Integer id) {\r
- this.id = id;\r
- }\r
+ public void setUuid(UUID uuid) {\r
+ this.uuid = uuid;\r
+ }\r
+\r
+ public void setDomainData(List<DomainData> domainData) {\r
+ this.domainData = domainData;\r
+ }\r
+\r
+ public void setScheduleApprovals(List<ScheduleApproval> scheduleApprovals) {\r
+ this.scheduleApprovals = scheduleApprovals;\r
+ }\r
\r
- public String getCreateDateTime() {\r
+ public String getCreateDateTime() {\r
if (createDateTimeMillis != null)\r
return ISODateTimeFormat.dateTimeNoMillis().print(this.createDateTimeMillis);\r
return null;\r
package org.onap.optf.cmso.model;\r
\r
import java.io.Serializable;\r
+import java.util.UUID;\r
+\r
import javax.persistence.Column;\r
import javax.persistence.Entity;\r
-import javax.persistence.GeneratedValue;\r
-import javax.persistence.GenerationType;\r
import javax.persistence.Id;\r
import javax.persistence.JoinColumn;\r
import javax.persistence.ManyToOne;\r
import javax.persistence.NamedQuery;\r
import javax.persistence.Table;\r
import javax.persistence.Transient;\r
+\r
import org.joda.time.format.ISODateTimeFormat;\r
+\r
import com.fasterxml.jackson.annotation.JsonIgnore;\r
import com.fasterxml.jackson.annotation.JsonProperty;\r
+\r
import io.swagger.annotations.ApiModel;\r
import io.swagger.annotations.ApiModelProperty;\r
\r
private static final long serialVersionUID = 1L;\r
\r
@Id\r
- @GeneratedValue(strategy=GenerationType.IDENTITY)\r
@JsonIgnore\r
- private Integer id;\r
+ private UUID uuid;\r
\r
@JsonIgnore\r
@Column(name = "approval_date_time")\r
private String userId;\r
\r
@ManyToOne(optional = true)\r
- @JoinColumn(name = "schedules_id", nullable = false, updatable = false)\r
+ @JoinColumn(name = "schedules_uuid", nullable = false, updatable = false)\r
@JsonIgnore\r
private Schedule schedule;\r
\r
@JsonIgnore\r
- @Column(name = "approval_type_id")\r
- private Integer approvalTypeId;\r
+ @Column(name = "approval_types_uuid")\r
+ private UUID approvalTypesUuid;\r
\r
public ScheduleApproval() {}\r
\r
- public Integer getId() {\r
- return this.id;\r
- }\r
-\r
- public void setId(Integer id) {\r
- this.id = id;\r
- }\r
\r
public String getApprovalDateTime() {\r
if (approvalDateTimeMillis != null)\r
this.userId = userId;\r
}\r
\r
- public Integer getApprovalTypeId() {\r
- return approvalTypeId;\r
- }\r
-\r
- public void setApprovalTypeId(Integer approvalTypeId) {\r
- this.approvalTypeId = approvalTypeId;\r
- }\r
\r
public void setSchedule(Schedule schedule) {\r
this.schedule = schedule;\r
this.approvalDateTimeMillis = approvalDateTimeMillis;\r
}\r
\r
+\r
+ public UUID getUuid() {\r
+ return uuid;\r
+ }\r
+\r
+\r
+ public void setUuid(UUID uuid) {\r
+ this.uuid = uuid;\r
+ }\r
+\r
+\r
+ public UUID getApprovalTypesUuid() {\r
+ return approvalTypesUuid;\r
+ }\r
+\r
+\r
+ public void setApprovalTypesUuid(UUID approvalTypesUuid) {\r
+ this.approvalTypesUuid = approvalTypesUuid;\r
+ }\r
+\r
+\r
+\r
}\r
+++ /dev/null
-/*\r
- * Copyright © 2017-2018 AT&T Intellectual Property.\r
- * Modifications Copyright © 2018 IBM.\r
- * \r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- * \r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- * \r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- * \r
- * \r
- * Unless otherwise specified, all documentation contained herein is licensed\r
- * under the Creative Commons License, Attribution 4.0 Intl. (the "License");\r
- * you may not use this documentation except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- * \r
- * https://creativecommons.org/licenses/by/4.0/\r
- * \r
- * Unless required by applicable law or agreed to in writing, documentation\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
-*/\r
-\r
-package org.onap.optf.cmso.model;\r
-\r
-import java.io.Serializable;\r
-import javax.persistence.Column;\r
-import javax.persistence.Entity;\r
-import javax.persistence.GeneratedValue;\r
-import javax.persistence.GenerationType;\r
-import javax.persistence.Id;\r
-import javax.persistence.Lob;\r
-import javax.persistence.NamedQuery;\r
-import javax.persistence.Table;\r
-import javax.persistence.Transient;\r
-import org.joda.time.format.ISODateTimeFormat;\r
-import com.fasterxml.jackson.annotation.JsonIgnore;\r
-import com.fasterxml.jackson.annotation.JsonProperty;\r
-\r
-/**\r
- * The persistent class for the schedule_events database table.\r
- * \r
- */\r
-@Entity\r
-@Table(name = "SCHEDULE_EVENTS")\r
-@NamedQuery(name = "ScheduleEvent.findAll", query = "SELECT s FROM ScheduleEvent s")\r
-public class ScheduleEvent implements Serializable {\r
- private static final long serialVersionUID = 1L;\r
-\r
- @Id\r
- @GeneratedValue(strategy=GenerationType.IDENTITY)\r
- private Integer id;\r
-\r
- private String domain;\r
-\r
- @Lob\r
- @Column(name = "event_text")\r
- private String eventText;\r
-\r
- @JsonIgnore\r
- @Column(name = "event_time")\r
- private Long eventTimeMillis;\r
-\r
- @JsonProperty\r
- @Transient\r
- private String eventTime;\r
-\r
- @JsonIgnore\r
- @Column(name = "reminder_time")\r
- private Long reminderTimeMillis;\r
-\r
- @JsonProperty\r
- @Transient\r
- private String reminderTime;\r
-\r
- @Column(name = "schedules_id")\r
- private Integer schedulesId;\r
-\r
- private String status;\r
-\r
- public ScheduleEvent() {}\r
-\r
- public Integer getId() {\r
- return this.id;\r
- }\r
-\r
- public void setId(Integer id) {\r
- this.id = id;\r
- }\r
-\r
- public String getDomain() {\r
- return this.domain;\r
- }\r
-\r
- public void setDomain(String domain) {\r
- this.domain = domain;\r
- }\r
-\r
- public String getEventText() {\r
- return this.eventText;\r
- }\r
-\r
- public void setEventText(String eventText) {\r
- this.eventText = eventText;\r
- }\r
-\r
- public Integer getSchedulesId() {\r
- return this.schedulesId;\r
- }\r
-\r
- public void setSchedulesId(Integer schedulesId) {\r
- this.schedulesId = schedulesId;\r
- }\r
-\r
- public String getStatus() {\r
- return this.status;\r
- }\r
-\r
- public void setStatus(String status) {\r
- this.status = status;\r
- }\r
-\r
- public Long getEventTimeMillis() {\r
- return eventTimeMillis;\r
- }\r
-\r
- public void setEventTimeMillis(Long eventTimeMillis) {\r
- this.eventTimeMillis = eventTimeMillis;\r
- }\r
-\r
- public String getEventTime() {\r
- if (eventTimeMillis != null)\r
- return ISODateTimeFormat.dateTimeNoMillis().print(this.eventTimeMillis);\r
- return null;\r
- }\r
-\r
- public void setEventTime(String eventTime) {}\r
-\r
- public Long getReminderTimeMillis() {\r
- return reminderTimeMillis;\r
- }\r
-\r
- public void setReminderTimeMillis(Long reminderTimeMillis) {\r
- this.reminderTimeMillis = reminderTimeMillis;\r
- }\r
-\r
- public String getReminderTime() {\r
- if (reminderTimeMillis != null)\r
- return ISODateTimeFormat.dateTimeNoMillis().print(this.reminderTimeMillis);\r
- return null;\r
- }\r
-\r
- public void setReminderTime(String reminderTime) {}\r
-\r
-}\r
/*\r
- * Copyright © 2017-2018 AT&T Intellectual Property.\r
- * Modifications Copyright © 2018 IBM.\r
+ * Copyright © 2017-2018 AT&T Intellectual Property.\r
+ * Modifications Copyright © 2018 IBM.\r
* \r
* Licensed under the Apache License, Version 2.0 (the "License");\r
* you may not use this file except in compliance with the License.\r
\r
package org.onap.optf.cmso.model;\r
\r
+import java.util.UUID;\r
+\r
import javax.persistence.Column;\r
import javax.persistence.Entity;\r
import javax.persistence.Id;\r
@Entity\r
public class ScheduleQuery {\r
@Id\r
- @Column(name = "id")\r
- private Integer id;\r
+ @Column(name = "uuid")\r
+ private UUID uuid;\r
+\r
+ public UUID getUuid() {\r
+ return uuid;\r
+ }\r
\r
- public Integer getId() {\r
- return id;\r
- }\r
+ public void setUuid(UUID uuid) {\r
+ this.uuid = uuid;\r
+ }\r
\r
- public void setId(Integer id) {\r
- this.id = id;\r
- }\r
\r
}\r
/*\r
- * Copyright © 2017-2018 AT&T Intellectual Property.\r
- * Modifications Copyright © 2018 IBM.\r
+ * Copyright © 2017-2018 AT&T Intellectual Property.\r
+ * Modifications Copyright © 2018 IBM.\r
* \r
* Licensed under the Apache License, Version 2.0 (the "License");\r
* you may not use this file except in compliance with the License.\r
\r
import java.util.List;\r
import java.util.Optional;\r
+import java.util.UUID;\r
+\r
import org.onap.optf.cmso.model.ApprovalType;\r
import org.springframework.data.jpa.repository.Query;\r
import org.springframework.data.repository.PagingAndSortingRepository;\r
\r
-public interface ApprovalTypeDAO extends PagingAndSortingRepository<ApprovalType, Integer> {\r
- Optional<ApprovalType> findById(Integer id);\r
+public interface ApprovalTypeDAO extends PagingAndSortingRepository<ApprovalType, UUID> {\r
+ Optional<ApprovalType> findById(UUID id);\r
\r
ApprovalType save(ApprovalType persisted);\r
\r
/*\r
- * Copyright © 2017-2018 AT&T Intellectual Property.\r
- * Modifications Copyright © 2018 IBM.\r
+ * Copyright © 2017-2018 AT&T Intellectual Property.\r
+ * Modifications Copyright © 2018 IBM.\r
* \r
* Licensed under the Apache License, Version 2.0 (the "License");\r
* you may not use this file except in compliance with the License.\r
\r
import java.util.List;\r
import java.util.Optional;\r
+import java.util.UUID;\r
+\r
import org.onap.optf.cmso.model.ChangeManagementChangeWindow;\r
import org.springframework.data.jpa.repository.Modifying;\r
import org.springframework.data.jpa.repository.Query;\r
import org.springframework.data.repository.PagingAndSortingRepository;\r
\r
public interface ChangeManagementChangeWindowDAO\r
- extends PagingAndSortingRepository<ChangeManagementChangeWindow, Integer> {\r
- Optional<ChangeManagementChangeWindow> findById(Integer id);\r
+ extends PagingAndSortingRepository<ChangeManagementChangeWindow, UUID> {\r
+ Optional<ChangeManagementChangeWindow> findById(UUID id);\r
\r
ChangeManagementChangeWindow save(ChangeManagementChangeWindow persisted);\r
\r
void delete(ChangeManagementChangeWindow toDelete);\r
\r
- @Query(value = "SELECT d FROM ChangeManagementChangeWindow d WHERE d.changeManagementGroupsId = ?1")\r
- List<ChangeManagementChangeWindow> findByGroupsID(Integer id);\r
+ @Query(value = "SELECT d FROM ChangeManagementChangeWindow d WHERE d.changeManagementGroupUuid = ?1")\r
+ List<ChangeManagementChangeWindow> findByGroupsUUID(UUID id);\r
\r
@Modifying\r
- @Query(value = "DELETE FROM ChangeManagementChangeWindow d WHERE d.changeManagementGroupsId = ?1")\r
- int deleteByChangeManagementGroupId(int id);\r
+ @Query(value = "DELETE FROM ChangeManagementChangeWindow d WHERE d.changeManagementGroupUuid = ?1")\r
+ int deleteByChangeManagementGroupUuid(UUID id);\r
\r
}\r
/*\r
- * Copyright © 2017-2018 AT&T Intellectual Property.\r
- * Modifications Copyright © 2018 IBM.\r
+ * Copyright © 2017-2018 AT&T Intellectual Property.\r
+ * Modifications Copyright © 2018 IBM.\r
* \r
* Licensed under the Apache License, Version 2.0 (the "License");\r
* you may not use this file except in compliance with the License.\r
@Override\r
public List<ChangeManagementDetail> searchScheduleDetails(String where, int limit) {\r
StringBuilder sql = new StringBuilder();\r
- sql.append("select distinct" + " s.id as id," + " s.vnf_name as vnf_name," + " s.vnf_id as vnf_id,"\r
+ sql.append("select distinct" + " s.uuid as uuid," + " s.vnf_name as vnf_name," + " s.vnf_id as vnf_id,"\r
+ " s.status as status," + " s.tm_change_id as tm_change_Id," + " s.start_time as start_time,"\r
+ " s.finish_time as finish_time," + " s.mso_request_id as mso_request_id,"\r
+ " s.mso_status as mso_status," + " s.mso_message as mso_message," + " s.mso_time as mso_time,"\r
+ " s.status_message as status_message," + " s.tm_approval_status as tm_approval_status,"\r
+ " s.tm_status as tm_status," + " g.group_id as group_id,"\r
+ " g.last_instance_start_time as last_instance_start_time," + " g.policy_id as policy_id,"\r
- + " g.schedules_id as schedules_id"\r
+ + " g.schedules_uuid as schedules_uuid"\r
// + " ss.schedule_id as scheduleId,"\r
// + " dd.name"\r
+ " from" + " CHANGE_MANAGEMENT_SCHEDULES s"\r
- + " inner join CHANGE_MANAGEMENT_GROUPS g on s.change_management_groups_id = g.id"\r
- + " inner join SCHEDULES ss on g.schedules_id = ss.id "\r
- + " left outer join DOMAIN_DATA dd on ss.id = dd.schedules_id"\r
- + " left outer join SCHEDULE_APPROVALS sa on ss.id = sa.schedules_id"\r
- + " left outer join APPROVAL_TYPES at on sa.approval_type_id = at.id ");\r
+ + " inner join CHANGE_MANAGEMENT_GROUPS g on s.change_management_group_uuid = g.uuid"\r
+ + " inner join SCHEDULES ss on g.schedules_uuid = ss.uuid "\r
+ + " left outer join DOMAIN_DATA dd on ss.uuid = dd.schedules_uuid"\r
+ + " left outer join SCHEDULE_APPROVALS sa on ss.uuid = sa.schedules_uuid"\r
+ + " left outer join APPROVAL_TYPES at on sa.approval_types_uuid = at.uuid ");\r
sql.append(where);\r
- sql.append(" order by id ");\r
+ sql.append(" order by uuid ");\r
if (limit > 0)\r
sql.append("LIMIT " + limit);\r
\r
/*\r
- * Copyright © 2017-2018 AT&T Intellectual Property.\r
- * Modifications Copyright © 2018 IBM.\r
+ * Copyright © 2017-2018 AT&T Intellectual Property.\r
+ * Modifications Copyright © 2018 IBM.\r
* \r
* Licensed under the Apache License, Version 2.0 (the "License");\r
* you may not use this file except in compliance with the License.\r
\r
import java.util.List;\r
import java.util.Optional;\r
+import java.util.UUID;\r
+\r
import org.onap.optf.cmso.model.ChangeManagementGroup;\r
import org.springframework.data.jpa.repository.Query;\r
import org.springframework.data.repository.PagingAndSortingRepository;\r
\r
-public interface ChangeManagementGroupDAO extends PagingAndSortingRepository<ChangeManagementGroup, Integer> {\r
- Optional<ChangeManagementGroup> findById(Integer id);\r
+public interface ChangeManagementGroupDAO extends PagingAndSortingRepository<ChangeManagementGroup, UUID> {\r
+ Optional<ChangeManagementGroup> findById(UUID id);\r
\r
ChangeManagementGroup save(ChangeManagementGroup persisted);\r
\r
void delete(ChangeManagementGroup toDelete);\r
\r
- @Query(value = "SELECT d FROM ChangeManagementGroup d WHERE d.schedulesId = ?1")\r
- List<ChangeManagementGroup> findBySchedulesID(Integer id);\r
+ @Query(value = "SELECT d FROM ChangeManagementGroup d WHERE d.schedulesUuid = ?1")\r
+ List<ChangeManagementGroup> findBySchedulesID(UUID id);\r
\r
- @Query(value = "SELECT d FROM ChangeManagementGroup d WHERE d.schedulesId = ?1 AND d.groupId = ?2")\r
- ChangeManagementGroup findOneBySchedulesIDGroupID(Integer id, String groupId);\r
+ @Query(value = "SELECT d FROM ChangeManagementGroup d WHERE d.schedulesUuid = ?1 AND d.groupId = ?2")\r
+ ChangeManagementGroup findOneBySchedulesIDGroupID(UUID id, String groupId);\r
\r
}\r
/*\r
- * Copyright © 2017-2018 AT&T Intellectual Property.\r
- * Modifications Copyright © 2018 IBM.\r
+ * Copyright © 2017-2018 AT&T Intellectual Property.\r
+ * Modifications Copyright © 2018 IBM.\r
* \r
* Licensed under the Apache License, Version 2.0 (the "License");\r
* you may not use this file except in compliance with the License.\r
\r
import java.util.List;\r
import java.util.Optional;\r
+import java.util.UUID;\r
+\r
import javax.persistence.LockModeType;\r
+\r
import org.onap.optf.cmso.model.ChangeManagementSchedule;\r
import org.springframework.data.jpa.repository.Lock;\r
import org.springframework.data.jpa.repository.Modifying;\r
import org.springframework.data.jpa.repository.Query;\r
import org.springframework.data.repository.PagingAndSortingRepository;\r
\r
-public interface ChangeManagementScheduleDAO extends PagingAndSortingRepository<ChangeManagementSchedule, Integer> {\r
- Optional<ChangeManagementSchedule> findById(Integer id);\r
+public interface ChangeManagementScheduleDAO extends PagingAndSortingRepository<ChangeManagementSchedule, UUID> {\r
+ Optional<ChangeManagementSchedule> findById(UUID id);\r
\r
ChangeManagementSchedule save(ChangeManagementSchedule persisted);\r
\r
void delete(ChangeManagementSchedule toDelete);\r
\r
- @Query(value = "SELECT d FROM ChangeManagementSchedule d WHERE d.changeManagementGroupsId = ?1")\r
- List<ChangeManagementSchedule> findByChangeManagementGroupId(Integer id);\r
+ @Query(value = "SELECT d FROM ChangeManagementSchedule d WHERE d.changeManagementGroupUuid = ?1")\r
+ List<ChangeManagementSchedule> findByChangeManagementGroupId(UUID id);\r
\r
@Modifying\r
- @Query(value = "DELETE FROM ChangeManagementSchedule d WHERE d.changeManagementGroupsId = ?1")\r
- public int deleteByChangeManagementGroupsId(Integer id);\r
+ @Query(value = "DELETE FROM ChangeManagementSchedule d WHERE d.changeManagementGroupUuid = ?1")\r
+ public int deleteByChangeManagementGroupsId(UUID id);\r
\r
- @Query(value = "SELECT d FROM ChangeManagementSchedule d WHERE d.changeManagementGroupsId = ?1 AND d.vnfName = ?2")\r
- ChangeManagementSchedule findOneByGroupIDAndVnfName(Integer id, String vnfName);\r
+ @Query(value = "SELECT d FROM ChangeManagementSchedule d WHERE d.changeManagementGroupUuid = ?1 AND d.vnfName = ?2")\r
+ ChangeManagementSchedule findOneByGroupIDAndVnfName(UUID id, String vnfName);\r
\r
@Query(value = "SELECT d FROM ChangeManagementSchedule d WHERE (d.status = ?1 AND d.startTimeMillis <= ?2) or d.status = 'Scheduled Immediate' order by d.startTimeMillis")\r
List<ChangeManagementSchedule> findByStatusAndEndTime(String status, Long date);\r
@Query(value = "SELECT d FROM ChangeManagementSchedule d WHERE d.tmApprovalStatus = 'Pending Approval'")\r
List<ChangeManagementSchedule> findAllAwaitingTmApproval();\r
\r
- @Query(value = "SELECT d FROM ChangeManagementSchedule d WHERE d.id = ?1")\r
+ @Query(value = "SELECT d FROM ChangeManagementSchedule d WHERE d.uuid = ?1")\r
@Lock(LockModeType.PESSIMISTIC_WRITE)\r
- ChangeManagementSchedule lockOne(Integer id);\r
+ ChangeManagementSchedule lockOne(UUID id);\r
\r
}\r
/*\r
- * Copyright © 2017-2018 AT&T Intellectual Property.\r
- * Modifications Copyright © 2018 IBM.\r
+ * Copyright © 2017-2018 AT&T Intellectual Property.\r
+ * Modifications Copyright © 2018 IBM.\r
* \r
* Licensed under the Apache License, Version 2.0 (the "License");\r
* you may not use this file except in compliance with the License.\r
package org.onap.optf.cmso.model.dao;\r
\r
import java.util.Optional;\r
+import java.util.UUID;\r
+\r
import org.onap.optf.cmso.model.DomainData;\r
import org.springframework.data.repository.PagingAndSortingRepository;\r
\r
-public interface DomainDataDAO extends PagingAndSortingRepository<DomainData, Integer> {\r
- Optional<DomainData> findById(Integer id);\r
+public interface DomainDataDAO extends PagingAndSortingRepository<DomainData, UUID> {\r
+ Optional<DomainData> findById(UUID id);\r
\r
DomainData save(DomainData persisted);\r
\r
/*\r
- * Copyright © 2017-2018 AT&T Intellectual Property.\r
- * Modifications Copyright © 2018 IBM.\r
+ * Copyright © 2017-2018 AT&T Intellectual Property.\r
+ * Modifications Copyright © 2018 IBM.\r
* \r
* Licensed under the Apache License, Version 2.0 (the "License");\r
* you may not use this file except in compliance with the License.\r
package org.onap.optf.cmso.model.dao;\r
\r
import java.util.Optional;\r
+import java.util.UUID;\r
+\r
import org.onap.optf.cmso.model.ScheduleApproval;\r
import org.springframework.data.repository.PagingAndSortingRepository;\r
\r
-public interface ScheduleApprovalDAO extends PagingAndSortingRepository<ScheduleApproval, Integer> {\r
- Optional<ScheduleApproval> findById(Integer id);\r
+public interface ScheduleApprovalDAO extends PagingAndSortingRepository<ScheduleApproval, UUID> {\r
+ Optional<ScheduleApproval> findById(UUID id);\r
\r
ScheduleApproval save(ScheduleApproval persisted);\r
\r
/*\r
- * Copyright © 2017-2018 AT&T Intellectual Property.\r
- * Modifications Copyright © 2018 IBM.\r
+ * Copyright © 2017-2018 AT&T Intellectual Property.\r
+ * Modifications Copyright © 2018 IBM.\r
* \r
* Licensed under the Apache License, Version 2.0 (the "License");\r
* you may not use this file except in compliance with the License.\r
\r
import java.util.List;\r
import java.util.Optional;\r
+import java.util.UUID;\r
+\r
import javax.persistence.LockModeType;\r
+\r
import org.onap.optf.cmso.model.Schedule;\r
import org.springframework.data.jpa.repository.Lock;\r
import org.springframework.data.jpa.repository.Query;\r
import org.springframework.data.repository.PagingAndSortingRepository;\r
\r
-public interface ScheduleDAO extends PagingAndSortingRepository<Schedule, Integer> {\r
- Optional<Schedule> findById(Integer id);\r
+public interface ScheduleDAO extends PagingAndSortingRepository<Schedule, UUID> {\r
+ Optional<Schedule> findById(UUID id);\r
\r
Schedule save(Schedule persited);\r
\r
@Query(value = "SELECT s FROM Schedule s WHERE s.domain = ?1 AND s.status = 'Notifications Initiated'")\r
List<Schedule> findAllInProgress(String string);\r
\r
- @Query(value = "SELECT d FROM Schedule d WHERE d.id = ?1")\r
+ @Query(value = "SELECT d FROM Schedule d WHERE d.uuid = ?1")\r
@Lock(LockModeType.PESSIMISTIC_WRITE)\r
- Schedule lockOne(Integer id);\r
+ Schedule lockOne(UUID id);\r
\r
@Query(value = "SELECT s FROM Schedule s WHERE s.optimizerTransactionId= ?1")\r
@Lock(LockModeType.PESSIMISTIC_WRITE)\r
+++ /dev/null
-/*\r
- * Copyright © 2017-2018 AT&T Intellectual Property.\r
- * Modifications Copyright © 2018 IBM.\r
- * \r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- * \r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- * \r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- * \r
- * \r
- * Unless otherwise specified, all documentation contained herein is licensed\r
- * under the Creative Commons License, Attribution 4.0 Intl. (the "License");\r
- * you may not use this documentation except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- * \r
- * https://creativecommons.org/licenses/by/4.0/\r
- * \r
- * Unless required by applicable law or agreed to in writing, documentation\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
-*/\r
-\r
-package org.onap.optf.cmso.model.dao;\r
-\r
-import java.util.List;\r
-import java.util.Optional;\r
-import org.onap.optf.cmso.model.ScheduleEvent;\r
-import org.springframework.data.jpa.repository.Query;\r
-import org.springframework.data.repository.PagingAndSortingRepository;\r
-\r
-public interface ScheduleEventDAO extends PagingAndSortingRepository<ScheduleEvent, Integer> {\r
- Optional<ScheduleEvent> findById(Integer id);\r
-\r
- ScheduleEvent save(ScheduleEvent persisted);\r
-\r
- void delete(ScheduleEvent toDelete);\r
-\r
- @Query(value = "SELECT d FROM ScheduleEvent d WHERE d.schedulesId = ?1")\r
- List<ScheduleEvent> findByScheduleId(Integer id);\r
-\r
- @Query(value = "SELECT d FROM ScheduleEvent d WHERE d.status = ?1 AND d.reminderTimeMillis <= ?2")\r
- List<ScheduleEvent> findByStatusAndEndTime(String status, Long date);\r
-\r
-}\r
/*\r
- * Copyright © 2017-2018 AT&T Intellectual Property.\r
- * Modifications Copyright © 2018 IBM.\r
+ * Copyright © 2017-2018 AT&T Intellectual Property.\r
+ * Modifications Copyright © 2018 IBM.\r
* \r
* Licensed under the Apache License, Version 2.0 (the "License");\r
* you may not use this file except in compliance with the License.\r
@Override\r
public List<ScheduleQuery> searchSchedules(String where, int limit) {\r
StringBuilder sql = new StringBuilder();\r
- sql.append("select distinct" + " ss.id as id" + " from" + " SCHEDULES ss"\r
- + " left outer join CHANGE_MANAGEMENT_GROUPS g on ss.id = g.schedules_id"\r
- + " left outer join CHANGE_MANAGEMENT_SCHEDULES s on g.id = s.change_management_groups_id"\r
- + " left outer join DOMAIN_DATA dd on ss.id = dd.schedules_id"\r
- + " left outer join SCHEDULE_APPROVALS sa on ss.id = sa.schedules_id"\r
- + " left outer join APPROVAL_TYPES at on sa.approval_type_id = at.id ");\r
+ sql.append("select distinct" + " ss.uuid as uuid" + " from" + " SCHEDULES ss"\r
+ + " left outer join CHANGE_MANAGEMENT_GROUPS g on ss.uuid = g.schedules_uuid"\r
+ + " left outer join CHANGE_MANAGEMENT_SCHEDULES s on g.uuid = s.change_management_group_uuid"\r
+ + " left outer join DOMAIN_DATA dd on ss.uuid = dd.schedules_uuid"\r
+ + " left outer join SCHEDULE_APPROVALS sa on ss.uuid = sa.schedules_uuid"\r
+ + " left outer join APPROVAL_TYPES at on sa.approval_types_uuid = at.uuid ");\r
sql.append(where);\r
- sql.append(" order by id ");\r
+ sql.append(" order by uuid ");\r
if (limit > 0)\r
sql.append("LIMIT " + limit);\r
\r
@Autowired\r
PropertiesManagement pm;\r
\r
- public boolean scheduleOptimization(Integer id) {\r
+ public boolean scheduleOptimization(UUID uuid) {\r
Map<String, String> mdcSave = Mdc.save();\r
try {\r
String optimizerurl = env.getProperty("cmso.optimizer.url");\r
Integer maxAttempts = env.getProperty("cmso.optimizer.maxAttempts", Integer.class, 20);\r
\r
// Ensure that only one cmso is requsting this call to optimizer\r
- Schedule schedule = scheduleDAO.lockOne(id);\r
+ Schedule schedule = scheduleDAO.lockOne(uuid);\r
if (!schedule.getStatus().equals(CMSStatusEnum.PendingSchedule.toString()))\r
return false;\r
\r
\r
import java.util.List;\r
import java.util.Map;\r
+import java.util.UUID;\r
+\r
import javax.ws.rs.client.Client;\r
import javax.ws.rs.client.ClientBuilder;\r
import javax.ws.rs.client.Invocation;\r
import org.springframework.core.env.Environment;\r
import org.springframework.scheduling.quartz.QuartzJobBean;\r
import org.springframework.stereotype.Component;\r
+\r
import com.att.eelf.configuration.EELFLogger;\r
import com.att.eelf.configuration.EELFManager;\r
\r
}\r
\r
public void scheduleOptimization(Schedule s) {\r
- Integer id = s.getId();\r
+ UUID id = s.getUuid();\r
Map<String, String> mdcSave = Mdc.save();\r
try {\r
String url = env.getProperty("cmso.dispatch.url", "http://localhost:8089");\r
import java.util.HashMap;\r
import java.util.List;\r
import java.util.Map;\r
+import java.util.UUID;\r
+\r
import javax.ws.rs.core.Response.Status;\r
+\r
import org.onap.optf.cmso.common.ApprovalStatusEnum;\r
import org.onap.optf.cmso.common.CMSStatusEnum;\r
import org.onap.optf.cmso.common.LogMessages;\r
import org.onap.optf.cmso.service.rs.models.ScheduleMessage;\r
import org.springframework.beans.factory.annotation.Autowired;\r
import org.springframework.stereotype.Controller;\r
+\r
import com.att.eelf.configuration.EELFLogger;\r
import com.att.eelf.configuration.EELFManager;\r
\r
throw new CMSAlreadyExistsException(scheduleMessage.getDomain(), scheduleMessage.getScheduleId());\r
}\r
s = new Schedule();\r
+ s.setUuid(UUID.randomUUID());\r
s.setUserId(scheduleMessage.getUserId());\r
s.setCreateDateTimeMillis(System.currentTimeMillis());\r
s.setDomain(scheduleMessage.getDomain());\r
s.setStatus(CMSStatusEnum.PendingSchedule.toString());\r
scheduleDAO.save(s);\r
for (DomainData dd : domainData) {\r
+ dd.setUuid(UUID.randomUUID());\r
s.addDomainData(dd);\r
domainDataDAO.save(dd);\r
}\r
if (s.getScheduleApprovals() != null) {\r
for (ScheduleApproval scheduleApproval : s.getScheduleApprovals()) {\r
if (scheduleApproval.getUserId().equals(approvalMessage.getApprovalUserId())\r
- && scheduleApproval.getApprovalTypeId().equals(approvalType.getId())) {\r
+ && scheduleApproval.getApprovalTypesUuid().equals(approvalType.getUuid())) {\r
sa = scheduleApproval;\r
}\r
}\r
}\r
if (sa == null) {\r
sa = new ScheduleApproval();\r
+ sa.setUuid(UUID.randomUUID());\r
sa.setSchedule(s);\r
- sa.setApprovalTypeId(approvalType.getId());\r
+ sa.setApprovalTypesUuid(approvalType.getUuid());\r
sa.setUserId(approvalMessage.getApprovalUserId());\r
}\r
// Ignore what time is on the message\r
}\r
\r
private boolean allApprovalsReceived(Schedule schedule, ScheduleApproval sa) {\r
- Map<Integer, Integer> requiredApprovalsByType = new HashMap<Integer, Integer>(); // Approval\r
+ Map<UUID, Integer> requiredApprovalsByType = new HashMap<>(); // Approval\r
// countdown\r
- Map<Integer, ApprovalType> approvalsByType = new HashMap<Integer, ApprovalType>(); // Just\r
+ Map<UUID, ApprovalType> approvalsByType = new HashMap<>(); // Just\r
// for\r
// logging\r
\r
List<ApprovalType> approvalTypes = approvalTypeDAO.findByDomain(schedule.getDomain());\r
for (ApprovalType at : approvalTypes) {\r
- Integer type = at.getId();\r
+ UUID type = at.getUuid();\r
Integer count = at.getApprovalCount();\r
requiredApprovalsByType.put(type, count);\r
- approvalsByType.put(at.getId(), at);\r
+ approvalsByType.put(at.getUuid(), at);\r
}\r
\r
// Account for approvals so far\r
}\r
for (ScheduleApproval approval : existingApprovals) {\r
if (approval.getStatus().equals(ApprovalStatusEnum.Accepted.toString())) {\r
- Integer remaining = requiredApprovalsByType.get(approval.getApprovalTypeId());\r
+ Integer remaining = requiredApprovalsByType.get(approval.getApprovalTypesUuid());\r
if (remaining != null) {\r
remaining = remaining - 1;\r
- requiredApprovalsByType.put(approval.getApprovalTypeId(), remaining);\r
+ requiredApprovalsByType.put(approval.getApprovalTypesUuid(), remaining);\r
} else {\r
- log.warn("Ignored Unidentified approval type {0} for domain {1}", approval.getApprovalTypeId(),\r
+ log.warn("Ignored Unidentified approval type {0} for domain {1}", approval.getApprovalTypesUuid(),\r
schedule.getDomain());\r
}\r
}\r
}\r
- for (Integer id : requiredApprovalsByType.keySet()) {\r
+ for (UUID id : requiredApprovalsByType.keySet()) {\r
Integer remaining = requiredApprovalsByType.get(id);\r
if (remaining > 0) {\r
return false;\r
DateTime latestInstanceStartTime =
convertDate(sniroSchedule.getLatestInstanceStartTime(), "latestInstanceStartTime");
DateTime startTime = convertDate(sniroSchedule.getStartTime(), "startTime");
- ChangeManagementGroup group = cmGroupDAO.findOneBySchedulesIDGroupID(schedule.getId(), groupId);
+ ChangeManagementGroup group = cmGroupDAO.findOneBySchedulesIDGroupID(schedule.getUuid(), groupId);
if (group == null) {
throw new CMSException(Status.PRECONDITION_FAILED,
LogMessages.CHANGE_MANAGEMENT_GROUP_NOT_FOUND, schedule.getScheduleId(), groupId);
private void processNode(Schedule schedule, ChangeManagementGroup group, String node,
Map<String, Map<String, Long>> startAndFinishTimeMap) throws CMSException {
Map<String, Long> map = startAndFinishTimeMap.get(node);
- ChangeManagementSchedule detail = cmScheduleDAO.findOneByGroupIDAndVnfName(group.getId(), node);
+ ChangeManagementSchedule detail = cmScheduleDAO.findOneByGroupIDAndVnfName(group.getUuid(), node);
if (detail == null) {
throw new CMSException(Status.NOT_FOUND, LogMessages.UNABLE_TO_LOCATE_SCHEDULE_DETAIL,
schedule.getScheduleId(), group.getGroupId(), node);
import java.util.Map;\r
import java.util.Set;\r
import java.util.TimeZone;\r
+import java.util.UUID;\r
\r
import javax.servlet.http.HttpServletRequest;\r
import javax.ws.rs.core.MultivaluedMap;\r
}\r
Iterator<ScheduleQuery> iter = list.iterator();\r
while (iter.hasNext()) {\r
- Schedule s = scheduleDAO.findById(iter.next().getId()).orElse(null);\r
+ Schedule s = scheduleDAO.findById(iter.next().getUuid()).orElse(null);\r
if (s != null) {\r
schedules.add(s);\r
if (includeDetails) {\r
- List<ChangeManagementGroup> groups = cmGroupDAO.findBySchedulesID(s.getId());\r
+ List<ChangeManagementGroup> groups = cmGroupDAO.findBySchedulesID(s.getUuid());\r
s.setGroups(groups);\r
for (ChangeManagementGroup g : groups) {\r
List<ChangeManagementSchedule> cmSchedules =\r
- cmScheduleDAO.findByChangeManagementGroupId(g.getId());\r
+ cmScheduleDAO.findByChangeManagementGroupId(g.getUuid());\r
g.setChangeManagementSchedules(cmSchedules);\r
}\r
}\r
CMSInfo schedulingInfo = scheduleMessage.getSchedulingInfo();\r
for (VnfDetailsMessage vnfDetail : schedulingInfo.getVnfDetails()) {\r
ChangeManagementGroup cmg = new ChangeManagementGroup();\r
- cmg.setSchedulesId(schedule.getId());\r
+ cmg.setUuid(UUID.randomUUID());\r
+ cmg.setSchedulesUuid(schedule.getUuid());\r
cmg.setGroupId("");\r
if (vnfDetail.getGroupId() != null)\r
cmg.setGroupId(vnfDetail.getGroupId());\r
cmGroupDAO.save(cmg);\r
for (ChangeWindowMessage cw : vnfDetail.getChangeWindow()) {\r
ChangeManagementChangeWindow cmcw = new ChangeManagementChangeWindow();\r
- cmcw.setChangeManagementGroupsId(cmg.getId());\r
+ cmcw.setUuid(UUID.randomUUID());\r
+ cmcw.setChangeManagementGroupUuid(cmg.getUuid());\r
DateTime start = CMSOOptimizerCallbackImpl.convertISODate(cw.getStartTime(), "startTime");\r
DateTime end = CMSOOptimizerCallbackImpl.convertISODate(cw.getEndTime(), "startTime");\r
cmcw.setStartTimeMillis(start.getMillis());\r
\r
for (String vnf : vnfDetail.getNode()) {\r
ChangeManagementSchedule cms = new ChangeManagementSchedule();\r
- cms.setChangeManagementGroupsId(cmg.getId());\r
+ cms.setUuid(UUID.randomUUID());\r
+ cms.setChangeManagementGroupUuid(cmg.getUuid());\r
cms.setVnfName(vnf);\r
cms.setStatus(CMSStatusEnum.PendingSchedule.toString());\r
cmScheduleDAO.save(cms);\r
CMSInfo schedulingInfo = scheduleMessage.getSchedulingInfo();\r
for (VnfDetailsMessage vnfDetail : schedulingInfo.getVnfDetails()) {\r
ChangeManagementGroup cmg = new ChangeManagementGroup();\r
- cmg.setSchedulesId(schedule.getId());\r
+ cmg.setUuid(UUID.randomUUID());\r
+ cmg.setSchedulesUuid(schedule.getUuid());\r
cmg.setGroupId("");\r
int duration = schedulingInfo.getNormalDurationInSeconds();\r
int backout = schedulingInfo.getAdditionalDurationInSeconds();\r
cmGroupDAO.save(cmg);\r
for (String vnf : vnfDetail.getNode()) {\r
ChangeManagementSchedule cms = new ChangeManagementSchedule();\r
- cms.setChangeManagementGroupsId(cmg.getId());\r
+ cms.setUuid(UUID.randomUUID());\r
+ cms.setChangeManagementGroupUuid(cmg.getUuid());\r
cms.setVnfName(vnf);\r
cms.setStatus(CMSStatusEnum.PendingApproval.toString());\r
cmScheduleDAO.save(cms);\r
}\r
schedule.setStatus(CMSStatusEnum.PendingApproval.toString());\r
+ scheduleDAO.save(schedule);\r
}\r
}\r
\r
private void deleteChangeManagement(Schedule schedule) throws CMSException {\r
- List<ChangeManagementGroup> cmgs = cmGroupDAO.findBySchedulesID(schedule.getId());\r
+ List<ChangeManagementGroup> cmgs = cmGroupDAO.findBySchedulesID(schedule.getUuid());\r
\r
for (ChangeManagementGroup cmg : cmgs) {\r
- List<ChangeManagementSchedule> schedules = cmScheduleDAO.findByChangeManagementGroupId(cmg.getId());\r
+ List<ChangeManagementSchedule> schedules = cmScheduleDAO.findByChangeManagementGroupId(cmg.getUuid());\r
for (ChangeManagementSchedule s : schedules) {\r
CMSStatusEnum currentState = CMSStatusEnum.Completed.fromString(s.getStatus());\r
switch (currentState) {\r
\r
private void processApproveScheduleRequest(Schedule s, ApprovalMessage approval, List<DomainData> domainData)\r
throws CMSException {\r
- s = scheduleDAO.lockOne(s.getId());\r
+ s = scheduleDAO.lockOne(s.getUuid());\r
String domain = DomainsEnum.ChangeManagement.toString();\r
processApproval(s, domain, approval);\r
if (s.getStatus().equals(CMSStatusEnum.Accepted.toString())) {\r
\r
Integer max_vnfs_per_ticket = env.getProperty("tm.vnfs.per.ticket", Integer.class, 1);\r
\r
- List<ChangeManagementGroup> groups = cmGroupDAO.findBySchedulesID(s.getId());\r
+ List<ChangeManagementGroup> groups = cmGroupDAO.findBySchedulesID(s.getUuid());\r
for (ChangeManagementGroup group : groups) {\r
\r
- List<ChangeManagementSchedule> schedules = cmScheduleDAO.findByChangeManagementGroupId(group.getId());\r
+ List<ChangeManagementSchedule> schedules = cmScheduleDAO.findByChangeManagementGroupId(group.getUuid());\r
List<List<ChangeManagementSchedule>> ticketList = new ArrayList<List<ChangeManagementSchedule>>();\r
List<ChangeManagementSchedule> current = null;\r
for (ChangeManagementSchedule cms : schedules) {\r
\r
private void updateChangeManagementSchedules(Schedule s, CMSStatusEnum approvalrejected) {\r
debug.debug("Entered updateChangeManagementSchedules");\r
- List<ChangeManagementGroup> groups = cmGroupDAO.findBySchedulesID(s.getId());\r
+ List<ChangeManagementGroup> groups = cmGroupDAO.findBySchedulesID(s.getUuid());\r
for (ChangeManagementGroup group : groups) {\r
- List<ChangeManagementSchedule> schedules = cmScheduleDAO.findByChangeManagementGroupId(group.getId());\r
+ List<ChangeManagementSchedule> schedules = cmScheduleDAO.findByChangeManagementGroupId(group.getUuid());\r
for (ChangeManagementSchedule schedule : schedules) {\r
schedule.setStatus(approvalrejected.toString());\r
cmScheduleDAO.save(schedule);\r
DomainsEnum.ChangeManagement.toString(), scheduleId);\r
}\r
Iterator<ChangeManagementDetail> iter = list.iterator();\r
- Map<Integer, Schedule> scheduleMap = new HashMap<Integer, Schedule>();\r
+ Map<UUID, Schedule> scheduleMap = new HashMap<UUID, Schedule>();\r
while (iter.hasNext()) {\r
ChangeManagementDetail cms = iter.next();\r
CmDetailsMessage msg = buildResponse(cms, scheduleMap);\r
\r
}\r
\r
- private CmDetailsMessage buildResponse(ChangeManagementDetail cms, Map<Integer, Schedule> scheduleMap) {\r
+ private CmDetailsMessage buildResponse(ChangeManagementDetail cms, Map<UUID, Schedule> scheduleMap) {\r
CmDetailsMessage msg = new CmDetailsMessage();\r
msg.setVnfId(cms.getVnfId());\r
msg.setVnfName(cms.getVnfName());\r
msg.setMsoRequestId(cms.getMsoRequestId());\r
msg.setMsoStatus(cms.getMsoStatus());\r
msg.setMsoTimeMillis(cms.getMsoTimeMillis());\r
- if (!scheduleMap.containsKey(cms.getSchedulesId())) {\r
- Schedule schedule = scheduleDAO.findById(cms.getSchedulesId()).orElse(null);\r
+ if (!scheduleMap.containsKey(cms.getSchedulesUuid())) {\r
+ Schedule schedule = scheduleDAO.findById(cms.getSchedulesUuid()).orElse(null);\r
if (schedule != null) {\r
// DO not innclude in the results\r
schedule.setScheduleInfo(null);\r
// schedule.setSchedule(null);\r
- scheduleMap.put(cms.getSchedulesId(), schedule);\r
+ scheduleMap.put(cms.getSchedulesUuid(), schedule);\r
}\r
}\r
- if (scheduleMap.containsKey(cms.getSchedulesId())) {\r
- msg.setScheduleRequest(scheduleMap.get(cms.getSchedulesId()));\r
+ if (scheduleMap.containsKey(cms.getSchedulesUuid())) {\r
+ msg.setScheduleRequest(scheduleMap.get(cms.getSchedulesUuid()));\r
}\r
return msg;\r
}\r
/*\r
- * Copyright © 2017-2018 AT&T Intellectual Property.\r
- * Modifications Copyright © 2018 IBM.\r
+ * Copyright © 2017-2018 AT&T Intellectual Property.\r
+ * Modifications Copyright © 2018 IBM.\r
* \r
* Licensed under the Apache License, Version 2.0 (the "License");\r
* you may not use this file except in compliance with the License.\r
\r
public class CmQueryParameters {\r
\r
- public enum QueryColumns {\r
- RequestScheduleId("request.scheduleId", String.class, "ss.schedule_id"), RequestScheduleName(\r
- "request.scheduleName", String.class,\r
- "ss.schedule_name"), RequestUserId("request.userId", String.class, "ss.user_id"), RequestStatus(\r
- "request.status", String.class, "ss.status"), RequestCreateDateTime("request.createDateTime",\r
- Date.class, "ss.create_date_time"), RequestOptimizerStatus("request.optimizerStatus",\r
- String.class, "ss.optimizer_status"), RequestApprovalUserId(\r
- "request.approvalUserId", String.class,\r
- "sa.user_id"), RequestApprovalStatus("request.approvalStatus",\r
- String.class, "sa.status"), RequestApprovalType(\r
- "request.approvalType", String.class,\r
- "at.approval_type"), WorkflowName("WorkflowName",\r
- DomainData.class,\r
- "dd.value"), vnfName("vnfName", String.class,\r
- "s.vnf_name"), vnfId("vnfId",\r
- String.class,\r
- "s.vnf_id"), vnfStatus(\r
- "vnfStatus",\r
- String.class,\r
- "s.vnf_status"),\r
- // vnfScheduleId("vnfScheduleId", String.class, "s.id"),\r
- startTime("startTime", Date.class, "s.start_time"), finishTime("finishTime", Date.class,\r
- "s.finish_ime"), lastInstanceTime("lastInstanceTime", Date.class, "g.last_instance_time"), tmChangeId(\r
- "tmChangeId", String.class, "s.tm_change_id"), concurrenyLimit("request.concurrencyLimit",\r
- Integer.class, "g.concurrency_limit"),\r
- // approvalUserId("approvalUserId", String.class, "approvalUserId"),\r
- // approvalStatus("approvalStatus", String.class, "approvalStatus"),\r
- // approvalType("approvalType", String.class, "approvalType"),\r
- ;\r
+ public enum QueryColumns {\r
+ RequestScheduleId("request.scheduleId", String.class, "ss.schedule_id"),\r
+ RequestScheduleName("request.scheduleName", String.class, "ss.schedule_name"),\r
+ RequestUserId("request.userId", String.class, "ss.user_id"),\r
+ RequestStatus("request.status", String.class, "ss.status"),\r
+ RequestCreateDateTime("request.createDateTime", Date.class, "ss.create_date_time"),\r
+ RequestOptimizerStatus("request.optimizerStatus", String.class, "ss.optimizer_status"),\r
+ RequestApprovalUserId("request.approvalUserId", String.class, "sa.user_id"),\r
+ RequestApprovalStatus("request.approvalStatus", String.class, "sa.status"),\r
+ RequestApprovalType("request.approvalType", String.class, "at.approval_type"),\r
+ WorkflowName("WorkflowName", DomainData.class, "dd.value"), vnfName("vnfName", String.class, "s.vnf_name"),\r
+ vnfId("vnfId", String.class, "s.vnf_id"), vnfStatus("vnfStatus", String.class, "s.vnf_status"),\r
+ // vnfScheduleId("vnfScheduleId", String.class, "s.id"),\r
+ startTime("startTime", Date.class, "s.start_time"), finishTime("finishTime", Date.class, "s.finish_ime"),\r
+ lastInstanceTime("lastInstanceTime", Date.class, "g.last_instance_time"),\r
+ tmChangeId("tmChangeId", String.class, "s.tm_change_id"),\r
+ concurrenyLimit("request.concurrencyLimit", Integer.class, "g.concurrency_limit"),\r
+ // approvalUserId("approvalUserId", String.class, "approvalUserId"),\r
+ // approvalStatus("approvalStatus", String.class, "approvalStatus"),\r
+ // approvalType("approvalType", String.class, "approvalType"),\r
+ ;\r
\r
- private final String urlName;\r
- private final Class<?> type;\r
- private final String col;\r
+ private final String urlName;\r
+ private final Class<?> type;\r
+ private final String col;\r
\r
- private QueryColumns(String urlName, Class<?> type, String col) {\r
- this.urlName = urlName;\r
- this.type = type;\r
- this.col = col;\r
- }\r
+ private QueryColumns(String urlName, Class<?> type, String col) {\r
+ this.urlName = urlName;\r
+ this.type = type;\r
+ this.col = col;\r
+ }\r
\r
- }\r
+ }\r
\r
- public static QueryColumns getQueryColumn(String urlName) {\r
- for (QueryColumns qc : QueryColumns.values()) {\r
- if (qc.urlName.equals(urlName))\r
- return qc;\r
- }\r
- return null;\r
- }\r
+ public static QueryColumns getQueryColumn(String urlName) {\r
+ for (QueryColumns qc : QueryColumns.values()) {\r
+ if (qc.urlName.equals(urlName))\r
+ return qc;\r
+ }\r
+ return null;\r
+ }\r
\r
- public static String buildClause(String urlName, List<String> values) throws CMSException {\r
- QueryColumns qc = getQueryColumn(urlName);\r
- if (qc == null) {\r
- throw new CMSException(Status.BAD_REQUEST, LogMessages.UNDEFINED_FILTER_ATTRIBUTE, urlName);\r
- }\r
- if (qc.type == Date.class) {\r
- return formatDate(urlName, values, qc);\r
- }\r
- if (qc.type == DomainData.class) {\r
- return formatDomainData(urlName, values, qc);\r
- }\r
- return formatString(urlName, values, qc);\r
- }\r
+ public static String buildClause(String urlName, List<String> values) throws CMSException {\r
+ QueryColumns qc = getQueryColumn(urlName);\r
+ if (qc == null) {\r
+ throw new CMSException(Status.BAD_REQUEST, LogMessages.UNDEFINED_FILTER_ATTRIBUTE, urlName);\r
+ }\r
+ if (qc.type == Date.class) {\r
+ return formatDate(urlName, values, qc);\r
+ }\r
+ if (qc.type == DomainData.class) {\r
+ return formatDomainData(urlName, values, qc);\r
+ }\r
+ return formatString(urlName, values, qc);\r
+ }\r
\r
- private static String formatString(String urlName, List<String> values, QueryColumns qc) {\r
- StringBuilder clause = new StringBuilder();\r
- List<String> likes = new ArrayList<String>();\r
- List<String> in = new ArrayList<String>();\r
- for (String value : values) {\r
- if (value.contains("%"))\r
- likes.add(value);\r
- else\r
- in.add(value);\r
- }\r
- String delim = "(";\r
- if (in.size() > 0) {\r
- clause.append(delim).append(qc.col).append(" in ('");\r
- String inDelim = "";\r
- for (String value : in) {\r
- clause.append(inDelim).append(value).append("'");\r
- inDelim = ", '";\r
- }\r
- clause.append(") ");\r
- delim = " OR ";\r
- }\r
- if (likes.size() > 0) {\r
- for (String value : likes) {\r
- clause.append(delim).append(qc.col).append(" like '").append(value).append("'");\r
- delim = " OR ";\r
- }\r
- }\r
- if (!delim.equals("("))\r
- clause.append(")");\r
- return clause.toString();\r
- }\r
+ private static String formatString(String urlName, List<String> values, QueryColumns qc) {\r
+ StringBuilder clause = new StringBuilder();\r
+ List<String> likes = new ArrayList<String>();\r
+ List<String> in = new ArrayList<String>();\r
+ for (String value : values) {\r
+ if (value.contains("%"))\r
+ likes.add(value);\r
+ else\r
+ in.add(value);\r
+ }\r
+ String delim = "(";\r
+ if (in.size() > 0) {\r
+ clause.append(delim).append(qc.col).append(" in ('");\r
+ String inDelim = "";\r
+ for (String value : in) {\r
+ clause.append(inDelim).append(value).append("'");\r
+ inDelim = ", '";\r
+ }\r
+ clause.append(") ");\r
+ delim = " OR ";\r
+ }\r
+ if (likes.size() > 0) {\r
+ for (String value : likes) {\r
+ clause.append(delim).append(qc.col).append(" like '").append(value).append("'");\r
+ delim = " OR ";\r
+ }\r
+ }\r
+ if (!delim.equals("("))\r
+ clause.append(")");\r
+ return clause.toString();\r
+ }\r
\r
- private static String formatDomainData(String urlName, List<String> values, QueryColumns qc) {\r
- StringBuilder clause = new StringBuilder();\r
- String delim = "(";\r
- if (values.size() > 0) {\r
- for (String value : values) {\r
- clause.append(delim).append(" (dd.name = '").append(qc.urlName).append("' AND dd.value = '")\r
- .append(value).append("')");\r
- delim = " OR ";\r
- }\r
- }\r
- if (!delim.equals("("))\r
- clause.append(")");\r
- return clause.toString();\r
- }\r
+ private static String formatDomainData(String urlName, List<String> values, QueryColumns qc) {\r
+ StringBuilder clause = new StringBuilder();\r
+ String delim = "(";\r
+ if (values.size() > 0) {\r
+ for (String value : values) {\r
+ clause.append(delim).append(" (dd.name = '").append(qc.urlName).append("' AND dd.value = '")\r
+ .append(value).append("')");\r
+ delim = " OR ";\r
+ }\r
+ }\r
+ if (!delim.equals("("))\r
+ clause.append(")");\r
+ return clause.toString();\r
+ }\r
\r
- private static String formatDate(String urlName, List<String> values, QueryColumns qc) throws CMSException {\r
- List<String> clauses = new ArrayList<String>();\r
- for (String value : values) {\r
- String dates[] = value.split(",");\r
- switch (dates.length) {\r
- case 2:\r
- formatDatePair(qc, dates[0].trim(), dates[1].trim(), clauses);\r
- break;\r
- case 1:\r
- formatDatePair(qc, dates[0].trim(), "", clauses);\r
- break;\r
- default:\r
- throw new CMSException(Status.BAD_REQUEST, LogMessages.INVALID_DATE_FILTER, urlName, value);\r
- }\r
- }\r
- StringBuilder clause = new StringBuilder();\r
- String delim = "(";\r
- for (String c : clauses) {\r
- clause.append(delim).append(c);\r
- delim = " OR ";\r
- }\r
- if (!delim.equals(")")) {\r
- clause.append(")");\r
- }\r
- return clause.toString();\r
- }\r
+ private static String formatDate(String urlName, List<String> values, QueryColumns qc) throws CMSException {\r
+ List<String> clauses = new ArrayList<String>();\r
+ for (String value : values) {\r
+ String dates[] = value.split(",");\r
+ switch (dates.length) {\r
+ case 2:\r
+ formatDatePair(qc, dates[0].trim(), dates[1].trim(), clauses);\r
+ break;\r
+ case 1:\r
+ formatDatePair(qc, dates[0].trim(), "", clauses);\r
+ break;\r
+ default:\r
+ throw new CMSException(Status.BAD_REQUEST, LogMessages.INVALID_DATE_FILTER, urlName, value);\r
+ }\r
+ }\r
+ StringBuilder clause = new StringBuilder();\r
+ String delim = "(";\r
+ for (String c : clauses) {\r
+ clause.append(delim).append(c);\r
+ delim = " OR ";\r
+ }\r
+ if (!delim.equals(")")) {\r
+ clause.append(")");\r
+ }\r
+ return clause.toString();\r
+ }\r
\r
- private static void formatDatePair(QueryColumns qc, String lowDate, String highDate, List<String> clauses)\r
- throws CMSException {\r
- StringBuilder clause = new StringBuilder();\r
- DateTime date1 = null;\r
- DateTime date2 = null;\r
- if (!lowDate.equals(""))\r
- date1 = convertDate(lowDate, qc.urlName);\r
- if (!highDate.equals(""))\r
- date2 = convertDate(highDate, qc.urlName);\r
- String delim = "(";\r
- if (date1 != null) {\r
- clause.append(delim).append(qc.col).append(" >= ").append(date1.getMillis());\r
- delim = " AND ";\r
- }\r
- if (date2 != null) {\r
- clause.append(delim).append(qc.col).append(" <= ").append(date2.getMillis());\r
- delim = " AND ";\r
- }\r
- if (!delim.equals(")")) {\r
- clause.append(")\n");\r
- clauses.add(clause.toString());\r
- }\r
- }\r
+ private static void formatDatePair(QueryColumns qc, String lowDate, String highDate, List<String> clauses)\r
+ throws CMSException {\r
+ StringBuilder clause = new StringBuilder();\r
+ DateTime date1 = null;\r
+ DateTime date2 = null;\r
+ if (!lowDate.equals(""))\r
+ date1 = convertDate(lowDate, qc.urlName);\r
+ if (!highDate.equals(""))\r
+ date2 = convertDate(highDate, qc.urlName);\r
+ String delim = "(";\r
+ if (date1 != null) {\r
+ clause.append(delim).append(qc.col).append(" >= ").append(date1.getMillis());\r
+ delim = " AND ";\r
+ }\r
+ if (date2 != null) {\r
+ clause.append(delim).append(qc.col).append(" <= ").append(date2.getMillis());\r
+ delim = " AND ";\r
+ }\r
+ if (!delim.equals(")")) {\r
+ clause.append(")\n");\r
+ clauses.add(clause.toString());\r
+ }\r
+ }\r
\r
- private static DateTime convertDate(String utcDate, String urlName) throws CMSException {\r
- DateTime dateTime = ISODateTimeFormat.dateTimeParser().parseDateTime(utcDate);\r
- if (dateTime != null)\r
- return dateTime;\r
- throw new CMSException(Status.BAD_REQUEST, LogMessages.INVALID_DATE_FILTER, urlName, utcDate);\r
- }\r
+ private static DateTime convertDate(String utcDate, String urlName) throws CMSException {\r
+ DateTime dateTime = ISODateTimeFormat.dateTimeParser().parseDateTime(utcDate);\r
+ if (dateTime != null)\r
+ return dateTime;\r
+ throw new CMSException(Status.BAD_REQUEST, LogMessages.INVALID_DATE_FILTER, urlName, utcDate);\r
+ }\r
\r
- // public static void main(String argv[])\r
- // {\r
- // List<String> values = new ArrayList<String>();\r
- // values.add("2017-07-08T11:12:13Z,2017-07-08T11:12:13Z");\r
- // values.add("2017-07-09T11:12:13Z,2017-07-09T11:12:13Z");\r
- // values.add(",2017-07-09T11:12:13Z");\r
- // values.add(" 2017-07-09T11:12:13Z");\r
- // try {\r
- // System.out.println(buildClause("request.createDateTime", values));\r
- // } catch (SchedulerException e) {\r
- // // TODO Auto-generated catch block\r
- // e.printStackTrace();\r
- // }\r
- //\r
- // }\r
+ // public static void main(String argv[])\r
+ // {\r
+ // List<String> values = new ArrayList<String>();\r
+ // values.add("2017-07-08T11:12:13Z,2017-07-08T11:12:13Z");\r
+ // values.add("2017-07-09T11:12:13Z,2017-07-09T11:12:13Z");\r
+ // values.add(",2017-07-09T11:12:13Z");\r
+ // values.add(" 2017-07-09T11:12:13Z");\r
+ // try {\r
+ // System.out.println(buildClause("request.createDateTime", values));\r
+ // } catch (SchedulerException e) {\r
+ // // TODO Auto-generated catch block\r
+ // e.printStackTrace();\r
+ // }\r
+ //\r
+ // }\r
}\r
import java.text.SimpleDateFormat;\r
import java.util.Date;\r
import java.util.Map;\r
+import java.util.UUID;\r
\r
import javax.ws.rs.ProcessingException;\r
import javax.ws.rs.client.Client;\r
@Autowired\r
PropertiesManagement pm;\r
\r
- public void execute(Integer id) throws JobExecutionException {\r
+ public void execute(String id) throws JobExecutionException {\r
debug.debug(LogMessages.MSO_STATUS_JOB, "Entered", id.toString());\r
try {\r
- ChangeManagementSchedule cmSchedule = cmScheduleDAO.lockOne(id);\r
+ UUID uuid = UUID.fromString(id);\r
+ ChangeManagementSchedule cmSchedule = cmScheduleDAO.lockOne(uuid);\r
if (cmSchedule == null) {\r
Observation.report(LogMessages.MSO_POLLING_MISSING_SCHEDULE, id.toString());\r
return;\r
\r
package org.onap.optf.cmso.sostatus;\r
\r
+import java.util.UUID;\r
+\r
import org.onap.observations.Mdc;\r
import org.onap.optf.cmso.common.LogMessages;\r
import org.onap.optf.cmso.model.ChangeManagementSchedule;\r
@Override\r
public void execute(JobExecutionContext context) throws JobExecutionException {\r
Mdc.quartzJobBegin(context);\r
- Integer id = context.getJobDetail().getJobDataMap().getInt(ContextKeys.scheduleId.toString());\r
+ String id = context.getJobDetail().getJobDataMap().getString(ContextKeys.scheduleId.toString());\r
String requestId = context.getJobDetail().getJobDataMap().getString(ContextKeys.msoRequestId.toString());\r
debug.debug(LogMessages.MSO_STATUS_JOB, "Entered", requestId, id.toString());\r
try {\r
- ChangeManagementSchedule cmSchedule = cmScheduleDAO.findById(id).orElse(null);\r
+ UUID uuid = UUID.fromString(id);\r
+ ChangeManagementSchedule cmSchedule = cmScheduleDAO.findById(uuid).orElse(null);\r
if (cmSchedule == null) {\r
- log.warn(LogMessages.MSO_POLLING_MISSING_SCHEDULE, id.toString(), requestId);\r
+ log.warn(LogMessages.MSO_POLLING_MISSING_SCHEDULE, id, requestId);\r
return;\r
}\r
mso.poll(cmSchedule);\r
} catch (Exception e) {\r
errors.error(LogMessages.UNEXPECTED_EXCEPTION, e, e.getMessage());\r
}\r
- debug.debug(LogMessages.MSO_STATUS_JOB, "Exited", requestId, id.toString());\r
+ debug.debug(LogMessages.MSO_STATUS_JOB, "Exited", requestId, id);\r
}\r
\r
}\r
\r
import java.util.List;\r
import java.util.Map;\r
+import java.util.UUID;\r
\r
import javax.ws.rs.client.Client;\r
import javax.ws.rs.client.ClientBuilder;\r
// First poll SO for WF status\r
List<ChangeManagementSchedule> list = cmScheduleDAO.findAllTriggered();\r
for (ChangeManagementSchedule s : list) {\r
- debug.debug("Dispathcing to check status of CM schedule Id=" + s.getId());\r
- dispatchMso(s.getId());\r
+ debug.debug("Dispathcing to check status of CM schedule Id=" + s.getUuid());\r
+ dispatchMso(s.getUuid());\r
}\r
} catch (Exception e) {\r
Observation.report(LogMessages.UNEXPECTED_EXCEPTION, e, e.getMessage());\r
List<Schedule> list = scheduleDAO.findAllInProgress(DomainsEnum.ChangeManagement.toString());\r
for (Schedule s : list) {\r
debug.debug("Dispatching to check status of scheduleId=" + s.getScheduleId());\r
- dispatchScheduleStatusChecker(s.getId());\r
+ dispatchScheduleStatusChecker(s.getUuid());\r
}\r
} catch (Exception e) {\r
Observation.report(LogMessages.UNEXPECTED_EXCEPTION, e, e.getMessage());\r
debug.debug(LogMessages.SCHEDULE_STATUS_JOB, "Exited");\r
}\r
\r
- public void dispatchScheduleStatusChecker(Integer id) {\r
+ public void dispatchScheduleStatusChecker(UUID uuid) {\r
Map<String, String> mdcSave = Mdc.save();\r
try {\r
String url = env.getProperty("cmso.dispatch.url", "http://localhost:8089");\r
String path = env.getProperty("cmso.dispatch.status.path", "/cmso/dispatch/schedulestatus/");\r
- url = url + path + id;\r
+ url = url + path + uuid;\r
String user = env.getProperty("mechid.user", "");\r
String pass = pm.getProperty("mechid.pass", "");\r
Client client = ClientBuilder.newClient();\r
\r
}\r
\r
- public void dispatchMso(Integer id) {\r
+ public void dispatchMso(UUID uuid) {\r
Map<String, String> mdcSave = Mdc.save();\r
try {\r
String url = env.getProperty("cmso.dispatch.url", "http://localhost:8089");\r
String path = env.getProperty("cmso.dispatch.sostatus.path", "/cmso/dispatch/sostatus/");\r
- url = url + path + id;\r
+ url = url + path + uuid;\r
String user = env.getProperty("mechid.user", "");\r
String pass = pm.getProperty("mechid.pass", "");\r
Client client = ClientBuilder.newClient();\r
/*\r
- * Copyright © 2017-2018 AT&T Intellectual Property.\r
- * Modifications Copyright © 2018 IBM.\r
+ * Copyright © 2017-2018 AT&T Intellectual Property.\r
+ * Modifications Copyright © 2018 IBM.\r
* \r
* Licensed under the Apache License, Version 2.0 (the "License");\r
* you may not use this file except in compliance with the License.\r
import java.util.List;\r
import java.util.Map;\r
import java.util.Set;\r
+import java.util.UUID;\r
+\r
import javax.transaction.Transactional;\r
import org.onap.optf.cmso.common.CMSStatusEnum;\r
import org.onap.optf.cmso.common.LogMessages;\r
TmClient tmClient;\r
\r
@Transactional\r
- public void checkStatus(Integer id) {\r
+ public void checkStatus(String id) {\r
debug.debug("Entered checkStatus id=" + id);\r
try {\r
// Multiple cmso instance support - re-get the record with a Schedule lock\r
- Schedule s = scheduleDAO.lockOne(id);\r
+ UUID uuid = UUID.fromString(id);\r
+ Schedule s = scheduleDAO.lockOne(uuid);\r
if (!s.getStatus().equals(CMSStatusEnum.NotificationsInitiated.toString())) {\r
debug.debug(s.getScheduleId() + " is no longer in " + CMSStatusEnum.NotificationsInitiated.toString()\r
+ " : it is " + s.getStatus());\r
}\r
Map<GroupAuditStatus, List<ChangeManagementGroup>> groupStatus =\r
new HashMap<GroupAuditStatus, List<ChangeManagementGroup>>();\r
- List<ChangeManagementGroup> groups = cmGroupDAO.findBySchedulesID(id);\r
+ List<ChangeManagementGroup> groups = cmGroupDAO.findBySchedulesID(uuid);\r
\r
// Close tickets for completed VNFs\r
for (ChangeManagementGroup group : groups) {\r
Map<String, List<ChangeManagementSchedule>> inProgress = new HashMap<String, List<ChangeManagementSchedule>>();\r
Map<String, List<ChangeManagementSchedule>> completed = new HashMap<String, List<ChangeManagementSchedule>>();\r
Map<String, List<ChangeManagementSchedule>> tmClosed = new HashMap<String, List<ChangeManagementSchedule>>();\r
- List<ChangeManagementSchedule> cmSchedules = cmScheduleDAO.findByChangeManagementGroupId(group.getId());\r
+ List<ChangeManagementSchedule> cmSchedules = cmScheduleDAO.findByChangeManagementGroupId(group.getUuid());\r
for (ChangeManagementSchedule cmSchedule : cmSchedules) {\r
String status = cmSchedule.getStatus();\r
String changeId = cmSchedule.getTmChangeId();\r
Set<String> failedNames = new HashSet<String>();\r
Set<String> completedNames = new HashSet<String>();\r
Long startDate = group.getStartTimeMillis();\r
- List<ChangeManagementSchedule> cmSchedules = cmScheduleDAO.findByChangeManagementGroupId(group.getId());\r
+ List<ChangeManagementSchedule> cmSchedules = cmScheduleDAO.findByChangeManagementGroupId(group.getUuid());\r
for (ChangeManagementSchedule cmSchedule : cmSchedules) {\r
String vnfName = cmSchedule.getVnfName();\r
vnfNames.add(vnfName);\r