Changeset 3536


Ignore:
Timestamp:
27/02/08 15:41:06 (11 years ago)
Author:
cbyrom
Message:

Upgrade the server code to make consistent with newer pylons codebase - v0.9.6.1.
This mainly involves the replacement of the Response object, and associated methods,
with the inbuild, default response object. Typical changes include:

render_response -> render - with required settings on the response object
made before the render call against the response object

Response(...) -> response.write() - for content + response.headers.. = .. for headers info

  • also included the replacement of depricated functions, as highlighted by

the server logging

Location:
TI05-delivery/ows_framework/trunk/ows_server/ows_server
Files:
23 edited

Legend:

Unmodified
Added
Removed
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/config/environment.py

    r2916 r3536  
    11import os 
    22 
    3 import pylons.config 
    43import webhelpers 
    54 
     5from pylons import config 
     6 
     7import ows_server.lib.app_globals as app_globals 
     8import ows_server.lib.helpers 
    69from ows_server.config.routing import make_map 
    710 
    811def load_environment(global_conf={}, app_conf={}): 
    9     map = make_map(global_conf, app_conf) 
    1012    # Setup our paths 
    1113    root_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
    12     paths = {'root_path': root_path, 
     14    paths = {'root': root_path, 
    1315             'controllers': os.path.join(root_path, 'controllers'), 
    1416             'templates': [os.path.join(root_path, path) for path in \ 
     
    1618             'static_files': os.path.join(root_path, 'public') 
    1719             } 
     20 
     21    # Initialize config with the basic options 
     22    config.init_app(global_conf, app_conf, package='ows_server', 
     23                    template_engine='kid', paths=paths) 
     24 
     25    config['pylons.g'] = app_globals.Globals() 
     26    config['pylons.h'] = ows_server.lib.helpers 
     27    config['routes.map'] = make_map() 
    1828     
    1929    # The following template options are passed to your template engines 
    20     tmpl_options = {} 
     30    tmpl_options = config['buffet.template_options'] 
    2131    tmpl_options['myghty.log_errors'] = True 
    2232    tmpl_options['myghty.escapes'] = dict(l=webhelpers.auto_link, s=webhelpers.simple_format) 
    2333     
    2434    # Add your own template options config options here, note that all config options will override 
    25     # any Pylons config options 
    26      
    27     # Return our loaded config object 
    28     return pylons.config.Config(tmpl_options, map, paths) 
    29  
     35    # any Pylons config options     
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/config/middleware.py

    r3137 r3536  
    66from paste.deploy.converters import asbool 
    77 
     8from pylons import config 
    89from pylons.error import error_template 
    910from pylons.middleware import ErrorHandler, ErrorDocuments, StaticJavascripts, error_mapper 
    10 import pylons.wsgiapp 
     11from pylons.wsgiapp import PylonsApp 
    1112 
    1213from ows_server.config.environment import load_environment 
    13 import ows_server.lib.helpers 
    14 import ows_server.lib.app_globals as app_globals 
    1514 
    1615from ows_server.config.ndgMiddleware import ndgMiddleware 
     
    3433 
    3534    # Load our Pylons configuration defaults 
    36     config = load_environment(global_conf, app_conf) 
    37     config.init_app(global_conf, app_conf, package='ows_server', 
    38                     template_engine='kid') 
     35    load_environment(global_conf, app_conf) 
    3936         
    4037    # Load our default Pylons WSGI app and make g available 
    41     app = pylons.wsgiapp.PylonsApp(config, helpers=ows_server.lib.helpers, 
    42                                    g=app_globals.Globals) 
     38    app = PylonsApp() 
    4339    g = app.globals 
    4440    app = ConfigMiddleware(app, conf) 
     
    6258     
    6359        # Error Handling 
    64         app = ErrorHandler(app, global_conf, error_template=error_template, **config.errorware) 
     60        app = ErrorHandler(app, global_conf, error_template=error_template, **config['pylons.errorware']) 
    6561     
    6662        # Display error documents for 401, 403, 404 status codes (if debug is disabled also 
     
    7369    # Allow static files from outside the egg too ... g.htdocs defined in ndgDiscovery.config 
    7470    if g.htdocs: 
    75         static_paths = [g.htdocs,config.paths['static_files']] 
    76     else: static_paths= [config.paths['static_files']] 
     71        static_paths = [g.htdocs,config['pylons.paths']['static_files']] 
     72    else: static_paths= [config['pylons.paths']['static_files']] 
    7773    static_app = [StaticURLParser(path) for path in static_paths] 
    7874    javascripts_app = StaticJavascripts() 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/config/routing.py

    r3503 r3536  
    55from routes import Mapper 
    66 
    7 def make_map(global_conf={}, app_conf={}): 
     7def make_map(): 
    88    root_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
    99 
     
    4545    map.connect('retrieve/:uri', controller = 'retrieve') 
    4646    map.connect('selectedItems',controller='selectedItems',action='index') 
     47    map.connect('viewItems',controller='viewItems',action='index') 
    4748    map.connect('addSelectedItem/:entryid/:kmlurl/:wmcurl/:title/:divid', 
    4849                controller='selectedItems',action='addSelectedItem',kmlurl='',wmcurl='') 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/csml_api.py

    r2674 r3536  
    2121         
    2222        if format == 'html': 
    23             return render_response('csml_describe') 
     23            return render('csml_describe') 
    2424        else: 
    25             return Response(ET.tostring(c.dataset.toXML()), mimetype="text/xml") 
     25                response.headers['Content-Type'] = 'text/xml' 
     26            return response.write(ET.tostring(c.dataset.toXML())) 
    2627     
    2728    def getFeature(self, file, feature, format): 
     
    3031        if format == 'html': 
    3132            c.feature_obj = f 
    32             return render_response('csml_describe_feature') 
     33            return render('csml_describe_feature') 
    3334        else: 
    3435            r = ET.Element("CSML_API"); f.toXML(r) 
    35             return Response(ET.tostring(r), mimetype=format) 
     36                response.headers['Content-Type'] = format 
     37            return response.write(ET.tostring(r)) 
    3638 
    3739    def subsetToGridSeries(self, file, feature): 
     
    5557 
    5658        # Write bundle to a response object 
    57         r = Response(open(bundleFile), mimetype='application/octetstream') 
     59        response.headers['Content-Type'] = 'application/octetstream' 
     60        r = response.write(open(bundleFile)) 
    5861        r.headers['Content-disposition'] = 'attachment; filename=bundle.zip' 
    5962 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/csml_wcs1_0_0.py

    r3248 r3536  
    189189            if not rstatus:  
    190190                c.xml='<div class="error">%s</div>'%c.dataset 
    191                 resp=render_response('error') 
     191                resp=render('error') 
    192192                return resp 
    193193     
    194194            if type(c.dataset) is str: 
    195195                #If not a csml datset is some message from exist such as 'access denied' 
    196                 return Response(c.dataset) 
     196                return response(c.dataset) 
    197197            return self._renderCapabilities('wcs1_0_0_Capabilities') 
    198198        except Exception, e: 
    199199            if isinstance(e, OWS_E.OwsError): 
    200200               c.ex=e.report                 
    201                r=render_response('ogc_se', format='xml') 
     201               r=render('ogc_se', format='xml') 
    202202               r.headers['content-type'] = 'text/xml' 
    203203               return r 
    204204            elif isinstance(e, ValueError): 
    205205                c.xml='<div class="error">%s</div>'%e 
    206                 return render_response('error') 
     206                return render('error') 
    207207            else: 
    208208                raise OWS_E.NoApplicableCode(e) 
     
    230230                self.covDescs=self._buildCoverageDescriptions() 
    231231            c.covDescs=self.covDescs 
    232             r=render_response('wcs1_0_0_DescribeCoverageResponse', format='xml') 
     232            r=render('wcs1_0_0_DescribeCoverageResponse', format='xml') 
    233233            r.headers['content-type'] = 'text/xml' 
    234234            return r 
     
    236236            if isinstance(e, OWS_E.OwsError): 
    237237                c.ex=e.report                 
    238                 r=render_response('ogc_se', format='xml') 
     238                r=render('ogc_se', format='xml') 
    239239                r.headers['content-type'] = 'application/vnd.ogc.se_xml' 
    240240                return r 
    241241            elif isinstance(e, ValueError): 
    242242                c.xml='<div class="error">%s</div>'%e 
    243                 return render_response('error') 
     243                return render('error') 
    244244            else: 
    245245               raise OWS_E.NoApplicableCode(e) 
     
    265265            if not rstatus:  
    266266                c.xml='<div class="error">%s</div>'%dataset 
    267                 resp=render_response('error') 
     267                resp=render('error') 
    268268                return resp 
    269269            feature = dataset.getFeature(identifier) 
     
    341341                        hostname=hostname=request.environ['HTTP_HOST']                     
    342342                    c.hyperlink ='http://'+hostname+'/'+os.path.basename(request.environ['paste.config']['app_conf']['publish_dir'])+'/'+os.path.basename(filename) 
    343                     r=render_response('wcs_getCoverageResponse', format='xml') 
     343                    r=render('wcs_getCoverageResponse', format='xml') 
    344344                    r.headers['content-type'] = 'text/xml' 
    345345                    #write ndgSec to text file and store with coverage file: 
     
    361361                else: 
    362362                    mType='application/unknown' 
    363                     #Differnce in how Content-Types are handled between pylons 0.9.5 and 0.9.6 
    364             try: 
    365                 #0.9.6 
    366                 pylons.response.headers['Content-Type']=mType                 
    367                 pylons.response.headers['Content-Disposition'] = paste.httpheaders.CONTENT_DISPOSITION(attachment=True, filename=f) 
    368                 return pylons.response(content=fileToReturn) 
    369             except: 
    370                 #0.9.5                 
    371                 r=Response(content=fileToReturn, mimetype=mType)      
    372                 r.headers['Content-Disposition'] = paste.httpheaders.CONTENT_DISPOSITION(attachment=True, filename=f)                 
    373                 return r 
     363 
     364            response.headers['Content-Type']=mType 
     365            response.headers['Content-Disposition'] = paste.httpheaders.CONTENT_DISPOSITION(attachment=True, filename=f) 
     366            return response.write(fileToReturn) 
     367 
    374368        except Exception, e: 
    375369            if isinstance(e, OWS_E.OwsError): 
    376370                c.ex=e.report                 
    377                 r=render_response('ogc_se', format='xml') 
     371                r=render('ogc_se', format='xml') 
    378372                #r.headers['content-type'] = 'text/xml' 
    379373                r.headers['content-type'] = 'application/vnd.ogc.se_xml' 
     
    381375            elif isinstance(e, ValueError): 
    382376                c.xml='<div class="error">%s</div>'%e 
    383                 return render_response('error') 
     377                return render('error') 
    384378            else: 
    385379               raise OWS_E.NoApplicableCode(e) 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/csml_wcs1_1_0.py

    r3027 r3536  
    186186            if not rstatus:  
    187187                c.xml='<div class="error">%s</div>'%c.dataset 
    188                 resp=render_response('error') 
     188                resp=render('error') 
    189189                return resp 
    190190     
    191191            if type(c.dataset) is str: 
    192192                #If not a csml datset is some message from exist such as 'access denied' 
    193                 return Response(c.dataset) 
     193                response.write(c.dataset) 
     194                return response 
    194195            return self._renderCapabilities('ows/wcs_capabilities') 
    195196        except Exception, e: 
     
    198199            elif isinstance(e, ValueError): 
    199200                c.xml='<div class="error">%s</div>'%e 
    200                 return render_response('error') 
     201                return render('error') 
    201202            else: 
    202203                raise OWS_E.NoApplicableCode(e) 
     
    223224                self.covDescs=self._buildCoverageDescriptions() 
    224225            c.covDescs=self.covDescs 
    225             r=render_response('wcs_DescribeCoverageResponse', format='xml') 
     226            r=render('wcs_DescribeCoverageResponse', format='xml') 
    226227            r.headers['content-type'] = 'text/xml' 
    227228            return r 
     
    231232            elif isinstance(e, ValueError): 
    232233                c.xml='<div class="error">%s</div>'%e 
    233                 return render_response('error') 
     234                return render('error') 
    234235            else: 
    235236                raise OWS_E.NoApplicableCode(e) 
     
    251252            if not rstatus:  
    252253                c.xml='<div class="error">%s</div>'%dataset 
    253                 resp=render_response('error') 
     254                resp=render('error') 
    254255                return resp 
    255256            feature = dataset.getFeature(identifier) 
     
    320321                    hostname=g.server   
    321322                    c.hyperlink =hostname+'/'+os.path.basename(request.environ['paste.config']['app_conf']['publish_dir'])+'/'+os.path.basename(filename) 
    322                     r=render_response('wcs_getCoverageResponse', format='xml') 
     323                    r=render('wcs_getCoverageResponse', format='xml') 
    323324                    r.headers['content-type'] = 'text/xml' 
    324325                    #write ndgSec to text file and store with coverage file: 
     
    337338                netcdfFile=open(filename, 'r') 
    338339                c.hyperlink="cid:coverage.nc" 
    339                 xmlfile=render_response('wcs_getCoverageResponse', format='xml') 
     340                xmlfile=render('wcs_getCoverageResponse', format='xml') 
    340341                xmlfile.headers['content-type'] = 'text/xml' 
    341342                multipart=self._createMultipartMime(xmlfile, netcdfFile)         
    342343                msg=multipart 
    343                 try: 
    344                     #0.9.6 
    345                     pylons.response.headers['Content-Type']='multipart' 
    346                     return pylons.response(content=msg) 
    347                 except: 
    348                     #0.9.5 
    349                     return Response(content=msg, mimetype='multipart')                      
     344 
     345                response.headers['Content-Type']='multipart' 
     346                response.write(msg) 
     347                return response 
    350348        except Exception, e: 
    351349            if isinstance(e, OWS_E.OwsError): 
     
    353351            elif isinstance(e, ValueError): 
    354352                c.xml='<div class="error">%s</div>'%e 
    355                 return render_response('error') 
     353                return render('error') 
    356354            else: 
    357355               raise OWS_E.NoApplicableCode(e) 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/csml_wms.py

    r3472 r3536  
    111111        if not rstatus: 
    112112            c.xml='<div class="error">%s</div>' % dataset 
    113             resp = render_response('error') 
    114             return resp 
     113            return render('error') 
    115114 
    116115        return self._renderCapabilities('ows/wms_capabilities') 
     
    193192        if not rstatus: 
    194193            c.xml='<div class="error">%s</div>' % dataset 
    195             resp = render_response('error') 
    196             return resp 
     194            return render('error') 
    197195             
    198196        # Retrieve feature from the layers parameter 
     
    207205        img.save(buf, 'PNG') 
    208206 
    209         return Response(content=buf.getvalue(), mimetype='image/png') 
     207        response.headers['Content-Type'] = 'image/png' 
     208        response.write(content=buf.getvalue()) 
     209        return response 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/discovery.py

    r3501 r3536  
    5656        if self.message!='': 
    5757            c.xml='Simple %s:'%self.message  
    58             return render_response('content') 
     58            return render('content') 
    5959         
    6060         
     
    9090                if self.message!='':  
    9191                    c.xml=self.message 
    92                     return render_response('content') 
     92                    return render('content') 
    9393                     
    9494             
     
    111111                if self.message!='':  
    112112                    c.xml=self.message 
    113                     return render_response('content') 
     113                    return render('content') 
    114114         
    115115        if 'constrained' in self.inputs:  
     
    140140        else: 
    141141            c.xml='Unknown searchTarget %s'%self.inputs['searchTarget'] 
    142             return render_response('error') 
     142            return render('error') 
    143143             
    144144        documents=ws.search(searchString,start=start,howmany=howmany,target=textTarget, 
     
    148148            for i in ws.error:m+='<p>%s</p>'%i 
    149149            c.xml=m 
    150             return render_response('content') 
     150            return render('content') 
    151151         
    152152        #build constraints info for report 
     
    163163        if hits==0:  
    164164            c.xml='<p>No records found [%s]</p>'%c.state.constraints 
    165             return render_response('content') 
     165            return render('content') 
    166166      
    167167        try: 
     
    181181            if results==[]: 
    182182                c.xml='<p> No results for "%s"!</p>'%searchString 
    183                 return render_response('content') 
     183                return render('content') 
    184184            elif difs==[]: 
    185185                c.xml='<p>No usable results for "%s"!</p>'%searchString 
    186                 return render_response('content') 
     186                return render('content') 
    187187            else: 
    188188                if errors<>[]: 
     
    202202                        c.xml+='<p> Actually, not even an internal error has been logged. <br/>' 
    203203                        c.xml+='Internal sending of mail failed with error [%s]</p>'%message 
    204                     return render_response('content') 
     204                    return render('content') 
    205205                 
    206206                 
     
    227227                                                 action='index'))) 
    228228                             
    229                 return Response(render('results')) 
     229                return render('results') 
    230230                 
    231231        except ValueError,e: 
     
    234234            else: 
    235235                c.xml='<p> Error retrieving documents for %s hits is [%s]</p>'%(hits,e) 
    236                 return render_response('content') 
     236                return render('content') 
    237237        except Exception,e: 
    238238                c.xml='Unknown error %s,%s'%(str(Exception),e) 
    239                 return render_response('error')                        
     239                return render('error')                        
    240240         
    241241    def __advancedPrompt(self,searchConstraints=None): 
     
    269269                c.source=searchConstraints['scope'] 
    270270            c.geoSearchType=(searchConstraints['geoSearchType'] or 'overlaps') 
    271         return render_response('advanced') 
     271        return render('advanced') 
    272272         
    273273    def __checkbox(self,bbox): 
     
    341341            c.semError='.' 
    342342         
    343         return render_response('semantic',fragment=True) 
     343        return render('semantic',fragment=True) 
    344344     
    345345    def moreSearch(self,ws): 
     
    351351            r.link={'Browse':n.BURL,'NumSim':n.URL}[c.searchTarget] 
    352352         
    353         return render_response('short_results') 
     353        return render('short_results') 
    354354             
    355355 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/error.py

    r2476 r3536  
    2121            'message': request.params.get('message', ''), 
    2222        } 
    23         return Response(page) 
     23        return response.write(page) 
    2424 
    2525    def img(self, id): 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/fetch.py

    r2930 r3536  
    4141            mType=self._getMimeType(file) 
    4242                       
    43             #Differnce in how Content-Types are handled between pylons 0.9.5 and 0.9.6 
    44             try: 
    45                 #0.9.6 
    46                 pylons.response.headers['Content-Type']=mType 
    47                 return pylons.response(content=file) 
    48             except: 
    49                 #0.9.5 
    50                 return Response(content=fileToReturn, mimetype=mType) 
     43            response.headers['Content-Type']=mType 
     44            return response.write(fileToReturn) 
    5145        else: 
    5246            #return access denied message 
    5347            c.xml='<div class="error">%s</div>'%'<p> Access Denied </p><p>Not Logged in</p>' 
    54             return render_response('error') 
     48            return render('error') 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/login.py

    r3503 r3536  
    5252        if 'ndgSec' not in session:  
    5353            log.debug('No security session details found - offering login...') 
    54             return render_response('login') 
     54            return render('login') 
    5555         
    5656        # Session is set in this domain - check it  
     
    7171                      "getSessionStatus call: %s" % e) 
    7272            SecuritySession.delete() 
    73             return Response(render('content'), code=400) 
     73            response.status_code = 400 
     74            return render('content') 
    7475         
    7576        # Check session status 
     
    8384            log.error("Session Manager getSessionStatus returned: %s" % e) 
    8485            SecuritySession.delete() 
    85             return Response(render('login'), code=401) 
     86            response.status_code = 400 
     87            return render('login') 
    8688    
    8789        if bSessOK: 
     
    9496                      "from cookie and re-displaying login...") 
    9597            SecuritySession.delete() 
    96             return render_response('login') 
     98            return render('login') 
    9799 
    98100 
     
    119121                  'the error to your site administrator' 
    120122            log.error("Login: initialising SessionMgrClient: %s" % e) 
    121             return Response(render('content'), code=400) 
     123            response.status_code = 400 
     124            return render('content') 
    122125         
    123126        # Connect to Session Manager 
     
    130133                    "pass-phrase and try again." 
    131134            log.error("Session Manager connect returned: %s" % e) 
    132             return Response(render('login'), code=401) 
     135            response.status_code = 401 
     136            return render('login') 
    133137         
    134138        # Cache user attributes in Session Manager 
     
    141145            log.info("Session expired getting Attribute Certificate: %s" % e) 
    142146            c.xml = "Session has expired, please re-login" 
    143             return Response(render('login'), code=401) 
     147            response.status_code = 401 
     148            return render('login') 
    144149             
    145150        except AttributeRequestDenied, e: 
     
    147152            c.xml = "No authorisation roles are available for your " + \ 
    148153                    "account.  Please check with your site administrator." 
    149             return Response(render('login'), code=401) 
     154            response.status_code = 401 
     155            return render('login') 
    150156             
    151157        except Exception, e: 
     
    153159            c.xml = "An internal error occured.  Please report this to " + \ 
    154160                    "your site administrator." 
    155             return Response(render('login'), code=400) 
     161            response.status_code = 400 
     162            return render('login') 
    156163 
    157164        log.debug('Completing login...') 
     
    193200        session.save() 
    194201         
    195         return render_response('wayf') 
     202        return render('wayf') 
    196203         
    197204         
     
    254261credentials refused: there is a problem with the SSL certificate of this site. 
    255262  Please report this to your site administrator.""" % returnToHostname 
    256                     return Response(render('login'), code=400) 
     263                    response.status_code = 400 
     264                    return render('login') 
    257265            finally:     
    258266                testConnection.close() 
     
    262270        else: 
    263271            c.xml='<p> Logged in </p>' 
    264             return render_response('content') 
     272            return render('content') 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/logout.py

    r3056 r3536  
    100100            except Exception, e: 
    101101                log.error("logout - decoding return URL: %s" % e)  
    102                 return render_response('content') 
     102                return render('content') 
    103103             
    104104            # and now go back to whence we had come 
    105105            h.redirect_to(b64decReturnTo) 
    106106        else: 
    107             return render_response('content') 
     107            return render('content') 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/retrieve.py

    r3503 r3536  
    4747        if status: 
    4848            c.xml='<p>%s</p>'%status 
    49             return Response(render('error'),code=400) 
     49            response.status_code = 400 
     50            return render('error') 
    5051         
    5152        status,x=interface.GetXML(uri,outputSchema=self.outputSchema) 
     
    5354            #(the return object x is an xmlHandler object) 
    5455            c.xml=x.xmls 
    55             return Response(c.xml,'application/xml') 
     56            response.headers['Content-Type'] = 'application/xml' 
     57            response.write(c.xml) 
    5658        else: 
    5759            e=404 
    5860            if x.startswith('<p> Access'): e=401 
    59             return Response(render('error'),code=e) 
     61            response.status_code = e 
     62            return render('error') 
    6063         
    6164    def view(self,uri): 
     
    6669        if status: 
    6770            c.xml='<p>%s</p>'%status  
    68             return Response(render('error'),code=400) 
     71            response.status_code = 400 
     72            return render('error') 
    6973 
    7074        status,x=interface.GetXML(uri,outputSchema=self.outputSchema) 
     
    110114                elif self.format=='raw': 
    111115                    c.xml=x.xmls 
    112                     return Response(c.xml,'application/xml') 
     116                    response.headers['Content-Type'] = 'application/xml' 
     117                    return response.write(c.xml) 
    113118             
    114119            needed=0 
     
    127132            print c.xml 
    128133             
    129         if r=='content': 
    130             #we're showing an xml document ... but it could go wrong if 
     134        response.status_code = code 
     135        try: 
     136            return render(r) 
     137        except Exception, e: 
     138            #we may be showing an xml document ... but it could go wrong if 
    131139            #we have crap content ... 
    132             try: 
    133                 resp=render(r) 
    134             except ExpatError,e: 
     140            if isinstance(e, ExpatError): 
    135141                c.xml='<p> XML content is not well formed </p>' 
    136142                c.doc=str(x) 
    137                 resp=render('error') 
    138                 code=400 
    139             resp=Response(resp,code=code) 
    140         else: 
    141             #resp=Response(render(r),code=code) 
    142             try: 
    143                 resp=Response(render(r),code=code) 
    144             except Exception,e: 
     143            else: 
    145144                c.xml='<p> Unexpected error [%s] viewing [%s] </p>'%(str(e),uri) 
    146145                c.doc='' 
    147                 code=400 
    148                 resp=Response(render('error'),code=code) 
    149         return resp 
     146            response.status_code = 400 
     147            return render('error') 
    150148     
    151149    def askCorrect(self,uri): 
     
    153151        status=self.__setup(uri) 
    154152        c.uri=self.uri 
    155         if status: return Response(status) 
    156         return render_response('correct',fragment=True) 
     153        if status: return response.write(status) 
     154        return render('correct',fragment=True) 
    157155 
    158156     
     
    161159        status=self.__setup(uri) 
    162160        if 'ndgSec' not in session: 
    163             return Response('Not Logged In') 
     161            return response.write('Not Logged In') 
    164162        body='Metadata Change Request for %s'%uri 
    165163        payload='<Change><uri>%s</uri><from>%s</from><Contents>%s</Contents></Change>'%( 
     
    173171        else: 
    174172            c.xml=message 
    175         return render_response('content') 
     173        return render('content') 
    176174         
    177175 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/selectedItems.py

    r3483 r3536  
    1111    def index(self): 
    1212        # Return a rendered template 
    13         #   return render_response('/some/template.html') 
     13        #   return render('/some/template.html') 
    1414        # or, Return a response object 
    1515        self.inputs=dict(parse_querystring(request.environ)) 
     
    2828                # now create the aggregated KML file 
    2929                # NB, set header info correctly to open as a file 
    30                 response = Response(render('kml_aggregate', format='xml'), code=200) 
     30                response.write(render('kml_aggregate', format='xml')) 
    3131                response.headers['Content-Type'] = 'text/xml' 
    3232                response.headers['Content-Disposition'] = 'attachment;filename=kmlAggregate.kml' 
     
    5757                    return getConTerraDoc(wmcURLs) 
    5858             
    59         return Response(render('selectedItems'), code=200) 
     59        return render('selectedItems') 
    6060     
    6161    # check through the inputs to determine which checkboxes 
     
    139139        self.deleteSelectedItem(entryid) 
    140140        # rerender selections to update with item removed 
    141         return Response(render('selectedItems')) 
     141        return render('selectedItems') 
    142142     
    143143    # Remove selected item from session data 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/status.py

    r2650 r3536  
    2929        c.polluri='http://'+request.environ['HTTP_HOST']+'/'+csmlfile + '/status/' + jobID 
    3030        c.filelink = 'http://'+request.environ['HTTP_HOST']+'/'+os.path.basename(request.environ['paste.config']['app_conf']['publish_dir'])+'/csml_wxs_'+jobID+'nc' 
    31         r=render_response('wcs_ExecuteResponse', format='xml') 
    32         r.headers['content-type'] = 'text/xml' 
    33         return r 
     31        response.headers['content-type'] = 'text/xml' 
     32        return render('wcs_ExecuteResponse', format='xml') 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/trackback.py

    r2971 r3536  
    4949                c.message='Unable to forward trackback to designated recipient [%s]'%message 
    5050         
    51         r=render_response('trackback',format='xml') 
    52         r.headers['content-type'] = 'text/xml' 
    53         return r 
     51        response.headers['content-type'] = 'text/xml' 
     52        return render('trackback',format='xml') 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/visualise.py

    r3421 r3536  
    1818            if not rstatus:  
    1919                c.xml='<div class="error">%s</div>'%dataset 
    20                 return render_response('error') 
     20                return render('error') 
    2121            c.selections[uri]=dataset 
    2222            c.names[uri]=name 
     
    6565        c.visible='Granules' 
    6666        self.__plotops() 
    67         return render_response('visualise') 
     67        return render('visualise') 
    6868         
    6969    def tabChange(self,dataset,view): 
     
    8787        c.fullpage=0  
    8888        self.__plotops() 
    89         return render_response('visualise',fragment=True) 
     89        return render('visualise',fragment=True) 
    9090         
    9191    def featureChange(self,view): 
     
    120120        c.fullpage=0 
    121121        self.__plotops() 
    122         return render_response('visualise',fragment=True) 
     122        return render('visualise',fragment=True) 
    123123         
    124124    def tabcontent(self): 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/lib/app_globals.py

    r2616 r3536  
     1from pylons import config 
     2 
    13class Globals(object): 
     4    def __init__(self): 
     5        pass 
    26 
    3     def __init__(self, global_conf, app_conf, **extra): 
    4         """ 
    5         Globals acts as a container for objects available throughout 
    6         the life of the application. 
    7  
    8         One instance of Globals is created by Pylons during 
    9         application initialization and is available during requests 
    10         via the 'g' variable. 
    11          
    12         ``global_conf`` 
    13             The same variable used throughout ``config/middleware.py`` 
    14             namely, the variables from the ``[DEFAULT]`` section of the 
    15             configuration file. 
    16              
    17         ``app_conf`` 
    18             The same ``kw`` dictionary used throughout 
    19             ``config/middleware.py`` namely, the variables from the 
    20             section in the config file for your application. 
    21              
    22         ``extra`` 
    23             The configuration returned from ``load_config`` in  
    24             ``config/middleware.py`` which may be of use in the setup of 
    25             your global variables. 
    26              
    27         """ 
    28          
    29          
    30          
    31  
    32          
    33     def __del__(self): 
    34         """ 
    35         Put any cleanup code to be run when the application finally exits  
    36         here. 
    37         """ 
    38         pass 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/lib/base.py

    r3503 r3536  
    22from urlparse import urlsplit, urlunsplit 
    33from base64 import urlsafe_b64encode 
    4 from pylons import Response, c, g, cache, request, session 
     4from pylons import c, g, cache, request, session, response 
    55from pylons.controllers import WSGIController 
    66from pylons.decorators import jsonify, validate 
    7 from pylons.templating import render, render_response 
    8 from pylons.helpers import abort, redirect_to, etag_cache 
     7from pylons.templating import render 
     8from pylons.controllers.util import abort, redirect_to, etag_cache 
    99from pylons.i18n import N_, _, ungettext 
    1010from paste.request import construct_url 
     
    2828# Configure 
    2929EXCEPTION_TYPE = request.environ['ndgConfig'].get('OWS_SERVER', 'exception_type', 'ogc').lower() 
    30  
    31  
    3230 
    3331class BaseController(WSGIController): 
     
    9391             
    9492        if 'lastViewed' in session: c.pageTabs.append(('Display',session['lastViewed'])) 
     93        if 'lastViewedWMC' in session: c.pageTabs.append(('View',session['lastViewedWMC'])) 
    9594         
    9695#            c.pageTabs.append(('Visualise',h.url_for(controller='visualise', action='index'))) 
     
    120119                logger.exception(e) 
    121120 
    122                 r=render_response('exception_report', report=e.report, format='xml') 
    123                 r.headers['content-type'] = 'text/xml' 
    124                 return r 
     121                response.headers['content-type'] = 'text/xml' 
     122                return render('exception_report', report=e.report, format='xml') 
    125123 
    126124 
     
    190188        """ 
    191189        c.service_metadata = self._loadCapabilities()         
    192         r = render_response(template, format='xml') 
    193         r.headers['content-type'] = 'text/xml' 
    194         return r 
     190        response.headers['content-type'] = 'text/xml' 
     191        return render(template, format='xml') 
    195192 
    196193 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/lib/csml_util.py

    r3501 r3536  
    88@author: Stephen Pascoe 
    99""" 
    10 from pylons import Response, c, g, cache, request, session 
     10from pylons import c, g, cache, request, session, response 
    1111import csml, cdms 
    1212import os, string 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/lib/helpers.py

    r2476 r3536  
    55""" 
    66from webhelpers import * 
    7 from pylons.helpers import log 
     7from pylons.controllers.util import log 
    88from pylons.i18n import get_lang, set_lang 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/lib/wmc_util.py

    r3501 r3536  
    1313from ndgUtils.ETxmlView import loadET,et2text, nsdumb 
    1414from ows_server.models.WMC import WMC 
     15import urllib2 
    1516 
    1617def getWMCDocLayer(url): 
     
    4142    """ 
    4243    x=genericHTTP(proxyServer='http://wwwcache3.rl.ac.uk:8080/') 
    43     wmcDoc = x.get(url) #urllib2.urlopen(url) 
     44    wmcDoc = x.get(url) 
    4445    wmcTree = loadET(wmcDoc)  
    4546 
     
    5556        c.wmcDocs.append(WMC(wmcURL))  
    5657    session.save() 
    57  
    58     response = render_response('conterra_aggregate', format='xml') 
     58     
    5959    response.headers['Content-Type'] = 'text/xml' 
    6060    response.headers['Content-Disposition'] = 'attachment;filename=wmcAggregate.xml' 
     61    return render('conterra_aggregate', format='xml') 
     62 
    6163         
     64 
     65# Lookup a WMC doc and return it in the response     
     66def GetWebMapContext(self): 
     67    # retrieve context data from the specifiled url 
     68    endpoint = self.inputs['ENDPOINT'] 
     69    if not endpoint: 
     70        raise ServiceException, "ENDPOINT parameter required" 
     71    logger.info('Getting WebMapContext from endpoint: ' + endpoint) 
     72 
     73    try: 
     74        filehandle = urllib2.urlopen(endpoint) 
     75    except IOError: 
     76        raise ServiceException, "Could not access WMC endpoint: %s" % endpoint 
     77         
     78    response.headers['Content-Type'] = 'text/xml' 
     79    response.write(filehandle.read()) 
    6280     
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/models/WMC.py

    r3501 r3536  
    1414    def __init__(self,url): 
    1515         
     16        self.url = url 
     17        self.layers = [] 
     18 
    1619        '''Initialise a python wmc, retrieving it from the specified URL ''' 
    1720        x=genericHTTP(proxyServer='http://wwwcache3.rl.ac.uk:8080/') 
    18         wmcDoc = x.get(url) 
     21        try: 
     22            wmcDoc = x.get(url) 
     23        except Exception, e: 
     24            self.title = "Document could not be retrieved properly" 
     25            return 
     26         
    1927        self.tree = loadET(wmcDoc)  
    2028         
     
    3139            self.layers = layersTree.getchildren() 
    3240             
    33         self.url = url 
    3441 
    3542                 
Note: See TracChangeset for help on using the changeset viewer.