示例#1
0
 def get_options(self):
     return [
         Option('-u',
                '--username',
                dest='username',
                default=self.default_username),
         Option('-p',
                '--password',
                dest='password',
                default=self.default_password),
     ]
示例#2
0
class RunServer(Command):
    option_list = (
        Option('--port', '-p', dest='port'),
        Option('--hostname', '-hn', dest='host'),
    )

    def run(self, host="127.0.0.1", port=5000):
        if port is None:
            port = 5000
        port = int(port)
        app.run(debug=current_app.config['DEBUG'], host=host, port=port)
示例#3
0
class CreateRoleCommand(Command):
    """Create a role"""

    option_list = (
        Option('-n', '--name', dest='name', default=None),
        Option('-d', '--desc', dest='description', default=None),
    )

    def run(self, **kwargs):
        user_datastore.create_role(**kwargs)
        print 'Role "%(name)s" created successfully.' % kwargs
示例#4
0
 def get_options(self):
     return (
         Option('-b', '--bind',
                dest='address',
                type=str,
                default=self.address),
         Option('-w', '--workers',
                dest='workers',
                type=int,
                default=self.workers),
     )
示例#5
0
 def get_options(self):
     return [
         Option('--verbosity',
                '-v',
                dest='verbose',
                type=int,
                default=self.verbosity),
         Option('--failfast',
                dest='failfast',
                default=self.failfast,
                action='store_false')
     ]
示例#6
0
 def get_options(self):
     return (Option('-t',
                    '--tests',
                    dest='tests',
                    default=None,
                    help="specifies unittests to run"),
             Option('-c',
                    '--coverage',
                    dest='coverage',
                    default=None,
                    action='store_true',
                    help="runs API part unittest with coverage"))
示例#7
0
 def get_options(self):
     return(
         Option('site', default=None),
         Option('rule', nargs='?', default=None),
         Option('-c', '--context', action='store_true',
                dest="show_context"),
         Option('-m', '--module', dest="module", default=None,
                help="Provide a module name if the module name differs from"
                     " the site name."),
         Option('--data', dest="data_only", action="store_true",
                help=argparse.SUPPRESS),
     )
示例#8
0
class Worker(Command):

    option_list = (
        Option('-c', '--concurrency', dest='concurrency', default='1'),
        Option('-l', '--loglevel', dest='loglevel', default='debug'),
    )

    def run(self, concurrency, loglevel):
        celery.start(argv=['worker.py', 'worker',
                           '--concurrency', concurrency,
                           '--loglevel', loglevel,
                           ])
示例#9
0
class DatabasePolicy(Command):
    """
        配置同步数据的策略
        - policy_log [database] [table] 创建同步需要的日志表需要的表结构与触发器
    """
    option_list = (
        Option("-d", "--debug", dest='debug_flag', action="count", required=False, default=0,
               help='debug flag'),
        Option(metavar='cmd', dest='cmd', help='action, in [policy_log]'),
        Option(metavar='dbname', dest='db_name', help='database to be sync'),
        Option(metavar='tblname', dest='tbl_name', help='table name', nargs='?'),
    )
