diff options
author | decheng zhang <decheng.zhang@huawei.com> | 2022-09-26 14:42:41 -0400 |
---|---|---|
committer | decheng zhang <decheng.zhang@huawei.com> | 2022-09-27 10:28:58 -0400 |
commit | f747a433bc166881619f0253f6f12730b87caeea (patch) | |
tree | fc3b0f699a87acc4e77ba30d6d7358585b3e815f /components | |
parent | 5b14688bb9f5ca74a2cb0385a5f4c034d61e6773 (diff) |
[SLICEANALYSIS] Bugfix for sliceanalysis startup Exception, springcontext config issue
Remove duplicated SpringContextUtil
Issue-ID: DCAEGEN2-3270
Signed-off-by: decheng zhang <decheng.zhang@huawei.com>
Change-Id: I463e6f8c1b33db61f64b4fe5f3dc38a1bc94f0f6
Signed-off-by: decheng zhang <decheng.zhang@huawei.com>
Diffstat (limited to 'components')
3 files changed, 78 insertions, 129 deletions
diff --git a/components/slice-analysis-ms/ChangeLog.md b/components/slice-analysis-ms/ChangeLog.md index 417ad64d..aadb09b4 100644 --- a/components/slice-analysis-ms/ChangeLog.md +++ b/components/slice-analysis-ms/ChangeLog.md @@ -16,11 +16,13 @@ and this project adheres to [Semantic Versioning](http://semver.org/). - [DCAEGEN2-3255](https://jira.onap.org/browse/DCAEGEN2-3255) - Fix bug of application failed to start - [DCAEGEN2-3264](https://jira.onap.org/browse/DCAEGEN2-3264) - Fix bug that cll service instance info didn't get updated when a cll service is deleted - + - [DCAEGEN2-3240](https://jira.onap.org/browse/DCAEGEN2-3240) - Implement runtime service configuration - [DCAEGEN2-3273](https://jira.onap.org/browse/DCAEGEN2-3273) - Fix bug that config thread hang up when cbs policy is empty + - [DCAEGEN2-3270](https://jira.onap.org/browse/DCAEGEN2-3270) - Dcae slicems startup error + ## [1.1.4] - 2022/07/28 - [DCAEGEN2-3120](https://jira.onap.org/browse/DCAEGEN2-3120) - Enhance sliceanalysis MS to use DCAE SDK dmaap-client lib diff --git a/components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/service/ConfigThread.java b/components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/service/ConfigThread.java index 0bd41e2d..88477eb0 100644 --- a/components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/service/ConfigThread.java +++ b/components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/service/ConfigThread.java @@ -1,76 +1,75 @@ -/*******************************************************************************
- * ============LICENSE_START=======================================================
- * slice-analysis-ms
- * ================================================================================
- * Copyright (C) 2022 Huawei Technologies Co., Ltd.
- * ==============================================================================
- * 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.
- * ============LICENSE_END=========================================================
- *
- *******************************************************************************/
-
-package org.onap.slice.analysis.ms.service;
-
-import org.onap.slice.analysis.ms.models.ConfigPolicy;
-import org.onap.slice.analysis.ms.service.ccvpn.CCVPNPmDatastore;
-import org.onap.slice.analysis.ms.utils.SpringContextUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * This thread is used to convert ccvpn runtime configurations from policy to our local memory CCVPNPmDatastore
- */
-public class ConfigThread extends Thread{
-
- CCVPNPmDatastore ccvpnPmDatastore = (CCVPNPmDatastore) SpringContextUtil.getBean(CCVPNPmDatastore.class);
- private static Logger log = LoggerFactory.getLogger(ConfigThread.class);
-
-
- public ConfigThread () {
- super();
- }
-
- public void run() {
- log.info("Config Thread is starting...");
- boolean done = false;
- while(!done) {
- try {
- Thread.sleep(1000);
- ConfigPolicy configPolicy = ConfigPolicy.getInstance();
- if(configPolicy.getConfig() != null) {
- String cllId = null;
- Boolean clBwAssuranceStatus = null;
- int originalBw = 0;
- if(configPolicy.getConfig().containsKey("cllId")){
- cllId = String.valueOf(configPolicy.getConfig().get("cllId"));
- }
- if(configPolicy.getConfig().containsKey("closedLoopStatus")){
- clBwAssuranceStatus = String.valueOf(configPolicy.getConfig().get("closedLoopStatus")).equalsIgnoreCase("true");
- }
- if(configPolicy.getConfig().containsKey("originalBw")){
- originalBw = Integer.parseInt(String.valueOf(configPolicy.getConfig().get("originalBw")));
- }
- if(cllId!=null && clBwAssuranceStatus!=null){
- ccvpnPmDatastore.updateConfigFromPolicy(cllId, clBwAssuranceStatus, originalBw);
- }
- } else {
- log.error("Config policy is empty, nothing to update.");
- }
-
- } catch (Exception e) {
- log.error("Exception in Config Thread ", e);
- done = true;
- }
- }
- }
-}
+/******************************************************************************* + * ============LICENSE_START======================================================= + * slice-analysis-ms + * ================================================================================ + * Copyright (C) 2022 Huawei Technologies Co., Ltd. + * ============================================================================== + * 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. + * ============LICENSE_END========================================================= + * + *******************************************************************************/ + +package org.onap.slice.analysis.ms.service; + +import org.onap.slice.analysis.ms.models.ConfigPolicy; +import org.onap.slice.analysis.ms.service.ccvpn.CCVPNPmDatastore; +import org.onap.slice.analysis.ms.utils.BeanUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * This thread is used to convert ccvpn runtime configurations from policy to our local memory CCVPNPmDatastore + */ +public class ConfigThread extends Thread{ + + CCVPNPmDatastore ccvpnPmDatastore = BeanUtil.getBean(CCVPNPmDatastore.class); + private static Logger log = LoggerFactory.getLogger(ConfigThread.class); + + public ConfigThread () { + super(); + } + + public void run() { + log.info("Config Thread is starting..."); + boolean done = false; + while(!done) { + try { + Thread.sleep(1000); + ConfigPolicy configPolicy = ConfigPolicy.getInstance(); + if(configPolicy != null && configPolicy.getConfig() != null) { + String cllId = null; + Boolean clBwAssuranceStatus = null; + int originalBw = 0; + if(configPolicy.getConfig().containsKey("cllId")){ + cllId = String.valueOf(configPolicy.getConfig().get("cllId")); + } + if(configPolicy.getConfig().containsKey("closedLoopStatus")){ + clBwAssuranceStatus = String.valueOf(configPolicy.getConfig().get("closedLoopStatus")).equalsIgnoreCase("true"); + } + if(configPolicy.getConfig().containsKey("originalBw")){ + originalBw = Integer.parseInt(String.valueOf(configPolicy.getConfig().get("originalBw"))); + } + if(cllId!=null && clBwAssuranceStatus!=null){ + ccvpnPmDatastore.updateConfigFromPolicy(cllId, clBwAssuranceStatus, originalBw); + } + } else { + log.error("Config policy is empty, nothing to update."); + } + + } catch (Exception e) { + log.error("Exception in Config Thread ", e); + done = true; + } + } + } +} diff --git a/components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/utils/SpringContextUtil.java b/components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/utils/SpringContextUtil.java deleted file mode 100644 index ebe227d2..00000000 --- a/components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/utils/SpringContextUtil.java +++ /dev/null @@ -1,52 +0,0 @@ -/*******************************************************************************
- * ============LICENSE_START=======================================================
- * slice-analysis-ms
- * ================================================================================
- * Copyright (C) 2022 Huawei Technologies Co., Ltd.
- * ==============================================================================
- * 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.
- * ============LICENSE_END=========================================================
- *
- *******************************************************************************/
-
-package org.onap.slice.analysis.ms.utils;
-
-import org.springframework.beans.BeansException;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextAware;
-import org.springframework.context.annotation.Configuration;
-
-/**
- * This is provided for threads to get bean.
- */
-@Configuration
-public class SpringContextUtil implements ApplicationContextAware {
- private static ApplicationContext applicationContext = null;
-
- @Override
- public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
- SpringContextUtil.applicationContext = applicationContext;
- }
-
- public static ApplicationContext getApplicationContext() {
- return applicationContext;
- }
-
- public static Object getBean(String beanName) {
- return applicationContext.getBean(beanName);
- }
-
- public static Object getBean(Class c) {
- return applicationContext.getBean(c);
- }
-}
|