Skip to content

Commit

Permalink
fix: sync huawei bucket project info
Browse files Browse the repository at this point in the history
  • Loading branch information
Qu Xuan committed Oct 13, 2020
1 parent 9330c0c commit 3fbf7d0
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 4 deletions.
8 changes: 8 additions & 0 deletions pkg/multicloud/huawei/bucket.go
Expand Up @@ -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 ""
}

Expand Down
11 changes: 7 additions & 4 deletions pkg/multicloud/huawei/region.go
Expand Up @@ -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")
}
}
Expand Down
26 changes: 26 additions & 0 deletions pkg/multicloud/huawei/shell/bucket.go
Expand Up @@ -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
})

}

0 comments on commit 3fbf7d0

Please sign in to comment.