diff --git a/integration/user_api_bucket_test.go b/integration/user_api_bucket_test.go index 3cf8fff85..0082b6511 100644 --- a/integration/user_api_bucket_test.go +++ b/integration/user_api_bucket_test.go @@ -752,7 +752,7 @@ func TestPutObjectsLegalholdStatus(t *testing.T) { status := "enabled" // 1. Create bucket - if !setupBucket(bucketName, true, true, nil, nil, assert, 201) { + if !setupBucket(bucketName, true, true, nil, nil, assert, 200) { return } @@ -839,7 +839,7 @@ func TestGetBucketQuota(t *testing.T) { validBucket := "testgetbucketquota" // 1. Create bucket - if !setupBucket(validBucket, true, true, nil, nil, assert, 201) { + if !setupBucket(validBucket, true, true, nil, nil, assert, 200) { return } @@ -916,7 +916,7 @@ func TestPutBucketQuota(t *testing.T) { validBucket := "testputbucketquota" // 1. Create bucket - if !setupBucket(validBucket, true, true, nil, nil, assert, 201) { + if !setupBucket(validBucket, true, true, nil, nil, assert, 200) { return } @@ -975,7 +975,7 @@ func TestListBucketEvents(t *testing.T) { validBucket := "testlistbucketevents" // 1. Create bucket - if !setupBucket(validBucket, true, true, nil, nil, assert, 201) { + if !setupBucket(validBucket, true, true, nil, nil, assert, 200) { return } @@ -1033,7 +1033,7 @@ func TestDeleteObjectsRetentionStatus(t *testing.T) { validPrefix := encodeBase64(fileName) // 1. Create bucket - if !setupBucket(bucketName, true, true, nil, nil, assert, 201) { + if !setupBucket(bucketName, true, true, nil, nil, assert, 200) { return } @@ -1140,7 +1140,7 @@ func TestBucketSetPolicy(t *testing.T) { validBucketName := "testbucketsetpolicy" // 1. Create bucket - if !setupBucket(validBucketName, true, true, nil, nil, assert, 201) { + if !setupBucket(validBucketName, true, true, nil, nil, assert, 200) { return } @@ -1201,7 +1201,7 @@ func TestRestoreObjectToASelectedVersion(t *testing.T) { validPrefix := encodeBase64(fileName) // 1. Create bucket - if !setupBucket(bucketName, true, true, nil, nil, assert, 201) { + if !setupBucket(bucketName, true, true, nil, nil, assert, 200) { return } @@ -1289,7 +1289,7 @@ func TestPutBucketsTags(t *testing.T) { // 1. Create the bucket assert := assert.New(t) validBucketName := "testputbuckettags1" - if !setupBucket(validBucketName, false, false, nil, nil, assert, 201) { + if !setupBucket(validBucketName, false, false, nil, nil, assert, 200) { return } @@ -1347,7 +1347,7 @@ func TestGetsTheMetadataOfAnObject(t *testing.T) { tags["tag"] = "testputobjecttagbucketonetagone" // 1. Create the bucket - if !setupBucket(bucketName, false, false, nil, nil, assert, 201) { + if !setupBucket(bucketName, false, false, nil, nil, assert, 200) { return } @@ -1418,7 +1418,7 @@ func TestPutObjectsRetentionStatus(t *testing.T) { prefix := encodeBase64(fileName) // 1. Create bucket - if !setupBucket(bucketName, true, true, nil, nil, assert, 201) { + if !setupBucket(bucketName, true, true, nil, nil, assert, 200) { return } @@ -1516,7 +1516,7 @@ func TestShareObjectOnURL(t *testing.T) { versionID := "null" // 1. Create the bucket - if !setupBucket(bucketName, false, false, nil, nil, assert, 201) { + if !setupBucket(bucketName, false, false, nil, nil, assert, 200) { return } @@ -1590,7 +1590,7 @@ func TestListObjects(t *testing.T) { fileName := "testlistobjecttobucket1.txt" // 1. Create the bucket - if !setupBucket(bucketName, false, false, nil, nil, assert, 201) { + if !setupBucket(bucketName, false, false, nil, nil, assert, 200) { return } @@ -1638,7 +1638,7 @@ func TestDeleteObject(t *testing.T) { numberOfFiles := 2 // 1. Create bucket - if !setupBucket(bucketName, true, true, nil, nil, assert, 201) { + if !setupBucket(bucketName, true, true, nil, nil, assert, 200) { return } @@ -1704,7 +1704,7 @@ func TestUploadObjectToBucket(t *testing.T) { fileName := "sample.txt" // 1. Create the bucket - if !setupBucket(bucketName, false, false, nil, nil, assert, 201) { + if !setupBucket(bucketName, false, false, nil, nil, assert, 200) { return } @@ -1739,7 +1739,7 @@ func TestDownloadObject(t *testing.T) { } // 1. Create the bucket - if !setupBucket(bucketName, true, true, nil, nil, assert, 201) { + if !setupBucket(bucketName, true, true, nil, nil, assert, 200) { return } @@ -1801,7 +1801,7 @@ func TestDeleteMultipleObjects(t *testing.T) { fileName := "testdeletemultipleobjs" // 1. Create a bucket for this particular test - if !setupBucket(bucketName, false, false, nil, nil, assert, 201) { + if !setupBucket(bucketName, false, false, nil, nil, assert, 200) { return } @@ -1878,7 +1878,7 @@ func TestPutObjectTag(t *testing.T) { versionID := "null" // 1. Create the bucket - if !setupBucket(bucketName, false, false, nil, nil, assert, 201) { + if !setupBucket(bucketName, false, false, nil, nil, assert, 200) { return } @@ -1952,7 +1952,7 @@ func TestBucketRetention(t *testing.T) { retention["mode"] = "compliance" retention["unit"] = "years" retention["validity"] = 2 - if !setupBucket("setbucketretention1", true, true, nil, retention, assert, 201) { + if !setupBucket("setbucketretention1", true, true, nil, retention, assert, 200) { return } @@ -2003,7 +2003,7 @@ func TestBucketInformationGenericErrorResponse(t *testing.T) { // 1. Create the bucket assert := assert.New(t) - if !setupBucket("bucketinformation2", false, false, nil, nil, assert, 201) { + if !setupBucket("bucketinformation2", false, false, nil, nil, assert, 200) { return } @@ -2048,7 +2048,7 @@ func TestBucketInformationSuccessfulResponse(t *testing.T) { // 1. Create the bucket assert := assert.New(t) - if !setupBucket("bucketinformation1", false, false, nil, nil, assert, 201) { + if !setupBucket("bucketinformation1", false, false, nil, nil, assert, 200) { return } @@ -2161,7 +2161,7 @@ func TestListBuckets(t *testing.T) { // 1. Create buckets numberOfBuckets := 3 for i := 1; i <= numberOfBuckets; i++ { - if !setupBucket("testlistbuckets"+strconv.Itoa(i), false, false, nil, nil, assert, 201) { + if !setupBucket("testlistbuckets"+strconv.Itoa(i), false, false, nil, nil, assert, 200) { return } } @@ -2277,7 +2277,7 @@ func TestBucketVersioning(t *testing.T) { requestDataBody := bytes.NewReader(requestDataJSON) - if !setupBucket("test2", true, false, nil, nil, assert, 201) { + if !setupBucket("test2", true, false, nil, nil, assert, 200) { return } @@ -2314,7 +2314,7 @@ func TestBucketVersioning(t *testing.T) { if distributedSystem { assert.Equal(200, response.StatusCode, "Versioning test Status Code is incorrect - bucket failed to create") } else { - assert.NotEqual(201, response.StatusCode, "Versioning test Status Code is incorrect - versioned bucket created on non-distributed system") + assert.NotEqual(200, response.StatusCode, "Versioning test Status Code is incorrect - versioned bucket created on non-distributed system") } request, error := http.NewRequest("DELETE", "http://localhost:9090/api/v1/buckets/test2", requestDataBody) @@ -2345,7 +2345,7 @@ func TestSetBucketTags(t *testing.T) { } // put bucket - if !setupBucket("test4", false, false, nil, nil, assert, 201) { + if !setupBucket("test4", false, false, nil, nil, assert, 200) { return } @@ -2412,7 +2412,7 @@ func TestGetBucket(t *testing.T) { Timeout: 2 * time.Second, } - if !setupBucket("test3", false, false, nil, nil, assert, 201) { + if !setupBucket("test3", false, false, nil, nil, assert, 200) { return } @@ -2450,7 +2450,7 @@ func TestAddBucket(t *testing.T) { }{ { name: "Add Bucket with valid name", - expectedStatus: 201, + expectedStatus: 200, args: args{ bucketName: "test1", }, @@ -3050,7 +3050,7 @@ func TestSetBucketVersioning(t *testing.T) { versioning := true // 1. Create bucket with versioning as true and locking as false - if !setupBucket(bucket, locking, versioning, nil, nil, assert, 201) { + if !setupBucket(bucket, locking, versioning, nil, nil, assert, 200) { return } @@ -3133,7 +3133,7 @@ func TestEnableBucketEncryption(t *testing.T) { kmsKeyID := "" // 1. Add bucket - if !setupBucket(bucketName, locking, versioning, nil, nil, assert, 201) { + if !setupBucket(bucketName, locking, versioning, nil, nil, assert, 200) { return } @@ -3402,7 +3402,7 @@ func TestBucketLifeCycle(t *testing.T) { var noncurrentversionExpirationDays int64 // 1. Add bucket - if !setupBucket(bucketName, locking, versioning, nil, nil, assert, 201) { + if !setupBucket(bucketName, locking, versioning, nil, nil, assert, 200) { return } @@ -3612,7 +3612,7 @@ func TestAccessRule(t *testing.T) { access := "readonly" // 1. Add bucket - if !setupBucket(bucketName, locking, versioning, nil, nil, assert, 201) { + if !setupBucket(bucketName, locking, versioning, nil, nil, assert, 200) { return } @@ -3856,13 +3856,13 @@ func TestAddRemoteBucket(t *testing.T) { fmt.Println("targetBucket: ", targetBucket) // 1. Create bucket - if !setupBucket("source", true, true, nil, nil, assert, 201) { + if !setupBucket("source", true, true, nil, nil, assert, 200) { return } // 1.1. Create target bucket targetEndpoint := "http://localhost:9092" targetToken := getTokenForEndpoint(targetEndpoint) - if !setupBucketForEndpoint(targetBucket, true, true, nil, nil, assert, 201, &targetEndpoint, &targetToken) { + if !setupBucketForEndpoint(targetBucket, true, true, nil, nil, assert, 200, &targetEndpoint, &targetToken) { log.Println("bucket already exists") } _, err := SetBucketVersioning(targetBucket, false, &targetURL, &targetToken) @@ -3915,13 +3915,13 @@ func TestDeleteRemoteBucket(t *testing.T) { fmt.Println("targetBucket: ", targetBucket) // 1. Create bucket - if !setupBucket("deletesource", true, true, nil, nil, assert, 201) { + if !setupBucket("deletesource", true, true, nil, nil, assert, 200) { return } // 1.1. Create target bucket targetEndpoint := "http://localhost:9092" targetToken := getTokenForEndpoint(targetEndpoint) - if !setupBucketForEndpoint(targetBucket, true, true, nil, nil, assert, 201, &targetEndpoint, &targetToken) { + if !setupBucketForEndpoint(targetBucket, true, true, nil, nil, assert, 200, &targetEndpoint, &targetToken) { log.Println("bucket already exists") } _, err := SetBucketVersioning(targetBucket, false, &targetURL, &targetToken) diff --git a/models/make_buckets_response.go b/models/make_buckets_response.go new file mode 100644 index 000000000..757aabe7a --- /dev/null +++ b/models/make_buckets_response.go @@ -0,0 +1,67 @@ +// Code generated by go-swagger; DO NOT EDIT. + +// This file is part of MinIO Console Server +// Copyright (c) 2023 MinIO, Inc. +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . +// + +package models + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "context" + + "github.com/go-openapi/strfmt" + "github.com/go-openapi/swag" +) + +// MakeBucketsResponse make buckets response +// +// swagger:model makeBucketsResponse +type MakeBucketsResponse struct { + + // bucket name + BucketName string `json:"bucketName,omitempty"` +} + +// Validate validates this make buckets response +func (m *MakeBucketsResponse) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this make buckets response based on context it is used +func (m *MakeBucketsResponse) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (m *MakeBucketsResponse) MarshalBinary() ([]byte, error) { + if m == nil { + return nil, nil + } + return swag.WriteJSON(m) +} + +// UnmarshalBinary interface implementation +func (m *MakeBucketsResponse) UnmarshalBinary(b []byte) error { + var res MakeBucketsResponse + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *m = res + return nil +} diff --git a/portal-ui/src/api/consoleApi.ts b/portal-ui/src/api/consoleApi.ts index b83988720..605ced0ea 100644 --- a/portal-ui/src/api/consoleApi.ts +++ b/portal-ui/src/api/consoleApi.ts @@ -430,6 +430,10 @@ export interface AddBucketReplication { destination_bucket?: string; } +export interface MakeBucketsResponse { + bucketName?: string; +} + export interface ListBucketEventsResponse { events?: NotificationConfig[]; /** @@ -1927,12 +1931,13 @@ export class Api< * @secure */ makeBucket: (body: MakeBucketRequest, params: RequestParams = {}) => - this.request({ + this.request({ path: `/buckets`, method: "POST", body: body, secure: true, type: ContentType.Json, + format: "json", ...params, }), diff --git a/portal-ui/src/screens/Console/Buckets/ListBuckets/AddBucket/addBucketsSlice.ts b/portal-ui/src/screens/Console/Buckets/ListBuckets/AddBucket/addBucketsSlice.ts index e80526e14..0985d4777 100644 --- a/portal-ui/src/screens/Console/Buckets/ListBuckets/AddBucket/addBucketsSlice.ts +++ b/portal-ui/src/screens/Console/Buckets/ListBuckets/AddBucket/addBucketsSlice.ts @@ -175,7 +175,9 @@ export const addBucketsSlice = createSlice({ }) .addCase(addBucketAsync.fulfilled, (state, action) => { state.loading = false; - state.navigateTo = `/buckets/${action.payload}/admin`; + state.navigateTo = action.payload.data.bucketName + ? "/buckets" + : `/buckets/${action.payload.data.bucketName}/admin`; }); }, }); diff --git a/portal-ui/src/screens/Console/Policies/PolicyDetails.tsx b/portal-ui/src/screens/Console/Policies/PolicyDetails.tsx index 8d0937e18..25ecfc43a 100644 --- a/portal-ui/src/screens/Console/Policies/PolicyDetails.tsx +++ b/portal-ui/src/screens/Console/Policies/PolicyDetails.tsx @@ -22,7 +22,9 @@ import { IAMPoliciesIcon, RefreshIcon, SearchIcon, + SectionTitle, TrashIcon, + Grid, } from "mds"; import { Theme } from "@mui/material/styles"; import createStyles from "@mui/styles/createStyles"; @@ -34,7 +36,6 @@ import { searchField, } from "../Common/FormComponents/common/styleLibrary"; import Paper from "@mui/material/Paper"; -import Grid from "@mui/material/Grid"; import { LinearProgress } from "@mui/material"; import TableWrapper from "../Common/TableWrapper/TableWrapper"; @@ -425,7 +426,9 @@ const PolicyDetails = ({ classes }: IPolicyDetailsProps) => { tabConfig: { label: "Summary", disabled: !displayPolicy }, content: ( -
Policy Summary
+ + Policy Summary + @@ -439,7 +442,9 @@ const PolicyDetails = ({ classes }: IPolicyDetailsProps) => { }, content: ( -
Users
+ + Users + {userList.length > 0 && ( @@ -482,7 +487,9 @@ const PolicyDetails = ({ classes }: IPolicyDetailsProps) => { }, content: ( -
Groups
+ + Groups + {groupList.length > 0 && ( @@ -522,7 +529,9 @@ const PolicyDetails = ({ classes }: IPolicyDetailsProps) => { tabConfig: { label: "Raw Policy", disabled: !displayPolicy }, content: ( -
Raw Policy
+ + Raw Policy +