示例#10
0
class WorkerCommand(RQCommand):
    "Starts an RQ worker."

    option_list = (
        Option('--burst',
               '-b',
               action='store_true',
               help='Run in burst mode (quit after all work is done)'),
        Option('--name', '-n', help='Specify a different name'),
        Option('--path', '-P', default='.', help='Specify the import path.'),
        Option('--results-ttl',
               type=int,
               help='Default results timeout to be used'),
        Option('--worker-ttl',
               type=int,
               help='Default worker timeout to be used'),
        Option('--verbose', '-v', action='store_true',
               help='Show more output'),
        Option('--quiet', '-q', action='store_true', help='Show less output'),
        Option('--exception-handler',
               type=list,
               help='Exception handler(s) to use',
               action='append'),
        Option('--pid',
               metavar='FILE',
               help='Write the process ID number '
               'to a file at the specified path'),
        Option('queues',
               nargs='*',
               metavar='QUEUE',
               help='Queues to work with, defaults to the ones specified '
               'in the Flask app config'))

    def run(self, burst, name, path, results_ttl, worker_ttl, verbose, quiet,
            exception_handler, pid, queues):
        cli.worker.callback(
            url=self.rq.url,
            config=None,
            burst=burst,
            name=name,
            worker_class=self.rq.app_worker_path,
            job_class=self.rq.app_job_path,
            queue_class=self.rq.app_queue_path,
            path=path,
            results_ttl=results_ttl,
            worker_ttl=worker_ttl,
            verbose=verbose,
            quiet=quiet,
            sentry_dsn=None,
            exception_handler=exception_handler or self.rq._exception_handlers,
            pid=pid,
            queues=queues or self.rq.queues,
        )
示例#11
0
    def get_options(self):

        return [
            Option('-pfa',
                   '--ping-frontend-address',
                   dest='ping-frontend-address',
                   default=app.config['PING_QUEUE_ADDRESS']),
            Option('-pba',
                   '--ping-backend-address',
                   dest='ping-backend-address',
                   default=app.config['PING_QUEUE_BACKEND_ADDRESS']),
        ]
示例#12
0
    def get_options(self):

        return [
            Option('-dfa',
                   '--data-frontend-address',
                   dest='data-frontend-address',
                   default=app.config['DATA_QUEUE_ADDRESS']),
            Option('-dba',
                   '--data-backend-address',
                   dest='data-backend-address',
                   default=app.config['DATA_QUEUE_BACKEND_ADDRESS']),
        ]
示例#13
0
    def get_options(self):

        return [
            Option('-f',
                   '--frontend-address',
                   dest='frontend-address',
                   default='tcp://*:8080'),
            Option('-b',
                   '--backend-address',
                   dest='backend-address',
                   default='tcp://*:8181'),
        ]
示例#14
0
class Merge(Command):
    """ Merge two user accounts """

    option_list = (
        Option('new_id', type=int, help='ID of the new user account'),
        Option('old_id', type=int, help='ID of the old user account'),
    )

    def run(self, new_id, old_id):
        new = db.session.query(User).get(new_id)
        if not new:
            print >> sys.stderr, "No such user: %d" % new_id

        old = db.session.query(User).get(old_id)
        if not old:
            print >> sys.stderr, "No such user: %d" % old_id

        if old.club != new.club:
            print >> sys.stderr, "Different club;", old.club, new.club
            sys.exit(1)

        db.session.query(Club).filter_by(owner_id=old_id).update(
            {'owner_id': new_id})
        db.session.query(IGCFile).filter_by(owner_id=old_id).update(
            {'owner_id': new_id})
        db.session.query(Flight).filter_by(pilot_id=old_id).update(
            {'pilot_id': new_id})
        db.session.query(Flight).filter_by(co_pilot_id=old_id).update(
            {'co_pilot_id': new_id})
        db.session.query(TrackingFix).filter_by(pilot_id=old_id).update(
            {'pilot_id': new_id})
        db.session.flush()
        db.session.commit()

        new = db.session.query(User).get(new_id)
        old = db.session.query(User).get(old_id)
        assert new and old

        db.session.delete(old)
        db.session.flush()

        if new.email_address is None and old.email_address is not None:
            new.email_address = old.email_address

        if new._password is None and old._password is not None:
            new._password = old._password

        # TODO: merge display name or not?

        if old.tracking_key is not None:
            new.tracking_key = old.tracking_key

        db.session.commit()
示例#15
0
class DatabaseIndex(Command):
    """
        创建索引
        - [channel_name]  @meta 全部重建
        - [channel_name]  @worker 只重建该worker上的
    """
    option_list = (
        Option("-d", "--debug", dest='debug_flag', action="count", required=False, default=0,
               help='debug flag'),
        Option(metavar='channel', dest='channel_name', help='index channel to be build.'),
        Option(metavar='tblname', dest='tbl_name', help='table name', nargs='?'),
    )
