Merge "Initial version - Webhook DB APIs"

This commit is contained in:
Jenkins
2015-03-24 11:08:40 +00:00
committed by Gerrit Code Review
5 changed files with 467 additions and 0 deletions

View File

@@ -467,6 +467,72 @@ def node_delete(context, node_id, force=False):
session.flush()
# Webhooks
def webhook_create(context, values):
webhook = models.Webhook()
webhook.update(values)
webhook.save(_session(context))
return webhook
def webhook_get(context, webhook_id, show_deleted=False):
webhook = model_query(context, models.Webhook).get(webhook_id)
if not webhook:
return None
if not show_deleted and webhook.deleted_time is not None:
return None
return webhook
def webhook_get_by_name(context, name, show_deleted=False):
return query_by_name(context, models.Webhook, name,
show_deleted=show_deleted)
def webhook_get_all(context, show_deleted=False, limit=None,
marker=None, sort_keys=None, sort_dir=None,
filters=None, tenant_safe=True):
query = soft_delete_aware_query(context, models.Webhook,
show_deleted=show_deleted)
if tenant_safe:
query = query.filter_by(project=context.tenant_id)
if filters is None:
filters = {}
sort_key_map = {
consts.WEBHOOK_NAME: models.Webhook.name.key,
consts.WEBHOOK_OBJ_ID: models.Webhook.obj_id.key,
consts.WEBHOOK_OBJ_TYPE: models.Webhook.obj_type.key,
consts.WEBHOOK_CREATED_TIME: models.Webhook.created_time.key,
consts.WEBHOOK_DELETED_TIME: models.Webhook.deleted_time.key,
}
keys = _get_sort_keys(sort_keys, sort_key_map)
query = db_filters.exact_filter(query, models.Webhook, filters)
return _paginate_query(context, query, models.Webhook,
limit=limit, marker=marker,
sort_keys=keys, sort_dir=sort_dir,
default_sort_keys=['obj_id']).all()
def webhook_get_by_short_id(context, short_id, show_deleted=False):
return query_by_short_id(context, models.Webhook, short_id,
show_deleted=show_deleted)
def webhook_delete(context, webhook_id, force=False):
session = _session(context)
webhook = session.query(models.Webhook).get(webhook_id)
if not webhook:
return
webhook.soft_delete(session=session)
session.flush()
# Locks
def cluster_lock_acquire(cluster_id, action_id, scope):
'''Acquire lock on a cluster.