Merge pull request #2717 from swordqiu/hotfix/qj-bucket-access-url-nil-pointer-panic

fix: bucket list access accessUrl nil pointer panic
This commit is contained in:
yunion-ci-robot
2019-09-02 21:42:17 +08:00
committed by GitHub
+17 -14
View File
@@ -501,23 +501,26 @@ func (bucket *SBucket) getMoreDetails(extra *jsonutils.JSONDict) *jsonutils.JSON
s3gwUrl, _ := auth.GetServiceURL("s3gateway", options.Options.Region, "", "public")
if len(s3gwUrl) > 0 {
accessUrls := make([]cloudprovider.SBucketAccessUrl, 0)
err := bucket.AccessUrls.Unmarshal(&accessUrls)
if err == nil {
find := false
for i := range accessUrls {
if strings.HasPrefix(accessUrls[i].Url, s3gwUrl) {
find = true
break
}
if bucket.AccessUrls != nil {
err := bucket.AccessUrls.Unmarshal(&accessUrls)
if err != nil {
log.Errorf("bucket.AccessUrls.Unmarshal fail %s", err)
}
if !find {
accessUrls = append(accessUrls, cloudprovider.SBucketAccessUrl{
Url: joinPath(s3gwUrl, bucket.Name),
Description: "s3gateway",
})
extra.Set("access_urls", jsonutils.Marshal(accessUrls))
}
find := false
for i := range accessUrls {
if strings.HasPrefix(accessUrls[i].Url, s3gwUrl) {
find = true
break
}
}
if !find {
accessUrls = append(accessUrls, cloudprovider.SBucketAccessUrl{
Url: joinPath(s3gwUrl, bucket.Name),
Description: "s3gateway",
})
extra.Set("access_urls", jsonutils.Marshal(accessUrls))
}
}
return extra