Changeset 2694 for TI05-delivery


Ignore:
Timestamp:
03/07/07 17:00:31 (12 years ago)
Author:
lawrence
Message:

Interim commit to support common cache. At this point
it's implemented in retrieve (although not obviously
working in all cases).

Location:
TI05-delivery/ows_framework/trunk/ows_server/ows_server
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/login.py

    r2676 r2694  
    2424        # and now go back to whence we had come 
    2525        if c.returnTo!='': 
     26            # is there a keyword on redirect_to that can make this https? See: 
     27            # http://pylonshq.com/project/pylonshq/browser/Pylons/trunk/pylons/decorators/secure.py#L69 
    2628            h.redirect_to(c.returnTo) 
    2729        else: 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/retrieve.py

    r2688 r2694  
    11 
    22from ows_server.lib.base import * 
    3 from ows_server.models import ndgObject,  ndgRetrieve, Utilities 
     3from ows_server.models import ndgObject,  Utilities 
    44from paste.request import parse_querystring 
    55from ows_server.models import stubB,DIF 
    66from ows_server.lib import mailer 
    7  
     7from ows_server.lib.ndgInterface import interface  
    88from xml.parsers.expat import ExpatError 
    99#from ows_server.models import ndgRetrieve 
     
    3939            c.xml='<p>%s</p>'%status 
    4040            return render_response('error') 
    41         status,x=ndgRetrieve.ndgRetrieve( 
    42                 self.uri,self.cf,logger=self.logger,requestor=self.requestor,format=self.format) 
     41        status,x=interface(self.uri,self.cf,logger=self.logger,format=self.format) 
    4342         
    4443        if status: 
     
    5756            c.xml='<p>%s</p>'%status  
    5857            return render_response('error') 
    59         if 'ndgSec' in session: 
    60             securityTokens=session['ndgSec'] 
    61         else: securityTokens=None 
    62  
    63         status,x=ndgRetrieve.ndgRetrieve( 
    64                 self.uri,self.cf,logger=self.logger,requestor=self.requestor,format=self.format, 
    65                 securityTokens=securityTokens) 
     58        status,x=interface.GetXML(uri) 
    6659        c.title='Viewing [%s]'%self.uri 
    6760        
    68          
    6961        if status: 
    7062            #(the return object x is an xmlHandler object) 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/lib/base.py

    r2678 r2694  
    2424 
    2525class BaseController(WSGIController): 
     26     
    2627    def __call__(self, environ, start_response): 
    2728        # Insert any code to be run per request here. The Routes match 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/models/ndgRetrieve.py

    r2655 r2694  
    22import cgi,time 
    33from Utilities import myConfig 
    4 from ndgSecurity import HandleSecurity 
     4 
    55 
    66debug=0 
    7 def ndgRetrieve(uri,config,logger=0,requestor='test',format='',securityTokens=None): 
     7def ndgRetrieve(uri,config,logger=0,format=''): 
    88     
    99    ''' Given an ndgObject, uri, retrieve it, with security in place ''' 
     
    3838        status,ws=getws(config,uri) 
    3939        if not status: return status,ws 
    40     try: 
    41         if uri.schema=='NDG-A0': 
    42             target='/db/ndg_A_metadata' 
    43         elif uri.schema=='NumSim': 
    44             target='/db/NumSim' 
    45         else: 
    46             target='/db/ndg_B_metadata' 
    47         if format=='': format=uri.schema  
    48         #do the actual search: 
    49         time1=time.time() 
    50         print uri.uri 
    51         if debug: 
    52             if uri.uri in ['badc.nerc.ac.uk__NDG-B1__dataent_COAPEC', 
    53                            'badc.nerc.ac.uk__NumSim__HiGEM_6.1_CodeBase', 
    54                            'badc.nerc.ac.uk__NumSim__HiGEM_6.1_Control']: 
    55                 f=str('ows_server/examples/%s.xml'%uri.uri) 
    56                 r=file(f,'r').read() 
    57         else: 
    58             r=ws.get(uri.repository,uri.schema,uri.localID,format=format,targetCollection=target) 
    59         time2=time.time()-time1 
    60         logString='Document retrieve [%s] for [%s] took [%ss]'%(uri,requestor,time2) 
    61         if logger: logger.info(logString) 
     40    #try: 
     41    if uri.schema=='NDG-A0': 
     42        target='/db/ndg_A_metadata' 
     43    elif uri.schema=='NumSim': 
     44        target='/db/NumSim' 
     45    else: 
     46        target='/db/ndg_B_metadata' 
     47    if format=='': format=uri.schema  
     48    #do the actual search: 
     49    time1=time.time() 
     50    print uri.uri 
     51    if debug: 
     52        if uri.uri in ['badc.nerc.ac.uk__NDG-B1__dataent_COAPEC', 
     53                        'badc.nerc.ac.uk__NumSim__HiGEM_6.1_CodeBase', 
     54                        'badc.nerc.ac.uk__NumSim__HiGEM_6.1_Control']: 
     55            f=str('ows_server/examples/%s.xml'%uri.uri) 
     56            r=file(f,'r').read() 
     57    else: 
     58        r=ws.get(uri.repository,uri.schema,uri.localID,format=format,targetCollection=target) 
     59    time2=time.time()-time1 
     60    logString='Document retrieve [%s] took [%s]'%(uri,time2) 
     61    if logger: logger.info(logString) 
    6262 
    63         # did we get a sensible answer? 
    64         if isinstance(r,int): 
    65             return 0,'<p> There are %s identifiers matching your request! </p>'%r 
    66              
    67     except Exception,e: 
    68         return 0,'<p> Unable to retrieve [%s], reason was [%s]</p>'%(uri,cgi.escape(str(e))) 
     63    # did we get a sensible answer? 
     64    if isinstance(r,int): 
     65        return 0,'<p> There are %s identifiers matching your request! </p>'%r 
     66         
     67    #except Exception,e: 
     68    #    return 0,'<p> Unable to retrieve [%s], reason was [%s]</p>'%(uri,cgi.escape(str(e))) 
    6969     
    7070    #temporary hack for empty docs from non-existent DIFs ...  
     
    7474         
    7575    x=xmlHandler2.xmlHandler(r,string=1) 
    76     if uri.schema=='DIF': 
    77         pass # no access control 
    78     elif uri.schema =='NDG-B0': 
    79         #cred=x.find('dgSecurityCondition/simpleCondition') 
    80         #if cred: 
    81         #    return 0,'<p> Access Control: <br/>[<![CDAT[%s]]> </p>' 
    82         pass 
    83     elif uri.schema =='NDG-B1': 
    84         pass 
    85     elif uri.schema =='NDG-A0': 
    86          
    87         s=x.tree.find('{http://ndg.nerc.ac.uk/csml}AccessControlPolicy/{http://ndg.nerc.ac.uk/csml}dgSecurityCondition') 
    88         if s is not None: 
    89             status,message=HandleSecurity(s,securityTokens) 
    90             if not status: return 0,'<p> Access Denied </p><p>%s</p>'%message 
     76     
    9177    return 1,x 
    9278     
     
    155141        status,xml=ndgRetrieve(uri,self.c) 
    156142        if status: s=str(xml) 
    157          
    158      
    159     def testSecurityCSML(self): 
    160         ''' Make sure that CSML security is respected ''' 
    161         securityTokens=None 
    162         self.setup() 
    163         doc='badc.nerc.ac.uk__NDG-A0__AfEj15o6' 
    164         uri=ndgObject.ndgObject(doc) 
    165         status,xml=ndgRetrieve(uri,self.c) 
    166         self.assertEqual(status,0) 
     143 
    167144         
    168145         
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/models/stubB.py

    r2688 r2694  
    7575 
    7676class ObservationStation: 
    77     def __init__(self,e): 
     77    def __init__(self,h,e): 
    7878        self.e=e 
    7979        if e is None: return 
    8080class DataProductionTool: 
    81     def __init__(self,e): 
     81    def __init__(self,h,e): 
    8282        self.e=e 
    8383        if e is None: return 
    8484class Activity: 
    85     def __init__(self,e): 
     85    def __init__(self,h,e): 
    8686        self.e=e 
    8787        if e is None: return 
     
    182182                self.citation='' 
    183183                self.personnel=[] # for DIF compatiability for the moment. 
     184                self.parameters=None 
     185                self.granules=[] 
    184186                 
    185187                try: 
     
    210212                        DataEntity.__init__(self,helper,elem) 
    211213                elif elem.tag=='dgActivity': 
    212                         pass 
     214                        Activity.__init__(self,helper,elem) 
    213215                elif elem.tag=='dgDataProductionTool': 
    214                         pass 
     216                        DataProductionTool.__init__(self,helper,elem) 
    215217                elif elem.tag=='dgObservationStation': 
    216                         pass 
     218                        ObservationStation.__init__(self,helper,elem) 
    217219 
    218220                self.description=dgMetadataDescription(helper,helper.find(self.tree,'dgMetadataDescription')) 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/public/js/OLMapBox.js

    r2688 r2694  
    1212    initialize: function(div, formDiv, selFormDiv, controlUri) { 
    1313        this.control = controlUri // Yadayada yada ... I dunno what i'm doing  
    14         this.control.onchange = this.updateDdcLayer.bindAsEventListener(this); 
     14        //this.control.onchange = this.updateDdcLayer.bindAsEventListener(this); 
    1515         
    1616        this.selFormDiv = $(selFormDiv); 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/templates/meta.kid

    r2688 r2694  
    55     
    66    <div py:def="ParameterList(params)" class="ParameterList"> 
    7         <table cellspacing="0" cellpadding="3" border="0" width="100%"><tbody> 
     7        <table py:if="params is not None" cellspacing="0" cellpadding="3" border="0" width="100%"><tbody> 
    88            <tr><td class="linehead"><span class="heading0"> Parameters</span></td></tr> 
    99            <span py:for="item in params"> 
Note: See TracChangeset for help on using the changeset viewer.