示例#16
0
文件: manage.py 项目: martindale/osrc
class UpdateCommand(Command):

    option_list = (
        Option("-s", "--since", dest="since", required=False),
        Option("-p", "--pattern", dest="pattern", required=False),
    )

    def run(self, since, pattern):
        files = None
        if pattern is not None:
            files = glob.glob(pattern)
        update(files=files, since=since)
示例#17
0
class FindMeetings(Command):
    """ Find meetings points between flights """

    option_list = (
        Option('--force',
               action='store_true',
               help='re-analyse all flights, not just the scheduled ones'),
        Option('ids',
               metavar='ID',
               nargs='*',
               type=int,
               help='Any number of flight IDs.'),
    )

    def run(self, force, ids):
        q = db.session.query(Flight)
        q = q.order_by(Flight.id)

        if ids:
            self.apply_and_commit(self.do, q.filter(Flight.id.in_(ids)))
        elif force:
            self.incremental(self.do, q)

    def do(self, flight):
        print flight.id
        tasks.find_meetings(flight.id)
        return True

    def apply_and_commit(self, func, q):
        n_success, n_failed = 0, 0
        for record in q:
            if func(record):
                n_success += 1
            else:
                n_failed += 1
        if n_success > 0:
            print "commit"
            db.session.commit()
        return n_success, n_failed

    def incremental(self, func, q):
        """Repeatedly query 10 records and invoke the callback, commit
        after each chunk."""
        n = 10
        offset = 0
        while True:
            n_success, n_failed = self.apply_and_commit(
                func,
                q.offset(offset).limit(n))
            if n_success == 0 and n_failed == 0:
                break
            offset += n_failed + n_success
示例#18
0
 def get_options(self):
     return (
         Option('-t', '--host', dest='host', default=self.host),
         Option('-p', '--port', dest='port', type=int, default=self.port),
         Option('--profile',
                action='store_true',
                dest='profile',
                default=self.profile),
         Option('--profile-max',
                type=int,
                dest='profile_max',
                default=self.profile_max),
     )
示例#19
0
class Run(Command):

    """Run the server in debug mode"""

    option_list = (
        Option('--host', '-o', dest='host', default='localhost'),
        Option('--port', '-p', dest='port', default=5000),
    )

    def run(self, host, port):
        app = api.create_app()
        app.wsgi_app = reverseproxied.ReverseProxied(app.wsgi_app)
        app.run(host=host, port=port, debug=True, use_debugger=False)
示例#20
0
class ResetUserCommand(Command):
    option_list = (
        Option('-e', '--email', dest='email', default=None),
        Option('-p', '--password', dest='password', default=None),
    )

    def run(self, **kwargs):
        try:
            pwd = encrypt_password(kwargs['password'])
            User.objects(email=kwargs['email']).first().update(
                set__password=pwd)
        except Exception, e:
            print('Error resetting user password: %s' % e)
示例#21
0
class WaitForNodes(Command):
    """Wait for nodes to become ready.
    """
    option_list = (
        Option('--nodes', dest='nodes', required=True),
        Option('--timeout', dest='timeout', required=False, type=int),
        Option('--verbose', dest='verbose', required=False,
               action='store_true'),
    )

    def run(self, nodes, timeout, verbose):
        nodes_list = nodes.split(',')
        wait_for_nodes(nodes_list, timeout, verbose)
示例#22
0
class RunTests(Command):
    "Run unit-tests"
    option_list = (
        Option('--verbose', '-v', action='store_true', default=False),
        Option('--failfast', '-f', action='store_true', default=False),
    )

    def run(self, verbose, failfast):
        import unittest
        import test_ffdnispdb
        test = unittest.defaultTestLoader.loadTestsFromModule(test_ffdnispdb)
        unittest.TextTestRunner(verbosity=2 if verbose else 1,
                                failfast=bool(failfast)).run(test)
