Example #1
0
def main(argv):
    global _PROG, _VERBOSE
    flag = None

    _PROG = argv[0]
    try:
        opts, args = getopt.getopt(argv[1:], "hvo:g:m:", ("--help", "--owner", "--group", "--mode"))
        for flag, opt in opts:
            if flag in ("-v", "--verbose"):
                _VERBOSE = True
            elif flag in ("-o", "--owner"):
                for c in ("FSQ_QUEUE_USER", "FSQ_ITEM_USER"):
                    fsq.set_const(c, opt)
            elif flag in ("-g", "--group"):
                for c in ("FSQ_QUEUE_GROUP", "FSQ_ITEM_GROUP"):
                    fsq.set_const(c, opt)
            elif flag in ("-m", "--mode"):
                for c in ("FSQ_QUEUE_MODE", "FSQ_ITEM_MODE"):
                    fsq.set_const(c, opt)
            elif flag in ("-h", "--help"):
                return usage(1)

        if 2 > len(args):
            return usage()

        for queue in args[1:]:
            chirp("downing host {0} for queue {1}".format(args[0], queue))
            fsq.down_host(queue, args[0])

    except (fsq.FSQEnvError, fsq.FSQCoerceError):
        shout("invalid argument for flag: {0}".format(flag))
        return fsq.const("FSQ_FAIL_PERM")
    except fsq.FSQInstallError, e:
        shout(e.strerror)
        return fsq.const("FSQ_FAIL_TMP")
Example #2
0
def main(argv):
    global _PROG, _VERBOSE
    force = False
    ignore = False
    flag = None

    _PROG = argv[0]
    try:
        opts, args = getopt.getopt(argv[1:], 'hvfo:g:m:i', ( '--help',
                                   '--force', '--verbose', '--owner',
                                   '--group', '--mode', '--ignore-exists', ))
        for flag, opt in opts:
            if flag in ( '-v', '--verbose', ):
                _VERBOSE = True
            elif flag in ( '-f', '--force', ):
                force = True
            elif flag in ( '-i', '--ignore-exists', ):
                ignore = True
            elif flag in ( '-o', '--owner', ):
                for c in ( 'FSQ_QUEUE_USER', 'FSQ_ITEM_USER', ):
                    fsq.set_const(c, opt)
            elif flag in ( '-g', '--group', ):
                for c in ( 'FSQ_QUEUE_GROUP', 'FSQ_ITEM_GROUP', ):
                    fsq.set_const(c, opt)
            elif flag in ( '-m', '--mode', ):
                for c in ( 'FSQ_QUEUE_MODE', 'FSQ_ITEM_MODE', ):
                    fsq.set_const(c, opt)
            elif flag in ( '-h', '--help', ):
                return usage(1)

        if 2 > len(args):
            return usage()

        host = args[0]

        for queue in args[1:]:
            try:
                chirp('installing host {0} to {1}'.format(host, queue))
                fsq.install_host(queue, host)
            except fsq.FSQInstallError, e:
                if e.errno == errno.ENOTEMPTY or e.errno == errno.ENOTDIR:
                    if force:
                        fsq.uninstall_host(queue, *host)
                        fsq.install_host(queue, *host)
                    elif ignore:
                        chirp('skipping {0}; already installed'.format(queue))
                    else:
                        raise
                else:
                    raise

    except ( fsq.FSQEnvError, fsq.FSQCoerceError, ):
        shout('invalid argument for flag: {0}'.format(flag))
        return fsq.const('FSQ_FAIL_PERM')
    except fsq.FSQInstallError, e:
        shout(e.strerror)
        return fsq.const('FSQ_FAIL_TMP')
