Merge "Initial version - Webhook DB APIs"
This commit is contained in:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user