示例#23
0
class SetPassword(Command):
    option_list = (
        Option('--id', '-i', dest='id'),
        Option('--password', '-p', dest='pw'),
    )

    def run(self, id, pw):
        if '@' in id:
            u = User.objects.get(email=id)
        else:
            u = User.objects.get(id=id)
        u.password = encrypt_password(pw)
        u.save()
示例#24
0
class Create_User(Command):
    description = 'This command allows you to create a user account'
    option_list = (
        Option('--name',
               '-n',
               required=True,
               dest='name',
               type=unicode,
               help="Set the wiki user name to NAME."),
        Option(
            '--display_name',
            '-d',
            required=False,
            dest="display_name",
            type=unicode,
            help=
            "Set the wiki user's display name to DISPLAY_NAME (e.g. in case the NAME is cryptic)."
        ),
        Option('--email',
               '-e',
               required=True,
               dest='email',
               type=unicode,
               help="Set the user's email address to EMAIL."),
        Option('--openid',
               '-o',
               required=False,
               dest='openid',
               type=unicode,
               help="Set the user's openid address."),
        Option('--password',
               '-p',
               required=True,
               dest="password",
               type=unicode,
               help="Set the user's password to PASSWORD."),
    )

    def run(self, name, display_name, email, openid, password):
        before_wiki()
        msg = user.create_user(username=name,
                               password=password,
                               email=email,
                               openid=openid)

        if msg:
            print msg
        else:
            u = user.User(auth_username=name)
            print " %-20s %-25s %-35s - created." % (u.itemid, u.name,
                                                     u.email),
示例#25
0
文件: __init__.py 项目: embik/bloks
class UserCommand(Command):
    '''Creates a new user'''

    option_list = (
        Option('--name', dest='name', help='create user with nickname NAME'),
        Option('--password',
               dest='password',
               help='create user with password PASSWORD'),
        Option(
            '--is-admin',
            action='store_true',
            dest='admin',
            help='create user as admin (only works in non-interactive mode)'),
        Option('--no-interactive',
               action='store_true',
               dest='non_interactive',
               help='non-interactive mode (no questions asked)'),
    )

    def run(self,
            name=None,
            password=None,
            admin=False,
            non_interactive=False):
        if name is None and not non_interactive:
            name = input('Nickname: ')
        if password is None and not non_interactive:
            password = input('Password: '******'Create as administrator? [Y/N] ')
            if admin_input == 'Y' or admin_input == 'y':
                admin = True
            elif admin_input == 'N' or admin_input == 'n':
                admin = False
            else:
                print('Error: Unrecognized input. Aborting.')
                return 1

        if name is None or password is None:
            print('Error: Missing keys. Aborting.')
            return 1

        user = User(nickname=name, is_admin=admin)
        db.session.add(user)
        db.session.commit()
        h = Hash(user_id=user.id, passwd_hash=create_hash(password))
        db.session.add(h)
        db.session.commit()

        return 0
示例#26
0
class UpdateFlightPaths(Command):
    """ Update Skylines flight paths """

    option_list = (
        Option('--force', action='store_true',
               help='re-analyse all flights, not just the scheduled ones'),
        Option('ids', metavar='ID', nargs='*', type=int,
               help='Any number of flight IDs.'),
    )

    def run(self, force, ids):
        q = db.session.query(Flight)
        q = q.options(joinedload(Flight.igc_file))
        q = q.order_by(Flight.id)

        if ids:
            self.apply_and_commit(self.do, q.filter(Flight.id.in_(ids)))
        elif force:
            self.incremental(self.do, q)
        else:
            self.incremental(self.do, q.filter(
                or_(Flight.locations == None, Flight.timestamps == None)))

    def do(self, flight):
        print flight.id
        return flight.update_flight_path()

    def apply_and_commit(self, func, q):
        n_success, n_failed = 0, 0
        for record in q:
            if func(record):
                n_success += 1
            else:
                n_failed += 1
        if n_success > 0:
            print "commit"
            db.session.commit()
        return n_success, n_failed

    def incremental(self, func, q):
        """Repeatedly query 10 records and invoke the callback, commit
        after each chunk."""
        n = 10
        offset = 0
        while True:
            n_success, n_failed = self.apply_and_commit(
                func, q.offset(offset).limit(n))
            if n_success == 0 and n_failed == 0:
                break
            offset += n_failed + n_success
