Exemplo n.º 1
0
def delete_key_tag(request):
    """
    Tags: tags
    ---
    Deletes a tag in the db for specified resource_type.
    EDIT_TAGS permission required on key.
    ---
    tag_key:
      required: true
      type: string
    key_id:
      in: path
      required: true
      type: string
    """
    auth_context = auth_context_from_request(request)
    params = params_from_request(request)
    key_id = request.matchdict["key_id"]
    tag_key = params.get("tag_key")

    # SEC require EDIT_TAGS permission on key
    auth_context.check_perm('key', 'edit_tags', key_id)
    if not delete_security_tag(auth_context, tag_key):
        raise auth_context._raise('key', 'edit_security_tags')

    return resolve_id_and_delete_tags(auth_context.owner,
                                      'key',
                                      key_id,
                                      tags=[tag_key])
Exemplo n.º 2
0
def delete_network_tag(request):
    """
    Delete a tag
    Delete tag in the db for specified resource_type.
    READ permission required on cloud.
    EDIT_TAGS permission required on network.
    ---
    tag_key:
      in: path
      required: true
      type: string
    cloud_id:
      in: path
      required: true
      type: string
    network_id:
      in: path
      required: true
      type: string
    """
    auth_context = auth_context_from_request(request)
    cloud_id = request.matchdict["cloud_id"]
    network_id = request.matchdict["network_id"]
    tag_key = request.matchdict["tag_key"]

    auth_context.check_perm('cloud', 'read', cloud_id)
    # SEC require EDIT_TAGS permission on network
    auth_context.check_perm('network', 'edit_tags', network_id)
    if not delete_security_tag(auth_context, tag_key):
        raise auth_context._raise('network', 'edit_security_tags')

    return resolve_id_and_delete_tags(auth_context.owner,
                                      'network', network_id,
                                      tags=[tag_key], cloud_id=cloud_id)
Exemplo n.º 3
0
def delete_schedule_tag(request):
    auth_context = auth_context_from_request(request)
    params = params_from_request(request)
    schedule_id = request.matchdict["schedule_id"]
    tag_key = params.get("tag_key")

    # SEC require EDIT_TAGS permission on schedule
    auth_context.check_perm('schedule', 'edit_tags', schedule_id)
    if not delete_security_tag(auth_context, tag_key):
        raise auth_context._raise('schedule', 'edit_security_tags')

    return resolve_id_and_delete_tags(auth_context.owner, 'schedule',
                                      schedule_id, tags=[tag_key])
Exemplo n.º 4
0
def delete_machine_tag(request):
    """
    Tags: tags
    ---
    Deletes tag in the db for specified resource_type.
    READ permission required on cloud.
    EDIT_TAGS permission required on machine.
    ---
    tag_key:
      required: true
      type: string
    cloud_id:
      in: path
      required: true
      type: string
    machine_id:
      in: path
      required: true
      type: string
    """
    auth_context = auth_context_from_request(request)
    params = params_from_request(request)
    cloud_id = request.matchdict["cloud_id"]
    machine_id = request.matchdict["machine_id"]
    tag_key = params.get("tag_key")

    # SEC require READ permission on cloud
    auth_context.check_perm("cloud", "read", cloud_id)

    # SEC require EDIT_TAGS permission on machine
    auth_context.check_perm("machine", "edit_tags", machine_id)
    if not delete_security_tag(auth_context, tag_key):
        raise auth_context._raise('machine', 'edit_security_tags')

    return resolve_id_and_delete_tags(auth_context.owner,
                                      'machine',
                                      machine_id,
                                      tags=[tag_key],
                                      cloud_id=cloud_id)