The directory contains an ancient code that has never been used.
Signed-off-by: Jan Tluka <jtluka(a)redhat.com>
---
obsolete/SwSwitch/SwSwitch.py | 387 -------------------------
obsolete/SwSwitch/__init__.py | 0
obsolete/Switch/Drivers/SwSwitch.py | 49 ----
obsolete/Switch/Drivers/__init__.py | 0
obsolete/Switch/SwitchConfigParse.py | 73 -----
obsolete/Switch/SwitchCtl.py | 42 ---
obsolete/Switch/SwitchDriversCommon.py | 51 ----
obsolete/Switch/__init__.py | 0
obsolete/switchconfig.py | 87 ------
obsolete/swswitch.py | 90 ------
10 files changed, 779 deletions(-)
delete mode 100644 obsolete/SwSwitch/SwSwitch.py
delete mode 100644 obsolete/SwSwitch/__init__.py
delete mode 100644 obsolete/Switch/Drivers/SwSwitch.py
delete mode 100644 obsolete/Switch/Drivers/__init__.py
delete mode 100644 obsolete/Switch/SwitchConfigParse.py
delete mode 100644 obsolete/Switch/SwitchCtl.py
delete mode 100644 obsolete/Switch/SwitchDriversCommon.py
delete mode 100644 obsolete/Switch/__init__.py
delete mode 100755 obsolete/switchconfig.py
delete mode 100755 obsolete/swswitch.py
diff --git a/obsolete/SwSwitch/SwSwitch.py b/obsolete/SwSwitch/SwSwitch.py
deleted file mode 100644
index 319c12b..0000000
--- a/obsolete/SwSwitch/SwSwitch.py
+++ /dev/null
@@ -1,387 +0,0 @@
-"""
-This module defines SwSwitch class which operates software switch
-and makes it configurable over xmlrpc
-
-Copyright 2011 Red Hat, Inc.
-Licensed under the GNU General Public License, version 2 as
-published by the Free Software Foundation; see COPYING for details.
-"""
-
-__author__ = """
-jpirko(a)redhat.com (Jiri Pirko)
-"""
-
-import signal
-import select, logging
-from Common.Logs import Logs
-from Common.XmlRpc import Server
-from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler
-from NetConfig.NetConfig import NetConfig
-from Common.Utils import die_when_parent_die
-from NetConfig.NetConfigCommon import get_option
-
-DefaultRPCPort = 9998
-
-NOTE_EXTID = "external_id"
-NOTE_VLANNAME = "vlan_name"
-NOTE_VLANID = "vlan_id"
-DEFAULT_VLAN = 1
-
-class SwSwitchCtl:
- '''
- This class allows software switch control. Uses NetConfig to do
- the hard work of manipulating physical devices. Switch specific
- info is stored in "notes"
- '''
-
- def __init__(self, machine_config_xml):
- self._machine_config_xml = machine_config_xml
- self._nc = None
- self._reinit()
-
- def _reinit(self):
- if self._nc:
- self._nc.deconfigure_all()
- net_config = NetConfig(self._machine_config_xml)
- net_config.configure_all()
-
- self._nc = net_config
- self.vlan_add("default", DEFAULT_VLAN)
-
- dump = net_config.dump_config()
- for dev_id in dump:
- netdev = dump[dev_id]
- if netdev["type"] != "eth":
- continue
- net_config.set_notes(dev_id, {NOTE_EXTID: dev_id})
- self.port_vlan_add(dev_id, DEFAULT_VLAN, False)
- return True
-
- def __del__(self):
- self._nc.deconfigure_all()
-
- def _get_dev_id(self, dev_type, external_id=None, vlan_id=None,
- vlan_name=None):
- '''
- Gets netdev id using one or many parameters
- '''
- dump = self._nc.dump_config()
- for dev_id in dump:
- netdev = dump[dev_id]
- if netdev["type"] == dev_type:
- if external_id:
- if netdev["notes"][NOTE_EXTID] == external_id:
- return dev_id
- if vlan_id:
- if netdev["notes"][NOTE_VLANID] == vlan_id:
- return dev_id
- if vlan_name:
- if netdev["notes"][NOTE_VLANNAME] == vlan_name:
- return dev_id
- return 0
-
- def _get_dev_tagged_vlans(self, dev_id):
- '''
- Gets vlan ids of all vlan the netdevice is part of
- '''
- vlans = []
- dump = self._nc.dump_config()
- for key in dump:
- netdev = dump[key]
- if (netdev["type"] == "vlan" and
- netdev["slaves"][0] == dev_id):
- vlans.append(int(get_option(netdev, "vlan_tci")))
- return vlans
-
- def _get_vlan_dev_id(self, real_dev_id, vlan_id):
- '''
- Gets vlan netdev id by given real netdev id and vlan id
- '''
- dump = self._nc.dump_config()
- for key in dump:
- netdev = dump[key]
- if (netdev["type"] == "vlan" and
- netdev["slaves"][0] == real_dev_id and
- int(get_option(netdev, "vlan_tci")) == vlan_id):
- return key
-
- def _get_vlan_real_dev_id(self, vlan_dev_id, vlan_id):
- '''
- Gets real netdev id by given vlan netdev id and vlan id
- '''
- dump = self._nc.dump_config()
- netdev = dump[vlan_dev_id]
- if (netdev["type"] == "vlan" and
- int(get_option(netdev, "vlan_tci")) == vlan_id):
- return netdev["slaves"][0]
-
- def list_ports(self):
- ports = []
- dump = self._nc.dump_config()
- for dev_id in dump:
- netdev = dump[dev_id]
- if netdev["type"] != "eth":
- continue
- notes = netdev["notes"]
- port = {"port": notes[NOTE_EXTID]}
- vlans = []
- if NOTE_VLANID in notes:
- vlans.append({"vlanid": notes[NOTE_VLANID], "tagged":
False})
- tvlans = self._get_dev_tagged_vlans(dev_id)
- for tvlan in tvlans:
- vlans.append({"vlanid": tvlan, "tagged": True})
- port["vlans"] = vlans
- ports.append(port)
- return ports
-
- def _get_extid(self, dump, dev_id):
- return dump[dev_id]["notes"][NOTE_EXTID]
-
- def _get_vlan_ports(self, vlan_id):
- ports = []
- dump = self._nc.dump_config()
- for dev_id in dump:
- netdev = dump[dev_id]
- if (netdev["type"] == "eth" and
- NOTE_VLANID in netdev["notes"] and
- netdev["notes"][NOTE_VLANID] == vlan_id):
- port_id = self._get_extid(dump, dev_id)
- ports.append({"port": port_id, "tagged": False})
- elif netdev["type"] == "vlan":
- real_dev_id = self._get_vlan_real_dev_id(dev_id, vlan_id)
- if real_dev_id:
- port_id = self._get_extid(dump, real_dev_id)
- ports.append({"port": port_id, "tagged": True})
- return ports
-
- def list_vlans(self):
- vlans = []
- dump = self._nc.dump_config()
- for dev_id in dump:
- netdev = dump[dev_id]
- if netdev["type"] != "bridge":
- continue
- vlan_id = netdev["notes"][NOTE_VLANID]
- vlan = {"vlanid": vlan_id, "ports":
self._get_vlan_ports(vlan_id)}
- vlans.append(vlan)
- return vlans
-
- def vlan_add(self, name, vlan_id):
- logging.debug("Adding vlan id \"%d\"" % vlan_id)
- if self._get_dev_id("bridge", vlan_id=vlan_id):
- logging.error("Vlan id \"%d\" already exists" % vlan_id)
- return False
- br_dev_id = self._nc.netdev_add("bridge")
- self._nc.set_notes(br_dev_id, {NOTE_VLANID: vlan_id})
- self._nc.configure(br_dev_id)
- return True
-
- def vlan_del(self, vlan_id):
- logging.debug("Deleting vlan id \"%d\"" % vlan_id)
- if vlan_id == DEFAULT_VLAN:
- logging.error("cannot delete default vlan id \"%d\"" %
DEFAULT_VLAN)
- return False
- br_dev_id = self._get_dev_id("bridge", vlan_id=vlan_id)
- if not br_dev_id:
- logging.error("Vlan id \"%d\" does not exist" % vlan_id)
- return False
-
- '''
- Remove ports in this vlan first
- '''
- ports = self._get_vlan_ports(vlan_id)
- for port in ports:
- self.port_vlan_del(port["port"], vlan_id,
port["tagged"])
-
- self._nc.deconfigure(br_dev_id)
- self._nc.netdev_del(br_dev_id)
- return True
-
- class DevIdNotFound(Exception):
- pass
-
- def _get_dev_ids(self, port_id, vlan_id):
- br_dev_id = self._get_dev_id("bridge", vlan_id=vlan_id)
- if not br_dev_id:
- logging.error("Vlan id \"%d\" does not exist" % vlan_id)
- raise self.DevIdNotFound
- dev_id = self._get_dev_id("eth", external_id=port_id)
- if not br_dev_id:
- logging.error("Port \"%d\" does not exist" % vlan_id)
- raise self.DevIdNotFound
- return br_dev_id, dev_id
-
- def port_vlan_add(self, port_id, vlan_id, tagged):
- logging.debug("Adding port \"%d\", tagged \"%d\" to vlan
id \"%d\""
- % (port_id, tagged, vlan_id))
- try:
- br_dev_id, dev_id = self._get_dev_ids(port_id, vlan_id)
- except self.DevIdNotFound:
- return False
-
- if tagged:
- if vlan_id in self._get_dev_tagged_vlans(dev_id):
- logging.error("Port \"%d\", is already tagged part of
"
- "vlan id \"%d\"" % (port_id, vlan_id))
- return False
-
- params = {"options": [("vlan_tci", vlan_id)],
- "slaves": set([dev_id])}
- vlan_dev_id = self._nc.netdev_add("vlan", params=params)
- self._nc.set_notes(vlan_dev_id, {NOTE_VLANID: vlan_id})
- self._nc.configure(vlan_dev_id)
- self._nc.slave_add(br_dev_id, vlan_dev_id)
- else:
- notes = self._nc.get_notes(dev_id)
- if NOTE_VLANID in notes:
- '''
- In case when the port is already part of untagged vlan, remove
- it from this vlan first.
- '''
- self.port_vlan_del(port_id, notes[NOTE_VLANID], False)
-
- self._nc.slave_add(br_dev_id, dev_id)
- notes[NOTE_VLANID] = vlan_id
-
- return True
-
- def port_vlan_del(self, port_id, vlan_id, tagged):
- logging.debug("Removing port \"%d\", tagged \"%d\" from
vlan id \"%d\""
- % (port_id, tagged, vlan_id))
- try:
- br_dev_id, dev_id = self._get_dev_ids(port_id, vlan_id)
- except self.DevIdNotFound:
- return False
-
- if tagged:
- if not vlan_id in self._get_dev_tagged_vlans(dev_id):
- logging.error("Port \"%d\", is not tagged part of "
- "vlan id \"%d\"" % (port_id, vlan_id))
- return False
-
- vlan_dev_id = self._get_vlan_dev_id(dev_id, vlan_id)
- self._nc.slave_del(br_dev_id, vlan_dev_id)
- self._nc.deconfigure(vlan_dev_id)
- self._nc.netdev_del(vlan_dev_id)
- else:
- notes = self._nc.get_notes(dev_id)
- if not NOTE_VLANID in notes:
- logging.error("Port \"%d\" is not untagged part of "
- "vlan id \"%d\"" % (port_id, vlan_id))
- return False
-
- self._nc.slave_del(br_dev_id, dev_id)
- del notes[NOTE_VLANID]
-
- return True
-
- def cleanup(self):
- logging.debug("Reinitializing")
- return self._reinit()
-
-def int_it(val):
- try:
- num = int(val)
- except ValueError:
- num = 0
- return num
-
-def bool_it(val):
- if isinstance(val, str):
- if re.match("^\s*(?i)(true)", val):
- return True
- elif re.match("^\s*(?i)(false)", val):
- return False
- return True if int_it(val) else False
-
-class SwSwitchXMLRPC:
- '''
- Exported xmlrpc methods. Servers as a wrapper for SwSwitchCtl
- '''
- def __init__(self, sw_ctl):
- self._sw_ctl = sw_ctl
-
- def hello(self):
- return "hello"
-
- def set_logging(self, logger_address, port):
- """
- Server side setup logging to server side.
-
- @param logger_address: Address of running logger.
- """
- Logs.append_network_hadler(logger_address, port)
- return True
-
- def list_ports(self):
- return self._sw_ctl.list_ports()
-
- def list_vlans(self):
- return self._sw_ctl.list_vlans()
-
- def vlan_add(self, name, vlan_id):
- name = str(name)
- vlan_id = int_it(vlan_id)
- return self._sw_ctl.vlan_add(name, vlan_id)
-
- def vlan_del(self, vlan_id):
- vlan_id = int_it(vlan_id)
- return self._sw_ctl.vlan_del(vlan_id)
-
- def port_vlan_add(self, port_id, vlan_id, tagged):
- port_id = int_it(port_id)
- vlan_id = int_it(vlan_id)
- tagged = bool_it(tagged)
- return self._sw_ctl.port_vlan_add(port_id, vlan_id, tagged)
-
- def port_vlan_del(self, port_id, vlan_id, tagged):
- port_id = int_it(port_id)
- vlan_id = int_it(vlan_id)
- tagged = bool_it(tagged)
- return self._sw_ctl.port_vlan_del(port_id, vlan_id, tagged)
-
- def cleanup(self):
- return self._sw_ctl.cleanup()
-
-class MySimpleXMLRPCServer(Server):
- def __init__(self, *args, **kwargs):
- self._finished = False
- Server.__init__(self, *args, **kwargs)
-
- def register_die_signal(self, signum):
- signal.signal(signum, self._signal_die_handler)
-
- def _signal_die_handler(self, signum, frame):
- logging.info("Caught signal %d -> dying" % signum)
- self._finished = True
-
- def serve_forever_with_signal_check(self):
- while True:
- try:
- if self._finished:
- import sys
- sys.exit()
- return
- self.handle_request()
- except select.error:
- pass
-
-class SwSwitch:
- def __init__(self, machine_config_xml, port = None):
- if not port:
- port = DefaultRPCPort
-
- sw_ctl = SwSwitchCtl(machine_config_xml)
-
- die_when_parent_die()
-
- server = MySimpleXMLRPCServer(("", port), SimpleXMLRPCRequestHandler,
- logRequests = False)
- server.register_die_signal(signal.SIGHUP)
- server.register_die_signal(signal.SIGINT)
- server.register_die_signal(signal.SIGTERM)
- server.register_instance(SwSwitchXMLRPC(sw_ctl))
- self._server = server
-
- def run(self):
- self._server.serve_forever_with_signal_check()
diff --git a/obsolete/SwSwitch/__init__.py b/obsolete/SwSwitch/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/obsolete/Switch/Drivers/SwSwitch.py b/obsolete/Switch/Drivers/SwSwitch.py
deleted file mode 100644
index 810f76c..0000000
--- a/obsolete/Switch/Drivers/SwSwitch.py
+++ /dev/null
@@ -1,49 +0,0 @@
-"""
-This module defines software switch driver
-
-Copyright 2011 Red Hat, Inc.
-Licensed under the GNU General Public License, version 2 as
-published by the Free Software Foundation; see COPYING for details.
-"""
-
-__author__ = """
-jpirko(a)redhat.com (Jiri Pirko)
-"""
-
-import logging
-from Switch.SwitchDriversCommon import SwitchDriverGeneric
-from Common.XmlRpc import ServerProxy
-
-DefaultRPCPort = 9998
-
-class SwSwitch(SwitchDriverGeneric):
- def init(self):
- info = self._config["info"]
- if "port" in info:
- port = info["port"]
- else:
- port = DefaultRPCPort
- hostname = info["hostname"]
- url = "http://%s:%d" % (hostname, port)
- self._rpc = ServerProxy(url)
-
- def list_ports(self):
- return self._rpc.list_ports()
-
- def list_vlans(self):
- return self._rpc.list_vlans()
-
- def vlan_add(self, name, vlan_id):
- return self._rpc.vlan_add(name, vlan_id)
-
- def vlan_del(self, vlan_id):
- return self._rpc.vlan_del(vlan_id)
-
- def port_vlan_add(self, port_id, vlan_id, tagged):
- return self._rpc.port_vlan_add(port_id, vlan_id, tagged)
-
- def port_vlan_del(self, port_id, vlan_id, tagged):
- return self._rpc.port_vlan_del(port_id, vlan_id, tagged)
-
- def cleanup(self):
- return self._rpc.cleanup()
diff --git a/obsolete/Switch/Drivers/__init__.py b/obsolete/Switch/Drivers/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/obsolete/Switch/SwitchConfigParse.py b/obsolete/Switch/SwitchConfigParse.py
deleted file mode 100644
index eb1ad1d..0000000
--- a/obsolete/Switch/SwitchConfigParse.py
+++ /dev/null
@@ -1,73 +0,0 @@
-"""
-This module defines SwitchConfigParse class useful to parse switch xml configs
-
-Copyright 2011 Red Hat, Inc.
-Licensed under the GNU General Public License, version 2 as
-published by the Free Software Foundation; see COPYING for details.
-"""
-
-__author__ = """
-jpirko(a)redhat.com (Jiri Pirko)
-"""
-
-from xml.dom.minidom import parseString
-import logging
-
-class SwitchConfigParse:
- def __init__(self):
- pass
-
- def get_switch_info(self):
- return self._machine_info
-
- def _parse_list(self, result, dom_element, itemname, groupname,
- handler, container):
- dom_list1 = dom_element.getElementsByTagName(groupname)
- if dom_list1:
- result[groupname] = container
- for dom_item1 in dom_list1:
- dom_list2 = dom_item1.getElementsByTagName(itemname)
- for dom_item2 in dom_list2:
- handler(result[groupname], dom_item2)
-
- def _parse_vlan_ports_handler(self, dct, dom_element):
- port_id = int(dom_element.getAttribute("id"))
- tagged = str(dom_element.getAttribute("tagged"))
- if tagged == "yes":
- tagged = True
- elif tagged == "no":
- tagged = False
- else:
- raise Exception
- dct[port_id] = {"tagged": tagged}
-
- def _parse_vlan_ports(self, result, dom_element):
- self._parse_list(result, dom_element, "port", "ports",
- self._parse_vlan_ports_handler, {})
-
- def _parse_vlans_handler(self, dct, dom_element):
- name = str(dom_element.getAttribute("name"))
- vlan_tci = str(dom_element.getAttribute("vlan_tci"))
- vlan = {"name": name}
- self._parse_vlan_ports(vlan, dom_element)
- dct[vlan_tci] = vlan
-
- def _parse_vlans(self, result, dom_element):
- self._parse_list(result, dom_element, "vlan", "vlans",
- self._parse_vlans_handler, {})
-
- def parse_switch_config(self, xml_string):
- config = {}
- dom = parseString(xml_string)
- dom_switch = dom.getElementsByTagName("netswitchconfig")[0]
-
- dom_info = dom_switch.getElementsByTagName("info")[0]
- hostname = str(dom_info.getAttribute("hostname"))
- port = str(dom_info.getAttribute("port"))
- driver = str(dom_info.getAttribute("driver"))
- info = {"hostname": hostname, "driver": driver}
- if port:
- info["port"] = int(port)
- config["info"] = info
- self._parse_vlans(config, dom_switch)
- return config
diff --git a/obsolete/Switch/SwitchCtl.py b/obsolete/Switch/SwitchCtl.py
deleted file mode 100644
index ea52a3d..0000000
--- a/obsolete/Switch/SwitchCtl.py
+++ /dev/null
@@ -1,42 +0,0 @@
-"""
-This module defines SwitchCtl class useful for switch controlling
-
-Copyright 2011 Red Hat, Inc.
-Licensed under the GNU General Public License, version 2 as
-published by the Free Software Foundation; see COPYING for details.
-"""
-
-__author__ = """
-jpirko(a)redhat.com (Jiri Pirko)
-"""
-
-import logging
-import copy
-import imp
-from SwitchConfigParse import SwitchConfigParse
-
-class SwitchCtl:
- def __init__(self, config_xml):
- parse = SwitchConfigParse()
- self._config = parse.parse_switch_config(config_xml)
-
- def dump_config(self):
- return copy.deepcopy(self._config)
-
- def _set_driver(self):
- driver_name = self._config["info"]["driver"]
- path = "Switch/Drivers/%s" % driver_name
- fp, pathname, description = imp.find_module(path)
- module = imp.load_module(path, fp, pathname, description)
- driver_class = getattr(module, driver_name)
- self._driver = driver_class(self._config)
-
- def init(self):
- self._set_driver()
- self._driver.init()
-
- def configure(self):
- self._driver.configure()
-
- def cleanup(self):
- self._driver.cleanup()
diff --git a/obsolete/Switch/SwitchDriversCommon.py
b/obsolete/Switch/SwitchDriversCommon.py
deleted file mode 100644
index 211d0d4..0000000
--- a/obsolete/Switch/SwitchDriversCommon.py
+++ /dev/null
@@ -1,51 +0,0 @@
-"""
-This module defines common stuff for switch drivers
-
-Copyright 2011 Red Hat, Inc.
-Licensed under the GNU General Public License, version 2 as
-published by the Free Software Foundation; see COPYING for details.
-"""
-
-__author__ = """
-jpirko(a)redhat.com (Jiri Pirko)
-"""
-
-class SwitchOperations:
- '''
- This class defines abstract methods which should be implemented
- by individual drivers
- '''
- def list_ports(self):
- raise NotImplementedError()
-
- def list_vlans(self):
- raise NotImplementedError()
-
- def vlan_add(self, name, vlan_id):
- raise NotImplementedError()
-
- def vlan_del(self, vlan_id):
- raise NotImplementedError()
-
- def port_vlan_add(self, port_id, vlan_id, tagged):
- raise NotImplementedError()
-
- def port_vlan_del(self, port_id, vlan_id, tagged):
- raise NotImplementedError()
-
- def cleanup(self):
- raise NotImplementedError()
-
-class SwitchDriverGeneric(SwitchOperations):
- def __init__(self, config):
- self._config = config
-
- def configure(self):
- for vlan_id in self._config["vlans"]:
- vlan = self._config["vlans"][vlan_id]
- vlan_name = vlan["name"]
- self.vlan_add(vlan_name, vlan_id)
- for port_id in vlan["ports"]:
- port = vlan["ports"][port_id]
- tagged = port["tagged"]
- self.port_vlan_add(port_id, vlan_id, tagged)
diff --git a/obsolete/Switch/__init__.py b/obsolete/Switch/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/obsolete/switchconfig.py b/obsolete/switchconfig.py
deleted file mode 100755
index ed2b95e..0000000
--- a/obsolete/switchconfig.py
+++ /dev/null
@@ -1,87 +0,0 @@
-#! /usr/bin/env python
-"""
-Switchconfig tool
-"""
-
-__author__ = """
-jpirko(a)redhat.com (Jiri Pirko)
-"""
-
-import getopt
-import sys
-import logging
-import os
-from Switch.SwitchCtl import SwitchCtl
-from Common.Logs import Logs
-
-def usage():
- """
- Print usage of this app
- """
- print "Usage: switchconfig.py [OPTION...] ACTION"
- print ""
- print "ACTION = [config | clear | dump]"
- print ""
- print " -d, --debug emit debugging messages"
- print " -h, --help print this message"
- print " -c, --config=FILE use this net configuration
file"
- sys.exit()
-
-def main():
- """
- Main function
- """
-
- try:
- opts, args = getopt.getopt(
- sys.argv[1:],
- "dhc:m:a:",
- ["debug", "help", "config=",
"machine-config=", "action="]
- )
- except getopt.GetoptError as err:
- print str(err)
- usage()
- sys.exit()
-
- debug = False
- config_path = None
- for opt, arg in opts:
- if opt in ("-d", "--debug"):
- debug = True
- elif opt in ("-h", "--help"):
- usage()
- elif opt in ("-c", "--config"):
- config_path = arg
-
- Logs(debug)
- logging.info("Started")
-
- if not args:
- logging.error("No action command passed")
- usage();
- action = args[0]
-
- if not config_path:
- logging.error("No switch config file passed")
- usage();
- config_path = os.path.expanduser(config_path)
-
- handle = open(config_path, "r")
- config_xml = handle.read()
- handle.close()
-
- switchctl = SwitchCtl(config_xml)
- if action == "config":
- switchctl.init()
- switchctl.configure()
- elif action == "cleanup":
- switchctl.init()
- switchctl.cleanup()
- elif action == "dump":
- from pprint import pprint
- pprint(switchctl.dump_config())
- else:
- logging.error("unknown action \"%s\"" % action)
-
-if __name__ == "__main__":
- main()
diff --git a/obsolete/swswitch.py b/obsolete/swswitch.py
deleted file mode 100755
index 42ef900..0000000
--- a/obsolete/swswitch.py
+++ /dev/null
@@ -1,90 +0,0 @@
-#! /usr/bin/env python
-"""
-Software switch
-
-Copyright 2011 Red Hat, Inc.
-Licensed under the GNU General Public License, version 2 as
-published by the Free Software Foundation; see COPYING for details.
-"""
-
-__author__ = """
-jpirko(a)redhat.com (Jiri Pirko)
-"""
-
-import getopt
-import sys
-import logging
-import re
-import os
-from SwSwitch.SwSwitch import SwSwitch
-from Common.Logs import Logs
-
-def usage():
- """
- Print usage of this app
- """
- print "Usage: swswitch.py [OPTION...] ACTION"
- print ""
- print "ACTION = [run]"
- print ""
- print " -d, --debug emit debugging messages"
- print " -h, --help print this message"
- print " -m, --machine-config=FILE use this machine configuration
file"
- print " -p, --port xmlrpc port"
- sys.exit()
-
-def main():
- """
- Main function
- """
-
- try:
- opts, args = getopt.getopt(
- sys.argv[1:],
- "dhm:p:",
- ["debug", "help", "machine-config=",
"port="]
- )
- except getopt.GetoptError as err:
- print str(err)
- usage()
- sys.exit()
-
- debug = False
- machine_config_path = None
- port = None
- for opt, arg in opts:
- if opt in ("-d", "--debug"):
- debug = True
- elif opt in ("-h", "--help"):
- usage()
- elif opt in ("-m", "--machine-config"):
- machine_config_path = arg
- elif opt in ("-p", "--port"):
- port = int(arg)
-
- Logs(debug, True)
- logging.info("Started")
-
- if not args:
- logging.error("No action command passed")
- usage();
- action = args[0]
-
- if not machine_config_path:
- logging.error("No machine config xml file passed")
- usage();
- machine_config_path = os.path.expanduser(machine_config_path)
-
- handle = open(machine_config_path, "r")
- machine_config_xml = handle.read()
- handle.close()
-
- if action == "run":
- swswitch = SwSwitch(machine_config_xml, port=port)
- swswitch.run()
- else:
- logging.error("unknown action \"%s\"" % action)
- usage();
-
-if __name__ == "__main__":
- main()
--
2.21.1