Changeset 37061e29760530a53b63ccd93965646cce571ed5


Ignore:
Timestamp:
25.05.2013 15:44:48 (6 years ago)
Author:
Stanislaw Klekot <dozzie@…>
Branches:
b66903eafbcb1d49112014abc82c8bf683413db0
Children:
a2f66cd4ce8a95783517fa979dd03787dbe42654
Parents:
29770d5733c97b0004a3916de00dfeb27b93907f
git-author:
Stanislaw Klekot <dozzie@…> (25.05.2013 15:44:48)
git-committer:
Stanislaw Klekot <dozzie@…> (25.05.2013 15:44:48)
Message:

Reorganized protocol plugins a bit.

Now there's a common ancestor class that sets stuff commonly throughout all
the protocol plugins.

Location:
dashwiki/plugins
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • dashwiki/plugins/HTTP.py

    re9eab1 r37061e  
     1#!/usr/bin/python 
     2 
     3from ProtocolPlugin import ProtocolPlugin 
    14import json 
    25import urllib 
    36 
    4 class HTTP: 
    5   def __init__(self, name = None, url, in_args = "", out_args = "", 
    6                      result_type, protocol = "HTTP"): 
    7     self.name        = name 
    8     self.url         = url 
    9     self.in_args     = in_args.split(',') 
    10     self.out_args    = out_args 
    11     self.result_type = result_type 
    12     self.protocol    = protocol 
     7#----------------------------------------------------------------------------- 
    138 
     9class HTTP(ProtocolPlugin): 
    1410  def call(self, args): 
    1511    # args: [...] 
    16     args_h = {} 
    17     for i in range(len(self.in_args)): 
    18       arg_name = self.in_args[i] 
    19       arg_value = args[i] 
    20       args_h[arg_name] = arg_value 
     12    self.set_args(args) 
    2113 
    22     url = self.url % args_h 
    2314    urlfetcher = urllib.URLopener() 
    24     (tempfilename, headers) = urlfetcher.retrieve(url) 
     15    (tempfilename, headers) = urlfetcher.retrieve(self.url) 
    2516    data = open(tempfilename).read() 
    2617    os.unlink(tempfilename) 
     
    3021    else: 
    3122      return data 
     23 
     24#----------------------------------------------------------------------------- 
     25# vim:ft=python:foldmethod=marker 
  • dashwiki/plugins/XMLRPC.py

    re9eab1 r37061e  
     1#!/usr/bin/python 
     2 
     3from ProtocolPlugin import ProtocolPlugin 
    14import json 
    25import xmlrpclib 
    36 
    4 class XMLRPC: 
    5   def __init__(self, name = None, url, in_args = "", out_args = "", 
    6                      result_type, protocol = "XML-RPC"): 
    7     self.name        = name 
    8     self.url         = url 
    9     self.in_args     = in_args.split(',') 
    10     self.out_args    = out_args 
    11     self.result_type = result_type 
    12     self.protocol    = protocol 
     7#----------------------------------------------------------------------------- 
    138 
     9class XMLRPC(ProtocolPlugin): 
    1410  def call(self, args): 
    1511    # args: [...] 
    16     args_h = {} 
    17     for i in range(len(self.in_args)): 
    18       arg_name = self.in_args[i] 
    19       arg_value = args[i] 
    20       args_h[arg_name] = arg_value 
     12    self.set_args(args) 
    2113 
    22     url = self.url % args_h 
    23     xmlrpc_client = xmlrpclib.ServerProxy(url) 
    24     out_args_json = self.out_args % args_h 
    25     out_args = json.loads(out_args_json) 
    26     # out_args = { 
     14    xmlrpc_client = xmlrpclib.ServerProxy(self.url) 
     15    # self.out_args = { 
    2716    #   "function": "server.status", 
    2817    #   "args": [...] 
    2918    # } 
    3019 
    31     remote_function = xmlrpc_client.__getattr__(out_args['function']) 
    32     remote_function_args = out_args['args'] 
     20    remote_function = xmlrpc_client.__getattr__(self.out_args['function']) 
     21    remote_function_args = self.out_args['args'] 
    3322    return remote_function(*remote_function_args) 
     23 
     24#----------------------------------------------------------------------------- 
     25# vim:ft=python:foldmethod=marker 
  • dashwiki/plugins/__init__.py

    re9eab1 r37061e  
    55 
    66#----------------------------------------------------------------------------- 
     7 
     8_protocols = { 
     9  'HTTP':    HTTP, 
     10  'XML-RPC': XMLRPC, 
     11} 
     12 
     13def load_plugin(macro): 
     14  return _protocols[macro.protocol.name]( 
     15    name        = macro.name, 
     16    url         = macro.url, 
     17    in_args     = macro.in_args, 
     18    out_args    = macro.out_args, 
     19    result_type = macro.result_type.name, 
     20    protocol    = macro.protocol.name, 
     21  ) 
     22 
     23#----------------------------------------------------------------------------- 
    724# vim:ft=python:foldmethod=marker 
Note: See TracChangeset for help on using the changeset viewer.