Changeset 2262:458867491ec4

Show
Ignore:
Timestamp:
08/27/08 01:48:08 (3 months ago)
Author:
dunker@…
Branch:
default
Message:

add gozernet/infoitem/+searchdescr to the cloud

Files:
3 modified

Legend:

Unmodified
Added
Removed
  • gozerbot/net/cloud.py

    r2259 r2262  
    3838        return "name=%s url=<%s> seen=%s" % (self.name, self.url, self.regtime) 
    3939 
     40    def doget(self, mount, cb, *args, **kwargs): 
     41        self.client = Client(self.url + mount, self.name).addcb(cb) 
     42        self.client.get() 
     43 
     44    def dopost(self, mount, cb, *args, **kwargs): 
     45        self.client = Client(self.url + mount, self.name).addcb(cb) 
     46        self.client.post(**kwargs) 
     47 
    4048    def query(self, what, cb): 
    4149        if what.startswith('/'): 
     
    5664self.name).addcb(cb) 
    5765        self.client.get() 
     66 
     67    def infoitemsearchdescr(self, item, cb): 
     68        self.client = Client(self.url + 'gozernet/infoitem/+searchdescr/', \ 
     69self.name).addcb(cb) 
     70        self.client.post(searchitem=item) 
    5871 
    5972    def join(self, cb): 
     
    166179        start_new_thread(asyncore.loop, (), {'use_poll': True }) 
    167180 
     181    def doget(self, mount, *args, **kwargs): 
     182        for url, node in self.nodes.iteritems(): 
     183            node.doget(mount, *args, **kwargs) 
     184        start_new_thread(asyncore.loop, (), {'use_poll': True }) 
     185 
     186    def dopost(self, mount, *args, **kwargs): 
     187        for url, node in self.nodes.iteritems(): 
     188            node.dopost(mount, *args, **kwargs) 
     189        start_new_thread(asyncore.loop, (), {'use_poll': True }) 
     190 
    168191    def getnodes(self): 
    169192        result = [] 
  • gozerplugs/plugs/cloud.py

    r2261 r2262  
    7676        return dumps(info.get(input)) 
    7777 
     78def infoitemsearchdescr_POST(server, request): 
     79    try: 
     80        input = getpostdata(request) 
     81        what = input['searchitem'] 
     82    except KeyError: 
     83        rlog(10, request.host, 'no searchitem provided') 
     84        return dumps('no searchitem provided') 
     85    return dumps(info.searchdescr(what)) 
     86 
    7887def init(): 
    7988    """ init the cloud plugin """ 
     
    9099                server.addhandler('/gozernet/nodes/', 'GET', nodes_GET) 
    91100                server.addhandler('/gozernet/infoitem/', 'GET', infoitem_GET) 
     101                server.addhandler('/gozernet/infoitem/+searchdescr', 'POST', \ 
     102infoitemsearchdescr_POST) 
    92103                server.addhandler('/gozernet/+auth/', 'POST', auth_POST) 
    93104                server.addhandler('/gozernet/+ping/', 'GET', ping_GET) 
  • gozerplugs/plugs/infoitem.py

    r2258 r2262  
    279279        what = ievent.rest 
    280280    what = what.strip().lower() 
     281    if cloud.enabled: 
     282        def cb(client, request): 
     283            if request.error: 
     284                ievent.reply("%s: %s" % (client.host, request.error)) 
     285            if request.data: 
     286                res = [] 
     287                for result in request.data: 
     288                    res.append("[%s] %s" % (result[0], result[1])) 
     289                ievent.reply("%s: " % client.host, res, dot=True) 
     290        cloud.dopost('gozernet/infoitem/+searchdescr', cb, searchitem=what) 
     291        return 
    281292    result = info.searchdescr(what) 
    282293    if result: