示例#1
0
    def __init__(self,stfile):
        sio = StringIO()
        writer = MarkupWriter(sio,indent=u'yes',omitXmlDeclaration=u'yes')
        writer.startDocument()
        writer.startElement(u'statfile')
        writer.simpleElement(u'filename',content=u(stfile.filename))

        writer.startElement(u'properties')
        for propertyIndex,record in enumerate(stfile.records):
            writer.startElement(u'property')
            writer.attribute(u'index',u(propertyIndex))
            writer.simpleElement(u'name',content=u(record.property))
            writer.simpleElement(u'volume',content=u(record.volume))
            writer.simpleElement(u'pvalue',content=u(record.pvalue))
            writer.simpleElement(u'tvalue',content=u(record.tvalue))
            writer.simpleElement(u'dof',content=u(record.dof))
            writer.simpleElement(u'mean',content=u(record.mean))
            writer.simpleElement(u'stdev',content=u(record.stdev))
            writer.simpleElement(u'sumOfRanks',content=u(record.sumOfRanks))
            writer.simpleElement(u'numSmall',content=u(record.numSmall))
            writer.simpleElement(u'numBig',content=u(record.numBig))
            writer.endElement(u'property')
        writer.endElement(u'properties')

        writer.startElement(u'sites')
        for siteIndex in range(stfile.numSites):
            writer.startElement(u'site')
            writer.attribute(u'index',u(siteIndex))
            writer.attribute(u'label',u'site')
            for propertyIndex,record in enumerate(stfile.records):
                writer.startElement(u'value')
                writer.attribute(u'index',u(propertyIndex))
                writer.text(u(record.sites[siteIndex]))
                writer.endElement(u'value')
            writer.endElement(u'site')
        for nonSiteIndex in range(stfile.numNonSites):
            writer.startElement(u'site')
            writer.attribute(u'index',u(nonSiteIndex))
            writer.attribute(u'label',u'nonsite')
            for propertyIndex,record in enumerate(stfile.records):
                writer.startElement(u'value')
                writer.attribute(u'index',u(propertyIndex))
                writer.text(u(record.nonsites[nonSiteIndex]))
                writer.endElement(u'value')
            writer.endElement(u'site')
        writer.endElement(u'sites')

        writer.endElement(u'statfile')
        writer.endDocument()
        self.data = sio.getvalue()
示例#2
0
    class SPARQLXMLWriter:
        """
        4Suite-based SPARQL XML Writer
        """
        def __init__(self,output):
            self.writer = MarkupWriter(output, indent=u"yes")
            self.writer.startDocument()
            self.writer.startElement(u'sparql',namespace=SPARQL_XML_NAMESPACE)

        def write_header(self,allvarsL):
            self.writer.startElement(u'head', namespace=SPARQL_XML_NAMESPACE)
            for i in xrange(0,len(allvarsL)) :
                self.writer.startElement(u'variable',namespace=SPARQL_XML_NAMESPACE,attributes={u'name':unicode(allvarsL[i][1:])})
                self.writer.endElement(u'variable')
            self.writer.endElement( u'head')

        def write_results_header(self,orderBy,distinct):
            self.writer.startElement(u'results',namespace=SPARQL_XML_NAMESPACE,attributes={u'ordered' : unicode(orderBy and 'true' or 'false'),
                                                                                           u'distinct': unicode(distinct and 'true' or 'false')})

        def write_start_result(self):
            self.writer.startElement(u'result',namespace=SPARQL_XML_NAMESPACE)
            self._resultStarted = True

        def write_end_result(self):
            assert self._resultStarted
            self.writer.endElement(u'result',namespace=SPARQL_XML_NAMESPACE)
            self._resultStarted = False

        def write_binding(self,name,val):
            assert self._resultStarted
            if val:
                attrs = {u'name':unicode(name)}
                self.writer.startElement(u'binding', namespace=SPARQL_XML_NAMESPACE, attributes=attrs)
                if isinstance(val,URIRef) :
                    self.writer.startElement(u'uri', namespace=SPARQL_XML_NAMESPACE)
                    self.writer.text(val)
                    self.writer.endElement(u'uri')
                elif isinstance(val,BNode) :
                    self.writer.startElement(u'bnode', namespace=SPARQL_XML_NAMESPACE)
                    self.writer.text(val)
                    self.writer.endElement(u'bnode')
                elif isinstance(val,Literal) :
                    attrs = {}
                    if val.language :
                        attrs[(u'lang', XML_NAMESPACE)] = unicode(val.language)
                    elif val.datatype:
                        attrs[u'datatype'] = unicode(val.datatype)
                    self.writer.startElement(u'literal', namespace=SPARQL_XML_NAMESPACE, attributes=attrs)
                    self.writer.text(val)
                    self.writer.endElement(u'literal')

                else:
                    raise Exception("Unsupported RDF term: %s"%val)

                self.writer.endElement(u'binding')

        def close(self):
            self.writer.endElement(u'results')
            self.writer.endElement(u'sparql')