Example #3
0
def main(argv):
    global _PROG, _VERBOSE
    flag = None

    _PROG = argv[0]
    try:
        opts, args = getopt.getopt(argv[1:], 'hvo:g:m:', ( '--help', '--owner',
                                   '--group', '--mode', ))
        for flag, opt in opts:
            if flag in ( '-v', '--verbose', ):
                _VERBOSE = True
            elif flag in ( '-o', '--owner', ):
                for c in ( 'FSQ_QUEUE_USER', 'FSQ_ITEM_USER', ):
                    fsq.set_const(c, opt)
            elif flag in ( '-g', '--group', ):
                for c in ( 'FSQ_QUEUE_GROUP', 'FSQ_ITEM_GROUP', ):
                    fsq.set_const(c, opt)
            elif flag in ( '-m', '--mode', ):
                for c in ( 'FSQ_QUEUE_MODE', 'FSQ_ITEM_MODE', ):
                    fsq.set_const(c, opt)
            elif flag in ( '-h', '--help', ):
                return usage(1)

        if 2 > len(args):
            return usage()

        for queue in args[1:]:
            chirp('downing host {0} for queue {1}'.format(args[0], queue))
            fsq.down_host(queue, args[0])

    except ( fsq.FSQEnvError, fsq.FSQCoerceError, ):
        shout('invalid argument for flag: {0}'.format(flag))
        return fsq.const('FSQ_FAIL_PERM')
    except fsq.FSQInstallError as e:
        shout(e.strerror)
        return fsq.const('FSQ_FAIL_TMP')
    except getopt.GetoptError as e:
        shout('invalid flag: -{0}{1}'.format('-' if 1 < len(e.opt) else '',
              e.opt))
        return fsq.const('FSQ_FAIL_TMP')
Example #4
0
    barf('invalid flag: -{0}{1}'.format('-' if 1 < len(e.opt) else '',
         e.opt))
try:
    for flag, opt in opts:
        if '-v' == flag or '--verbose' == flag:
            _VERBOSE = True
        elif '-e' == flag or '--env' == flag:
            set_env = True
        elif '-E' == flag or '--no-env' == flag:
            set_env = False
        elif '-n' == flag or '--no-open' == flag:
            no_open = True
        elif '-i' == flag or '--ignore-down' == flag:
            ignore_down = True
        elif '-l' == flag or '--lock' == flag:
            fsq.set_const('FSQ_LOCK', True)
        elif '-L' == flag or '--no-lock' == flag:
            fsq.set_const('FSQ_LOCK', False)
        elif '-k' == flag or '--empty-ok' == flag:
            empty_ok = True
        elif '-D' == flag or '--no-done' == flag:
            no_done = True
        elif '-a' == flag or '--all-hosts' == flag:
            host = True
        elif '-A' == flag or '--hosts' == flag:
            hosts.append(opt)
            host = True
        elif '-t' == flag or '--ttl' == flag:
            fsq.set_const('FSQ_TTL', opt)
        elif '-m' == flag or '--max-tries' == flag:
            fsq.set_const('FSQ_MAX_TRIES', opt)
Example #5
0
def main(argv):
    global _PROG, _VERBOSE
    link = False
    trigger = False
    flag = None
    all_hosts = False
    no_open = False
    ignore_down = False
    no_done = False

    _PROG = argv[0]
    try:
        opts, args = getopt.getopt(argv[1:], 'hvnilLDIgt:m:S:T:F:', ( 'help',
                                   'no-open', 'ignore-down',
                                   'lock', 'no-lock', 'no-done',
                                   'link', 'trigger', 'ttl=', 'max-tries=',
                                   'success-code=', 'fail-tmp-code=',
                                   'fail-perm-code=', 'verbose',  ))
        for flag, opt in opts:
            if flag in ( '-v', '--verbose', ):
                _VERBOSE = True
            elif flag in ( '-I', '--link', ):
                link = True
            elif flag in ( '-g', '--trigger', ):
                trigger = True
            elif '-n' == flag or '--no-open' == flag:
                no_open = True
            elif '-i' == flag or '--ignore-down' == flag:
                ignore_down = True
            elif '-l' == flag or '--lock' == flag:
                fsq.set_const('FSQ_LOCK', True)
            elif '-L' == flag or '--no-lock' == flag:
                fsq.set_const('FSQ_LOCK', False)
            elif '-D' == flag or '--no-done' == flag:
                no_done = True
            elif '-t' == flag or '--ttl' == flag:
                fsq.set_const('FSQ_TTL', opt)
            elif '-m' == flag or '--max-tries' == flag:
                fsq.set_const('FSQ_MAX_TRIES', opt)
            elif '-S' == flag or '--success-code' == flag:
                fsq.set_const('FSQ_SUCCESS', opt)
            elif '-T' == flag or '--fail-tmp-code' == flag:
                fsq.set_const('FSQ_FAIL_TMP', opt)
            elif '-F' == flag or '--fail-perm-code' == flag:
                fsq.set_const('FSQ_FAIL_PERM', opt)
            elif flag in ( '-h', '--help', ):
                return usage(1)
    except ( fsq.FSQEnvError, fsq.FSQCoerceError, ):
        barf('invalid argument for flag: {0}'.format(flag))

    if 0 == len(args):
        return usage()

    if 1 == len(args):
        all_hosts = True
        hosts = None
    else:
        hosts = args[1:]

    fsq.fork_exec_items(args[0], ignore_down=ignore_down, host=all_hosts,
                        no_open=no_open, hosts=hosts if hosts else None,
                        no_done=no_done, verbose=_VERBOSE, link=link,
                        trigger=trigger)
