Exemplo n.º 1
0
 def __call__(self, environ, start_response):
     reqparams = {}
     for key, value in parse_qs(environ['QUERY_STRING'], True).items():
         reqparams[key.lower()] = value[0]
     onlineresource = 'http://%s:%s%s?' % (environ['SERVER_NAME'],
                                           environ['SERVER_PORT'],
                                           environ['PATH_INFO'])
     try:
         if not reqparams.has_key('request'):
             raise OGCException('Missing request parameter.')
         request = reqparams['request']
         del reqparams['request']
         if request == 'GetCapabilities' and not reqparams.has_key(
                 'service'):
             raise OGCException('Missing service parameter.')
         if request in ['GetMap', 'GetFeatureInfo']:
             service = 'WMS'
         else:
             service = reqparams['service']
         if reqparams.has_key('service'):
             del reqparams['service']
         try:
             mapnikmodule = __import__('mapnik2.ogcserver.' + service)
         except:
             raise OGCException('Unsupported service "%s".' % service)
         ServiceHandlerFactory = getattr(mapnikmodule.ogcserver,
                                         service).ServiceHandlerFactory
         servicehandler = ServiceHandlerFactory(
             self.conf, self.mapfactory, onlineresource,
             reqparams.get('version', None))
         if reqparams.has_key('version'):
             del reqparams['version']
         if request not in servicehandler.SERVICE_PARAMS.keys():
             raise OGCException('Operation "%s" not supported.' % request,
                                'OperationNotSupported')
         ogcparams = servicehandler.processParameters(request, reqparams)
         try:
             requesthandler = getattr(servicehandler, request)
         except:
             raise OGCException('Operation "%s" not supported.' % request,
                                'OperationNotSupported')
         response = requesthandler(ogcparams)
     except:
         version = reqparams.get('version', None)
         if not version:
             version = Version('1.3.0')
         else:
             version = Version(version)
         if version >= '1.3.0':
             eh = ExceptionHandler130(self.debug)
         else:
             eh = ExceptionHandler111(self.debug)
         response = eh.getresponse(reqparams)
     response_headers = [('Content-Type', response.content_type),
                         ('Content-Length', str(len(response.content)))]
     if self.max_age:
         response_headers.append(('Cache-Control', max_age))
     start_response('200 OK', response_headers)
     yield response.content
Exemplo n.º 2
0
def ServiceHandlerFactory(conf, mapfactory, onlineresource, version):

    if not version:
        version = Version('1.3.0')
    else:
        version = Version(version)
    if version >= '1.3.0':
        return ServiceHandler130(conf, mapfactory, onlineresource)
    else:
        return ServiceHandler111(conf, mapfactory, onlineresource)
Exemplo n.º 3
0
 def traceback(self, req):
     reqparams = lowerparams(req.params)
     version = reqparams.get('version', None)
     if not version:
         version = Version('1.3.0')
     else:
         version = Version(version)
     if version >= '1.3.0':
         eh = ExceptionHandler130(self.debug)
     else:
         eh = ExceptionHandler111(self.debug)
     response = eh.getresponse(reqparams)
     req.set_header('Content-Type', response.content_type)
     req.write(response.content)
Exemplo n.º 4
0
def get_packal_workflows():
    """Return list of workflows available on Packal.org"""
    workflows = []
    r = web.get(MANIFEST_URL)
    r.raise_for_status()
    manifest = ET.fromstring(r.content)
    # these elements contain multiple, |||-delimited items
    list_elements = ('categories', 'tags', 'osx')
    for workflow in manifest:
        d = {}
        for elem in workflow:
            if elem.tag in list_elements:
                if not elem.text:
                    d[elem.tag] = []
                else:
                    d[elem.tag] = [s.strip() for s in elem.text.split('|||')]
            # text elements
            elif elem.text:
                d[elem.tag] = elem.text
            else:
                d[elem.tag] = ''

        # convert timestamp to datetime
        d['updated'] = datetime.fromtimestamp(float(d['updated']))
        d['version'] = Version(d['version'])
        workflows.append(d)

    log.debug('{} workflows available on Packal.org'.format(len(workflows)))
    return workflows
Exemplo n.º 5
0
def versions_from_targets(phab, targets):
    builds = get_builds_from_targets(phab, targets)
    buildables = get_buildables_from_builds(phab, builds)
    diffs = get_diffs_from_buildables(phab, buildables)
    return [
        Version(target.id, target.phid, diff.id, diff.branch, diff.base)
        for target, diff in zip(targets, diffs)
    ]
Exemplo n.º 6
0
 def traceback(self, apacheReq, E):
     reqparams = lowerparams(util.FieldStorage(apacheReq))
     version = reqparams.get('version', None)
     if not version:
         version = Version('1.3.0')
     else:
         version = Version(version)
     if version >= '1.3.0':
         eh = ExceptionHandler130(self.debug)
     else:
         eh = ExceptionHandler111(self.debug)
     response = eh.getresponse(reqparams)
     apacheReq.content_type = response.content_type
     apacheReq.headers_out.add('Content-Length', str(len(response.content)))
     apacheReq.send_http_header()
     apacheReq.write(response.content)
     return apache.OK
Exemplo n.º 7
0
def packal_metadata(xmlpath):
    """Return ``dict`` of metadata in ``package.xml`` file created by Packal"""
    tree = ET.parse(xmlpath)
    root = tree.getroot()
    data = {}
    for elem in root:
        data[elem.tag] = elem.text
    data['version'] = Version(data['version'])
    return data
Exemplo n.º 8
0
def get_version_from_git_config(git_config):
    config = configparser.ConfigParser()
    config.read(git_config)
    base = config.get('phabricator', option='base')
    branch = config.get('phabricator', option='branch')
    diff = config.get('phabricator', option='diff')
    target = config.get('phabricator', option='target')
    targetPHID = config.get('phabricator', option='targetphid')
    return Version(target, targetPHID, diff, branch, base)
Exemplo n.º 9
0
 def __init__(self, dbcfgs_json):
     self.dbcfgs = json.loads(dbcfgs_json)
     self.version = Version()
Exemplo n.º 10
0
 def __init__(self, dbcfgs):
     self.CPUINFO = cmd_output('cat /proc/cpuinfo')
     self.MEMINFO = cmd_output('cat /proc/meminfo')
     self.SYSCTLINFO = cmd_output('sysctl -a')
     self.version = Version()
     self.dbcfgs = dbcfgs