Skip to content

Commit 66ef4b0

Browse files
bug: [STORIF-221] - corrected a bug where an empty bucket list was displayed (#13388)
* bug: [STORIF-221] - corrected a bug where an empty bucket list was displayed * bug: [STORIF-221] - code review changes, eslint error corrected
1 parent 7b69e2d commit 66ef4b0

12 files changed

Lines changed: 56 additions & 733 deletions

File tree

packages/api-v4/src/object-storage/buckets.ts

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -60,25 +60,6 @@ export const getBuckets = (params?: Params, filters?: Filter) =>
6060
setURL(`${API_ROOT}/object-storage/buckets`),
6161
);
6262

63-
/**
64-
* getBucketsInCluster
65-
*
66-
* Gets a list of a user's Object Storage Buckets in the specified cluster.
67-
*/
68-
export const getBucketsInCluster = (
69-
clusterId: string,
70-
params?: Params,
71-
filters?: Filter,
72-
) =>
73-
Request<Page<ObjectStorageBucket>>(
74-
setMethod('GET'),
75-
setParams(params),
76-
setXFilter(filters),
77-
setURL(
78-
`${API_ROOT}/object-storage/buckets/${encodeURIComponent(clusterId)}`,
79-
),
80-
);
81-
8263
/**
8364
* getBucketsInRegion
8465
*

packages/manager/cypress/e2e/core/objectStorage/enable-object-storage.spec.ts

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import { profileFactory, regionFactory } from '@linode/utilities';
55
import {
66
accountFactory,
77
accountSettingsFactory,
8-
objectStorageClusterFactory,
98
objectStorageKeyFactory,
109
} from '@src/factories';
1110
import {
@@ -19,7 +18,6 @@ import {
1918
mockCreateAccessKey,
2019
mockGetAccessKeys,
2120
mockGetBuckets,
22-
mockGetClusters,
2321
mockGetObjectStorageTypes,
2422
} from 'support/intercepts/object-storage';
2523
import { mockGetProfile } from 'support/intercepts/profile';
@@ -29,8 +27,6 @@ import { randomLabel } from 'support/util/random';
2927

3028
import type {
3129
AccountSettings,
32-
ObjectStorageCluster,
33-
ObjectStorageClusterID,
3430
PriceType,
3531
Region,
3632
} from '@linode/api-v4';
@@ -101,29 +97,6 @@ describe('Object Storage enrollment', () => {
10197
}),
10298
];
10399

104-
// Clusters with special pricing are currently hardcoded rather than
105-
// retrieved via API, so we have to mock the cluster API request to correspond
106-
// with that hardcoded data.
107-
//
108-
// Because the IDs used in the mocks don't correspond with any actual clusters,
109-
// we have to cast them as `ObjectStorageClusterID` to satisfy TypeScript.
110-
const mockClusters: ObjectStorageCluster[] = [
111-
// Regions with special pricing.
112-
objectStorageClusterFactory.build({
113-
id: 'br-gru-0' as ObjectStorageClusterID,
114-
region: 'br-gru',
115-
}),
116-
objectStorageClusterFactory.build({
117-
id: 'id-cgk-1' as ObjectStorageClusterID,
118-
region: 'id-cgk',
119-
}),
120-
// A region that does not have special pricing.
121-
objectStorageClusterFactory.build({
122-
id: 'us-east-1',
123-
region: 'us-east',
124-
}),
125-
];
126-
127100
const mockPrices: PriceType[] = [
128101
{
129102
id: 'distributed_network_transfer',
@@ -209,15 +182,13 @@ describe('Object Storage enrollment', () => {
209182
'getObjectStorageTypes'
210183
);
211184
mockGetAccountSettings(mockAccountSettings).as('getAccountSettings');
212-
mockGetClusters(mockClusters).as('getClusters');
213185
mockGetBuckets([]).as('getBuckets');
214186
mockGetRegions(mockRegions).as('getRegions');
215187
mockGetAccessKeys([]);
216188

217189
cy.visitWithLogin('/object-storage/buckets');
218190
cy.wait([
219191
'@getAccountSettings',
220-
'@getClusters',
221192
'@getBuckets',
222193
'@getRegions',
223194
]);

packages/manager/cypress/e2e/core/objectStorage/object-storage.smoke.spec.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ describe('object storage smoke tests', () => {
4242
mockGetAccount(accountFactory.build({ capabilities: ['Object Storage'] }));
4343
mockAppendFeatureFlags({
4444
gecko2: false,
45-
objMultiCluster: false,
45+
objMultiCluster: true,
4646
objectStorageGen2: { enabled: false },
4747
}).as('getFeatureFlags');
4848

@@ -179,22 +179,22 @@ describe('object storage smoke tests', () => {
179179
*/
180180
it('can delete object storage bucket - smoke', () => {
181181
const bucketLabel = randomLabel();
182-
const bucketCluster = 'us-southeast-1';
182+
const region = 'us-southeast';
183183
const bucketMock = objectStorageBucketFactory.build({
184-
cluster: bucketCluster,
185-
hostname: `${bucketLabel}.${bucketCluster}.linodeobjects.com`,
184+
region: region,
185+
hostname: `${bucketLabel}.${region}.linodeobjects.com`,
186186
label: bucketLabel,
187187
objects: 0,
188188
});
189189

190190
mockGetAccount(accountFactory.build({ capabilities: ['Object Storage'] }));
191191
mockAppendFeatureFlags({
192-
objMultiCluster: false,
192+
objMultiCluster: true,
193193
objectStorageGen2: { enabled: false },
194194
});
195195

196196
mockGetBuckets([bucketMock]).as('getBuckets');
197-
mockDeleteBucket(bucketLabel, bucketCluster).as('deleteBucket');
197+
mockDeleteBucket(bucketLabel, region).as('deleteBucket');
198198

199199
cy.visitWithLogin('/object-storage/buckets');
200200
cy.wait('@getBuckets');

packages/manager/src/features/ObjectStorage/BucketDetail/ObjectsTab/ObjectDetailsDrawer.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import * as React from 'react';
66

77
import { CopyTooltip } from 'src/components/CopyTooltip/CopyTooltip';
88
import { Link } from 'src/components/Link';
9-
import { useIsObjectStorageGen2Enabled } from 'src/features/ObjectStorage/hooks/useIsObjectStorageGen2Enabled';
109
import { useObjectStorageBuckets } from 'src/queries/object-storage/queries';
1110
import { formatDate } from 'src/utilities/formatDate';
1211

@@ -40,9 +39,8 @@ export const ObjectDetailsDrawer = React.memo(
4039
let formattedLastModified;
4140

4241
const { data: profile } = useProfile();
43-
const { isObjectStorageGen2Enabled } = useIsObjectStorageGen2Enabled();
4442
const { data: bucketsData, isLoading: isLoadingEndpointData } =
45-
useObjectStorageBuckets(isObjectStorageGen2Enabled);
43+
useObjectStorageBuckets();
4644

4745
const isLoadingEndpoint = isLoadingEndpointData || !bucketsData;
4846

packages/manager/src/features/ObjectStorage/BucketDetail/index.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import { SafeTabPanel } from 'src/components/Tabs/SafeTabPanel';
99
import { TabPanels } from 'src/components/Tabs/TabPanels';
1010
import { Tabs } from 'src/components/Tabs/Tabs';
1111
import { TanStackTabLinkList } from 'src/components/Tabs/TanStackTabLinkList';
12-
import { useIsObjectStorageGen2Enabled } from 'src/features/ObjectStorage/hooks/useIsObjectStorageGen2Enabled';
1312
import { useFlags } from 'src/hooks/useFlags';
1413
import { useTabs } from 'src/hooks/useTabs';
1514
import { useCloudPulseServiceByServiceType } from 'src/queries/cloudpulse/services';
@@ -48,7 +47,6 @@ export const BucketDetailLanding = React.memo(() => {
4847
});
4948

5049
const { aclpServices, objectStorageContextualMetrics } = useFlags();
51-
const { isObjectStorageGen2Enabled } = useIsObjectStorageGen2Enabled();
5250
const { isError: aclpServiceError, isLoading: aclServiceLoading } =
5351
useCloudPulseServiceByServiceType('objectstorage', true);
5452

@@ -57,7 +55,7 @@ export const BucketDetailLanding = React.memo(() => {
5755
isLoading,
5856
error,
5957
isPending,
60-
} = useObjectStorageBuckets(isObjectStorageGen2Enabled);
58+
} = useObjectStorageBuckets();
6159

6260
const bucket = bucketsData?.buckets.find(({ label }) => label === bucketName);
6361

packages/manager/src/features/ObjectStorage/BucketLanding/BucketDetailsDrawer.test.tsx

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -98,9 +98,6 @@ describe('BucketDetailsDrawer: Legacy UI', () => {
9898
selectedBucket={bucket}
9999
/>
100100
),
101-
options: {
102-
flags: { objMultiCluster: false },
103-
},
104101
});
105102

106103
expect(screen.getByText(bucket.label)).toBeInTheDocument();
@@ -122,9 +119,6 @@ describe('BucketDetailsDrawer: Legacy UI', () => {
122119
selectedBucket={bucket}
123120
/>
124121
),
125-
options: {
126-
flags: { objMultiCluster: false },
127-
},
128122
});
129123

130124
expect(screen.queryByText(bucket.label)).not.toBeInTheDocument();
@@ -139,9 +133,6 @@ describe('BucketDetailsDrawer: Legacy UI', () => {
139133
selectedBucket={bucket}
140134
/>
141135
),
142-
options: {
143-
flags: { objMultiCluster: false },
144-
},
145136
});
146137

