Changeset 2507


Ignore:
Timestamp:
22/05/07 16:05:53 (12 years ago)
Author:
spascoe
Message:

Operations metadata inserted correctly for CSML WMS.

Location:
TI05-delivery/ows_framework/trunk
Files:
5 edited
1 moved

Legend:

Unmodified
Added
Removed
  • TI05-delivery/ows_framework/trunk/ows_common/ows_common/exceptions.py

    r2501 r2507  
    1313class OperationNotSupported(OwsError): 
    1414    def __init__(self, text, locator=None): 
    15         OwsError.__init__('OperationNotSupported', text, locator) 
     15        OwsError.__init__(self, 'OperationNotSupported', text, locator) 
    1616 
    1717class MissingParameterValue(OwsError): 
    1818    def __init__(self, text, locator=None): 
    19         OwsError.__init__('MissingParameterValue', text, locator) 
     19        OwsError.__init__(self, 'MissingParameterValue', text, locator) 
    2020 
    2121class InvalidParameterValue(OwsError): 
    2222    def __init__(self, text, locator=None): 
    23         OwsError.__init__('InvalidParameterValue', text, locator) 
     23        OwsError.__init__(self, 'InvalidParameterValue', text, locator) 
    2424 
    2525class VersionNegotiationFailed(OwsError): 
    2626    def __init__(self, text, locator=None): 
    27         OwsError.__init__('VersionNegotiationFailed', text, locator) 
     27        OwsError.__init__(self, 'VersionNegotiationFailed', text, locator) 
    2828 
    2929class InvalidUpdateSequence(OwsError): 
    3030    def __init__(self, text, locator=None): 
    31         OwsError.__init__('InvalidUpdateSequence', text, locator) 
     31        OwsError.__init__(self, 'InvalidUpdateSequence', text, locator) 
    3232 
    3333class NoApplicableCode(OwsError): 
    3434    def __init__(self, text, locator=None): 
    35         OwsError.__init__('NoApplicableCode', text, locator) 
     35        OwsError.__init__(self, 'NoApplicableCode', text, locator) 
    3636 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/csml_api.py

    r2501 r2507  
    1010 
    1111from ows_server.lib.base import * 
    12 import csml.parser 
    1312import os 
    14 from ows_server.lib.csml import get_csml_doc 
     13from ows_server.lib.csml_util import get_csml_doc 
    1514 
    1615 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/csml_wms.py

    r2502 r2507  
    1313from ows_common import exceptions as OWS_E 
    1414from ows_common.decorators import * 
    15 from ows_server.lib.csml import get_csml_doc 
     15from ows_server.lib.csml_util import get_csml_doc 
    1616 
    1717class CsmlWmsController(OwsController): 
     
    3030    @operation 
    3131    @parameter('Format', possibleValues=['text/xml']) 
    32     def GetCapabilities(self, file, service, version=None): 
     32    def GetCapabilities(self, file, service=None, version=None): 
    3333        """ 
    3434        @note: format and updatesequence parameters are not supported 
     
    3636 
    3737        """ 
     38 
     39        if service is None: 
     40            raise OWS_E.MissingParameterValue('SERVICE parameter not specified', 
     41                                              'SERVICE') 
    3842        if service != 'WMS': 
    39             raise OWS_E.MissingParameterValue('SERVICE parameter not specified', 
     43            raise OWS_E.InvalidParameterValue('SERVICE parameter must be "WMS"', 
    4044                                              'SERVICE') 
    4145         
     
    4347        c.ows_c = ET.parse(ows_c_file).getroot() 
    4448        c.dataset = get_csml_doc(file) 
     49        c.ows_capabilities = self._load_capabilities( 
     50            h.url_for(controller='csml_wms', file=file) 
     51            ) 
    4552         
    4653        return render_response('wms_service_metadata', format='xml') 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/lib/base.py

    r2502 r2507  
    99 
    1010from ows_common import exceptions as OWS_E 
    11 from ows_common.operations_metadata import OperationsMetadata, Operation 
     11from ows_common.operations_metadata import OperationsMetadata, Operation, RequestMethod 
    1212from ows_common.get_capabilities import ServiceMetadata 
    1313 
     
    2222    def __call__(self, environ, start_response): 
    2323 
    24         # Ensure the capabilities document is loaded 
    25         self._load_capabilities() 
    26  
    2724        # All OWS parameter names are case insensitive. 
    2825        req = request._current_obj() 
     
    3431            self._fix_ows_action(environ) 
    3532            return WSGIController.__call__(self, environ, start_response)   
    36         except OwsError, e: 
     33        except OWS_E.OwsError, e: 
    3734            return render_response('exception_report', report=e.report, 
    3835                                   format='xml') 
     
    6865        return kargs 
    6966 
     67 
    7068    def _load_capabilities(self, ows_endpoint): 
    7169        """ 
     
    9189                p = getattr(op, '_ows_parameters', {}) 
    9290                c = getattr(op, '_ows_constraints', {}) 
    93                 od[op._ows_name] = Operation(get=ows_endpoint, 
    94                                                     post=None, 
    95                                                     parameters=p, 
    96                                                     constraints=c) 
     91                od[op._ows_name] = Operation(get=RequestMethod(href=ows_endpoint), 
     92                                             post=None, 
     93                                             parameters=p, 
     94                                             constraints=c) 
    9795         
    9896        om = OperationsMetadata(od, constraints, parameters) 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/lib/csml_util.py

    r2501 r2507  
    88@author: Stephen Pascoe 
    99""" 
     10from pylons import Response, c, g, cache, request, session 
     11 
     12import csml 
     13import os 
     14 
    1015def get_csml_doc(file): 
    1116    """ 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/templates/wms_service_metadata.kid

    r2501 r2507  
    1616                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    1717                  xsi:schemaLocation="http://www.opengis.net/wms http://schemas.opengis.net/wms/1.3.0/capabilities_1_2_0.xsd"> 
    18   <Service py:def="wms_service"> 
    19     <?python m = WmsOwsAdapter(c.ows_c) ?> 
     18<?python 
    2019 
     20m = WmsOwsAdapter(c.ows_c) 
     21ops = c.ows_capabilities.operationsMetadata.operationDict 
     22 
     23?> 
     24 
     25  <Service> 
    2126    <Name>WMS</Name> 
    2227    <Title py:if="m.title" py:content="m.title"/> 
     
    4853    <AccessConstraints py:content="m.accessConstraints"/> 
    4954  </Service> 
     55  <Capability> 
     56    <Request> 
     57      <GetCapabilities py:if="'GetCapabilities' in ops"> 
     58        <?python caps = ops['GetCapabilities'] ?> 
     59        <Format py:for="f in caps.parameters['Format'].possibleValues.allowedValues" 
     60                py:content="f"/> 
     61        <DCP> 
     62          <HTTP> 
     63            <Get py:if="caps.get"> 
     64              <OnlineResource xlink:type="simple" xlink:href="${caps.get.href}"/> 
     65            </Get> 
     66            <Post py:if="caps.post"> 
     67              <OnlineResource xlink:type="simple" xlink:href="${caps.post.href}"/> 
     68            </Post> 
     69          </HTTP> 
     70        </DCP> 
     71      </GetCapabilities> 
     72    </Request> 
     73  </Capability> 
    5074</WMS_Capabilities> 
Note: See TracChangeset for help on using the changeset viewer.