Example #6
0
def main(argv):
    global _PROG, _VERBOSE
    force = False
    ignore = False
    flag = None

    _PROG = argv[0]
    try:
        opts, args = getopt.getopt(argv[1:], 'hvfo:g:m:i', (
            '--help',
            '--force',
            '--verbose',
            '--owner',
            '--group',
            '--mode',
            '--ignore-exists',
        ))
        for flag, opt in opts:
            if flag in (
                    '-v',
                    '--verbose',
            ):
                _VERBOSE = True
            elif flag in (
                    '-f',
                    '--force',
            ):
                force = True
            elif flag in (
                    '-i',
                    '--ignore-exists',
            ):
                ignore = True
            elif flag in (
                    '-o',
                    '--owner',
            ):
                for c in (
                        'FSQ_QUEUE_USER',
                        'FSQ_ITEM_USER',
                ):
                    fsq.set_const(c, opt)
            elif flag in (
                    '-g',
                    '--group',
            ):
                for c in (
                        'FSQ_QUEUE_GROUP',
                        'FSQ_ITEM_GROUP',
                ):
                    fsq.set_const(c, opt)
            elif flag in (
                    '-m',
                    '--mode',
            ):
                for c in (
                        'FSQ_QUEUE_MODE',
                        'FSQ_ITEM_MODE',
                ):
                    fsq.set_const(c, opt)
            elif flag in (
                    '-h',
                    '--help',
            ):
                return usage(1)

        if 2 > len(args):
            return usage()

        host = args[0]

        for queue in args[1:]:
            try:
                chirp('installing host {0} to {1}'.format(host, queue))
                fsq.install_host(queue, host)
            except fsq.FSQInstallError, e:
                if e.errno == errno.ENOTEMPTY or e.errno == errno.ENOTDIR:
                    if force:
                        fsq.uninstall_host(queue, *host)
                        fsq.install_host(queue, *host)
                    elif ignore:
                        chirp('skipping {0}; already installed'.format(queue))
                    else:
                        raise
                else:
                    raise

    except (
            fsq.FSQEnvError,
            fsq.FSQCoerceError,
    ):
        shout('invalid argument for flag: {0}'.format(flag))
        return fsq.const('FSQ_FAIL_PERM')
    except fsq.FSQInstallError, e:
        shout(e.strerror)
        return fsq.const('FSQ_FAIL_TMP')
Example #7
0
def main(argv):
    global _PROG, _VERBOSE
    force = False
    is_down = False
    is_triggered = False
    is_host_triggered = False
    ignore = False
    flag = None
    hosts = []

    _PROG = argv[0]
    try:
        opts, args = getopt.getopt(argv[1:], 'hvfdto:g:m:ia:', ( '--help',
                                   '--verbose', '--force', '--down',
                                   '--triggered', '--owner', '--group',
                                   '--mode', '--ignore-exists', '--add-host',))
        for flag, opt in opts:
            if flag in ( '-v', '--verbose', ):
                _VERBOSE = True
            elif flag in ( '-f', '--force', ):
                force = True
            elif flag in ( '-d', '--down', ):
                is_down = True
            elif flag in ( '-t', '--triggered', ):
                is_triggered = True
            elif flag in ( '-i', '--ignore-exists', ):
                ignore = True
            elif flag in ( '-o', '--owner', ):
                for c in ( 'FSQ_QUEUE_USER', 'FSQ_ITEM_USER', ):
                    fsq.set_const(c, opt)
            elif flag in ( '-g', '--group', ):
                for c in ( 'FSQ_QUEUE_GROUP', 'FSQ_ITEM_GROUP', ):
                    fsq.set_const(c, opt)
            elif flag in ( '-m', '--mode', ):
                for c in ( 'FSQ_QUEUE_MODE', 'FSQ_ITEM_MODE', ):
                    fsq.set_const(c, opt)
            elif flag in ( '-a', '--add-host', ):
                hosts.append(opt)
            elif flag in ( '-h', '--help', ):
                return usage(1)

        if 0 == len(args):
            return usage()
        if hosts and is_triggered:
            is_host_triggered = True
        for queue in args:
            try:
                chirp('installing {0} to {1}'.format(queue,
                                                     fsq.const('FSQ_ROOT')))
                fsq.install(queue, is_down=is_down, is_triggered=is_triggered,
                            hosts=hosts or None,
                            is_host_triggered=is_host_triggered)
            except fsq.FSQInstallError as e:
                if e.errno == errno.ENOTEMPTY or e.errno == errno.ENOTDIR:
                    if force:
                        fsq.uninstall(queue)
                        fsq.install(queue)
                    elif ignore:
                        chirp('skipping {0}; already installed'.format(queue))
                    else:
                        raise
                else:
                    raise

    except ( fsq.FSQEnvError, fsq.FSQCoerceError, ):
        shout('invalid argument for flag: {0}'.format(flag))
        return fsq.const('FSQ_FAIL_PERM')
    except fsq.FSQInstallError as e:
        shout(e.strerror)
        return fsq.const('FSQ_FAIL_TMP')
    except getopt.GetoptError as e:
        shout('invalid flag: -{0}{1}'.format('-' if 1 < len(e.opt) else '',
              e.opt))
        return fsq.const('FSQ_FAIL_TMP')
