mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
fix: sync huawei bucket project info
This commit is contained in:
@@ -42,6 +42,14 @@ type SBucket struct {
|
||||
}
|
||||
|
||||
func (b *SBucket) GetProjectId() string {
|
||||
resp, err := b.region.HeadBucket(b.Name)
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
epid, _ := resp.ResponseHeaders["epid"]
|
||||
if len(epid) > 0 {
|
||||
return epid[0]
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
|
||||
@@ -957,17 +957,20 @@ func (region *SRegion) DeleteIBucket(name string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (region *SRegion) IBucketExist(name string) (bool, error) {
|
||||
func (region *SRegion) HeadBucket(name string) (*obs.BaseModel, error) {
|
||||
obsClient, err := region.getOBSClient()
|
||||
if err != nil {
|
||||
return false, errors.Wrap(err, "region.getOBSClient")
|
||||
return nil, errors.Wrap(err, "region.getOBSClient")
|
||||
}
|
||||
_, err = obsClient.HeadBucket(name)
|
||||
return obsClient.HeadBucket(name)
|
||||
}
|
||||
|
||||
func (region *SRegion) IBucketExist(name string) (bool, error) {
|
||||
_, err := region.HeadBucket(name)
|
||||
if err != nil {
|
||||
if obsHttpCode(err) == 404 {
|
||||
return false, nil
|
||||
} else {
|
||||
log.Debugf("%#v %s", err, err)
|
||||
return false, errors.Wrap(err, "HeadBucket")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,9 +15,35 @@
|
||||
package shell
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"yunion.io/x/onecloud/pkg/multicloud/huawei"
|
||||
"yunion.io/x/onecloud/pkg/multicloud/objectstore"
|
||||
"yunion.io/x/onecloud/pkg/util/shellutils"
|
||||
)
|
||||
|
||||
func init() {
|
||||
objectstore.S3Shell()
|
||||
|
||||
type BucketNameOptions struct {
|
||||
NAME string
|
||||
}
|
||||
shellutils.R(&BucketNameOptions{}, "bucket-head", "Head bucket", func(cli *huawei.SRegion, args *BucketNameOptions) error {
|
||||
result, err := cli.HeadBucket(args.NAME)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
printObject(result)
|
||||
return nil
|
||||
})
|
||||
|
||||
shellutils.R(&BucketNameOptions{}, "bucket-project", "Show bucket project", func(cli *huawei.SRegion, args *BucketNameOptions) error {
|
||||
bucket, err := cli.GetIBucketByName(args.NAME)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
fmt.Println("project: ", bucket.GetProjectId())
|
||||
return nil
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user