Ignore:
Timestamp:
08/08/07 10:08:58 (12 years ago)
Author:
domlowe
Message:

changes to MIMEHandling to work in 2.4

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

Legend:

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

    r2760 r2780  
    3131     
    3232    map.connect(':file/wms', controller='csml_wms') 
    33     map.connect('wcs/:fileoruri', controller='csml_wcs') 
     33    map.connect('wcs/:uri', controller='csml_wcs') 
    3434    map.connect(':fileoruri/wcs', controller='csml_wcs') 
    3535    map.connect(':file/status/:jobID', controller='status', action='getStatus') 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/csml_wcs.py

    r2740 r2780  
    4343except: 
    4444    #python 2.4 
    45     from email import MIMEText 
    46     from email import MIMEMultipart 
    47     from email import MIMEBase 
     45    from email.MIMEText import MIMEText 
     46    from email.MIMEMultipart import MIMEMultipart 
     47    from email.MIMEBase import MIMEBase 
    4848    from email import Encoders as encoders 
    4949 
     
    6161 
    6262        # Create the container (outer) email message. 
    63         msg = MIMEMultipart() 
     63        msg=MIMEMultipart() 
    6464 
    6565        xmlfile =StringIO.StringIO(xml) 
     
    153153    @parameter('Service', possibleValues=['WCS'], required=True) 
    154154    @parameter('Version', possibleValues=['1.1.0']) 
    155     def GetCapabilities(self, fileoruri, service=None, version=None): 
     155    def GetCapabilities(self, uri, service=None, version=None): 
    156156        """ 
    157157        @note: format and updatesequence parameters are not supported 
     
    162162 
    163163        #get doc from cache or disk: 
    164         #try: 
    165         rstatus,c.dataset=interface.GetParsedCSML(fileoruri) 
    166         if not rstatus: raise ValueError(c.dataset) 
    167  
    168         if type(c.dataset) is str: 
    169             #If not a csml datset is some message from exist such as 'access denied' 
    170             return Response(c.dataset) 
    171         return self._renderCapabilities('ows/wcs_capabilities') 
    172         #except Exception, e: 
    173             #if isinstance(e, OWS_E.OwsError): 
    174                #raise e 
    175             #elif isinstance(e, ValueError): 
    176                 ##print e 
    177                 ##print type(e) 
    178                 ##print dir(e) 
    179                 #if e.message == '<p> Access Denied </p><p>Not Logged in</p>': 
    180                     #c.msg=e.message 
    181                     ##h.redirect_to('/login')   
    182                     #return render_response('wcs_accessDenied', mimetype ='text/html') 
    183                 #else: 
    184                     #raise OWS_E.NoApplicableCode(e) 
    185             #else: 
    186                #raise OWS_E.NoApplicableCode(e) 
     164        try: 
     165            rstatus,c.dataset=interface.GetParsedCSML(uri) 
     166            if not rstatus: raise ValueError(c.dataset) 
     167     
     168            if type(c.dataset) is str: 
     169                #If not a csml datset is some message from exist such as 'access denied' 
     170                return Response(c.dataset) 
     171            return self._renderCapabilities('ows/wcs_capabilities') 
     172        except Exception, e: 
     173            if isinstance(e, OWS_E.OwsError): 
     174               raise e 
     175            elif isinstance(e, ValueError): 
     176                #print e 
     177                #print type(e) 
     178                #print dir(e) 
     179                if e.message == '<p> Access Denied </p><p>Not Logged in</p>': 
     180                    c.msg=e.message 
     181                    #h.redirect_to('/login')   
     182                    return render_response('wcs_accessDenied', mimetype ='text/html') 
     183                else: 
     184                    raise OWS_E.NoApplicableCode(e) 
     185            else: 
     186               raise OWS_E.NoApplicableCode(e) 
    187187             
    188188             
     
    192192    @parameter('Identifiers', required=True) 
    193193    @parameter('Format', possibleValues=['text/xml'], required=True)  #IS THIS MANDATORY 
    194     def DescribeCoverage(self, fileoruri, version, service, identifiers, format='text/xml'): 
     194    def DescribeCoverage(self, uri, version, service, identifiers, format='text/xml'): 
    195195        """ 
    196196        WCS DescribeCoverage operation 
     
    198198        try: 
    199199            self.features={} #dictionary to hold requested coverages 
    200             rstatus,c.dataset=interface.GetParsedCSML(fileoruri) 
     200            rstatus,c.dataset=interface.GetParsedCSML(uri) 
    201201            if not rstatus: raise ValueError(c.dataset) 
    202202            for ident in identifiers.split(','): 
     
    232232    #TODO some more parameters to add here 
    233233    # Dimension parameters Time, Elevation, etc. are handled separately 
    234     def GetCoverage(self, fileoruri, version, format, identifier, boundingbox, timesequence, store=False, status=False): 
     234    def GetCoverage(self, uri, version, format, identifier, boundingbox, timesequence, store=False, status=False): 
     235        # Retrieve dataset and selected feature             
    235236        try: 
    236             # Retrieve dataset and selected feature             
    237             rstatus,dataset=interface.GetParsedCSML(fileoruri) 
     237            rstatus,dataset=interface.GetParsedCSML(uri) 
    238238            if not rstatus: raise ValueError(dataset) 
    239239            feature = dataset.getFeature(identifier) 
     
    249249            lat=feature.getLatitudeAxis() 
    250250            t=feature.getTimeAxis() 
    251  
     251         
    252252            if None in [lon, lat, time]: 
    253253                #TODO need to return a suitable wcs error. 
     
    263263            #NOTE, need to decide whether bounding box is of form: x1,y1,z1,x2,y2,z2 or x1,y1,x2,y2,z1,z2 
    264264            #currently the latter is implemented.  
    265             
     265             
    266266            if len(boundingbox)  == 6: 
    267267                for ax in feature.getAxisLabels(): 
     
    271271                        sel[z]=(boundingbox[4], boundingbox[5]) 
    272272             
    273             
     273             
    274274            axisNames=feature.getAxisLabels() 
    275         
     275         
    276276                         
    277277            # Extract via CSML.subsetToGridSeries() 
     
    282282            else: 
    283283                filename = extractToNetCDF(feature, sel) 
    284  
     284         
    285285                 
    286286            #use the randomly allocated filename as a basis for an identifier            
     
    289289             
    290290            #Depending on if the 'store' parameter is set, either return the netcdf file + coverage xml as a multipart mime or return a coverage document containing a link. 
    291                        
     291                         
    292292            if store: 
    293293                if status: 
     
    306306                    if 'ndgSec' in session: 
    307307                        textName=request.environ['paste.config']['app_conf']['publish_dir']+'/'+os.path.splitext(os.path.basename(filename))[0]+'.txt' 
    308                         secText=open(textName, 'w')                                    
     308                        secText=open(textName, 'w')   
     309                                     
    309310                        securityinfo=str(session['ndgSec']) 
    310311                        secText.write(securityinfo) 
Note: See TracChangeset for help on using the changeset viewer.