2300d64922d0aa34b974021325f64ded6725b94b
[integration.git] /
1 /*
2  * ============LICENSE_START=======================================================
3  * PNF-REGISTRATION-HANDLER
4  * ================================================================================
5  * Copyright (C) 2018 NOKIA Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.pnfsimulator.netconfmonitor;
22
23 import com.tailf.jnc.JNCException;
24 import java.io.IOException;
25 import java.util.TimerTask;
26 import org.onap.pnfsimulator.netconfmonitor.netconf.NetconfConfigurationCache;
27 import org.onap.pnfsimulator.netconfmonitor.netconf.NetconfConfigurationReader;
28 import org.onap.pnfsimulator.netconfmonitor.netconf.NetconfConfigurationWriter;
29 import org.slf4j.Logger;
30 import org.slf4j.LoggerFactory;
31
32 public class NetconfConfigurationCheckingTask extends TimerTask {
33
34     private static final Logger LOGGER = LoggerFactory.getLogger(NetconfConfigurationCheckingTask.class);
35
36     private final NetconfConfigurationReader reader;
37     private final NetconfConfigurationWriter writer;
38     private final NetconfConfigurationCache cache;
39
40     public NetconfConfigurationCheckingTask(NetconfConfigurationReader reader,
41         NetconfConfigurationWriter writer,
42         NetconfConfigurationCache cache) {
43         this.reader = reader;
44         this.writer = writer;
45         this.cache = cache;
46     }
47
48     @Override
49     public void run() {
50         try {
51             String currentConfiguration = reader.read();
52             if (!currentConfiguration.equals(cache.getConfiguration())) {
53                 LOGGER.info("Configuration has changed, new configuration:\n\n{}", currentConfiguration);
54                 writer.writeToFile(currentConfiguration);
55                 cache.update(currentConfiguration);
56             }
57         } catch (IOException | JNCException e) {
58             LOGGER.warn("Error during configuration reading: {}", e.getMessage());
59         }
60     }
61 }