Name

gnt-filter - Ganeti job filter rule administration

Synopsis

gnt-filter {command} [options...] [arguments...]

DESCRIPTION

The gnt-filter command is used for managing job filter rules in the Ganeti system. Filter rules are used by the Ganeti job scheduler to determine which jobs should be accepted, rejected, paused or rate-limited.

Filter rules consist of the following:

COMMANDS

ADD

add
[--priority=*priority*]
[--predicates=*predicates*]
[--action=*action*]

Creates a new filter rule. A UUID is automatically assigned.

The --priority option sets the priority of the filter. It is a non-negative integer. Default: 0 (the highest possible priority).

The --predicates option sets the predicates of the filter. It is a list of predicates in the format described in the DESCRIPTION above. Default: [] (no predicate, filter always matches).

The --action option sets the action of the filter. It is one of the strings ACCEPT, PAUSE, REJECT, CONTINUE, or RATE_LIMIT n (see the DESCRIPTION above). Default: CONTINUE.

See ganeti(7) for a description of --reason and other common options.

REPLACE

replace
[--priority=*priority*]
[--predicates=*predicates*]
[--action=*action*]
[--reason=*reason*]
{filter-uuid}

Replaces a filter rule, or creates one if it doesn't already exist.

Accepts all options described above in ADD.

When being replaced, the filter will be assigned an updated watermark.

See ganeti(7) for a description of --reason and other common options.

DELETE

delete {filter-uuid}

Deletes the indicated filter rule.

LIST

list [--no-headers] [--separator=*separator*] [-v]
[-o [+]field,...] [filter-uuid...]

Lists all existing filters in the cluster. If no filter UUIDs are given, then all filters are included. Otherwise, only the given filters will be listed.

The --no-headers option will skip the initial header line. The --separator option takes an argument which denotes what will be used between the output fields. Both these options are to help scripting.

The -v option activates verbose mode, which changes the display of special field states (see ganeti(7)).

The -o option takes a comma-separated list of output fields. If the value of the option starts with the character +, the new fields will be added to the default list. This allows to quickly see the default list plus a few other fields, instead of retyping the entire list of fields.

The available fields and their meaning are:

action

Action

predicates

Predicates

priority

Priority

reason_trail

Reason trail

uuid

Network UUID

watermark

Watermark

LIST-FIELDS

list-fields [field...]

List available fields for filters.

INFO

info [filter-uuid...]

Displays information about a given filter.

EXAMPLES

Draining the queue. :

gnt-filter add '--predicates=[["jobid", [">", "id", "watermark"]]]' --action=REJECT

Soft draining could be achieved by replacing REJECT by PAUSE in the above example.

Pausing all new jobs not belonging to a specific maintenance. :

gnt-filter add --priority=0 '--predicates=[["reason", ["=~", "reason", "maintenance pink bunny"]]]' --action=ACCEPT
gnt-filter add --priority=1 '--predicates=[["jobid", [">", "id", "watermark"]]]' --action=PAUSE

Cancelling all queued instance creations and disallowing new such jobs. :

gnt-filter add '--predicates=[["opcode", ["=", "OP_ID", "OP_INSTANCE_CREATE"]]]' --action=REJECT

Limiting the number of simultaneous instance disk replacements to 10 in order to throttle replication traffic. :

gnt-filter add '--predicates=[["opcode", ["=", "OP_ID", "OP_INSTANCE_REPLACE_DISKS"]]]' '--action=RATE_LIMIT 10'

REPORTING BUGS

Report bugs to project website or contact the developers using the Ganeti mailing list.

SEE ALSO

Ganeti overview and specifications: ganeti(7) (general overview), ganeti-os-interface(7) (guest OS definitions), ganeti-extstorage-interface(7) (external storage providers).

Ganeti commands: gnt-cluster(8) (cluster-wide commands), gnt-job(8) (job-related commands), gnt-node(8) (node-related commands), gnt-instance(8) (instance commands), gnt-os(8) (guest OS commands), gnt-storage(8) (storage commands), gnt-group(8) (node group commands), gnt-backup(8) (instance import/export commands), gnt-debug(8) (debug commands).

Ganeti daemons: ganeti-watcher(8) (automatic instance restarter), ganeti-cleaner(8) (job queue cleaner), ganeti-noded(8) (node daemon), ganeti-rapi(8) (remote API daemon).

Ganeti htools: htools(1) (generic binary), hbal(1) (cluster balancer), hspace(1) (capacity calculation), hail(1) (IAllocator plugin), hscan(1) (data gatherer from remote clusters), hinfo(1) (cluster information printer), mon-collector(7) (data collectors interface).

COPYRIGHT

Copyright (C) 2006-2015 Google Inc. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.