\r
package org.commscope.tr069adapter.netconf.server;\r
\r
+import java.io.File;\r
+import java.io.IOException;\r
import java.net.URI;\r
import java.net.URISyntaxException;\r
import java.util.ArrayList;\r
import java.util.Map.Entry;\r
import java.util.concurrent.ExecutorService;\r
import java.util.concurrent.Executors;\r
+import org.apache.commons.io.FileUtils;\r
import org.commscope.tr069adapter.acs.common.OperationDetails;\r
import org.commscope.tr069adapter.acs.common.ParameterDTO;\r
import org.commscope.tr069adapter.acs.common.dto.TR069OperationCode;\r
+import org.commscope.tr069adapter.common.deviceversion.DeviceVersionManager;\r
+import org.commscope.tr069adapter.common.deviceversion.ProfileDefinition;\r
import org.commscope.tr069adapter.mapper.model.NetConfServerDetails;\r
import org.commscope.tr069adapter.mapper.model.NetconfServerManagementError;\r
import org.commscope.tr069adapter.mapper.model.VESNotification;\r
@Autowired\r
VESNotificationSender vesNotificationSender;\r
\r
+ @Autowired\r
+ DeviceVersionManager versionManager;\r
+\r
ExecutorService executorService = Executors.newFixedThreadPool(10);\r
\r
+ public boolean loadSchemas() {\r
+ LOG.debug("Loading yang schema started");\r
+ List<ProfileDefinition> profiles = versionManager.getSupportedProfileDefinitions();\r
+ try {\r
+ String commonSchemaPath = config.getSchemaDirPath() + "/common";\r
+\r
+ for (ProfileDefinition profile : profiles) {\r
+ String verSpecificSchemaPath =\r
+ config.getSchemaDirPath() + File.separator + profile.getNetConfSchemaPath();\r
+ File schemaDir = new File(commonSchemaPath);\r
+ File schemaVerDir = new File(verSpecificSchemaPath);\r
+\r
+ if (!schemaVerDir.isDirectory()) {\r
+ LOG.error("No folder path found for given version path {}",\r
+ schemaVerDir.getAbsolutePath());\r
+ return false;\r
+ }\r
+\r
+ try {\r
+ FileUtils.copyDirectory(schemaDir, schemaVerDir);\r
+ } catch (IOException e) {\r
+ LOG.error("Failed to copy directory " + e.getMessage());\r
+ }\r
+ boolean isSchemaLoaded = ncServerStarter.loadSchemas(schemaVerDir);\r
+ if (!isSchemaLoaded) {\r
+ LOG.debug("Failed to load schema for profile {}", profile.getProfileId());\r
+ return false;\r
+ }\r
+ }\r
+ } catch (Exception e) {\r
+ LOG.error("Load schemas failed in netconf server {}", e.getMessage());\r
+ return false;\r
+ }\r
+ LOG.debug("Loading yang schema completed");\r
+ return true;\r
+ }\r
+\r
public void restartServers() {\r
LOG.debug("Restarting all netconf servers during startup...");\r
Iterable<NetConfServerDetailsEntity> entities = netconfDAO.findAll();\r
server.setError(NetconfServerManagementError.SUCCESS);\r
server.setListenAddress(netconfListenAddress);\r
server.setListenPort(entity.getListenPort());\r
+ server.setSwVersion(entity.getSwVersion());\r
+ server.setHwVersion(entity.getHwVersion());\r
result.add(server);\r
}\r
return result;\r
@Override\r
public void run() {\r
boolean isSuccess = netconfServerManager.restartServersOnStartup(entity);\r
- if (isSuccess) {\r
+ if (!isSuccess) {\r
try {\r
netconfServerManager.restartServersHandler.restart(entity);\r
} catch (RetryFailedException e) {\r
- e.printStackTrace();// TODO: logg\r
+ LOG.debug("");\r
}\r
}\r
}\r