示例#3
0
def bb_enable_iface_with_config(devcf):
    """
    Configuration of eth interfaces via system-tools-backends.
        
    * Example of static interface configuration via system-tools-backends

    Function call:
    (sysret, xmlcfg, xmlcfgout) = bb_enable_iface_with_config('eth1', 'none', '10.0.0.6',
                                                              '10.255.255.255', '10.0.0.1',
                                                              '255.255.255.0', '10.0.0.0')
    xml passed to system-tools-backends:
    
    <?xml version='1.0' encoding='UTF-8' standalone='yes'?>
    <interface type='ethernet'>
      <configuration>
        <address>10.0.0.8</address>
        <auto>1</auto>
        <bootproto>none</bootproto>
        <broadcast>10.0.0.255</broadcast>
        <file>eth1</file>
        <gateway>10.0.0.1</gateway>
        <netmask>255.255.255.0</netmask>
        <network>10.0.0.0</network>
      </configuration>
      <dev>eth1</dev>
      <enabled>1</enabled>
    </interface>
    <!-- GST: end of request -->
    
    * Example of dhcp interface configuration via system-tools-backend

    Function call:
    (sysret, xmlcfg, xmlcfgout) = bb_enable_iface_with_config('eth1', 'dhcp')

    xml passed to system-tools-backends:
    
    <interface type='ethernet'>
       <configuration>
         <auto>1</auto>
         <bootproto>dhcp</bootproto>
         <file>eth0</file>
       </configuration>
       <dev>eth0</dev>
       <enabled>1</enabled>
    </interface>
    <!-- GST: end of request -->
    
    """

    netcfg_xmlfile = tempfile.NamedTemporaryFile()
    netcfgout_xmlfile = tempfile.NamedTemporaryFile()
    writer = MarkupWriter(netcfg_xmlfile, encoding='UTF-8', indent=u"yes", 
                          standalone="yes")
    writer.startDocument()
    writer.startElement(u'interface')
    writer.attribute(u'type', u'ethernet')
    writer.startElement(u'configuration')
    if devcf.param['dhcp'] == 'True':
        conf = { 'auto' : '1', \
               'bootproto' : 'dhcp', \
               'file': devcf.param['eth_to_conf'] }
    else:
        broadcast = ipBroadcast(devcf.param['ip_computer'],
                                devcf.param['mask_computer'])
        conf = { 'address' : devcf.param['ip_computer'], \
                 'auto' : '1', \
                 'bootproto' :'none', \
                 'broadcast' : broadcast, \
                 'file': devcf.param['eth_to_conf'], \
                 'gateway' : devcf.param['gw_computer'], \
                 'netmask' : devcf.param['mask_computer'], \
                 'network' : devcf.param['net_computer']}
    for confparam in conf.keys():
        writer.startElement(unicode(confparam))
        writer.text(unicode(conf[confparam]))
        writer.endElement(unicode(confparam))
    writer.endElement(u'configuration')
    writer.startElement(u'dev')
    writer.text(unicode(devcf.param['eth_to_conf']))
    writer.endElement(u'dev')
    writer.startElement(u'enabled')
    writer.text(u'1')
    writer.endElement(u'enable')
    writer.endElement(u'interface')
    writer.text(u'\n')
    writer.comment(u' GST: end of request ')
    writer.endDocument()
    netcfg_xmlfile.flush()

    xmlcfg = open(netcfg_xmlfile.name).read( )
    net_cfg_cmd = "cat " + netcfg_xmlfile.name + " | /usr/share/setup-tool-backends/scripts/network-conf -d enable_iface_with_config | grep -vE \"^$\" > " + netcfgout_xmlfile.name
    os.system(net_cfg_cmd)
    xmlcfgout = open(netcfgout_xmlfile.name).read( )
    reader = PyExpat.Reader( )
    dom = reader.fromStream(open(netcfgout_xmlfile.name, "r"))
    successCfg = Evaluate("success/text( )",
                         dom.documentElement)[0].nodeValue
    if successCfg == '0':
        sysret = BBERRCFGDEV # Error configuration dev
    else:
        sysret = BBNOERR # Ok
    return (sysret, xmlcfg, xmlcfgout)