aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVarma, Vikas <vv8305@att.com>2018-10-08 15:41:21 -0400
committerVarma, Vikas <vv8305@att.com>2018-10-09 08:17:17 -0400
commitd84cee50fa9901a0d2c2f8385c5b287a47f4d50c (patch)
treefa5994e8644a7e06dd3ee237fbc9b9e22cf9a6fd
parent4639a66f22d841bd4b44bdd554e62c311c4c1a37 (diff)
Fixing cmso jenkin jobs failures
CMSO test cases were failing due to conflicting jars Fixed the test cases failing due to unsatisfied dependency Fixing pom.xml file to exclude dependencies Fix copyright headers. Change-Id: I6fbf354fe3a83acc8bb0bd2199ac359f60ab8f76 Signed-off-by: Varma, Vikas <vv8305@att.com> Issue-ID: OPTFRA-365
-rw-r--r--cmso-service/pom.xml25
-rw-r--r--cmso-service/src/main/resources/swagger-ui/dist/swagger.json2320
-rw-r--r--cmso-service/src/test/java/org/onap/optf/cmso/service/rs/CMSOServiceImplTest.java20
3 files changed, 1195 insertions, 1170 deletions
diff --git a/cmso-service/pom.xml b/cmso-service/pom.xml
index 160deb7..5317b98 100644
--- a/cmso-service/pom.xml
+++ b/cmso-service/pom.xml
@@ -140,6 +140,12 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
@@ -194,6 +200,25 @@
<groupId>com.att.eelf</groupId>
<artifactId>eelf-core</artifactId>
<version>${eelf.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.powermock</groupId>
+ <artifactId>powermock-module</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.powermock</groupId>
+ <artifactId>powermock-api-mockito</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.powermock</groupId>
+ <artifactId>powermock-module-junit4</artifactId>
+ </exclusion>
+
+ </exclusions>
</dependency>
<!-- <dependency>
<groupId>org.onap.aaf.authz</groupId>
diff --git a/cmso-service/src/main/resources/swagger-ui/dist/swagger.json b/cmso-service/src/main/resources/swagger-ui/dist/swagger.json
index 95bd771..b8f5def 100644
--- a/cmso-service/src/main/resources/swagger-ui/dist/swagger.json
+++ b/cmso-service/src/main/resources/swagger-ui/dist/swagger.json
@@ -1,1161 +1,1161 @@
-{
- "swagger" : "2.0",
- "info" : {
- "version" : "0.1.0-SNAPSHOT",
- "title" : "cmso"
- },
- "basePath" : "/cmso",
- "paths" : {
- "/{apiVersion}/admin/{id}" : {
- "get" : {
- "summary" : "",
- "description" : "Returns encrypted value of id.",
- "operationId" : "exec",
- "produces" : [ "text/plain" ],
- "parameters" : [ {
- "name" : "apiVersion",
- "in" : "path",
- "description" : "v1|v2",
- "required" : true,
- "type" : "string",
- "default" : "v1"
- }, {
- "name" : "id",
- "in" : "path",
- "description" : "Identifier",
- "required" : true,
- "type" : "array",
- "items" : {
- "type" : "string"
- },
- "collectionFormat" : "csv"
- } ],
- "responses" : {
- "200" : {
- "description" : "OK",
- "schema" : {
- "type" : "string"
- }
- },
- "400" : {
- "description" : "Request failed"
- }
- }
- }
- },
- "/{apiVersion}/health" : {
- "get" : {
- "summary" : "",
- "description" : "Returns health status of server.",
- "operationId" : "healthCheck",
- "produces" : [ "application/json" ],
- "parameters" : [ {
- "name" : "apiVersion",
- "in" : "path",
- "description" : "v1",
- "required" : true,
- "type" : "string",
- "default" : "v1"
- }, {
- "name" : "checkInterfaces",
- "in" : "query",
- "description" : "Check Interfaces",
- "required" : false,
- "type" : "array",
- "items" : {
- "type" : "boolean",
- "default" : true
- },
- "collectionFormat" : "multi"
- } ],
- "responses" : {
- "200" : {
- "description" : "OK",
- "schema" : {
- "$ref" : "#/definitions/HealthCheckMessage"
- }
- },
- "400" : {
- "description" : "Not healthy",
- "schema" : {
- "$ref" : "#/definitions/HealthCheckMessage"
- }
- }
- }
- }
- },
- "/{apiVersion}/optimizerCallback" : {
- "post" : {
- "summary" : "",
- "description" : "Processes optimizer results callback to a Pending Optimization schedule.",
- "operationId" : "sniroCallback",
- "produces" : [ "application/json" ],
- "parameters" : [ {
- "name" : "apiVersion",
- "in" : "path",
- "description" : "v1",
- "required" : true,
- "type" : "string",
- "default" : "v1"
- }, {
- "in" : "body",
- "name" : "body",
- "description" : "Return schedules > lastScheduleId",
- "required" : false,
- "schema" : {
- "$ref" : "#/definitions/Response from schedule optimizer"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK"
- },
- "500" : {
- "description" : "Unexpected Runtime error"
- }
- }
- }
- },
- "/{apiVersion}/schedules" : {
- "get" : {
- "summary" : "",
- "description" : "Returns a list of Scheduler Requests based upon the filter criteria.",
- "operationId" : "searchScheduleRequests",
- "produces" : [ "application/json" ],
- "parameters" : [ {
- "name" : "apiVersion",
- "in" : "path",
- "description" : "v1",
- "required" : true,
- "type" : "string",
- "default" : "v1"
- }, {
- "name" : "includeDetails",
- "in" : "query",
- "description" : "Include details",
- "required" : false,
- "type" : "boolean",
- "default" : false
- }, {
- "name" : "scheduleId",
- "in" : "query",
- "description" : "Schedule identifier",
- "required" : false,
- "type" : "array",
- "items" : {
- "type" : "string"
- },
- "collectionFormat" : "multi"
- }, {
- "name" : "scheduleName",
- "in" : "query",
- "description" : "Schedule name",
- "required" : false,
- "type" : "array",
- "items" : {
- "type" : "string"
- },
- "collectionFormat" : "multi"
- }, {
- "name" : "userId",
- "in" : "query",
- "description" : "SCheduler creator User id of ",
- "required" : false,
- "type" : "array",
- "items" : {
- "type" : "string"
- },
- "collectionFormat" : "multi"
- }, {
- "name" : "status",
- "in" : "query",
- "description" : "Schedule status",
- "required" : false,
- "type" : "array",
- "items" : {
- "type" : "string"
- },
- "collectionFormat" : "multi"
- }, {
- "name" : "createDateTime",
- "in" : "query",
- "description" : "Creation date and time (<low date>[,<hi date>])",
- "required" : false,
- "type" : "array",
- "items" : {
- "type" : "string"
- },
- "collectionFormat" : "multi"
- }, {
- "name" : "optimizerStatus",
- "in" : "query",
- "description" : "Optimizer status",
- "required" : false,
- "type" : "array",
- "items" : {
- "type" : "string"
- },
- "collectionFormat" : "multi"
- }, {
- "name" : "WorkflowName",
- "in" : "query",
- "description" : "Workflow",
- "required" : false,
- "type" : "array",
- "items" : {
- "type" : "string"
- },
- "collectionFormat" : "multi"
- } ],
- "responses" : {
- "200" : {
- "description" : "OK",
- "schema" : {
- "type" : "array",
- "items" : {
- "$ref" : "#/definitions/Schedule"
- }
- }
- },
- "404" : {
- "description" : "No records found",
- "schema" : {
- "$ref" : "#/definitions/CMSRequestError"
- }
- },
- "500" : {
- "description" : "Unexpected Runtime error"
- }
- }
- }
- },
- "/{apiVersion}/schedules/scheduleDetails" : {
- "get" : {
- "summary" : "",
- "description" : "Returns a list of Schedule request details based upon the filter criteria.",
- "operationId" : "searchScheduleRequestDetails",
- "produces" : [ "application/json" ],
- "parameters" : [ {
- "name" : "apiVersion",
- "in" : "path",
- "description" : "v1",
- "required" : true,
- "type" : "string",
- "default" : "v1"
- }, {
- "name" : "request.scheduleId",
- "in" : "query",
- "description" : "Schedule identifier",
- "required" : false,
- "type" : "array",
- "items" : {
- "type" : "string"
- },
- "collectionFormat" : "multi"
- }, {
- "name" : "request.scheduleName",
- "in" : "query",
- "description" : "Schedule name",
- "required" : false,
- "type" : "array",
- "items" : {
- "type" : "string"
- },
- "collectionFormat" : "multi"
- }, {
- "name" : "request.userId",
- "in" : "query",
- "description" : "Scheduler creator User id of ",
- "required" : false,
- "type" : "array",
- "items" : {
- "type" : "string"
- },
- "collectionFormat" : "multi"
- }, {
- "name" : "request.status",
- "in" : "query",
- "description" : "Schedule status",
- "required" : false,
- "type" : "array",
- "items" : {
- "type" : "string"
- },
- "collectionFormat" : "multi"
- }, {
- "name" : "request.createDateTime",
- "in" : "query",
- "description" : "Creation date and time (<low date>[,<hi date>])",
- "required" : false,
- "type" : "array",
- "items" : {
- "type" : "string"
- },
- "collectionFormat" : "multi"
- }, {
- "name" : "request.optimizerStatus",
- "in" : "query",
- "description" : "Optimizer status",
- "required" : false,
- "type" : "array",
- "items" : {
- "type" : "string"
- },
- "collectionFormat" : "multi"
- }, {
- "name" : "request.approvalUserId",
- "in" : "query",
- "description" : "Request Approval user id",
- "required" : false,
- "type" : "array",
- "items" : {
- "type" : "string"
- },
- "collectionFormat" : "multi"
- }, {
- "name" : "request.approvalStatus",
- "in" : "query",
- "description" : "Request Approval status",
- "required" : false,
- "type" : "array",
- "items" : {
- "type" : "string"
- },
- "collectionFormat" : "multi"
- }, {
- "name" : "request.approvalType",
- "in" : "query",
- "description" : "Request Approval type",
- "required" : false,
- "type" : "array",
- "items" : {
- "type" : "string"
- },
- "collectionFormat" : "multi"
- }, {
- "name" : "WorkflowName",
- "in" : "query",
- "description" : "Workflow",
- "required" : false,
- "type" : "array",
- "items" : {
- "type" : "string"
- },
- "collectionFormat" : "multi"
- }, {
- "name" : "vnfName",
- "in" : "query",
- "description" : "VNF Name",
- "required" : false,
- "type" : "array",
- "items" : {
- "type" : "string"
- },
- "collectionFormat" : "multi"
- }, {
- "name" : "vnfId",
- "in" : "query",
- "description" : "VNF Id",
- "required" : false,
- "type" : "array",
- "items" : {
- "type" : "string"
- },
- "collectionFormat" : "multi"
- }, {
- "name" : "vnfStatus",
- "in" : "query",
- "description" : "VNF Status",
- "required" : false,
- "type" : "array",
- "items" : {
- "type" : "string"
- },
- "collectionFormat" : "multi"
- }, {
- "name" : "startTime",
- "in" : "query",
- "description" : "Start time <low>,<high>",
- "required" : false,
- "type" : "array",
- "items" : {
- "type" : "string"
- },
- "collectionFormat" : "multi"
- }, {
- "name" : "finishTime",
- "in" : "query",
- "description" : "Finish time <low>,<high>",
- "required" : false,
- "type" : "array",
- "items" : {
- "type" : "string"
- },
- "collectionFormat" : "multi"
- }, {
- "name" : "lastInstanceTime",
- "in" : "query",
- "description" : "Last instance start time <low>,<high>",
- "required" : false,
- "type" : "array",
- "items" : {
- "type" : "string"
- },
- "collectionFormat" : "multi"
- }, {
- "name" : "tmChangeId",
- "in" : "query",
- "description" : "TM Change Ticket Change Id",
- "required" : false,
- "type" : "array",
- "items" : {
- "type" : "string"
- },
- "collectionFormat" : "multi"
- }, {
- "name" : "maxSchedules",
- "in" : "query",
- "description" : "Maximum number of schedules to return",
- "required" : false,
- "type" : "integer",
- "format" : "int32"
- }, {
- "name" : "lastScheduleId",
- "in" : "query",
- "description" : "Return schedules > lastScheduleId",
- "required" : false,
- "type" : "string"
- }, {
- "name" : "request.concurrencyLimit",
- "in" : "query",
- "description" : "Return concurrencyLimit",
- "required" : false,
- "type" : "integer",
- "format" : "int32"
- } ],
- "responses" : {
- "200" : {
- "description" : "OK",
- "schema" : {
- "type" : "array",
- "items" : {
- "$ref" : "#/definitions/CmDetailsMessage"
- }
- }
- },
- "404" : {
- "description" : "No records found",
- "schema" : {
- "$ref" : "#/definitions/CMSRequestError"
- }
- },
- "500" : {
- "description" : "Unexpected Runtime error"
- }
- }
- }
- },
- "/{apiVersion}/schedules/{scheduleId}" : {
- "get" : {
- "summary" : "",
- "description" : "Retrieve the schedule request for scheduleId",
- "operationId" : "getScheduleRequestInfo",
- "produces" : [ "application/json" ],
- "parameters" : [ {
- "name" : "apiVersion",
- "in" : "path",
- "description" : "v1",
- "required" : true,
- "type" : "string",
- "default" : "v1"
- }, {
- "name" : "scheduleId",
- "in" : "path",
- "description" : "Schedule id to uniquely identify the schedule info being retrieved.",
- "required" : true,
- "type" : "string"
- } ],
- "responses" : {
- "200" : {
- "description" : "OK",
- "schema" : {
- "$ref" : "#/definitions/Schedule"
- }
- },
- "404" : {
- "description" : "No record found"
- },
- "500" : {
- "description" : "Unexpected Runtime error"
- }
- }
- },
- "post" : {
- "summary" : "",
- "description" : "Creates a schedule request for scheduleId",
- "operationId" : "createScheduleRequest",
- "produces" : [ "application/json" ],
- "parameters" : [ {
- "name" : "apiVersion",
- "in" : "path",
- "description" : "v1",
- "required" : true,
- "type" : "string",
- "default" : "v1"
- }, {
- "name" : "scheduleId",
- "in" : "path",
- "description" : "Schedule id to uniquely identify the schedule request being created.",
- "required" : true,
- "type" : "string"
- }, {
- "in" : "body",
- "name" : "body",
- "description" : "Data for creating a schedule request for the given schedule id",
- "required" : false,
- "schema" : {
- "$ref" : "#/definitions/CMSMessage"
- }
- } ],
- "responses" : {
- "202" : {
- "description" : "Schedule request accepted for optimization."
- },
- "409" : {
- "description" : "Schedule request already exists for this schedule id.",
- "schema" : {
- "$ref" : "#/definitions/CMSRequestError"
- }
- },
- "500" : {
- "description" : "Unexpected Runtime error"
- }
- }
- },
- "delete" : {
- "summary" : "",
- "description" : "Cancels the schedule request for scheduleId",
- "operationId" : "deleteScheduleRequest",
- "produces" : [ "application/json" ],
- "parameters" : [ {
- "name" : "apiVersion",
- "in" : "path",
- "description" : "v1",
- "required" : true,
- "type" : "string",
- "default" : "v1"
- }, {
- "name" : "scheduleId",
- "in" : "path",
- "description" : "Schedule id to uniquely identify the schedule request being deleted.",
- "required" : true,
- "type" : "string"
- } ],
- "responses" : {
- "204" : {
- "description" : "Delete successful"
- },
- "404" : {
- "description" : "No record found",
- "schema" : {
- "$ref" : "#/definitions/CMSRequestError"
- }
- },
- "500" : {
- "description" : "Unexpected Runtime error"
- }
- }
- }
- },
- "/{apiVersion}/schedules/{scheduleId}/approvals" : {
- "post" : {
- "summary" : "",
- "description" : "Adds an accept/reject approval status to the schedule request identified by scheduleId",
- "operationId" : "approveScheduleRequest",
- "produces" : [ "application/json" ],
- "parameters" : [ {
- "name" : "apiVersion",
- "in" : "path",
- "description" : "v1",
- "required" : true,
- "type" : "string",
- "default" : "v1"
- }, {
- "name" : "scheduleId",
- "in" : "path",
- "description" : "Schedule id to uniquely identify the schedule request being accepted or rejected.",
- "required" : true,
- "type" : "string"
- }, {
- "in" : "body",
- "name" : "body",
- "description" : "Accept or reject approval message",
- "required" : false,
- "schema" : {
- "$ref" : "#/definitions/Schedule Approval Request"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK"
- },
- "404" : {
- "description" : "No record found"
- },
- "500" : {
- "description" : "Unexpected Runtime error"
- }
- }
- }
- }
- },
- "definitions" : {
- "CMSMessage" : {
- "type" : "object",
- "properties" : {
- "domain" : {
- "type" : "string",
- "description" : "Schedule domain : ChangeManagement"
- },
- "scheduleId" : {
- "type" : "string",
- "description" : "Schedule id that must be unique within the domain. Use of UUID is highly recommended."
- },
- "scheduleName" : {
- "type" : "string",
- "description" : "User provided name of the schedule (deaults to scheduleId"
- },
- "userId" : {
- "type" : "string",
- "description" : "ATTUID of the user requesting the schedule."
- },
- "domainData" : {
- "type" : "array",
- "description" : "Domain data as name value/pairs. (i.e. CallbackUrl, CallbackData, WorkflowName)",
- "items" : {
- "type" : "object",
- "additionalProperties" : {
- "type" : "string"
- }
- }
- },
- "schedulingInfo" : {
- "$ref" : "#/definitions/Change Management Scheduling Info"
- }
- }
- },
- "CMSRequestError" : {
- "type" : "object",
- "properties" : {
- "requestError" : {
- "$ref" : "#/definitions/RequestError"
- }
- }
- },
- "CMSchedule" : {
- "type" : "object",
- "properties" : {
- "groupId" : {
- "type" : "string"
- },
- "startTime" : {
- "type" : "string"
- },
- "finishTime" : {
- "type" : "string"
- },
- "latestInstanceStartTime" : {
- "type" : "string"
- },
- "node" : {
- "type" : "array",
- "items" : {
- "type" : "string"
- }
- }
- }
- },
- "Change Management Group" : {
- "type" : "object",
- "properties" : {
- "finishTime" : {
- "type" : "string",
- "description" : "Date/time by which all of the workflows should be completed."
- },
- "groupId" : {
- "type" : "string",
- "description" : "Name of the group of VNFs to be scheduled"
- },
- "lastInstanceStartTime" : {
- "type" : "string",
- "description" : "The latest date/time by which a workflow is to be started."
- },
- "startTime" : {
- "type" : "string",
- "description" : "The date/time when workflows are to be started."
- },
- "additionalDurationInSecs" : {
- "type" : "integer",
- "format" : "int32",
- "description" : "Time added to the workflow interval to allow for rollback in case of failure."
- },
- "concurrencyLimit" : {
- "type" : "integer",
- "format" : "int32",
- "description" : "The maximum number of workflows that should be started simultaneiously."
- },
- "normalDurationInSecs" : {
- "type" : "integer",
- "format" : "int32",
- "description" : "Expected duration of a successful workflow execution."
- },
- "policyId" : {
- "type" : "string",
- "description" : "The name of the schedule optimization policy used by the change management schedule optimizer."
- },
- "changeManagementSchedules" : {
- "type" : "array",
- "description" : "The list of VNF workflows scheduled.",
- "items" : {
- "$ref" : "#/definitions/Change Management Schedule"
- }
- }
- },
- "description" : "Scheduling critirea for a group of VNFs"
- },
- "Change Management Schedule" : {
- "type" : "object",
- "properties" : {
- "tmChangeId" : {
- "type" : "string",
- "description" : "TM Change Id"
- },
- "tmStatus" : {
- "type" : "string",
- "description" : "TM ticket status",
- "enum" : [ "<null>", "Closed" ]
- },
- "tmApprovalStatus" : {
- "type" : "string",
- "description" : "TM ticket approval status",
- "enum" : [ "<null>", "Approved" ]
- },
- "finishTime" : {
- "type" : "string",
- "description" : "Anticipated time of completion based upon start time and duration"
- },
- "startTime" : {
- "type" : "string",
- "description" : "Start time of this VNF workflow assigned by Scheduler based upon the group start time returned by the optimizer and concurrency."
- },
- "status" : {
- "type" : "string",
- "description" : "Status of the VNF.",
- "enum" : [ "See CMSStatusEnum" ]
- },
- "vnfName" : {
- "type" : "string",
- "description" : "Name of the VNF."
- },
- "dispatchTime" : {
- "type" : "string",
- "description" : "Actual time the VNF workflow was dispatched."
- },
- "executionCompletedTime" : {
- "type" : "string",
- "description" : "Actual time the VNF workflow execution was completed as reported by MSO."
- },
- "msoRequestId" : {
- "type" : "string",
- "description" : "MSO Request ID of the workflow returned at dispatch time."
- },
- "msoStatus" : {
- "type" : "string",
- "description" : "Final MSO status.",
- "enum" : [ "COMPLETED", "FAILED" ]
- },
- "msoMessage" : {
- "type" : "string",
- "description" : "MSO final status message."
- },
- "statusMessage" : {
- "type" : "string",
- "description" : "Scheduler status message."
- },
- "msoTime" : {
- "type" : "string",
- "description" : "Time of last poll for MSO status."
- }
- },
- "description" : "VNF details for Change Management Schedule"
- },
- "Change Management Scheduling Info" : {
- "type" : "object",
- "properties" : {
- "normalDurationInSeconds" : {
- "type" : "integer",
- "format" : "int32",
- "description" : "Expected duration (in seconds) of a successful execution of a single VNF change."
- },
- "additionalDurationInSeconds" : {
- "type" : "integer",
- "format" : "int32",
- "description" : "Additional duration (in seconds) to be added to support backout of an unsuccessful VNF change."
- },
- "concurrencyLimit" : {
- "type" : "integer",
- "format" : "int32",
- "description" : "Maximum number of VNF changes to schedule concurrently"
- },
- "policyId" : {
- "type" : "string",
- "description" : "Name of schedule optimization policy used by the change management cmso optimizer to determine available time slot"
- },
- "vnfDetails" : {
- "type" : "array",
- "description" : "Lists of the VNFs to be changed and the desired change windows",
- "items" : {
- "$ref" : "#/definitions/VNF Details"
- }
- }
- },
- "description" : "Details of schedule being requested"
- },
- "Change Window" : {
- "type" : "object",
- "properties" : {
- "startTime" : {
- "type" : "string",
- "description" : "Earliest time that a set of changes may begin."
- },
- "endTime" : {
- "type" : "string",
- "description" : "Latest time by which all changes must be completed"
- }
- },
- "description" : "Time window within which the scheduler optimizer can schedule the changes for the group of NVFs"
- },
- "CmDetailsMessage" : {
- "type" : "object",
- "properties" : {
- "vnfName" : {
- "type" : "string",
- "description" : "Name of the VNF."
- },
- "status" : {
- "type" : "string",
- "description" : "Status of the VNF.",
- "enum" : [ "See CMSStatusEnum" ]
- },
- "tmChangeId" : {
- "type" : "string",
- "description" : "TM Change Id"
- },
- "tmStatus" : {
- "type" : "string",
- "description" : "TM ticket status",
- "enum" : [ "<null>", "Closed" ]
- },
- "tmApprovalStatus" : {
- "type" : "string",
- "description" : "TM ticket approval status",
- "enum" : [ "<null>", "Approved" ]
- },
- "startTime" : {
- "type" : "string",
- "description" : "Start time of this VNF workflow assigned by Scheduler based upon the group start time returned by the optimizer and concurrency."
- },
- "finishTime" : {
- "type" : "string",
- "description" : "Anticipated time of completion based upon start time and duration"
- },
- "groupId" : {
- "type" : "string",
- "description" : "Name of the group of VNFs to be scheduled"
- },
- "lastInstanceStartTime" : {
- "type" : "string",
- "description" : "The latest date/time by which a workflow is to be started."
- },
- "policyId" : {
- "type" : "string",
- "description" : "Time of last poll for MSO status."
- },
- "dispatchTime" : {
- "type" : "string",
- "description" : "Actual time the VNF workflow was dispatched."
- },
- "executionCompletedTime" : {
- "type" : "string",
- "description" : "Actual time the VNF workflow execution was completed as reported by MSO."
- },
- "msoRequestId" : {
- "type" : "string",
- "description" : "MSO Request ID of the workflow returned at dispatch time."
- },
- "msoStatus" : {
- "type" : "string",
- "description" : "Final MSO status.",
- "enum" : [ "COMPLETED", "FAILED" ]
- },
- "msoMessage" : {
- "type" : "string",
- "description" : "MSO final status message."
- },
- "statusMessage" : {
- "type" : "string",
- "description" : "Scheduler status message."
- },
- "msoTime" : {
- "type" : "string",
- "description" : "Time of last poll for MSO status."
- },
- "scheduleRequest" : {
- "$ref" : "#/definitions/Schedule"
- },
- "approvals" : {
- "type" : "array",
- "items" : {
- "$ref" : "#/definitions/Schedule Approval Request"
- }
- },
- "schedulesId" : {
- "type" : "integer",
- "format" : "int32"
- }
- }
- },
- "Domain data" : {
- "type" : "object",
- "properties" : {
- "name" : {
- "type" : "string"
- },
- "value" : {
- "type" : "string"
- }
- },
- "description" : "Domain specific data represented as name/value pairs"
- },
- "HealthCheckComponent" : {
- "type" : "object",
- "properties" : {
- "name" : {
- "type" : "string"
- },
- "url" : {
- "type" : "string"
- },
- "status" : {
- "type" : "string"
- },
- "healthy" : {
- "type" : "boolean"
- }
- }
- },
- "HealthCheckMessage" : {
- "type" : "object",
- "properties" : {
- "healthy" : {
- "type" : "boolean"
- },
- "buildInfo" : {
- "type" : "string"
- },
- "currentTime" : {
- "type" : "string"
- },
- "hostname" : {
- "type" : "string"
- },
- "components" : {
- "type" : "array",
- "items" : {
- "$ref" : "#/definitions/HealthCheckComponent"
- }
- }
- }
- },
- "RequestError" : {
- "type" : "object",
- "properties" : {
- "messageId" : {
- "type" : "string"
- },
- "text" : {
- "type" : "string"
- },
- "variables" : {
- "type" : "array",
- "items" : {
- "type" : "string"
- }
- }
- }
- },
- "Response from schedule optimizer" : {
- "type" : "object",
- "properties" : {
- "transactionId" : {
- "type" : "string",
- "description" : "Unique id of optimization request."
- },
- "scheduleId" : {
- "type" : "string",
- "description" : "Schedule id for which the optimization request was executed."
- },
- "requestState" : {
- "type" : "string",
- "description" : "State of the request as reported by the optimizer."
- },
- "status" : {
- "type" : "string",
- "description" : "Status of the request."
- },
- "description" : {
- "type" : "string",
- "description" : "Description of the request status."
- },
- "schedule" : {
- "type" : "array",
- "description" : "List of schedules returned, one per group. Only 1 group supported at this time.",
- "items" : {
- "$ref" : "#/definitions/CMSchedule"
- }
- }
- },
- "description" : "Asynchronous response to schedule oprimizer request."
- },
- "Schedule" : {
- "type" : "object",
- "properties" : {
- "createDateTime" : {
- "type" : "string",
- "description" : "Date/time schedule was created."
- },
- "optimizerDateTime" : {
- "type" : "string"
- },
- "optimizerMessage" : {
- "type" : "string"
- },
- "optimizerStatus" : {
- "type" : "string"
- },
- "optimizerReturnDateTime" : {
- "type" : "string"
- },
- "optimizerTransactionId" : {
- "type" : "string"
- },
- "schedule" : {
- "type" : "string"
- },
- "scheduleName" : {
- "type" : "string"
- },
- "scheduleInfo" : {
- "type" : "string"
- },
- "status" : {
- "type" : "string"
- },
- "userId" : {
- "type" : "string"
- },
- "domain" : {
- "type" : "string"
- },
- "deleteDateTime" : {
- "type" : "string"
- },
- "domainData" : {
- "type" : "array",
- "items" : {
- "$ref" : "#/definitions/Domain data"
- }
- },
- "scheduleApprovals" : {
- "type" : "array",
- "items" : {
- "$ref" : "#/definitions/Schedule Approval"
- }
- },
- "groups" : {
- "type" : "array",
- "items" : {
- "$ref" : "#/definitions/Change Management Group"
- }
- }
- }
- },
- "Schedule Approval" : {
- "type" : "object",
- "properties" : {
- "approvalDateTime" : {
- "type" : "string",
- "description" : "Date/time schedule time slot was accepted/rejected."
- },
- "status" : {
- "type" : "string",
- "description" : "Approval status.",
- "enum" : [ "Accepted", "Rejected" ]
- },
- "userId" : {
- "type" : "string",
- "description" : "ATTUID of the user accepting/rejecting the time slot."
- }
- },
- "description" : "Details of a schedule approval/rejection."
- },
- "Schedule Approval Request" : {
- "type" : "object",
- "properties" : {
- "approvalUserId" : {
- "type" : "string",
- "description" : "ATTUID of the user accepting/rejecting the time slot."
- },
- "approvalStatus" : {
- "type" : "string",
- "description" : "Approval status.",
- "enum" : [ "Accepted", "Rejected" ]
- },
- "approvalType" : {
- "type" : "string",
- "description" : "Type of approval.",
- "enum" : [ "Tier 2" ]
- },
- "approvalDateTime" : {
- "type" : "string",
- "format" : "date-time"
- }
- },
- "description" : "Request to accept or reject an optimized time slot."
- },
- "VNF Details" : {
- "type" : "object",
- "properties" : {
- "groupId" : {
- "type" : "string",
- "description" : "Name of the list of VNFs to be changed as a group"
- },
- "node" : {
- "type" : "array",
- "description" : "Lists of the VNF names to be changed",
- "items" : {
- "type" : "string"
- }
- },
- "changeWindow" : {
- "type" : "array",
- "description" : "Lists of desired change windows that the optimizer can select from. (Only 1 change window supported at this time)",
- "items" : {
- "$ref" : "#/definitions/Change Window"
- }
- }
- },
- "description" : "Details and scheduling criteria for the VNFs to be changed."
- }
- }
+{
+ "swagger" : "2.0",
+ "info" : {
+ "version" : "0.1.0-SNAPSHOT",
+ "title" : "cmso"
+ },
+ "basePath" : "/cmso",
+ "paths" : {
+ "/{apiVersion}/admin/{id}" : {
+ "get" : {
+ "summary" : "",
+ "description" : "Returns encrypted value of id.",
+ "operationId" : "exec",
+ "produces" : [ "text/plain" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1|v2",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "name" : "id",
+ "in" : "path",
+ "description" : "Identifier",
+ "required" : true,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "csv"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "schema" : {
+ "type" : "string"
+ }
+ },
+ "400" : {
+ "description" : "Request failed"
+ }
+ }
+ }
+ },
+ "/{apiVersion}/health" : {
+ "get" : {
+ "summary" : "",
+ "description" : "Returns health status of server.",
+ "operationId" : "healthCheck",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "name" : "checkInterfaces",
+ "in" : "query",
+ "description" : "Check Interfaces",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "boolean",
+ "default" : true
+ },
+ "collectionFormat" : "multi"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "schema" : {
+ "$ref" : "#/definitions/HealthCheckMessage"
+ }
+ },
+ "400" : {
+ "description" : "Not healthy",
+ "schema" : {
+ "$ref" : "#/definitions/HealthCheckMessage"
+ }
+ }
+ }
+ }
+ },
+ "/{apiVersion}/optimizerCallback" : {
+ "post" : {
+ "summary" : "",
+ "description" : "Processes optimizer results callback to a Pending Optimization schedule.",
+ "operationId" : "sniroCallback",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "in" : "body",
+ "name" : "body",
+ "description" : "Return schedules > lastScheduleId",
+ "required" : false,
+ "schema" : {
+ "$ref" : "#/definitions/Response from schedule optimizer"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK"
+ },
+ "500" : {
+ "description" : "Unexpected Runtime error"
+ }
+ }
+ }
+ },
+ "/{apiVersion}/schedules" : {
+ "get" : {
+ "summary" : "",
+ "description" : "Returns a list of Scheduler Requests based upon the filter criteria.",
+ "operationId" : "searchScheduleRequests",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "name" : "includeDetails",
+ "in" : "query",
+ "description" : "Include details",
+ "required" : false,
+ "type" : "boolean",
+ "default" : false
+ }, {
+ "name" : "scheduleId",
+ "in" : "query",
+ "description" : "Schedule identifier",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "scheduleName",
+ "in" : "query",
+ "description" : "Schedule name",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "userId",
+ "in" : "query",
+ "description" : "SCheduler creator User id of ",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "status",
+ "in" : "query",
+ "description" : "Schedule status",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "createDateTime",
+ "in" : "query",
+ "description" : "Creation date and time (<low date>[,<hi date>])",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "optimizerStatus",
+ "in" : "query",
+ "description" : "Optimizer status",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "WorkflowName",
+ "in" : "query",
+ "description" : "Workflow",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "schema" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/Schedule"
+ }
+ }
+ },
+ "404" : {
+ "description" : "No records found",
+ "schema" : {
+ "$ref" : "#/definitions/CMSRequestError"
+ }
+ },
+ "500" : {
+ "description" : "Unexpected Runtime error"
+ }
+ }
+ }
+ },
+ "/{apiVersion}/schedules/scheduleDetails" : {
+ "get" : {
+ "summary" : "",
+ "description" : "Returns a list of Schedule request details based upon the filter criteria.",
+ "operationId" : "searchScheduleRequestDetails",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "name" : "request.scheduleId",
+ "in" : "query",
+ "description" : "Schedule identifier",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "request.scheduleName",
+ "in" : "query",
+ "description" : "Schedule name",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "request.userId",
+ "in" : "query",
+ "description" : "Scheduler creator User id of ",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "request.status",
+ "in" : "query",
+ "description" : "Schedule status",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "request.createDateTime",
+ "in" : "query",
+ "description" : "Creation date and time (<low date>[,<hi date>])",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "request.optimizerStatus",
+ "in" : "query",
+ "description" : "Optimizer status",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "request.approvalUserId",
+ "in" : "query",
+ "description" : "Request Approval user id",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "request.approvalStatus",
+ "in" : "query",
+ "description" : "Request Approval status",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "request.approvalType",
+ "in" : "query",
+ "description" : "Request Approval type",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "WorkflowName",
+ "in" : "query",
+ "description" : "Workflow",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "vnfName",
+ "in" : "query",
+ "description" : "VNF Name",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "vnfId",
+ "in" : "query",
+ "description" : "VNF Id",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "vnfStatus",
+ "in" : "query",
+ "description" : "VNF Status",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "startTime",
+ "in" : "query",
+ "description" : "Start time <low>,<high>",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "finishTime",
+ "in" : "query",
+ "description" : "Finish time <low>,<high>",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "lastInstanceTime",
+ "in" : "query",
+ "description" : "Last instance start time <low>,<high>",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "tmChangeId",
+ "in" : "query",
+ "description" : "TM Change Ticket Change Id",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "maxSchedules",
+ "in" : "query",
+ "description" : "Maximum number of schedules to return",
+ "required" : false,
+ "type" : "integer",
+ "format" : "int32"
+ }, {
+ "name" : "lastScheduleId",
+ "in" : "query",
+ "description" : "Return schedules > lastScheduleId",
+ "required" : false,
+ "type" : "string"
+ }, {
+ "name" : "request.concurrencyLimit",
+ "in" : "query",
+ "description" : "Return concurrencyLimit",
+ "required" : false,
+ "type" : "integer",
+ "format" : "int32"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "schema" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/CmDetailsMessage"
+ }
+ }
+ },
+ "404" : {
+ "description" : "No records found",
+ "schema" : {
+ "$ref" : "#/definitions/CMSRequestError"
+ }
+ },
+ "500" : {
+ "description" : "Unexpected Runtime error"
+ }
+ }
+ }
+ },
+ "/{apiVersion}/schedules/{scheduleId}" : {
+ "get" : {
+ "summary" : "",
+ "description" : "Retrieve the schedule request for scheduleId",
+ "operationId" : "getScheduleRequestInfo",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "name" : "scheduleId",
+ "in" : "path",
+ "description" : "Schedule id to uniquely identify the schedule info being retrieved.",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "schema" : {
+ "$ref" : "#/definitions/Schedule"
+ }
+ },
+ "404" : {
+ "description" : "No record found"
+ },
+ "500" : {
+ "description" : "Unexpected Runtime error"
+ }
+ }
+ },
+ "post" : {
+ "summary" : "",
+ "description" : "Creates a schedule request for scheduleId",
+ "operationId" : "createScheduleRequest",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "name" : "scheduleId",
+ "in" : "path",
+ "description" : "Schedule id to uniquely identify the schedule request being created.",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "in" : "body",
+ "name" : "body",
+ "description" : "Data for creating a schedule request for the given schedule id",
+ "required" : false,
+ "schema" : {
+ "$ref" : "#/definitions/CMSMessage"
+ }
+ } ],
+ "responses" : {
+ "202" : {
+ "description" : "Schedule request accepted for optimization."
+ },
+ "409" : {
+ "description" : "Schedule request already exists for this schedule id.",
+ "schema" : {
+ "$ref" : "#/definitions/CMSRequestError"
+ }
+ },
+ "500" : {
+ "description" : "Unexpected Runtime error"
+ }
+ }
+ },
+ "delete" : {
+ "summary" : "",
+ "description" : "Cancels the schedule request for scheduleId",
+ "operationId" : "deleteScheduleRequest",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "name" : "scheduleId",
+ "in" : "path",
+ "description" : "Schedule id to uniquely identify the schedule request being deleted.",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "204" : {
+ "description" : "Delete successful"
+ },
+ "404" : {
+ "description" : "No record found",
+ "schema" : {
+ "$ref" : "#/definitions/CMSRequestError"
+ }
+ },
+ "500" : {
+ "description" : "Unexpected Runtime error"
+ }
+ }
+ }
+ },
+ "/{apiVersion}/schedules/{scheduleId}/approvals" : {
+ "post" : {
+ "summary" : "",
+ "description" : "Adds an accept/reject approval status to the schedule request identified by scheduleId",
+ "operationId" : "approveScheduleRequest",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "name" : "scheduleId",
+ "in" : "path",
+ "description" : "Schedule id to uniquely identify the schedule request being accepted or rejected.",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "in" : "body",
+ "name" : "body",
+ "description" : "Accept or reject approval message",
+ "required" : false,
+ "schema" : {
+ "$ref" : "#/definitions/Schedule Approval Request"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK"
+ },
+ "404" : {
+ "description" : "No record found"
+ },
+ "500" : {
+ "description" : "Unexpected Runtime error"
+ }
+ }
+ }
+ }
+ },
+ "definitions" : {
+ "CMSMessage" : {
+ "type" : "object",
+ "properties" : {
+ "domain" : {
+ "type" : "string",
+ "description" : "Schedule domain : ChangeManagement"
+ },
+ "scheduleId" : {
+ "type" : "string",
+ "description" : "Schedule id that must be unique within the domain. Use of UUID is highly recommended."
+ },
+ "scheduleName" : {
+ "type" : "string",
+ "description" : "User provided name of the schedule (deaults to scheduleId"
+ },
+ "userId" : {
+ "type" : "string",
+ "description" : "ATTUID of the user requesting the schedule."
+ },
+ "domainData" : {
+ "type" : "array",
+ "description" : "Domain data as name value/pairs. (i.e. CallbackUrl, CallbackData, WorkflowName)",
+ "items" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "string"
+ }
+ }
+ },
+ "schedulingInfo" : {
+ "$ref" : "#/definitions/Change Management Scheduling Info"
+ }
+ }
+ },
+ "CMSRequestError" : {
+ "type" : "object",
+ "properties" : {
+ "requestError" : {
+ "$ref" : "#/definitions/RequestError"
+ }
+ }
+ },
+ "CMSchedule" : {
+ "type" : "object",
+ "properties" : {
+ "groupId" : {
+ "type" : "string"
+ },
+ "startTime" : {
+ "type" : "string"
+ },
+ "finishTime" : {
+ "type" : "string"
+ },
+ "latestInstanceStartTime" : {
+ "type" : "string"
+ },
+ "node" : {
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ }
+ }
+ }
+ },
+ "Change Management Group" : {
+ "type" : "object",
+ "properties" : {
+ "finishTime" : {
+ "type" : "string",
+ "description" : "Date/time by which all of the workflows should be completed."
+ },
+ "groupId" : {
+ "type" : "string",
+ "description" : "Name of the group of VNFs to be scheduled"
+ },
+ "lastInstanceStartTime" : {
+ "type" : "string",
+ "description" : "The latest date/time by which a workflow is to be started."
+ },
+ "startTime" : {
+ "type" : "string",
+ "description" : "The date/time when workflows are to be started."
+ },
+ "additionalDurationInSecs" : {
+ "type" : "integer",
+ "format" : "int32",
+ "description" : "Time added to the workflow interval to allow for rollback in case of failure."
+ },
+ "concurrencyLimit" : {
+ "type" : "integer",
+ "format" : "int32",
+ "description" : "The maximum number of workflows that should be started simultaneiously."
+ },
+ "normalDurationInSecs" : {
+ "type" : "integer",
+ "format" : "int32",
+ "description" : "Expected duration of a successful workflow execution."
+ },
+ "policyId" : {
+ "type" : "string",
+ "description" : "The name of the schedule optimization policy used by the change management schedule optimizer."
+ },
+ "changeManagementSchedules" : {
+ "type" : "array",
+ "description" : "The list of VNF workflows scheduled.",
+ "items" : {
+ "$ref" : "#/definitions/Change Management Schedule"
+ }
+ }
+ },
+ "description" : "Scheduling critirea for a group of VNFs"
+ },
+ "Change Management Schedule" : {
+ "type" : "object",
+ "properties" : {
+ "tmChangeId" : {
+ "type" : "string",
+ "description" : "TM Change Id"
+ },
+ "tmStatus" : {
+ "type" : "string",
+ "description" : "TM ticket status",
+ "enum" : [ "<null>", "Closed" ]
+ },
+ "tmApprovalStatus" : {
+ "type" : "string",
+ "description" : "TM ticket approval status",
+ "enum" : [ "<null>", "Approved" ]
+ },
+ "finishTime" : {
+ "type" : "string",
+ "description" : "Anticipated time of completion based upon start time and duration"
+ },
+ "startTime" : {
+ "type" : "string",
+ "description" : "Start time of this VNF workflow assigned by Scheduler based upon the group start time returned by the optimizer and concurrency."
+ },
+ "status" : {
+ "type" : "string",
+ "description" : "Status of the VNF.",
+ "enum" : [ "See CMSStatusEnum" ]
+ },
+ "vnfName" : {
+ "type" : "string",
+ "description" : "Name of the VNF."
+ },
+ "dispatchTime" : {
+ "type" : "string",
+ "description" : "Actual time the VNF workflow was dispatched."
+ },
+ "executionCompletedTime" : {
+ "type" : "string",
+ "description" : "Actual time the VNF workflow execution was completed as reported by MSO."
+ },
+ "msoRequestId" : {
+ "type" : "string",
+ "description" : "MSO Request ID of the workflow returned at dispatch time."
+ },
+ "msoStatus" : {
+ "type" : "string",
+ "description" : "Final MSO status.",
+ "enum" : [ "COMPLETED", "FAILED" ]
+ },
+ "msoMessage" : {
+ "type" : "string",
+ "description" : "MSO final status message."
+ },
+ "statusMessage" : {
+ "type" : "string",
+ "description" : "Scheduler status message."
+ },
+ "msoTime" : {
+ "type" : "string",
+ "description" : "Time of last poll for MSO status."
+ }
+ },
+ "description" : "VNF details for Change Management Schedule"
+ },
+ "Change Management Scheduling Info" : {
+ "type" : "object",
+ "properties" : {
+ "normalDurationInSeconds" : {
+ "type" : "integer",
+ "format" : "int32",
+ "description" : "Expected duration (in seconds) of a successful execution of a single VNF change."
+ },
+ "additionalDurationInSeconds" : {
+ "type" : "integer",
+ "format" : "int32",
+ "description" : "Additional duration (in seconds) to be added to support backout of an unsuccessful VNF change."
+ },
+ "concurrencyLimit" : {
+ "type" : "integer",
+ "format" : "int32",
+ "description" : "Maximum number of VNF changes to schedule concurrently"
+ },
+ "policyId" : {
+ "type" : "string",
+ "description" : "Name of schedule optimization policy used by the change management cmso optimizer to determine available time slot"
+ },
+ "vnfDetails" : {
+ "type" : "array",
+ "description" : "Lists of the VNFs to be changed and the desired change windows",
+ "items" : {
+ "$ref" : "#/definitions/VNF Details"
+ }
+ }
+ },
+ "description" : "Details of schedule being requested"
+ },
+ "Change Window" : {
+ "type" : "object",
+ "properties" : {
+ "startTime" : {
+ "type" : "string",
+ "description" : "Earliest time that a set of changes may begin."
+ },
+ "endTime" : {
+ "type" : "string",
+ "description" : "Latest time by which all changes must be completed"
+ }
+ },
+ "description" : "Time window within which the scheduler optimizer can schedule the changes for the group of NVFs"
+ },
+ "CmDetailsMessage" : {
+ "type" : "object",
+ "properties" : {
+ "vnfName" : {
+ "type" : "string",
+ "description" : "Name of the VNF."
+ },
+ "status" : {
+ "type" : "string",
+ "description" : "Status of the VNF.",
+ "enum" : [ "See CMSStatusEnum" ]
+ },
+ "tmChangeId" : {
+ "type" : "string",
+ "description" : "TM Change Id"
+ },
+ "tmStatus" : {
+ "type" : "string",
+ "description" : "TM ticket status",
+ "enum" : [ "<null>", "Closed" ]
+ },
+ "tmApprovalStatus" : {
+ "type" : "string",
+ "description" : "TM ticket approval status",
+ "enum" : [ "<null>", "Approved" ]
+ },
+ "startTime" : {
+ "type" : "string",
+ "description" : "Start time of this VNF workflow assigned by Scheduler based upon the group start time returned by the optimizer and concurrency."
+ },
+ "finishTime" : {
+ "type" : "string",
+ "description" : "Anticipated time of completion based upon start time and duration"
+ },
+ "groupId" : {
+ "type" : "string",
+ "description" : "Name of the group of VNFs to be scheduled"
+ },
+ "lastInstanceStartTime" : {
+ "type" : "string",
+ "description" : "The latest date/time by which a workflow is to be started."
+ },
+ "policyId" : {
+ "type" : "string",
+ "description" : "Time of last poll for MSO status."
+ },
+ "dispatchTime" : {
+ "type" : "string",
+ "description" : "Actual time the VNF workflow was dispatched."
+ },
+ "executionCompletedTime" : {
+ "type" : "string",
+ "description" : "Actual time the VNF workflow execution was completed as reported by MSO."
+ },
+ "msoRequestId" : {
+ "type" : "string",
+ "description" : "MSO Request ID of the workflow returned at dispatch time."
+ },
+ "msoStatus" : {
+ "type" : "string",
+ "description" : "Final MSO status.",
+ "enum" : [ "COMPLETED", "FAILED" ]
+ },
+ "msoMessage" : {
+ "type" : "string",
+ "description" : "MSO final status message."
+ },
+ "statusMessage" : {
+ "type" : "string",
+ "description" : "Scheduler status message."
+ },
+ "msoTime" : {
+ "type" : "string",
+ "description" : "Time of last poll for MSO status."
+ },
+ "scheduleRequest" : {
+ "$ref" : "#/definitions/Schedule"
+ },
+ "approvals" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/Schedule Approval Request"
+ }
+ },
+ "schedulesId" : {
+ "type" : "integer",
+ "format" : "int32"
+ }
+ }
+ },
+ "Domain data" : {
+ "type" : "object",
+ "properties" : {
+ "name" : {
+ "type" : "string"
+ },
+ "value" : {
+ "type" : "string"
+ }
+ },
+ "description" : "Domain specific data represented as name/value pairs"
+ },
+ "HealthCheckComponent" : {
+ "type" : "object",
+ "properties" : {
+ "name" : {
+ "type" : "string"
+ },
+ "url" : {
+ "type" : "string"
+ },
+ "status" : {
+ "type" : "string"
+ },
+ "healthy" : {
+ "type" : "boolean"
+ }
+ }
+ },
+ "HealthCheckMessage" : {
+ "type" : "object",
+ "properties" : {
+ "healthy" : {
+ "type" : "boolean"
+ },
+ "buildInfo" : {
+ "type" : "string"
+ },
+ "currentTime" : {
+ "type" : "string"
+ },
+ "hostname" : {
+ "type" : "string"
+ },
+ "components" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/HealthCheckComponent"
+ }
+ }
+ }
+ },
+ "RequestError" : {
+ "type" : "object",
+ "properties" : {
+ "messageId" : {
+ "type" : "string"
+ },
+ "text" : {
+ "type" : "string"
+ },
+ "variables" : {
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ }
+ }
+ }
+ },
+ "Response from schedule optimizer" : {
+ "type" : "object",
+ "properties" : {
+ "transactionId" : {
+ "type" : "string",
+ "description" : "Unique id of optimization request."
+ },
+ "scheduleId" : {
+ "type" : "string",
+ "description" : "Schedule id for which the optimization request was executed."
+ },
+ "requestState" : {
+ "type" : "string",
+ "description" : "State of the request as reported by the optimizer."
+ },
+ "status" : {
+ "type" : "string",
+ "description" : "Status of the request."
+ },
+ "description" : {
+ "type" : "string",
+ "description" : "Description of the request status."
+ },
+ "schedule" : {
+ "type" : "array",
+ "description" : "List of schedules returned, one per group. Only 1 group supported at this time.",
+ "items" : {
+ "$ref" : "#/definitions/CMSchedule"
+ }
+ }
+ },
+ "description" : "Asynchronous response to schedule oprimizer request."
+ },
+ "Schedule" : {
+ "type" : "object",
+ "properties" : {
+ "createDateTime" : {
+ "type" : "string",
+ "description" : "Date/time schedule was created."
+ },
+ "optimizerDateTime" : {
+ "type" : "string"
+ },
+ "optimizerMessage" : {
+ "type" : "string"
+ },
+ "optimizerStatus" : {
+ "type" : "string"
+ },
+ "optimizerReturnDateTime" : {
+ "type" : "string"
+ },
+ "optimizerTransactionId" : {
+ "type" : "string"
+ },
+ "schedule" : {
+ "type" : "string"
+ },
+ "scheduleName" : {
+ "type" : "string"
+ },
+ "scheduleInfo" : {
+ "type" : "string"
+ },
+ "status" : {
+ "type" : "string"
+ },
+ "userId" : {
+ "type" : "string"
+ },
+ "domain" : {
+ "type" : "string"
+ },
+ "deleteDateTime" : {
+ "type" : "string"
+ },
+ "domainData" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/Domain data"
+ }
+ },
+ "scheduleApprovals" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/Schedule Approval"
+ }
+ },
+ "groups" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/Change Management Group"
+ }
+ }
+ }
+ },
+ "Schedule Approval" : {
+ "type" : "object",
+ "properties" : {
+ "approvalDateTime" : {
+ "type" : "string",
+ "description" : "Date/time schedule time slot was accepted/rejected."
+ },
+ "status" : {
+ "type" : "string",
+ "description" : "Approval status.",
+ "enum" : [ "Accepted", "Rejected" ]
+ },
+ "userId" : {
+ "type" : "string",
+ "description" : "ATTUID of the user accepting/rejecting the time slot."
+ }
+ },
+ "description" : "Details of a schedule approval/rejection."
+ },
+ "Schedule Approval Request" : {
+ "type" : "object",
+ "properties" : {
+ "approvalUserId" : {
+ "type" : "string",
+ "description" : "ATTUID of the user accepting/rejecting the time slot."
+ },
+ "approvalStatus" : {
+ "type" : "string",
+ "description" : "Approval status.",
+ "enum" : [ "Accepted", "Rejected" ]
+ },
+ "approvalType" : {
+ "type" : "string",
+ "description" : "Type of approval.",
+ "enum" : [ "Tier 2" ]
+ },
+ "approvalDateTime" : {
+ "type" : "string",
+ "format" : "date-time"
+ }
+ },
+ "description" : "Request to accept or reject an optimized time slot."
+ },
+ "VNF Details" : {
+ "type" : "object",
+ "properties" : {
+ "groupId" : {
+ "type" : "string",
+ "description" : "Name of the list of VNFs to be changed as a group"
+ },
+ "node" : {
+ "type" : "array",
+ "description" : "Lists of the VNF names to be changed",
+ "items" : {
+ "type" : "string"
+ }
+ },
+ "changeWindow" : {
+ "type" : "array",
+ "description" : "Lists of desired change windows that the optimizer can select from. (Only 1 change window supported at this time)",
+ "items" : {
+ "$ref" : "#/definitions/Change Window"
+ }
+ }
+ },
+ "description" : "Details and scheduling criteria for the VNFs to be changed."
+ }
+ }
} \ No newline at end of file
diff --git a/cmso-service/src/test/java/org/onap/optf/cmso/service/rs/CMSOServiceImplTest.java b/cmso-service/src/test/java/org/onap/optf/cmso/service/rs/CMSOServiceImplTest.java
index c8039ad..b989a73 100644
--- a/cmso-service/src/test/java/org/onap/optf/cmso/service/rs/CMSOServiceImplTest.java
+++ b/cmso-service/src/test/java/org/onap/optf/cmso/service/rs/CMSOServiceImplTest.java
@@ -1,27 +1,27 @@
/*
- * Copyright © 2017-2018 AT&T Intellectual Property.
- * Modifications Copyright © 2018 IBM.
- *
+ * Copyright © 2018 AT&T Intellectual Property.
+ * Modifications Copyright © 2018 IBM.
+ *
* 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.
* See the License for the specific language governing permissions and
* limitations under the License.
- *
- *
+ *
+ *
* Unless otherwise specified, all documentation contained herein is licensed
* under the Creative Commons License, Attribution 4.0 Intl. (the "License");
* you may not use this documentation except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* https://creativecommons.org/licenses/by/4.0/
- *
+ *
* Unless required by applicable law or agreed to in writing, documentation
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -55,7 +55,7 @@ import scala.collection.mutable.StringBuilder;
public class CMSOServiceImplTest {
@Autowired
- CMSOServiceImpl cMSOServiceImpl;
+ CMSOService cMSOServiceImpl;
@Autowired
private TestEntityManager entityManager;