Esempio n. 1
0
def handleWWWListAddCredentials(request):

    if 'credential_name' in request.body and core.keysInDict(
        ['credential_name', 'description', 'ctype', 'metadata'], request.body):
        # Users can provide a file name or the actual contents of the
        # certificate.
        if 'cert_file' in request.body:
            cert = open(request.body['cert_file']).read()
        else:
            cert = request.body['cert']

        if 'pkey_file' in request.body:
            pkey = open(request.body['pkey_file']).read()
        else:
            pkey = request.body['pkey']

        conf = config.configFromMap(request.body.get('conf', {}),
                                    base=config.configFromEnv())
        cred = persist.createCredential(name=request.body['credential_name'],
                                        desc=request.body['description'],
                                        ctype=request.body['ctype'],
                                        cert=cert,
                                        pkey=pkey,
                                        active=True,
                                        metadata=request.body['metadata'],
                                        conf=conf)

        taskName = yield tasks_tx.createTaskAndSave('addCredential', 1)

        instantiateAndSaveCredential(taskName, cred,
                                     request.state.credentialPersist)

        queue.returnQueueSuccess(request.mq, request.body['return_queue'],
                                 taskName)
        defer.returnValue(request)
    elif 'credential_name' not in request.body:
        credentials = request.state.credentialsCache.getAllCredentials()

        credentialsDicts = [{
            'name': name,
            'description': c['cred_instance'].credential.desc,
            'num_instances': len(c['instances']),
            'ctype': c['cred_instance'].credential.getCType()
        } for name, c in credentials.iteritems()
                            if ('credential_names' in request.body
                                and name in request.body['credential_names'])
                            or 'credential_names' not in request.body]

        queue.returnQueueSuccess(request.mq, request.body['return_queue'],
                                 credentialsDicts)

        defer.returnValue(request)
    else:
        queue.returnQueueError(request.mq, request.body['return_queue'],
                               'Unknown credential query')

        raise UnknownRequestError(str(request.body))
Esempio n. 2
0
def handleWWWListAddCredentials(request):

    if 'credential_name' in request.body and core.keysInDict(['credential_name',
                                                              'description',
                                                              'ctype',
                                                              'metadata'],
                                                            request.body):
        # Users can provide a file name or the actual contents of the
        # certificate.
        if 'cert_file' in request.body:
            cert = open(request.body['cert_file']).read()
        else:
            cert = request.body['cert']

        if 'pkey_file' in request.body:
            pkey = open(request.body['pkey_file']).read()
        else:
            pkey = request.body['pkey']

        conf = config.configFromMap(request.body.get('conf', {}),
                                    base=config.configFromEnv())
        cred = persist.createCredential(name=request.body['credential_name'],
                                        desc=request.body['description'],
                                        ctype=request.body['ctype'],
                                        cert=cert,
                                        pkey=pkey,
                                        active=True,
                                        metadata=request.body['metadata'],
                                        conf=conf)

        taskName = yield tasks_tx.createTaskAndSave('addCredential', 1)

        instantiateAndSaveCredential(taskName, cred, request.state.credentialPersist)

        queue.returnQueueSuccess(request.mq,
                                 request.body['return_queue'],
                                 taskName)
        defer.returnValue(request)                                       
    elif 'credential_name' not in request.body:
        credentials = request.state.credentialsCache.getAllCredentials()

        credentialsDicts = [{'name': name,
                             'description': c['cred_instance'].credential.desc,
                             'num_instances': len(c['instances']),
                             'ctype': c['cred_instance'].credential.getCType()}
                             for name, c in credentials.iteritems()
                             if ('credential_names' in request.body and name in request.body['credential_names']) or
                             'credential_names' not in request.body]

        
        queue.returnQueueSuccess(request.mq,
                                 request.body['return_queue'],
                                 credentialsDicts)

        defer.returnValue(request)
    else:
        queue.returnQueueError(request.mq,
                               request.body['return_queue'],
                               'Unknown credential query')        
        
        raise UnknownRequestError(str(request.body))
Esempio n. 3
0
 def _(request):
     if core.keysInDict(ks, request.body):
         return defer_pipe.ret(request)
     else:
         raise Exception('Missing keys in request %r %r' % (ks, request.body))
Esempio n. 4
0
 def _(request):
     if core.keysInDict(ks, request.body):
         return defer_pipe.ret(request)
     else:
         raise Exception('Missing keys in request %r %r' %
                         (ks, request.body))