def pstring(self, x):
     io = StringIO.StringIO()
     sxp.show(x, out=io)
     io.seek(0)
     val = io.getvalue()
     io.close()
     return val
 def pstring(self, x):
     io = StringIO.StringIO()
     sxp.show(x, out=io)
     io.seek(0)
     val = io.getvalue()
     io.close()
     return val
Beispiel #3
0
 def send_reply(self, sxpr):
     io = StringIO.StringIO()
     sxp.show(sxpr, out=io)
     print >> io
     io.seek(0)
     if self.transport:
         return self.transport.write(io.getvalue())
     else:
         return 0
 def send_reply(self, sxpr):
     io = StringIO.StringIO()
     sxp.show(sxpr, out=io)
     print >> io
     io.seek(0)
     if self.transport:
         return self.transport.write(io.getvalue())
     else:
         return 0
Beispiel #5
0
def vnet_cmd(cmd):
    out = None
    try:
        try:
            out = file("/proc/vnet/policy", "wb")
            sxp.show(cmd, out)
        except IOError, ex:
            raise XendError(str(ex))
    finally:
        if out: out.close()
def vnet_cmd(cmd):
    out = None
    try:
        try:
            out = file("/proc/vnet/policy", "wb")
            sxp.show(cmd, out)
        except IOError, ex:
            raise XendError(str(ex))
    finally:
        if out: out.close()
Beispiel #7
0
 def render_GET(self, req):
     if self.use_sxp(req):
         req.setHeader("Content-Type", sxp.mime_type)
         sxp.show(self.vnetinfo.sxpr(), out=req)
     else:
         req.write('<html><head></head><body>')
         self.print_path(req)
         req.write('<p>Vnet %s</p>' % self.vnetinfo.id)
         req.write("<code><pre>")
         PrettyPrint.prettyprint(self.vnetinfo.sxpr(), out=req)
         req.write("</pre></code>")
         self.form(req)
         req.write('</body></html>')
     return ''
def prettyprint(sxpr, out=sys.stdout, width=80):
    """Prettyprint an SXP form.

    sxpr  s-expression
    out   destination
    width maximum output width
    """
    if isinstance(sxpr, types.ListType):
        pp = SXPPrettyPrinter(width=width)
        pp.pprint(sxpr)
        pp.prettyprint(out=out)
    else:
        sxp.show(sxpr, out=out)
    print >> out
def prettyprint(sxpr, out=sys.stdout, width=80):
    """Prettyprint an SXP form.

    sxpr	s-expression
    out		destination
    width	maximum output width
    """
    if isinstance(sxpr, types.ListType):
        pp = SXPPrettyPrinter(width=width)
        pp.pprint(sxpr)
        pp.prettyprint(out=out)
    else:
        sxp.show(sxpr, out=out)
    print >> out
 def render_GET(self, req):
     if self.use_sxp(req):
         req.setHeader("Content-Type", sxp.mime_type)
         sxp.show(self.vnetinfo.sxpr(), out=req)
     else:
         req.write('<html><head></head><body>')
         self.print_path(req)
         req.write('<p>Vnet %s</p>' % self.vnetinfo.id)
         req.write("<code><pre>")
         PrettyPrint.prettyprint(self.vnetinfo.sxpr(), out=req)
         req.write("</pre></code>")
         self.form(req)
         req.write('</body></html>')
     return ''
 def ls_vnet(self, req, use_sxp=0):
     url = req.prePathURL()
     if not url.endswith('/'):
         url += '/'
     if use_sxp:
         vnets = self.xvnet.vnet_ls()
         sxp.show(vnets, out=req)
     else:
         vnets = self.xvnet.vnets()
         vnets.sort(lambda x, y: cmp(x.id, y.id))
         req.write('<ul>')
         for v in vnets:
            req.write('<li><a href="%s%s"> Vnet %s</a>' % (url, v.id, v.id))
            req.write('</li>')
         req.write('</ul>')