Example #8
0
    barf('invalid flag: -{0}{1}'.format('-' if 1 < len(e.opt) else '',
                                        e.opt))
try:
    for flag, opt in opts:
        if '-v' == flag or '--verbose' == flag:
            _VERBOSE = True
        elif '-e' == flag or '--env' == flag:
            set_env = True
        elif '-E' == flag or '--no-env' == flag:
            set_env = False
        elif '-n' == flag or '--no-open' == flag:
            no_open = True
        elif '-i' == flag or '--ignore-down' == flag:
            ignore_down = True
        elif '-l' == flag or '--lock' == flag:
            fsq.set_const('FSQ_LOCK', True)
        elif '-L' == flag or '--no-lock' == flag:
            fsq.set_const('FSQ_LOCK', False)
        elif '-k' == flag or '--empty-ok' == flag:
            empty_ok = True
        elif '-D' == flag or '--no-done' == flag:
            no_done = True
        elif '-a' == flag or '--all-hosts' == flag:
            host = True
        elif '-A' == flag or '--hosts' == flag:
            hosts.append(opt)
            host = True
        elif '-t' == flag or '--ttl' == flag:
            fsq.set_const('FSQ_TTL', opt)
        elif '-m' == flag or '--max-tries' == flag:
            fsq.set_const('FSQ_MAX_TRIES', opt)
Example #9
0
def main(argv):
    global _PROG, _VERBOSE
    link = False
    trigger = False
    flag = None
    all_hosts = False
    no_open = False
    ignore_down = False
    no_done = False

    _PROG = argv[0]
    try:
        opts, args = getopt.getopt(argv[1:], 'hvnilLDIgt:m:S:T:F:', (
            'help',
            'no-open',
            'ignore-down',
            'lock',
            'no-lock',
            'no-done',
            'link',
            'trigger',
            'ttl=',
            'max-tries=',
            'success-code=',
            'fail-tmp-code=',
            'fail-perm-code=',
            'verbose',
        ))
        for flag, opt in opts:
            if flag in (
                    '-v',
                    '--verbose',
            ):
                _VERBOSE = True
            elif flag in (
                    '-I',
                    '--link',
            ):
                link = True
            elif flag in (
                    '-g',
                    '--trigger',
            ):
                trigger = True
            elif '-n' == flag or '--no-open' == flag:
                no_open = True
            elif '-i' == flag or '--ignore-down' == flag:
                ignore_down = True
            elif '-l' == flag or '--lock' == flag:
                fsq.set_const('FSQ_LOCK', True)
            elif '-L' == flag or '--no-lock' == flag:
                fsq.set_const('FSQ_LOCK', False)
            elif '-D' == flag or '--no-done' == flag:
                no_done = True
            elif '-t' == flag or '--ttl' == flag:
                fsq.set_const('FSQ_TTL', opt)
            elif '-m' == flag or '--max-tries' == flag:
                fsq.set_const('FSQ_MAX_TRIES', opt)
            elif '-S' == flag or '--success-code' == flag:
                fsq.set_const('FSQ_SUCCESS', opt)
            elif '-T' == flag or '--fail-tmp-code' == flag:
                fsq.set_const('FSQ_FAIL_TMP', opt)
            elif '-F' == flag or '--fail-perm-code' == flag:
                fsq.set_const('FSQ_FAIL_PERM', opt)
            elif flag in (
                    '-h',
                    '--help',
            ):
                return usage(1)
    except (
            fsq.FSQEnvError,
            fsq.FSQCoerceError,
    ):
        barf('invalid argument for flag: {0}'.format(flag))

    if 0 == len(args):
        return usage()

    if 1 == len(args):
        all_hosts = True
        hosts = None
    else:
        hosts = args[1:]

    fsq.fork_exec_items(args[0],
                        ignore_down=ignore_down,
                        host=all_hosts,
                        no_open=no_open,
                        hosts=hosts if hosts else None,
                        no_done=no_done,
                        verbose=_VERBOSE,
                        link=link,
                        trigger=trigger)
