Example #1
0
def rspec_to_omnispec(urn, rspec):
    # URN is that of the AM
    ospec = OmniSpec("rspec_sfa", urn)
    doc = ET.fromstring(rspec)
    for network in doc.findall('network'):
        for site in network.findall('site'):
            for node in site.findall('node'):

                net_name = network.get('name')
                site_id = site.get('id')
                site_name = site.find('name').text
                hostname = node.find('hostname').text

                r = OmniResource(hostname,
                                 '%s %s %s' % (net_name, site_id, hostname),
                                 'vm')
                urn = 'urn:publicid:IDN+%s:%s+node+%s' % (net_name.replace(
                    '.', ":"), site_name, hostname.split('.')[0])
                misc = r['misc']

                misc['site_id'] = site_id
                misc['site_name'] = site_name
                misc['hostname'] = hostname
                misc['net_name'] = net_name
                misc['node_id'] = node.get('id')

                if not node.find('sliver') is None:
                    r.set_allocated(True)

                ospec.add_resource(urn, r)
    return ospec
def rspec_to_omnispec(urn, rspec):
    # URN is that of the AM
    ospec = OmniSpec("rspec_sfa", urn)
    doc = ET.fromstring(rspec)
    for network in doc.findall('network'):
        for site in network.findall('site'):
            for node in site.findall('node'):
                
                net_name = network.get('name')
                site_id = site.get('id')
                site_name = site.find('name').text
                hostname = node.find('hostname').text
                    
                r = OmniResource(hostname, '%s %s %s' % (net_name, site_id, hostname), 'vm')
                urn = 'urn:publicid:IDN+%s:%s+node+%s' % (net_name.replace('.', ":"), site_name, hostname.split('.')[0])
                misc = r['misc']
                
                misc['site_id'] = site_id
                misc['site_name'] = site_name
                misc['hostname'] = hostname
                misc['net_name'] = net_name
                misc['node_id'] = node.get('id')
                
                if not node.find('sliver') is None:
                    r.set_allocated(True)

                ospec.add_resource(urn, r)
    return ospec
Example #3
0
def rspec_to_omnispec(urn, rspec):
    ospec = OmniSpec("rspec_of", urn)
    ospec = make_skeleton_of_ospec(ospec)
    doc = ET.fromstring(rspec)
    #sys.stderr.write(rspec)
    for network in doc.findall('network'):             
        net_name = network.get('name')
        switches = network.findall('switches')[0]
        swmap = {}
        for switch in switches.findall('switch'):
            # convert:
            #       "<switch urn="urn:publicid:IDN+openflow:stanford+switch:0" />"
            urn = switch.get('urn')
            # switchname = "stanford_network:switch:00:00:00:23:01:35:a5:5d"
            switchname = net_name + ':' + urn.split('+')[1]
            s = OmniResource(switchname, "OpenFlow Switch" ,'switch') 

            options=['dl_src', 'dl_dst', 'dl_type', 'vlan_id', 'nw_src',\
                    'nw_dst', 'nw_proto', 'tp_src', 'tp_dst']
            
            for opt in options:
                s['options'][opt] = 'from=*, to=*'

            swmap[urn] = s
            ospec.add_resource(urn, s)
            
            for port in switch.findall('port'):
                port_urn = port.get('urn')
                port = 'port:' + port_urn.split('port:')[-1]
                swmap[urn]['options'][port] = "switch:* port:*"
                
        links = network.findall('links')[0]
        for link in links.findall('link'):
            # convert:
            #       <link
            #       src_urn="urn:publicid:IDN+openflow:stanford+switch:0+port:0
            #       dst_urn="urn:publicid:IDN+openflow:stanford+switch:1+port:0
            #       />
            _,domain,src_switch,src_port = link.get('src_urn').split('+')
            _,_,dst_switch,dst_port = link.get('dst_urn').split('+')
            
            switch_urn = "urn:publicid:IDN+" + domain + "+" + src_switch
            swmap[switch_urn]['options'][src_port] = dst_switch + " " + dst_port
            #sw_ports = swmap[switch_urn]['misc'].setdefault('ports', {})
            #sw_ports[src_port] = dst_switch + " " + dst_port
            
            #swmap[switch_urn]['options'][src_port] = "from=%s, to=%s" % (src_port.split(":")[-1], src_port.split(":")[-1])

    return ospec
Example #4
0
def rspec_to_omnispec(urn, rspec):
    # URN is that of the AM
    ospec = OmniSpec("rspec_gcf", urn)
    doc = ET.fromstring(rspec)

    for res in doc.findall('resource'):
        type = res.find('type').text
        id = res.find('id').text
        rurn = res.find('urn').text
        available = res.find('available').text
        available = available.lower() == 'true'

        r = OmniResource(id, 'node ' + id, type)
        r.set_allocated(not available)
        ospec.add_resource(rurn, r)
    return ospec
Example #5
0
def rspec_to_omnispec(urn, rspec):
    ospec = OmniSpec("rspec_pg", urn)
    doc = ET.fromstring(rspec)
    #add_nodes(ospec, doc)
    #add_links(ospec, doc)
    add_options(ospec, doc)
    return ospec
def rspec_to_omnispec(urn, rspec):
    # URN is that of the AM
    ospec = OmniSpec("rspec_gcf", urn)
    doc = ET.fromstring(rspec)

    for res in doc.findall('resource'):        
        type = res.find('type').text
        id = res.find('id').text
        rurn = res.find('urn').text
        available = res.find('available').text
        available = available.lower() == 'true'

        r = OmniResource(id, 'node ' + id, type)
        r.set_allocated(not available)
        ospec.add_resource(rurn, r)
    return ospec