Beispiel #12
0
 def ls_vnet(self, req, use_sxp=0):
     url = req.prePathURL()
     if not url.endswith('/'):
         url += '/'
     if use_sxp:
         vnets = self.xvnet.vnet_ls()
         sxp.show(vnets, out=req)
     else:
         vnets = self.xvnet.vnets()
         vnets.sort(lambda x, y: cmp(x.id, y.id))
         req.write('<ul>')
         for v in vnets:
             req.write('<li><a href="%s%s"> Vnet %s</a>' %
                       (url, v.id, v.id))
             req.write('</li>')
         req.write('</ul>')
    def resultErr(self, err):
        """Error callback to complete a request.

        @param err: the error
        """
        if not isinstance(err, (ArgError, sxp.ParseError, XendError)):
            raise
        #log.exception("op=%s: %s", op, str(err))
        if self.useSxp():
            self.setHeader("Content-Type", sxp.mime_type)
            sxp.show(['xend.err', str(err)], out=self)
        else:
            self.setHeader("Content-Type", "text/plain")
            self.write('Error ')
            self.write(': ')
            self.write(str(err))
        return None
 def render_GET(self, req):
     if self.use_sxp(req):
         req.setHeader("Content-Type", sxp.mime_type)
         sxp.show(['node'] + self.info(), out=req)
     else:
         url = req.prePathURL()
         if not url.endswith('/'):
             url += '/'
         req.write('<html><head></head><body>')
         self.print_path(req)
         req.write('<ul>')
         for d in self.info():
             req.write('<li> %10s: %s' % (d[0], str(d[1])))
         req.write('<li><a href="%sdmesg">Xen dmesg output</a>' % url)
         req.write('<li><a href="%slog">Xend log</a>' % url)
         req.write('</ul>')
         req.write('</body></html>')
Beispiel #15
0
 def render_GET(self, req):
     if self.use_sxp(req):
         req.setHeader("Content-Type", sxp.mime_type)
         sxp.show(['node'] + self.info(), out=req)
     else:
         url = req.prePathURL()
         if not url.endswith('/'):
             url += '/'
         req.write('<html><head></head><body>')
         self.print_path(req)
         req.write('<ul>')
         for d in self.info():
             req.write('<li> %10s: %s' % (d[0], str(d[1])))
         req.write('<li><a href="%sdmesg">Xen dmesg output</a>' % url)
         req.write('<li><a href="%slog">Xend log</a>' % url)
         req.write('</ul>')
         req.write('</body></html>')
Beispiel #16
0
    def resultErr(self, err):
        """Error callback to complete a request.

        @param err: the error
        """
        if not isinstance(err, (ArgError, sxp.ParseError, XendError)):
            raise
        #log.exception("op=%s: %s", op, str(err))
        if self.useSxp():
            self.setHeader("Content-Type", sxp.mime_type)
            sxp.show(['xend.err', str(err)], out=self)
        else:
            self.setHeader("Content-Type", "text/plain")
            self.write('Error ')
            self.write(': ')
            self.write(str(err))
        return None
Beispiel #17
0
 def ls_domain(self, req, detail, use_sxp):
     url = req.prePathURL()
     if not url.endswith('/'):
         url += '/'
     if use_sxp:
         if detail:
             sxp.show(map(XendDomainInfo.sxpr, self.xd.list()), out=req)
         else:
             sxp.show(self.xd.list_names(), out=req)
     else:
         domains = self.xd.list_sorted()
         req.write('<ul>')
         for d in domains:
             req.write(
                 '<li><a href="%s%s">Domain %s</a>: id = %s, memory = %d, '
                 'ssidref = %d.' %
                 (url, d.getName(), d.getName(), d.getDomid(),
                  d.getMemoryTarget(), d.getSsidref()))
             req.write('</li>')
         req.write('</ul>')
Beispiel #18
0
 def ls_domain(self, req, detail, use_sxp):
     url = req.prePathURL()
     if not url.endswith('/'):
         url += '/'
     if use_sxp:
         if detail:
             sxp.show(map(XendDomainInfo.sxpr, self.xd.list()), out=req)
         else:
             sxp.show(self.xd.list_names(), out=req)
     else:
         domains = self.xd.list_sorted()
         req.write('<ul>')
         for d in domains:
             req.write(
                 '<li><a href="%s%s">Domain %s</a>: id = %s, memory = %d, '
                 'ssidref = %d.'
                 % (url, d.getName(), d.getName(), d.getDomid(),
                    d.getMemoryTarget(), d.getSsidref()))
             req.write('</li>')
         req.write('</ul>')
 def ls_domain(self, req, detail, use_sxp):
     url = req.prePathURL()
     if not url.endswith('/'):
         url += '/'
     if use_sxp:
         if detail:
             sxp.show(map(XendDomainInfo.sxpr, self.xd.list()), out=req)
         else:
             state = DOM_STATE_RUNNING
             if 'state' in req.args and len(req.args['state']) > 0:
                 state = req.args['state'][0]
             log.trace("Listing domains in state " + str(state))
             sxp.show(self.xd.list_names(state), out=req)
     else:
         domains = self.xd.list_sorted()
         req.write('<ul>')
         for d in domains:
             req.write(
                 '<li><a href="%s%s">Domain %s</a>: id = %s, memory = %d'
                 % (url, d.getName(), d.getName(), d.getDomid(),
                    d.getMemoryTarget()))
             req.write('</li>')
         req.write('</ul>')