Example #10
0
def main(argv):
    global _PROG, _VERBOSE
    # defaults
    set_env = True
    no_open = False
    ignore_down = False
    empty_ok = False
    no_done = False
    host = False
    hosts = []
    max_rate = None

    _PROG = argv[0]
    try:
        opts, args = getopt.getopt(argv[1:], 'hveEnilLkDt:m:S:T:F:aA:r:', ( 'help',
                                   'env', 'no-env', 'no-open', 'ignore-down',
                                   'lock', 'no-lock', 'empty-ok', 'no-done',
                                   'ttl=', 'max-tries=', 'success-code=',
                                   'fail-tmp-code=', 'fail-perm-code=',
                                   'verbose', 'all-hosts', 'host=', 'max-rate='))
    except getopt.GetoptError as e:
        barf('invalid flag: -{0}{1}'.format('-' if 1 < len(e.opt) else '',
             e.opt))
    try:
        for flag, opt in opts:
            if '-v' == flag or '--verbose' == flag:
                _VERBOSE = True
            elif '-e' == flag or '--env' == flag:
                set_env = True
            elif '-E' == flag or '--no-env' == flag:
                set_env = False
            elif '-n' == flag or '--no-open' == flag:
                no_open = True
            elif '-i' == flag or '--ignore-down' == flag:
                ignore_down = True
            elif '-l' == flag or '--lock' == flag:
                fsq.set_const('FSQ_LOCK', True)
            elif '-L' == flag or '--no-lock' == flag:
                fsq.set_const('FSQ_LOCK', False)
            elif '-k' == flag or '--empty-ok' == flag:
                empty_ok = True
            elif '-D' == flag or '--no-done' == flag:
                no_done = True
            elif '-a' == flag or '--all-hosts' == flag:
                host = True
            elif '-A' == flag or '--hosts' == flag:
                hosts.append(opt)
                host = True
            elif '-t' == flag or '--ttl' == flag:
                fsq.set_const('FSQ_TTL', opt)
            elif '-m' == flag or '--max-tries' == flag:
                fsq.set_const('FSQ_MAX_TRIES', opt)
            elif '-S' == flag or '--success-code' == flag:
                fsq.set_const('FSQ_SUCCESS', opt)
            elif '-T' == flag or '--fail-tmp-code' == flag:
                fsq.set_const('FSQ_FAIL_TMP', opt)
            elif '-F' == flag or '--fail-perm-code' == flag:
                fsq.set_const('FSQ_FAIL_PERM', opt)
            elif '-r' == flag or '--max-rate' == flag:
                try:
                    max_rate = int(opt)
                except ValueError:
                    raise fsq.FSQCoerceError
            elif '-h' == flag or '--help' == flag:
                usage(1)
    except ( fsq.FSQEnvError, fsq.FSQCoerceError, ):
        barf('invalid argument for flag: {0}'.format(flag))

    # validate args
    num_required = 1 if empty_ok else 2
    if num_required > len(args):
        usage()
    exec_args = tuple(args[1:])
    fsq.fork_exec_items(args[0], ignore_down=ignore_down, host=host,
                        no_open=no_open, hosts=hosts if hosts else None,
                        no_done=no_done, set_env=set_env, exec_args=exec_args,
                        verbose=_VERBOSE, empty_ok=empty_ok, max_rate=max_rate)
