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)
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)
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('/')
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)