From 9ecd6e7fb953fa581f7900c11f6b85856073da24 Mon Sep 17 00:00:00 2001 From: kaixiliu Date: Tue, 16 May 2023 10:21:45 +0800 Subject: Modify the intent report model and create a table Issue-ID: USECASEUI-812 Signed-off-by: kaixiliu Change-Id: I33221660b76dd54306fb447d29d60fc5faeb0617 --- .../bean/models/FulfillmentInfo.java | 3 +++ .../bean/models/FulfillmentOperation.java | 25 ++++++++++++++++++++++ .../intentanalysis/bean/models/IntentReport.java | 3 +-- .../bean/models/IntentReportFulfillmentInfo.java | 25 ++++++++++++++++++++++ .../controller/IntentReportController.java | 9 +++++--- .../service/ComponentNotificationService.java | 4 ++-- .../impl/ComponentNotificationServiceImpl.java | 12 +++++++---- .../src/main/resources/intent-analysis-init.sql | 23 +++++++++++++++++++- 8 files changed, 92 insertions(+), 12 deletions(-) create mode 100644 intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/bean/models/FulfillmentOperation.java create mode 100644 intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/bean/models/IntentReportFulfillmentInfo.java diff --git a/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/bean/models/FulfillmentInfo.java b/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/bean/models/FulfillmentInfo.java index dbd908e..ea899b2 100644 --- a/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/bean/models/FulfillmentInfo.java +++ b/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/bean/models/FulfillmentInfo.java @@ -20,6 +20,8 @@ import lombok.Data; import org.onap.usecaseui.intentanalysis.bean.enums.FulfillmentStatus; import org.onap.usecaseui.intentanalysis.bean.enums.NotFulfilledState; +import java.util.List; + @Data public class FulfillmentInfo { @@ -33,4 +35,5 @@ public class FulfillmentInfo { private String achieveValue; + private List objectInstances; } diff --git a/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/bean/models/FulfillmentOperation.java b/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/bean/models/FulfillmentOperation.java new file mode 100644 index 0000000..58a5623 --- /dev/null +++ b/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/bean/models/FulfillmentOperation.java @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2023 CMCC, Inc. and others. All rights reserved. + * + * 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. + */ + +package org.onap.usecaseui.intentanalysis.bean.models; + +import lombok.Data; + +@Data +public class FulfillmentOperation extends FulfillmentInfo { + //Assurance or modifyBW + private String operation; +} diff --git a/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/bean/models/IntentReport.java b/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/bean/models/IntentReport.java index 5dfc7a8..69ad2f4 100644 --- a/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/bean/models/IntentReport.java +++ b/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/bean/models/IntentReport.java @@ -25,6 +25,5 @@ public class IntentReport { private String intentReportId; private String intentReference; private List fulfillmentInfos; - private List objectInstance; - private Date reportTime; + private String reportTime; } diff --git a/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/bean/models/IntentReportFulfillmentInfo.java b/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/bean/models/IntentReportFulfillmentInfo.java new file mode 100644 index 0000000..ee3bd4e --- /dev/null +++ b/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/bean/models/IntentReportFulfillmentInfo.java @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2023 CMCC, Inc. and others. All rights reserved. + * + * 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. + */ + +package org.onap.usecaseui.intentanalysis.bean.models; + +import lombok.Data; + +@Data +public class IntentReportFulfillmentInfo extends FulfillmentInfo{ + // This id is the intentReportId of the associated intentReport + private String intentReportId; +} diff --git a/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/controller/IntentReportController.java b/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/controller/IntentReportController.java index a4dbb45..c9e82a6 100644 --- a/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/controller/IntentReportController.java +++ b/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/controller/IntentReportController.java @@ -26,6 +26,7 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.time.ZoneId; import java.util.ArrayList; @@ -47,18 +48,20 @@ public class IntentReportController { IntentReport report = new IntentReport(); report.setIntentReportId("12345"); report.setIntentReference("intentReort"); - report.setObjectInstance(Arrays.asList("instance1", "instance2", "instance3")); //report.setFulfillmentInfos(); - LocalDateTime now = LocalDateTime.now(); - report.setReportTime(Date.from( now.atZone( ZoneId.systemDefault()).toInstant())); + Date date = new Date(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyy-MM-dd HH:mm:ss"); + report.setReportTime(dateFormat.format(date)); FulfillmentInfo fu1= new FulfillmentInfo(); fu1.setFulfillmentId("fulfillmentInfo1"); fu1.setFulfillmentStatus(FulfillmentStatus.FULFILLED); + fu1.setObjectInstances(Arrays.asList("instance1", "instance2", "instance3")); FulfillmentInfo fu2= new FulfillmentInfo(); fu2.setFulfillmentId("fulfillmentInfo2"); fu2.setFulfillmentStatus(FulfillmentStatus.NOT_FULFILLED); fu2.setNotFulfilledState(NotFulfilledState.DEGRADED); fu2.setNotFulfilledReason("not fulfilled Reason"); + fu2.setObjectInstances(Arrays.asList("instance1", "instance2")); List list = new ArrayList<>(); list.add(fu1); list.add(fu2); diff --git a/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/service/ComponentNotificationService.java b/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/service/ComponentNotificationService.java index 29d7ab9..e10618f 100644 --- a/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/service/ComponentNotificationService.java +++ b/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/service/ComponentNotificationService.java @@ -15,8 +15,8 @@ */ package org.onap.usecaseui.intentanalysis.service; -import org.onap.usecaseui.intentanalysis.adapters.dmaap.NotificationEventModel; +import org.onap.usecaseui.intentanalysis.bean.models.FulfillmentOperation; public interface ComponentNotificationService { - void callBack(NotificationEventModel eventModel); + void callBack(FulfillmentOperation eventModel); } diff --git a/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/service/impl/ComponentNotificationServiceImpl.java b/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/service/impl/ComponentNotificationServiceImpl.java index ea492e1..59c4f45 100644 --- a/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/service/impl/ComponentNotificationServiceImpl.java +++ b/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/service/impl/ComponentNotificationServiceImpl.java @@ -16,18 +16,22 @@ package org.onap.usecaseui.intentanalysis.service.impl; import lombok.extern.slf4j.Slf4j; -import org.onap.usecaseui.intentanalysis.adapters.dmaap.NotificationEventModel; +import org.onap.usecaseui.intentanalysis.bean.models.FulfillmentOperation; import org.onap.usecaseui.intentanalysis.service.ComponentNotificationService; import org.springframework.stereotype.Service; + @Slf4j @Service -public class ComponentNotificationServiceImpl implements ComponentNotificationService { +public class ComponentNotificationServiceImpl implements ComponentNotificationService { + /** - * transform NoticationEventModel to fulfillment + * Generate a new FulfillmentInfo based on third-party FulfillmentOperation + * and save it in the database + * * @param eventModel */ @Override - public void callBack(NotificationEventModel eventModel) { + public void callBack(FulfillmentOperation eventModel) { log.info("callBack begin"); } } diff --git a/intentanalysis/src/main/resources/intent-analysis-init.sql b/intentanalysis/src/main/resources/intent-analysis-init.sql index ee7f8af..61ea45b 100644 --- a/intentanalysis/src/main/resources/intent-analysis-init.sql +++ b/intentanalysis/src/main/resources/intent-analysis-init.sql @@ -43,7 +43,8 @@ create table if not exists fulfillment_info( fulfillment_info_id varchar(255) primary key, fulfillment_info_status varchar(255), not_fulfilled_state varchar(255), - not_fulfilled_reason varchar(255) + not_fulfilled_reason varchar(255), + achieve_value varchar(255) ); create table if not exists state( @@ -80,3 +81,23 @@ create table if not exists intent_event_record( operate_type varchar (225), parent_id varchar(255) ); + +create table if not exists intent_report( + intent_report_id varchar(255) primary key, + intent_reference varchar(255), + report_time timestamptz + ); + +create table if not exists intent_report_fulfillment_info( + parent_id varchar(255), + fulfillment_info_id varchar(255), + fulfillment_info_status varchar(255), + not_fulfilled_state varchar(255), + not_fulfilled_reason varchar(255), + achieve_value varchar(255) + ); + +create table if not exists object_instance( + parent_id varchar(255), + object_instance varchar(255) + ); -- cgit 1.2.3-korg