Beispiel #1
0
    def take_action(self, parsed_args):
        from oio.common.easy_value import convert_size
        self.log.debug('take_action(%s)', parsed_args)

        account = self.app.client_manager.account
        self.take_action_container(parsed_args)
        # The command is named 'show' but we must call
        # container_get_properties() because container_show() does
        # not return system properties (and we need them).
        data = self.app.client_manager.storage.container_get_properties(
            account,
            parsed_args.container,
            cid=parsed_args.cid,
            admin_mode=True)
        sys = data['system']
        ctime = float(sys[M2_PROP_CTIME]) / 1000000.
        bytes_usage = sys.get(M2_PROP_USAGE, 0)
        objects = sys.get(M2_PROP_OBJECTS, 0)
        damaged_objects = sys.get(M2_PROP_DAMAGED_OBJECTS, 0)
        missing_chunks = sys.get(M2_PROP_MISSING_CHUNKS, 0)
        if parsed_args.formatter == 'table':
            ctime = int(ctime)
            bytes_usage = convert_size(int(bytes_usage), unit="B")
            objects = convert_size(int(objects))
        info = {
            'account': sys['sys.account'],
            'base_name': sys['sys.name'],
            'container': sys['sys.user.name'],
            'ctime': ctime,
            'bytes_usage': bytes_usage,
            'quota': sys.get(M2_PROP_QUOTA, "Namespace default"),
            'objects': objects,
            'damaged_objects': damaged_objects,
            'missing_chunks': missing_chunks,
            'storage_policy': sys.get(M2_PROP_STORAGE_POLICY,
                                      "Namespace default"),
            'max_versions': sys.get(M2_PROP_VERSIONING_POLICY,
                                    "Namespace default"),
            'status': OIO_DB_STATUS_NAME.get(sys.get('sys.status'), "Unknown"),
        }

        for k in ('stats.page_count', 'stats.freelist_count',
                  'stats.page_size'):
            info[k] = sys.get(k)
        wasted = (float_value(info['stats.freelist_count'], 0) /
                  float_value(info['stats.page_count'], 1))
        wasted_bytes = (int_value(info['stats.freelist_count'], 0) *
                        int_value(info['stats.page_size'], 0))
        info['stats.space_wasted'] = "%5.2f%% (est. %s)" % \
            (wasted * 100, convert_size(wasted_bytes))

        bucket = sys.get(M2_PROP_BUCKET_NAME, None)
        if bucket is not None:
            info['bucket'] = bucket
        delete_exceeding = sys.get(M2_PROP_DEL_EXC_VERSIONS, None)
        if delete_exceeding is not None:
            info['delete_exceeding_versions'] = delete_exceeding != '0'
        for k, v in iteritems(data['properties']):
            info['meta.' + k] = v
        return list(zip(*sorted(info.items())))
Beispiel #2
0
 def test_convert_size(self):
     size = convert_size(0)
     self.assertEqual(size, "0")
     size = convert_size(42)
     self.assertEqual(size, "42")
     size = convert_size(1000)
     self.assertEqual(size, "1.0K")
     size = convert_size(0, unit="B")
     self.assertEqual(size, "0B")
Beispiel #3
0
    def take_action(self, parsed_args):
        self.log.debug('take_action(%s)', parsed_args)

        data = self.app.client_manager.storage.account_show(
            account=parsed_args.account)
        data['account'] = data['id']
        del data['id']
        if parsed_args.formatter == 'table':
            from oio.common.easy_value import convert_size

            data['ctime'] = int(float(data.get('ctime', 0)))
            data['bytes'] = convert_size(int(data.get('bytes', 0)), unit="B")
            data['objects'] = convert_size(int(data.get('objects', 0)))
        return list(zip(*sorted(data.items())))
Beispiel #4
0
    def take_action(self, parsed_args):
        self.log.debug('take_action(%s)', parsed_args)

        account = self.app.client_manager.account
        self.take_action_container(parsed_args)
        # The command is named 'show' but we must call
        # container_get_properties() because container_show() does
        # not return system properties (and we need them).
        data = self.app.client_manager.storage.container_get_properties(
            account,
            parsed_args.container,
            cid=parsed_args.cid
        )

        sys = data['system']
        ctime = float(sys['sys.m2.ctime']) / 1000000.
        bytes_usage = sys.get('sys.m2.usage', 0)
        objects = sys.get('sys.m2.objects', 0)
        damaged_objects = sys.get('sys.m2.objects.damaged', 0)
        missing_chunks = sys.get('sys.m2.chunks.missing', 0)
        if parsed_args.formatter == 'table':
            from oio.common.easy_value import convert_size

            ctime = int(ctime)
            bytes_usage = convert_size(int(bytes_usage), unit="B")
            objects = convert_size(int(objects))
        info = {
            'account': sys['sys.account'],
            'base_name': sys['sys.name'],
            'container': sys['sys.user.name'],
            'ctime': ctime,
            'bytes_usage': bytes_usage,
            'quota': sys.get('sys.m2.quota', "Namespace default"),
            'objects': objects,
            'damaged_objects': damaged_objects,
            'missing_chunks': missing_chunks,
            'storage_policy': sys.get('sys.m2.policy.storage',
                                      "Namespace default"),
            'max_versions': sys.get('sys.m2.policy.version',
                                    "Namespace default"),
            'status': OIO_DB_STATUS_NAME.get(sys.get('sys.status'), "Unknown"),
        }
        delete_exceeding = sys.get('sys.m2.policy.version.delete_exceeding',
                                   None)
        if delete_exceeding is not None:
            info['delete_exceeding_versions'] = delete_exceeding != '0'
        for k, v in data['properties'].iteritems():
            info['meta.' + k] = v
        return zip(*sorted(info.iteritems()))
Beispiel #5
0
    def take_action(self, parsed_args):
        self.log.debug('take_action(%s)', parsed_args)

        reqid = request_id(prefix='CLI-BUCKET-')
        acct_client = self.app.client_manager.storage.account
        data = acct_client.bucket_show(parsed_args.bucket, reqid=reqid)
        if parsed_args.formatter == 'table':
            from oio.common.easy_value import convert_size

            data['bytes'] = convert_size(data['bytes'])
            data['mtime'] = Timestamp(data.get('mtime', 0.0)).isoformat
        return zip(*sorted(data.items()))
Beispiel #6
0
    def take_action(self, parsed_args):
        self.log.debug('take_action(%s)', parsed_args)

        account = self.app.client_manager.account

        # The command is named 'show' but we must call
        # container_get_properties() because container_show() does
        # not return system properties (and we need them).
        data = self.app.client_manager.storage.container_get_properties(
            account, parsed_args.container)

        sys = data['system']
        ctime = float(sys['sys.m2.ctime']) / 1000000.
        bytes_usage = sys.get('sys.m2.usage', 0)
        objects = sys.get('sys.m2.objects', 0)
        if parsed_args.formatter == 'table':
            from oio.common.easy_value import convert_size

            ctime = int(ctime)
            bytes_usage = convert_size(int(bytes_usage), unit="B")
            objects = convert_size(int(objects))
        info = {
            'account': sys['sys.account'],
            'base_name': sys['sys.name'],
            'container': sys['sys.user.name'],
            'ctime': ctime,
            'bytes_usage': bytes_usage,
            'quota': sys.get('sys.m2.quota', "Namespace default"),
            'objects': objects,
            'storage_policy': sys.get('sys.m2.policy.storage',
                                      "Namespace default"),
            'max_versions': sys.get('sys.m2.policy.version',
                                    "Namespace default"),
        }
        for k, v in data['properties'].iteritems():
            info['meta.' + k] = v
        return zip(*sorted(info.iteritems()))
Beispiel #7
0
    def take_action(self, parsed_args):
        self.log.debug('take_action(%s)', parsed_args)

        reqid = request_id(prefix='CLI-BUCKET-')
        acct_client = self.app.client_manager.storage.account
        metadata = dict()
        if parsed_args.replicate is not None:
            metadata[BUCKET_PROP_REPLI_ENABLED] = str(parsed_args.replicate)
        data = acct_client.bucket_update(parsed_args.bucket,
                                         metadata=metadata, to_delete=None,
                                         reqid=reqid)

        if parsed_args.formatter == 'table':
            from oio.common.easy_value import convert_size

            data['bytes'] = convert_size(data['bytes'])
            data['mtime'] = Timestamp(data.get('mtime', 0.0)).isoformat
        return zip(*sorted(data.items()))