147138
expect(screen.getByTestId('cluster')).toHaveTextContent(region.id);
@@ -156,9 +147,6 @@ describe('BucketDetailsDrawer: Legacy UI', () => {
156147
selectedBucket={undefined}
157148
/>
158149
),
159-
options: {
160-
flags: { objMultiCluster: false },
161-
},
162150
});
163151

164152
expect(screen.getByText('Bucket Detail')).toBeInTheDocument();
@@ -176,7 +164,7 @@ describe('BucketDetailsDrawer: Legacy UI', () => {
176164
/>
177165
),
178166
options: {
179-
flags: { objMultiCluster: false },
167+
flags: { objectStorageGen2: { enabled: true } },
180168
},
181169
});
182170

@@ -198,7 +186,7 @@ describe('BucketDetailsDrawer: Legacy UI', () => {
198186
/>
199187
),
200188
options: {
201-
flags: { objMultiCluster: false },
189+
flags: { objectStorageGen2: { enabled: true } },
202190
},
203191
});
204192

@@ -227,7 +215,7 @@ describe('BucketDetailDrawer: Gen2 UI', () => {
227215
/>
228216
),
229217
options: {
230-
flags: { objMultiCluster: false, objectStorageGen2: { enabled: true } },
218+
flags: { objectStorageGen2: { enabled: true } },
231219
},
232220
});
233221

@@ -254,7 +242,7 @@ describe('BucketDetailDrawer: Gen2 UI', () => {
254242
/>
255243
),
256244
options: {
257-
flags: { objMultiCluster: false, objectStorageGen2: { enabled: true } },
245+
flags: { objectStorageGen2: { enabled: true } },
258246
},
259247
});
260248

0 commit comments

Comments
 (0)