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
+