diff options
Diffstat (limited to 'framework/src/onos/drivers/src/main/java/org/onosproject/driver/netconf/XmlConfigParser.java')
-rw-r--r-- | framework/src/onos/drivers/src/main/java/org/onosproject/driver/netconf/XmlConfigParser.java | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/framework/src/onos/drivers/src/main/java/org/onosproject/driver/netconf/XmlConfigParser.java b/framework/src/onos/drivers/src/main/java/org/onosproject/driver/netconf/XmlConfigParser.java deleted file mode 100644 index 55826a25..00000000 --- a/framework/src/onos/drivers/src/main/java/org/onosproject/driver/netconf/XmlConfigParser.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * 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.onosproject.driver.netconf; - -import org.apache.commons.configuration.ConfigurationException; -import org.apache.commons.configuration.HierarchicalConfiguration; -import org.apache.commons.configuration.XMLConfiguration; -import org.apache.commons.configuration.tree.ConfigurationNode; -import org.onlab.packet.IpAddress; -import org.onosproject.net.behaviour.ControllerInfo; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.InputStream; -import java.io.StringWriter; -import java.util.ArrayList; -import java.util.List; - -/** - * Parser for Netconf XML configurations and replys. - */ -final class XmlConfigParser { - public static final Logger log = LoggerFactory - .getLogger(XmlConfigParser.class); - - private XmlConfigParser() { - //not called, preventing any allocation - } - - - protected static HierarchicalConfiguration loadXml(InputStream xmlStream) { - XMLConfiguration cfg = new XMLConfiguration(); - try { - cfg.load(xmlStream); - return cfg; - } catch (ConfigurationException e) { - throw new IllegalArgumentException("Cannot load xml from Stream", e); - } - } - - protected static List<ControllerInfo> parseStreamControllers(HierarchicalConfiguration cfg) { - List<ControllerInfo> controllers = new ArrayList<>(); - List<HierarchicalConfiguration> fields = - cfg.configurationsAt("data.capable-switch." + - "logical-switches." + - "switch.controllers.controller"); - for (HierarchicalConfiguration sub : fields) { - controllers.add(new ControllerInfo( - IpAddress.valueOf(sub.getString("ip-address")), - Integer.parseInt(sub.getString("port")), - sub.getString("protocol"))); - } - return controllers; - } - - protected static String parseSwitchId(HierarchicalConfiguration cfg) { - HierarchicalConfiguration field = - cfg.configurationAt("data.capable-switch." + - "logical-switches." + - "switch"); - return field.getProperty("id").toString(); - } - - protected static String parseCapableSwitchId(HierarchicalConfiguration cfg) { - HierarchicalConfiguration field = - cfg.configurationAt("data.capable-switch"); - return field.getProperty("id").toString(); - } - - protected static String createControllersConfig(HierarchicalConfiguration cfg, - HierarchicalConfiguration actualCfg, - String target, String netconfOperation, - String controllerOperation, - List<ControllerInfo> controllers) { - //cfg.getKeys().forEachRemaining(key -> System.out.println(key)); - cfg.setProperty("edit-config.target", target); - cfg.setProperty("edit-config.default-operation", netconfOperation); - cfg.setProperty("edit-config.config.capable-switch.id", - parseCapableSwitchId(actualCfg)); - cfg.setProperty("edit-config.config.capable-switch." + - "logical-switches.switch.id", parseSwitchId(actualCfg)); - List<ConfigurationNode> newControllers = new ArrayList<>(); - for (ControllerInfo ci : controllers) { - XMLConfiguration controller = new XMLConfiguration(); - controller.setRoot(new HierarchicalConfiguration.Node("controller")); - String id = ci.type() + ":" + ci.ip() + ":" + ci.port(); - controller.setProperty("id", id); - controller.setProperty("ip-address", ci.ip()); - controller.setProperty("port", ci.port()); - controller.setProperty("protocol", ci.type()); - newControllers.add(controller.getRootNode()); - } - cfg.addNodes("edit-config.config.capable-switch.logical-switches." + - "switch.controllers", newControllers); - XMLConfiguration editcfg = (XMLConfiguration) cfg; - StringWriter stringWriter = new StringWriter(); - try { - editcfg.save(stringWriter); - } catch (ConfigurationException e) { - e.printStackTrace(); - } - String s = stringWriter.toString() - .replaceAll("<controller>", - "<controller nc:operation=\"" + controllerOperation + "\">"); - s = s.replace("<target>" + target + "</target>", - "<target><" + target + "/></target>"); - return s; - - } - - //TODO implement mor methods for parsing configuration when you need them -} |