Skip to content

Commit

Permalink
[Object Storage] feat: implement crud bucket,access key,sub user
Browse files Browse the repository at this point in the history
[Object Storage] feat: implement crud config bucket action

[Object Storage] feat: implement crud bucket config action, reformat object storage structure folder

[Object Storage] update: update missing code about action sub user
  • Loading branch information
hoanglm authored and hoanglm committed Oct 29, 2024
1 parent 5b4367f commit 6cace2d
Show file tree
Hide file tree
Showing 19 changed files with 2,181 additions and 37 deletions.
152 changes: 152 additions & 0 deletions commons/api_path.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ package commons

import "fmt"

const ObjectStorageApiPrefix = "/v1/vmware/vpc"

var ApiPath = struct {
SSH string
Storage func(vpcId string) string
Expand Down Expand Up @@ -58,6 +60,49 @@ var ApiPath = struct {
ManagedFKEDelete func(vpcId string, platform string, clusterName string) string
ManagedFKECreate func(vpcId string, platform string) string
GetFKEOSVersion func(vpcId string, platform string) string

// Object Storage
// Common
CheckS3ServiceEnable func(vpcId string) string

// Bucket
ListBuckets func(vpcId, s3ServiceId string, page, pageSize int) string
CreateBucket func(vpcId, s3ServiceId string) string
DeleteBucket func(vpcId, s3ServiceId, bucketName string) string
// Bucket Policy
GetBucketPolicy func(vpcId, s3ServiceId, bucketName string) string
PutBucketPolicy func(vpcId, s3ServiceId, bucketName string) string
// Bucket Static Website
GetBucketWebsite func(vpcId, s3ServiceId, bucketName string) string
PutBucketWebsite func(vpcId, s3ServiceId, bucketName string) string
DeleteBucketStaticWebsite func(vpcId, s3ServiceId, bucketName string) string
// Bucket Versioning
GetBucketVersioning func(vpcId, s3ServiceId, bucketName string) string
PutBucketVersioning func(vpcId, s3ServiceId, bucketName string) string
// Bucket Lifecycle
GetBucketLifecycle func(vpcId, s3ServiceId, bucketName, page, pageSize string) string
PutBucketLifecycle func(vpcId, s3ServiceId, bucketName string) string
DeleteBucketLifecycle func(vpcId, s3ServiceId, bucketName string) string
// Bucket CORS
GetBucketCORS func(vpcId, s3ServiceId, bucketName string) string
PutBucketCORS func(vpcId, s3ServiceId, bucketName string) string
CreateBucketCors func(vpcId, s3ServiceId, bucketName string) string
// Bucket ACL
GetBucketAcl func(vpcId, s3ServiceId, bucketName string) string
PutBucketAcl func(vpcId, s3ServiceId, bucketName string) string

// Sub-user
ListSubUsers func(vpcId, s3ServiceId string) string
CreateSubUser func(vpcId, s3ServiceId string) string
UpdateSubUser func(vpcId, s3ServiceId, subUserId string) string
DeleteSubUser func(vpcId, s3ServiceId, subUserId string) string
DetailSubUser func(vpcId, s3ServiceId, subUserId string) string
CreateSubUserAccessKey func(vpcId, s3ServiceId, subUserId string) string
DeleteSubUserAccessKey func(vpcId, s3ServiceId, subUserId, accessKeyId string) string
// Access Key
ListAccessKeys func(vpcId string) string
CreateAccessKey func(vpcId, s3ServiceId string) string
DeleteAccessKey func(vpcId, s3ServiceId, accessKeyId string) string
}{
SSH: "/v1/user/sshs",
Storage: func(vpcId string) string {
Expand Down Expand Up @@ -219,4 +264,111 @@ var ApiPath = struct {
GetFKEOSVersion: func(vpcId string, platform string) string {
return fmt.Sprintf("/v1/xplat/fke/vpc/%s/m-fke/%s/get_k8s_versions", vpcId, platform)
},

// Object Storage
// Common
// https://console-api.fptcloud.com/api/v1/vmware/vpc/1b413c55-b752-4183-abad-06c4b5aca6ad/s3/check-service-enabled?check_unlimited=undefined
CheckS3ServiceEnable: func(vpcId string) string {
fmt.Println("vpcId: ", vpcId)
return "/v1/vmware/vpc/1b413c55-b752-4183-abad-06c4b5aca6ad/s3/check-service-enabled?check_unlimited=undefined"
},

// Bucket
// https://console-api.fptcloud.com/api/v1/vmware/vpc/1b413c55-b752-4183-abad-06c4b5aca6ad/s3/buckets?page=1&page_size=25&s3_service_id=
ListBuckets: func(vpcId, s3ServiceId string, page, pageSize int) string {
return fmt.Sprintf("/v1/vmware/vpc/%s/s3/buckets?page=%d&page_size=%d&s3_service_id=%s", vpcId, page, pageSize, s3ServiceId)
},
// https://console-api.fptcloud.com/api/v1/vmware/vpc/1b413c55-b752-4183-abad-06c4b5aca6ad/s3/d8c82109-3d17-4ac2-8b21-5fedb2d81c54/buckets/create
CreateBucket: func(vpcId, s3ServiceId string) string {
return fmt.Sprintf("/v1/vmware/vpc/%s/s3/%s/buckets/create", vpcId, s3ServiceId)
},

DeleteBucket: func(vpcId, s3ServiceId, bucketName string) string {
return fmt.Sprintf("/v1/vmware/vpc/%s/s3/%s/buckets/%s/delete", vpcId, s3ServiceId, bucketName)
},

// Bucket Versioning
GetBucketVersioning: func(vpcId, s3ServiceId, bucketName string) string {
return fmt.Sprintf("/v1/vmware/vpc/%s/s3/%s/bucket/%s/get-versioning", vpcId, s3ServiceId, bucketName)
},
PutBucketVersioning: func(vpcId, s3ServiceId, bucketName string) string {
return fmt.Sprintf("/v1/vmware/vpc/%s/s3/%s/bucket/%s/put-versioning", vpcId, s3ServiceId, bucketName)
},
// Bucket Policy
GetBucketPolicy: func(vpcId, s3ServiceId, bucketName string) string {
return fmt.Sprintf("/v1/vmware/vpc/%s/s3/%s/bucket/%s/get-policy", vpcId, s3ServiceId, bucketName)
},
PutBucketPolicy: func(vpcId, s3ServiceId, bucketName string) string {
return fmt.Sprintf("/v1/vmware/vpc/%s/s3/%s/bucket/%s/put-policy", vpcId, s3ServiceId, bucketName)
},
// Bucket Static Website
GetBucketWebsite: func(vpcId, s3ServiceId, bucketName string) string {
return fmt.Sprintf("/v1/vmware/vpc/%s/s3/%s/bucket/%s/get-config", vpcId, s3ServiceId, bucketName)
},
PutBucketWebsite: func(vpcId, s3ServiceId, bucketName string) string {
return fmt.Sprintf("/v1/vmware/vpc/%s/s3/%s/bucket/%s/put-config", vpcId, s3ServiceId, bucketName)
},
DeleteBucketStaticWebsite: func(vpcId, s3ServiceId, bucketName string) string {
return fmt.Sprintf("/v1/vmware/vpc/%s/s3/%s/bucket/%s/delete-config", vpcId, s3ServiceId, bucketName)
},
// Bucket Lifecycle
GetBucketLifecycle: func(vpcId, s3ServiceId, bucketName, page, pageSize string) string {
return fmt.Sprintf("/v1/vmware/vpc/%s/s3/%s/bucket/%s/lifecycles?page=%s&page_size=%s", vpcId, s3ServiceId, bucketName, page, pageSize)
},
PutBucketLifecycle: func(vpcId, s3ServiceId, bucketName string) string {
return fmt.Sprintf("/v1/vmware/vpc/%s/s3/%s/bucket/%s/create-bucket-lifecycle-configuration`", vpcId, s3ServiceId, bucketName)
},
DeleteBucketLifecycle: func(vpcId, s3ServiceId, bucketName string) string {
return fmt.Sprintf("/v1/vmware/vpc/%s/s3/%s/bucket/%s/delete-bucket-lifecycle-configuration", vpcId, s3ServiceId, bucketName)
},
// Bucket CORS
GetBucketCORS: func(vpcId, s3ServiceId, bucketName string) string {
return fmt.Sprintf("/v1/vmware/vpc/%s/s3/%s/bucket/%s/cors", vpcId, s3ServiceId, bucketName)
},
PutBucketCORS: func(vpcId, s3ServiceId, bucketName string) string {
return fmt.Sprintf("/v1/vmware/vpc/%s/s3/%s/bucket/%s/put-bucket-cors", vpcId, s3ServiceId, bucketName)
},
CreateBucketCors: func(vpcId, s3ServiceId, bucketName string) string {
return fmt.Sprintf("/v1/vmware/vpc/%s/s3/%s/bucket/%s/create-bucket-cors", vpcId, s3ServiceId, bucketName)
},
// Bucket ACL
GetBucketAcl: func(vpcId, s3ServiceId, bucketName string) string {
return fmt.Sprintf("/v1/vmware/vpc/%s/s3/%s/bucket/%s/acl", vpcId, s3ServiceId, bucketName)
},
PutBucketAcl: func(vpcId, s3ServiceId, bucketName string) string {
return fmt.Sprintf("/v1/vmware/vpc/%s/s3/%s/bucket/%s/acl", vpcId, s3ServiceId, bucketName)
},
// Sub-user
ListSubUsers: func(vpcId, serviceId string) string {
return fmt.Sprintf("/v1/vmware/vpc/%s/s3/%s/sub-users/list", vpcId, serviceId)
},
CreateSubUser: func(vpcId, s3ServiceId string) string {
return fmt.Sprintf("/v1/vmware/vpc/%s/s3/%s/sub-users/create", vpcId, s3ServiceId)
},
UpdateSubUser: func(vpcId, s3ServiceId, subUserId string) string {
return fmt.Sprintf("/v1/vmware/vpc/%s/s3/sub-users/%s/update", vpcId, subUserId)
},
DeleteSubUser: func(vpcId, s3ServiceId, subUserId string) string {
return fmt.Sprintf("/v1/vmware/vpc/%s/s3/%s/sub-users/%s/delete", vpcId, s3ServiceId, subUserId)
},
CreateSubUserAccessKey: func(vpcId, s3ServiceId, subUserId string) string {
return fmt.Sprintf("/v1/vmware/vpc/%s/s3/%s/sub-users/%s/credentials/create", vpcId, s3ServiceId, subUserId)
},
DeleteSubUserAccessKey: func(vpcId, s3ServiceId, subUserId, accessKeyId string) string {
return fmt.Sprintf("/v1/vmware/vpc/%s/s3/%s/sub-users/%s/credentials/%s/delete", vpcId, s3ServiceId, subUserId, accessKeyId)
},
DetailSubUser: func(vpcId, s3ServiceId, subUserId string) string {
return fmt.Sprintf("/v1/vmware/vpc/%s/s3/%s/sub-users/%s/detail", vpcId, s3ServiceId, subUserId)
},

// Access Key
ListAccessKeys: func(vpcId string) string {
return fmt.Sprintf("/v1/vmware/vpc/%s/s3/user/credentials", vpcId)
},
CreateAccessKey: func(vpcId, s3ServiceId string) string {
return fmt.Sprintf("/v1/vmware/vpc/%s/s3/%s/user/credentials", vpcId, s3ServiceId)
},
DeleteAccessKey: func(vpcId, s3ServiceId, accessKeyId string) string {
return fmt.Sprintf("/v1/vmware/vpc/%s/s3/%s/user/credentials/%s/delete", vpcId, s3ServiceId, accessKeyId)
},
}
Loading

0 comments on commit 6cace2d

Please sign in to comment.