the big cleanup: remove unused relating to nitos
[sfa.git] / sfa / rspecs / elements / versions / nitosv1Node.py
diff --git a/sfa/rspecs/elements/versions/nitosv1Node.py b/sfa/rspecs/elements/versions/nitosv1Node.py
deleted file mode 100644 (file)
index c434939..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-from sfa.util.sfalogging import logger
-from sfa.util.xml import XpathFilter
-from sfa.util.xrn import Xrn
-
-from sfa.rspecs.elements.element import Element
-from sfa.rspecs.elements.node import NodeElement
-from sfa.rspecs.elements.sliver import Sliver
-from sfa.rspecs.elements.location import Location
-from sfa.rspecs.elements.position_3d import Position3D
-from sfa.rspecs.elements.hardware_type import HardwareType
-from sfa.rspecs.elements.disk_image import DiskImage
-from sfa.rspecs.elements.interface import Interface
-from sfa.rspecs.elements.bwlimit import BWlimit
-from sfa.rspecs.elements.pltag import PLTag
-from sfa.rspecs.elements.versions.nitosv1Sliver import NITOSv1Sliver
-from sfa.rspecs.elements.versions.nitosv1PLTag import NITOSv1PLTag
-from sfa.rspecs.elements.versions.pgv2Services import PGv2Services
-
-
-class NITOSv1Node:
-
-    @staticmethod
-    def add_nodes(xml, nodes, rspec_content_type=None):
-        network_elems = xml.xpath('//network')
-        if len(network_elems) > 0:
-            network_elem = network_elems[0]
-        elif len(nodes) > 0 and nodes[0].get('component_manager_id'):
-            network_urn = nodes[0]['component_manager_id']
-            network_elem = xml.add_element(
-                'network', name=Xrn(network_urn).get_hrn())
-        else:
-            network_elem = xml
-
-        # needs to be improuved to retreive the gateway addr dynamically.
-        gateway_addr = 'nitlab.inf.uth.gr'
-
-        node_elems = []
-        for node in nodes:
-            node_fields = ['component_manager_id',
-                           'component_id', 'boot_state']
-            node_elem = network_elem.add_instance('node', node, node_fields)
-            node_elems.append(node_elem)
-
-            # determine network hrn
-            network_hrn = None
-            if 'component_manager_id' in node and node['component_manager_id']:
-                network_hrn = Xrn(node['component_manager_id']).get_hrn()
-
-            # set component_name attribute and  hostname element
-            if 'component_id' in node and node['component_id']:
-                component_name = Xrn(xrn=node['component_id']).get_leaf()
-                node_elem.set('component_name', component_name)
-                hostname_elem = node_elem.add_element('hostname')
-                hostname_elem.set_text(component_name)
-
-            # set site id
-            if 'authority_id' in node and node['authority_id']:
-                node_elem.set('site_id', node['authority_id'])
-
-            # add locaiton
-            location = node.get('location')
-            if location:
-                node_elem.add_instance('location', location, Location.fields)
-
-            # add 3D Position of the node
-            position_3d = node.get('position_3d')
-            if position_3d:
-                node_elem.add_instance(
-                    'position_3d', position_3d, Position3D.fields)
-
-            # all nitos nodes are exculsive
-            exclusive_elem = node_elem.add_element('exclusive')
-            exclusive_elem.set_text('TRUE')
-
-            # In order to access nitos nodes, one need to pass through the nitos gateway
-            # here we advertise Nitos access gateway address
-            gateway_elem = node_elem.add_element('gateway')
-            gateway_elem.set_text(gateway_addr)
-
-            # add granularity of the reservation system
-            granularity = node.get('granularity')['grain']
-            if granularity:
-                #node_elem.add_instance('granularity', granularity, granularity.fields)
-                granularity_elem = node_elem.add_element('granularity')
-                granularity_elem.set_text(str(granularity))
-            # add hardware type
-            #hardware_type = node.get('hardware_type')
-            # if hardware_type:
-            #    node_elem.add_instance('hardware_type', hardware_type)
-            hardware_type_elem = node_elem.add_element('hardware_type')
-            hardware_type_elem.set_text(node.get('hardware_type'))
-
-            if isinstance(node.get('interfaces'), list):
-                for interface in node.get('interfaces', []):
-                    node_elem.add_instance('interface', interface, [
-                                           'component_id', 'client_id', 'ipv4'])
-
-            # if 'bw_unallocated' in node and node['bw_unallocated']:
-            #    bw_unallocated = etree.SubElement(node_elem, 'bw_unallocated', units='kbps').text = str(int(node['bw_unallocated'])/1000)
-
-            PGv2Services.add_services(node_elem, node.get('services', []))
-            tags = node.get('tags', [])
-            if tags:
-                for tag in tags:
-                    tag_elem = node_elem.add_element(tag['tagname'])
-                    tag_elem.set_text(tag['value'])
-            NITOSv1Sliver.add_slivers(node_elem, node.get('slivers', []))
-
-            # add sliver tag in Request Rspec
-            if rspec_content_type == "request":
-                node_elem.add_instance('sliver', '', [])
-
-    @staticmethod
-    def add_slivers(xml, slivers):
-        component_ids = []
-        for sliver in slivers:
-            filter = {}
-            if isinstance(sliver, str):
-                filter['component_id'] = '*%s*' % sliver
-                sliver = {}
-            elif 'component_id' in sliver and sliver['component_id']:
-                filter['component_id'] = '*%s*' % sliver['component_id']
-            if not filter:
-                continue
-            nodes = NITOSv1Node.get_nodes(xml, filter)
-            if not nodes:
-                continue
-            node = nodes[0]
-            NITOSv1Sliver.add_slivers(node, sliver)
-
-    @staticmethod
-    def remove_slivers(xml, hostnames):
-        for hostname in hostnames:
-            nodes = NITOSv1Node.get_nodes(
-                xml, {'component_id': '*%s*' % hostname})
-            for node in nodes:
-                slivers = NITOSv1Sliver.get_slivers(node.element)
-                for sliver in slivers:
-                    node.element.remove(sliver.element)
-
-    @staticmethod
-    def get_nodes(xml, filter=None):
-        if filter is None:
-            filter = {}
-        xpath = '//node%s | //default:node%s' % (
-            XpathFilter.xpath(filter), XpathFilter.xpath(filter))
-        node_elems = xml.xpath(xpath)
-        return NITOSv1Node.get_node_objs(node_elems)
-
-    @staticmethod
-    def get_nodes_with_slivers(xml):
-        xpath = '//node[count(sliver)>0] | //default:node[count(default:sliver)>0]'
-        node_elems = xml.xpath(xpath)
-        return NITOSv1Node.get_node_objs(node_elems)
-
-    @staticmethod
-    def get_node_objs(node_elems):
-        nodes = []
-        for node_elem in node_elems:
-            node = NodeElement(node_elem.attrib, node_elem)
-            if 'site_id' in node_elem.attrib:
-                node['authority_id'] = node_elem.attrib['site_id']
-            # get location
-            location_elems = node_elem.xpath('./default:location | ./location')
-            locations = [loc_elem.get_instance(
-                Location) for loc_elem in location_elems]
-            if len(locations) > 0:
-                node['location'] = locations[0]
-            # get bwlimit
-            bwlimit_elems = node_elem.xpath('./default:bw_limit | ./bw_limit')
-            bwlimits = [bwlimit_elem.get_instance(
-                BWlimit) for bwlimit_elem in bwlimit_elems]
-            if len(bwlimits) > 0:
-                node['bwlimit'] = bwlimits[0]
-            # get interfaces
-            iface_elems = node_elem.xpath('./default:interface | ./interface')
-            ifaces = [iface_elem.get_instance(
-                Interface) for iface_elem in iface_elems]
-            node['interfaces'] = ifaces
-            # get services
-            node['services'] = PGv2Services.get_services(node_elem)
-            # get slivers
-            node['slivers'] = NITOSv1Sliver.get_slivers(node_elem)
-            # get tags
-            node['tags'] = NITOSv1PLTag.get_pl_tags(
-                node_elem, ignore=NodeElement.fields + ["hardware_type"])
-            # get hardware types
-            hardware_type_elems = node_elem.xpath(
-                './default:hardware_type | ./hardware_type')
-            node['hardware_types'] = [hw_type.get_instance(
-                HardwareType) for hw_type in hardware_type_elems]
-
-            # temporary... play nice with old slice manager rspec
-            if not node['component_name']:
-                hostname_elem = node_elem.find("hostname")
-                if hostname_elem != None:
-                    node['component_name'] = hostname_elem.text
-
-            nodes.append(node)
-        return nodes