Exemple #1
0
def kind_delete_do(kindname, key):
    kind = get_kind(kindname)
    flash = get_flash()

    instance = kind.get_by_key_name_or_abort(key)
    instance.delete()
    set_flash(SUCCESS, '%s was deleted' % key)
    redirect('/admin/%s/' % kindname)
def kind_delete_do(kindname, key):
    kind = get_kind(kindname)
    flash = get_flash()
    
    instance = kind.get_by_key_name_or_abort(key)
    instance.delete()
    set_flash(SUCCESS, '%s was deleted' % key)
    redirect('/admin/%s/' % kindname)
def oauth_complete():
    request_key = request.query.oauth_token
    oauth_verifier = request.query.oauth_verifier
    weavrs_instance_key = request.query.weavrs_instance
    next = request.query.next or '/'
    
    request_token = models.RequestToken.get_by_key_name_or_abort(key_name=request_key)
    try:
        weavrs_instance = models.WeavrsInstance.get_by_key_name_or_abort(key_name=weavrs_instance_key)
        consumer = oauth.Consumer(weavrs_instance.consumer_key, weavrs_instance.consumer_secret)
        token = oauth.Token(request_key, request_token.secret)
        token.set_verifier(oauth_verifier)
        client = oauth.Client(consumer, token)
        
        resp, content = client.request(weavrs_instance.access_token_url, 'POST')
        status = resp.status
        if status == 401:
            abort(500, u"OAuth request token for weavr instance %s not accepted" % key)
        elif status >= 500:
            abort(503, u"Could not get access token from weavrs instance %s, status %d" % (
                    key, status))
        elif status >= 400:
            abort(500, u"Could not get access token from weavrs instance %s, status %d" % (
                    key, status))
        elif status >= 300:
            abort(500, u"Could not get access token from weavrs instance %s, status %d" % (
                    key, status))
        
        response_dict = dict(urlparse.parse_qsl(content))
        access_key = response_dict['oauth_token']
        access_secret = response_dict['oauth_token_secret']

        temp_weavr = models.Weavr(oauth_key=access_key, oauth_secret=access_secret)
        weavrs_client = weavrsclient.WeavrsClient(weavrs_instance, temp_weavr)
        config = weavrs_client.get_weavr_configuration()
        
        weavr_name = config.get('name')
        if not weavr_name:
            if temp_weavr.is_saved():
                try:
                    temp_weavr.delete()
                except Exception, e:
                    logging.error(u"Could not erase temporary Weavr %s" % temp_weavr.key().id_or_name())
            abort(503, u"Could not get weavr name from weavrs instance at %s, got content %s" % (
                    weavrs_instance.link, content))
        
        key_name = u"%s/%s" % (weavrs_instance.key().name(), weavr_name)
        weavr = models.Weavr(key_name=key_name, oauth_key=access_key, oauth_secret=access_secret)
        weavr.save()
        set_flash(SUCCESS, u"OAuth authorization complete for weavr %s" % weavr_name)
        redirect(next)
Exemple #4
0
def do_put(kindname, kind, key, instance=None):
    properties = dict([(k, v) for k, v in [(p, getproperty(kind, p))
                                           for p in kind.properties()]
                       if v is not None])
    if instance is None:
        properties['key_name'] = key
        key_name = key
        instance = kind(**properties)
    else:
        key_name = db.Key(key).name()
        for k, v in properties.iteritems():
            setattr(instance, k, v)
    instance.put()
    set_flash(SUCCESS, '%s was saved' % key_name)
    redirect('/admin/%s/' % kindname)
def do_put(kindname, kind, key, instance=None):
    properties = dict(
        [(k,v) for k,v in
            [(p,getproperty(kind, p)) for p in kind.properties()]
        if v is not None]
    )
    if instance is None:
        properties['key_name'] = key
        key_name = key
        instance = kind(**properties)
    else:
        key_name = db.Key(key).name()
        for k, v in properties.iteritems():
            setattr(instance, k, v)
    instance.put()
    set_flash(SUCCESS, '%s was saved' % key_name)
    redirect('/admin/%s/' % kindname)
Exemple #6
0
def run_weavr(name, flash=None):
    name = stripslashes(name)
    weavr = models.Weavr.get_by_key_name_or_abort(name)
    queue_run_weavr(name)
    set_flash(SUCCESS, u"Run queued for weavr %s" % name)
    redirect('/')
Exemple #7
0
def oauth_complete():
    request_key = request.query.oauth_token
    oauth_verifier = request.query.oauth_verifier
    weavrs_instance_key = request.query.weavrs_instance
    next = request.query.next or '/'

    request_token = models.RequestToken.get_by_key_name_or_abort(
        key_name=request_key)
    try:
        weavrs_instance = models.WeavrsInstance.get_by_key_name_or_abort(
            key_name=weavrs_instance_key)
        consumer = oauth.Consumer(weavrs_instance.consumer_key,
                                  weavrs_instance.consumer_secret)
        token = oauth.Token(request_key, request_token.secret)
        token.set_verifier(oauth_verifier)
        client = oauth.Client(consumer, token)

        resp, content = client.request(weavrs_instance.access_token_url,
                                       'POST')
        status = resp.status
        if status == 401:
            abort(
                500,
                u"OAuth request token for weavr instance %s not accepted" %
                key)
        elif status >= 500:
            abort(
                503,
                u"Could not get access token from weavrs instance %s, status %d"
                % (key, status))
        elif status >= 400:
            abort(
                500,
                u"Could not get access token from weavrs instance %s, status %d"
                % (key, status))
        elif status >= 300:
            abort(
                500,
                u"Could not get access token from weavrs instance %s, status %d"
                % (key, status))

        response_dict = dict(urlparse.parse_qsl(content))
        access_key = response_dict['oauth_token']
        access_secret = response_dict['oauth_token_secret']

        temp_weavr = models.Weavr(oauth_key=access_key,
                                  oauth_secret=access_secret)
        weavrs_client = weavrsclient.WeavrsClient(weavrs_instance, temp_weavr)
        config = weavrs_client.get_weavr_configuration()

        weavr_name = config.get('name')
        if not weavr_name:
            if temp_weavr.is_saved():
                try:
                    temp_weavr.delete()
                except Exception, e:
                    logging.error(u"Could not erase temporary Weavr %s" %
                                  temp_weavr.key().id_or_name())
            abort(
                503,
                u"Could not get weavr name from weavrs instance at %s, got content %s"
                % (weavrs_instance.link, content))

        key_name = u"%s/%s" % (weavrs_instance.key().name(), weavr_name)
        weavr = models.Weavr(key_name=key_name,
                             oauth_key=access_key,
                             oauth_secret=access_secret)
        weavr.save()
        set_flash(SUCCESS,
                  u"OAuth authorization complete for weavr %s" % weavr_name)
        redirect(next)
def run_weavr(name, flash=None):
    name = stripslashes(name)
    weavr = models.Weavr.get_by_key_name_or_abort(name)
    queue_run_weavr(name)
    set_flash(SUCCESS, u"Run queued for weavr %s" % name)
    redirect('/')