Example #11
0
def main(argv):
    global _PROG, _VERBOSE
    force = False
    is_down = False
    is_triggered = False
    is_host_triggered = False
    ignore = False
    flag = None
    hosts = []

    _PROG = argv[0]
    try:
        opts, args = getopt.getopt(argv[1:], 'hvfdto:g:m:ia:', (
            '--help',
            '--verbose',
            '--force',
            '--down',
            '--triggered',
            '--owner',
            '--group',
            '--mode',
            '--ignore-exists',
            '--add-host',
        ))
        for flag, opt in opts:
            if flag in (
                    '-v',
                    '--verbose',
            ):
                _VERBOSE = True
            elif flag in (
                    '-f',
                    '--force',
            ):
                force = True
            elif flag in (
                    '-d',
                    '--down',
            ):
                is_down = True
            elif flag in (
                    '-t',
                    '--triggered',
            ):
                is_triggered = True
            elif flag in (
                    '-i',
                    '--ignore-exists',
            ):
                ignore = True
            elif flag in (
                    '-o',
                    '--owner',
            ):
                for c in (
                        'FSQ_QUEUE_USER',
                        'FSQ_ITEM_USER',
                ):
                    fsq.set_const(c, opt)
            elif flag in (
                    '-g',
                    '--group',
            ):
                for c in (
                        'FSQ_QUEUE_GROUP',
                        'FSQ_ITEM_GROUP',
                ):
                    fsq.set_const(c, opt)
            elif flag in (
                    '-m',
                    '--mode',
            ):
                for c in (
                        'FSQ_QUEUE_MODE',
                        'FSQ_ITEM_MODE',
                ):
                    fsq.set_const(c, opt)
            elif flag in (
                    '-a',
                    '--add-host',
            ):
                hosts.append(opt)
            elif flag in (
                    '-h',
                    '--help',
            ):
                return usage(1)

        if 0 == len(args):
            return usage()
        if hosts and is_triggered:
            is_host_triggered = True
        for queue in args:
            try:
                chirp('installing {0} to {1}'.format(queue,
                                                     fsq.const('FSQ_ROOT')))
                fsq.install(queue,
                            is_down=is_down,
                            is_triggered=is_triggered,
                            hosts=hosts or None,
                            is_host_triggered=is_host_triggered)
            except fsq.FSQInstallError, e:
                if e.errno == errno.ENOTEMPTY or e.errno == errno.ENOTDIR:
                    if force:
                        fsq.uninstall(queue)
                        fsq.install(queue)
                    elif ignore:
                        chirp('skipping {0}; already installed'.format(queue))
                    else:
                        raise
                else:
                    raise

    except (
            fsq.FSQEnvError,
            fsq.FSQCoerceError,
    ):
        shout('invalid argument for flag: {0}'.format(flag))
        return fsq.const('FSQ_FAIL_PERM')
    except fsq.FSQInstallError, e:
        shout(e.strerror)
        return fsq.const('FSQ_FAIL_TMP')
Example #12
0
def main(argv):
    global _PROG, _VERBOSE
    flag = None

    _PROG = argv[0]
    try:
        opts, args = getopt.getopt(argv[1:], 'hvo:g:m:', (
            '--help',
            '--owner',
            '--group',
            '--mode',
        ))
        for flag, opt in opts:
            if flag in (
                    '-v',
                    '--verbose',
            ):
                _VERBOSE = True
            elif flag in (
                    '-o',
                    '--owner',
            ):
                for c in (
                        'FSQ_QUEUE_USER',
                        'FSQ_ITEM_USER',
                ):
                    fsq.set_const(c, opt)
            elif flag in (
                    '-g',
                    '--group',
            ):
                for c in (
                        'FSQ_QUEUE_GROUP',
                        'FSQ_ITEM_GROUP',
                ):
                    fsq.set_const(c, opt)
            elif flag in (
                    '-m',
                    '--mode',
            ):
                for c in (
                        'FSQ_QUEUE_MODE',
                        'FSQ_ITEM_MODE',
                ):
                    fsq.set_const(c, opt)
            elif flag in (
                    '-h',
                    '--help',
            ):
                return usage(1)

        if 2 > len(args):
            return usage()

        for queue in args[1:]:
            chirp('downing host {0} for queue {1}'.format(args[0], queue))
            fsq.down_host(queue, args[0])

    except (
            fsq.FSQEnvError,
            fsq.FSQCoerceError,
    ):
        shout('invalid argument for flag: {0}'.format(flag))
        return fsq.const('FSQ_FAIL_PERM')
    except fsq.FSQInstallError, e:
        shout(e.strerror)
        return fsq.const('FSQ_FAIL_TMP')