Beispiel #20
0
    def resultVal(self, val):
        """Callback to complete the request.

        @param val: the value
        """
        if val is None:
            return val
        elif isinstance(val, ThreadRequest):
            return val
        elif self.useSxp():
            self.setHeader("Content-Type", sxp.mime_type)
            sxp.show(val, out=self)
        else:
            self.write('<html><head></head><body>')
            self.printPath()
            if isinstance(val, types.ListType):
                self.write('<code><pre>')
                PrettyPrint.prettyprint(val, out=self)
                self.write('</pre></code>')
            else:
                self.write(str(val))
            self.write('</body></html>')
        return None
    def resultVal(self, val):
        """Callback to complete the request.

        @param val: the value
        """
        if val is None:
            return val
        elif isinstance(val, ThreadRequest):
            return val
        elif self.useSxp():
            self.setHeader("Content-Type", sxp.mime_type)
            sxp.show(val, out=self)
        else:
            self.write('<html><head></head><body>')
            self.printPath()
            if isinstance(val, types.ListType):
                self.write('<code><pre>')
                PrettyPrint.prettyprint(val, out=self)
                self.write('</pre></code>')
            else:
                self.write(str(val))
            self.write('</body></html>')
        return None
 def ls_domain(self, req, detail, use_sxp):
     url = req.prePathURL()
     if not url.endswith('/'):
         url += '/'
     if use_sxp:
         if detail:
             sxp.show(map(XendDomainInfo.sxpr, self.xd.list()), out=req)
         else:
             state = DOM_STATE_RUNNING
             if 'state' in req.args and len(req.args['state']) > 0:
                 state = req.args['state'][0]
             log.trace("Listing domains in state " + str(state))
             sxp.show(self.xd.list_names(state), out=req)
     else:
         domains = self.xd.list_sorted()
         req.write('<ul>')
         for d in domains:
             req.write(
                 '<li><a href="%s%s">Domain %s</a>: id = %s, memory = %d' %
                 (url, d.getName(), d.getName(), d.getDomid(),
                  d.getMemoryTarget()))
             req.write('</li>')
         req.write('</ul>')
Beispiel #23
0
    def render_GET(self, req):
        op = req.args.get("op")

        if op and op[0] in ["vcpuinfo"]:
            return self.perform(req)

        #
        # XXX SMH: below may be useful once again if we ever try to get
        # the raw 'web' interface to xend working once more. But for now
        # is useless and out of date (i.e. no ops called 'v???' anymore).
        #
        # if op and op[0] in ['vifs', 'vif', 'vbds', 'vbd', 'mem_target_set']:
        #    return self.perform(req)
        if self.use_sxp(req):
            req.setHeader("Content-Type", sxp.mime_type)
            sxp.show(self.dom.sxpr(), out=req)
        else:
            req.write("<html><head></head><body>")
            self.print_path(req)
            # self.ls()
            req.write("<p>%s</p>" % self.dom)
            self.form(req)
            req.write("</body></html>")
        return ""
Beispiel #24
0
    def render_GET(self, req):
        op = req.args.get('op')

        if op and op[0] in ['vcpuinfo']:
            return self.perform(req)

        #
        # XXX SMH: below may be useful once again if we ever try to get
        # the raw 'web' interface to xend working once more. But for now
        # is useless and out of date (i.e. no ops called 'v???' anymore).
        #
        # if op and op[0] in ['vifs', 'vif', 'vbds', 'vbd', 'mem_target_set']:
        #    return self.perform(req)
        if self.use_sxp(req):
            req.setHeader("Content-Type", sxp.mime_type)
            sxp.show(self.dom.sxpr(), out=req)
        else:
            req.write('<html><head></head><body>')
            self.print_path(req)
            #self.ls()
            req.write('<p>%s</p>' % self.dom)
            self.form(req)
            req.write('</body></html>')
        return ''