Changeset 7120 for cows_wps


Ignore:
Timestamp:
29/06/10 12:51:48 (9 years ago)
Author:
astephen
Message:

fix to submitter to parse args with spaces in correctly

Location:
cows_wps/trunk/cows_wps
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • cows_wps/trunk/cows_wps/controllers/submitter.py

    r7071 r7120  
    7474        "Submits request and gets statusLocation then redirects to job viewer controller." 
    7575        base_url = "http://" + request.url[7:].split("/")[0] 
    76         clean_request_url = base_url + urllib.unquote(wps_request_url) 
    77  
    78         """ 
    79         req = urllib2.Request(url = clean_request_url) 
    80         cookies = request.cookies 
    81         expiration = datetime.datetime.now() + datetime.timedelta(days=30) 
    82  
    83         # Now go through each cookie and add it to the request object before sending 
    84         for cookie in cookies.items(): 
    85             nc = Cookie.SimpleCookie() 
    86             (k, v) = cookie 
    87 #            log.warn("COOKIE: %s = %s" % (k, v)) 
    88             nc[k] = v 
    89 #            nc[k]["domain"] = "ceda-wps1.badc.rl.ac.uk" 
    90             nc[k]["path"] = "/" 
    91 #            nc[k]["expires"] = expiration.strftime("%a, %d-%b-%Y %H:%M:%S PST") 
    92             req.add_header('Cookie', nc.output()) 
    93  
    94 #        getter = urllib.urlopen(clean_request_url) 
    95         getter = urllib2.urlopen(req) 
    96         xml = getter.read() 
    97         getter.close() 
    98         """ 
     76        clean_request_url = base_url + urllib.unquote(wps_request_url).replace(" ", "+") 
    9977 
    10078        xml = downloadFromURL(clean_request_url, cookies = request.cookies) 
  • cows_wps/trunk/cows_wps/controllers/wps.py

    r6949 r7120  
    111111 
    112112    def _parseDataInputs(self, dataInputs): 
     113        """ 
     114        Parses inputs, returns dictionary. 
     115        Applies the following rules: 
     116         * Any values sent with "|" are split into a list. 
     117         * Any values containing a "+" sign will be replaced with spaces in the value. 
     118        """ 
    113119        # If dataInputs is blank return empty dictionary 
    114120        if not dataInputs: 
     
    117123        arg_dict = {} 
    118124        args = dataInputs.split(",") 
     125 
    119126        if len(args) %2 != 0: 
    120127            raise ValueError("Must provide even number of arguments in query string for datainput argument (all comma-separated).") 
     
    123130 
    124131        while len(args) > 0: 
    125             arg,value = args[:2] 
     132            (arg, value) = args[:2] 
    126133            args = args[2:] 
    127134 
     135#            log.warn("VALUE: %s" % value) 
    128136            value = urllib.unquote(value) 
     137            value = value.replace("+", " ") 
     138#            log.warn("VALUE2: %s" % value) 
    129139 
    130140            if value.find("|") > -1: 
     
    189199                 
    190200        # Exceptions here will be caught by COWS 
    191         #!TODO: include more info about the process in the exception by catching and 
    192         #       rethrowing the exception. 
    193201        try: 
    194202            arg_dict = va.validate() 
  • cows_wps/trunk/cows_wps/process_handler/validate_arguments.py

    r7001 r7120  
    6060def checkArgInList(item, enumeration): 
    6161    "Returns True if item is in enumeration and raises error if not." 
    62      
     62#    log.warn("III: %s, %s" % (item, str(enumeration)))     
    6363    if item not in enumeration: 
    6464         
     
    251251        return new_dict 
    252252 
     253 
    253254def parseValue(value, d): 
    254255    parsedValue = None 
     256#    log.warn("123: %s" % value) 
    255257     
    256258    if d["item_type"] == "list": 
     
    263265    return parsedValue 
    264266 
     267 
    265268def makeDict(qs): 
    266269        dct = {} 
     
    270273        return dct 
    271274 
     275 
    272276if __name__ == "__main__": 
    273277 
Note: See TracChangeset for help on using the changeset viewer.