示例#1
0
def set_container_quota(args):
    try:
        utils = ManageAccounts()
        try:
            quota = int(args.quota)
        except:
            raise ValueError('Invalid quota')

        accounts = [args.account] if args.account \
            else utils.existing_accounts()

        failed = []

        def update_container_policy(account):
            trans = utils.backend.wrapper.conn.begin()
            try:
                utils.backend.update_container_policy(account, account,
                                                      args.container,
                                                      {'quota': quota})
                if args.dry:
                    print "Skipping database commit."
                    trans.rollback()
                else:
                    trans.commit()
            except Exception as e:
                failed.append((account, e))

        map(update_container_policy, accounts)
        if failed and args.report:
            sys.stdout.write('Failed for the following accounts:\n')
            pprint_table(sys.stdout, failed, headers=[])
    except Exception as e:
        sys.stderr.write('%s\n' % e)
    finally:
        utils.cleanup()
示例#2
0
def export_quota(args):
    try:
        utils = ManageAccounts()
        d = utils.backend.node.node_account_quotas()

        location = os.path.abspath(os.path.expanduser(args.location))
        f = open(location, 'w')

        for uuid, capacity in d.iteritems():
            f.write(' '.join([uuid, 'pithos.diskspace', capacity]))
            f.write('\n')
    except Exception, e:
        sys.stderr.write('%s\n' % e)
示例#3
0
def list(args):
    try:
        utils = ManageAccounts()
        if args.only_duplicate:
            accounts = utils.duplicate_accounts()
        else:
            accounts = utils.existing_accounts()
        headers = ['uuid']
        table = [(a, ) for a in accounts]
        if args.output_format != "json" and not args.headers:
            headers = None
        pprint_table(sys.stdout, table, headers, args.output_format)
    except Exception, e:
        sys.stderr.write('%s\n' % e)
示例#4
0
def delete(args):
    try:
        utils = ManageAccounts()
        utils.delete_account(args.delete_account, only_stats=True)

        confirm = raw_input("Type 'yes' if you are sure you want "
                            "to remove those entries: ")
        if not confirm == 'yes':
            return
        else:
            utils.delete_account(args.delete_account,
                                 only_stats=False,
                                 dry=args.dry)
    except Exception, e:
        sys.stderr.write('%s\n' % e)
示例#5
0
def merge(args):
    try:
        utils = ManageAccounts()
        utils.merge_account(args.src_account,
                            args.dest_account,
                            only_stats=True)

        confirm = raw_input("Type 'yes' if you are sure you want"
                            " to move those entries to %s: " %
                            args.dest_account)
        if not confirm == 'yes':
            return
        else:
            utils.merge_account(args.src_account,
                                args.dest_account,
                                only_stats=False,
                                dry=args.dry)
    except Exception as e:
        sys.stderr.write('%s\n' % e)
    finally:
        utils.cleanup()
示例#6
0
 def setUp(self):
     self.utils = ManageAccounts()
     self.accounts = ('account1', 'Account1', 'account2', 'account3')
     for i in self.accounts:
         self.utils.create_account(i)
示例#7
0
 def setUp(self):
     self.utils = ManageAccounts()
     self.backend = self.utils.backend
     self.utils.create_account('account')