示例#27
0
 def get_options(self):
     return [
         Option('-a',
                '--addroles',
                dest='addroles',
                action="store_true",
                default=True),
         Option('-d',
                '--default',
                dest='default',
                action="store_true",
                default=False),
         Option('-r', '--revision', dest='revision', default='head'),
     ]
示例#28
0
class Billing(Command):

    "Generate and send firm account"

    option_list = (
        Option('--firm_id', dest='firm_id'),
        Option('--date', dest='date', help='Format yyyy-mm-dd'),
        Option('--send', dest='send', default=False),
    )

    def run(self, firm_id, date, send):
        firm_id = int(firm_id)
        date = datetime.strptime(date, '%Y-%m-%d')
        print AccountSenderTask.account_generate(firm_id, date, send)
示例#29
0
class NodeManager(Command):
    option_list = [
        Option('--hostname', dest='hostname', required=True),
        Option('--kube-type', dest='kube_type', required=False),
        Option('--do-deploy', dest='do_deploy', action='store_true'),
        Option('--wait', dest='wait', action='store_true'),
        Option('--timeout', dest='timeout', required=False, type=int),
        Option('-t', '--testing', dest='testing', action='store_true'),
        Option('--docker-options', dest='docker_options'),
        Option('--ebs-volume', dest='ebs_volume', required=False),
        Option('--localstorage-device', dest='ls_device', default=(),
               required=False),
        Option('-v', '--verbose', dest='verbose', required=False,
               action='store_true'),
    ]

    def run(self, hostname, kube_type, do_deploy, wait, timeout, testing,
            docker_options, ebs_volume, ls_device, verbose):

        if kube_type is None:
            kube_type_id = Kube.get_default_kube_type()
        else:
            kube_type = Kube.get_by_name(kube_type)
            if kube_type is None:
                raise InvalidCommand('Kube type with name `{0}` not '
                                     'found.'.format(kube_type))
            kube_type_id = kube_type.id

        options = None
        testing = testing or WITH_TESTING
        if docker_options is not None:
            options = {'DOCKER': docker_options}

        if get_maintenance():
            raise InvalidCommand(
                'Kuberdock is in maintenance mode. Operation canceled'
            )
        try:
            check_node_data({'hostname': hostname, 'kube_type': kube_type_id})
            if not isinstance(ls_device, (tuple, list)):
                ls_device = (ls_device,)
            res = create_node(None, hostname, kube_type_id, do_deploy, testing,
                              options=options,
                              ls_devices=ls_device, ebs_volume=ebs_volume)
            print(res.to_dict())
            if wait:
                wait_for_nodes([hostname, ], timeout, verbose)
        except Exception as e:
            raise InvalidCommand("Node management error: {0}".format(e))
示例#30
0
class Deliver(Command):

    option_list = [
        Option('--user', '-u', dest='user'),
        Option('--recipient', '-r', dest='recipient'),
        Option('--sender', '-s', dest='sender'),
    ]

    def run(self, user, recipient, sender):
        app.logger.info("new message by user '%s' from '%s' to '%s'", user, sender, recipient)
        input = sys.stdin.read()
        filename = hashlib.sha1(input).hexdigest() + '.eml'
        fs.setcontents(filename, input)

        save_email.delay(user, sender, recipient, filename)