def list_instance_fw_rule_sets(instance_id):
    parse_collection_request(_SCHEMA)
    result = [link_for_security_group(sg)
              for sg in _security_groups_for_server(instance_id)]
    parent_href = url_for('instances.get_instance', instance_id=instance_id)
    return make_collection_response(u'fw-rule-sets', result,
                                    parent_href=parent_href)
Exemple #2
0
def list_instance_fw_rule_sets(instance_id):
    parse_collection_request(_SCHEMA)
    result = [
        link_for_security_group(sg)
        for sg in _security_groups_for_server(instance_id)
    ]
    parent_href = url_for('instances.get_instance', instance_id=instance_id)
    return make_collection_response(u'fw-rule-sets',
                                    result,
                                    parent_href=parent_href)
Exemple #3
0
def get_instance_fw_rule_set(instance_id, set_id):
    sg = _find_sg_on_server(instance_id, set_id)
    return make_json_response(link_for_security_group(sg))
Exemple #4
0
def add_instance_fw_rule_set(instance_id):
    server = fetch_instance(instance_id)
    set_id = parse_request_data(required=_SCHEMA.required)['id']
    set_audit_resource_id(set_id)
    try:
        sg = admin_client_set().compute.security_groups.get(set_id)
    except osc_exc.NotFound:
        raise exc.InvalidElementValue('id', 'string', set_id,
                                      'Security group does not exist')

    tcs = client_set_for_tenant(server.tenant_id, fallback_to_api=g.is_admin)
    try:
        tcs.compute.servers.add_security_group(server, sg.name)
    except osc_exc.BadRequest, e:
        raise exc.InvalidRequest(str(e))
    return make_json_response(link_for_security_group(sg))


@BP.route('/<set_id>', methods=('DELETE', ))
@user_endpoint
def remove_instance_fw_rule_set(instance_id, set_id):
    server = fetch_instance(instance_id)
    sg = _find_sg_on_server(instance_id, set_id)
    tcs = client_set_for_tenant(server.tenant_id, fallback_to_api=g.is_admin)

    try:
        tcs.compute.servers.remove_security_group(server, sg.name)
    except osc_exc.BadRequest, e:
        raise exc.InvalidRequest(str(e))
    except osc_exc.HttpException:
        # check instance and security group not gone:
def get_instance_fw_rule_set(instance_id, set_id):
    sg = _find_sg_on_server(instance_id, set_id)
    return make_json_response(link_for_security_group(sg))
def add_instance_fw_rule_set(instance_id):
    server = fetch_instance(instance_id)
    set_id = parse_request_data(required=_SCHEMA.required)['id']
    set_audit_resource_id(set_id)
    try:
        sg = admin_client_set().compute.security_groups.get(set_id)
    except osc_exc.NotFound:
        raise exc.InvalidElementValue('id', 'string', set_id,
                                      'Security group does not exist')

    tcs = client_set_for_tenant(server.tenant_id, fallback_to_api=g.is_admin)
    try:
        tcs.compute.servers.add_security_group(server, sg.name)
    except osc_exc.BadRequest, e:
        raise exc.InvalidRequest(str(e))
    return make_json_response(link_for_security_group(sg))


@BP.route('/<set_id>', methods=('DELETE',))
@user_endpoint
def remove_instance_fw_rule_set(instance_id, set_id):
    server = fetch_instance(instance_id)
    sg = _find_sg_on_server(instance_id, set_id)
    tcs = client_set_for_tenant(server.tenant_id, fallback_to_api=g.is_admin)

    try:
        tcs.compute.servers.remove_security_group(server, sg.name)
    except osc_exc.BadRequest, e:
        raise exc.InvalidRequest(str(e))
    except osc_exc.HttpException:
        # check instance and security group not gone: