self.assertEqual(len(data), 1)
self.assertIn('teuth-test-bucket', data)
+ # List all buckets with stats.
+ data = self._get('/api/rgw/bucket?stats=true')
+ self.assertStatus(200)
+ self.assertEqual(len(data), 1)
+ self.assertSchema(data[0], JObj(sub_elems={
+ 'bid': JLeaf(str),
+ 'bucket': JLeaf(str),
+ 'bucket_quota': JObj(sub_elems={}, allow_unknown=True),
+ 'id': JLeaf(str),
+ 'owner': JLeaf(str),
+ 'usage': JObj(sub_elems={}, allow_unknown=True),
+ 'tenant': JLeaf(str),
+ }, allow_unknown=True))
+
# Get the bucket.
data = self._get('/api/rgw/bucket/teuth-test-bucket')
self.assertStatus(200)
'tenant': JLeaf(str),
'bucket': JLeaf(str),
'bucket_quota': JObj(sub_elems={}, allow_unknown=True),
- 'owner': JLeaf(str)
+ 'owner': JLeaf(str),
+ 'usage': JObj(sub_elems={}, allow_unknown=True),
}, allow_unknown=True))
self.assertEqual(data['bucket'], 'teuth-test-bucket')
self.assertEqual(data['owner'], 'admin')
return bucket_name
- def list(self):
- return self.proxy('GET', 'bucket')
+ def list(self, stats=False):
+ query_params = '?stats' if stats else ''
+ result = self.proxy('GET', 'bucket{}'.format(query_params))
+
+ if stats:
+ result = [self._append_bid(bucket) for bucket in result]
+
+ return result
def get(self, bucket):
result = self.proxy('GET', 'bucket', {'bucket': bucket})
expect(service).toBeTruthy();
});
- it('should call list, with enumerate returning empty', () => {
- let result;
- service.list().subscribe((resp) => {
- result = resp;
- });
- const req = httpTesting.expectOne('api/rgw/bucket');
- req.flush([]);
- expect(req.request.method).toBe('GET');
- expect(result).toEqual([]);
- });
-
- it('should call list, with enumerate returning 2 elements', () => {
- let result;
- service.list().subscribe((resp) => {
- result = resp;
- });
- let req = httpTesting.expectOne('api/rgw/bucket');
- req.flush(['foo', 'bar']);
-
- req = httpTesting.expectOne('api/rgw/bucket/foo');
- req.flush({ name: 'foo' });
-
- req = httpTesting.expectOne('api/rgw/bucket/bar');
- req.flush({ name: 'bar' });
-
+ it('should call list', () => {
+ service.list().subscribe();
+ const req = httpTesting.expectOne('api/rgw/bucket?stats=true');
expect(req.request.method).toBe('GET');
- expect(result).toEqual([{ name: 'foo' }, { name: 'bar' }]);
});
it('should call get', () => {
import { Injectable } from '@angular/core';
import * as _ from 'lodash';
-import { forkJoin as observableForkJoin, of as observableOf } from 'rxjs';
+import { of as observableOf } from 'rxjs';
import { mergeMap } from 'rxjs/operators';
import { cdEncode } from '../decorators/cd-encode';
* @return {Observable<Object[]>}
*/
list() {
- return this.enumerate().pipe(
- mergeMap((buckets: string[]) => {
- if (buckets.length > 0) {
- return observableForkJoin(
- buckets.map((bucket: string) => {
- return this.get(bucket);
- })
- );
- }
- return observableOf([]);
- })
- );
+ let params = new HttpParams();
+ params = params.append('stats', 'true');
+ return this.http.get(this.url, { params: params });
}
/**