mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
Merge pull request #1776 from swordqiu/hotfix/qj-allow-access-mcclient-service-catalog
fix: allow access mcclient serviceCatalog
This commit is contained in:
@@ -18,4 +18,5 @@ type IServiceCatalog interface {
|
||||
Len() int
|
||||
GetServiceURL(service, region, zone, endpointType string) (string, error)
|
||||
GetServiceURLs(service, region, zone, endpointType string) ([]string, error)
|
||||
GetServicesByInterface(region string, infType string) []ExternalService
|
||||
}
|
||||
|
||||
@@ -97,6 +97,10 @@ func (this *Client) SetServiceCatalog(catalog IServiceCatalog) {
|
||||
this.serviceCatalog = catalog
|
||||
}
|
||||
|
||||
func (this *Client) GetServiceCatalog() IServiceCatalog {
|
||||
return this.serviceCatalog
|
||||
}
|
||||
|
||||
func (this *Client) NewAuthTokenCredential() TokenCredential {
|
||||
if this.AuthVersion() == "v3" {
|
||||
return &TokenCredentialV3{}
|
||||
|
||||
@@ -18,8 +18,9 @@ import (
|
||||
"time"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/onecloud/pkg/util/rbacutils"
|
||||
"yunion.io/x/pkg/gotypes"
|
||||
|
||||
"yunion.io/x/onecloud/pkg/util/rbacutils"
|
||||
)
|
||||
|
||||
type ExternalService struct {
|
||||
|
||||
@@ -185,6 +185,10 @@ func (this *TokenCredentialV2) GetServiceURLs(service, region, zone, endpointTyp
|
||||
return this.ServiceCatalog.GetServiceURLs(service, region, zone, endpointType)
|
||||
}
|
||||
|
||||
func (this *TokenCredentialV2) GetServicesByInterface(region string, infType string) []ExternalService {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (this *TokenCredentialV2) GetInternalServices(region string) []string {
|
||||
return nil
|
||||
}
|
||||
@@ -297,6 +301,10 @@ func (catalog KeystoneServiceCatalogV2) GetServiceURLs(service, region, zone, en
|
||||
return []string{url}, nil
|
||||
}
|
||||
|
||||
func (catalog KeystoneServiceCatalogV2) GetServicesByInterface(region string, infType string) []ExternalService {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (ep KeystoneEndpointV2) getURL(epType string) string {
|
||||
switch epType {
|
||||
case "publicURL":
|
||||
|
||||
@@ -189,6 +189,10 @@ func (this *TokenCredentialV3) GetServiceURLs(service, region, zone, endpointTyp
|
||||
return this.Token.Catalog.GetServiceURLs(service, region, zone, endpointType)
|
||||
}
|
||||
|
||||
func (this *TokenCredentialV3) GetServicesByInterface(region string, infType string) []ExternalService {
|
||||
return this.Token.Catalog.GetServicesByInterface(region, infType)
|
||||
}
|
||||
|
||||
func (this *TokenCredentialV3) GetInternalServices(region string) []string {
|
||||
return this.Token.Catalog.getInternalServices(region)
|
||||
}
|
||||
@@ -232,11 +236,15 @@ func (catalog KeystoneServiceCatalogV3) getInternalServices(region string) []str
|
||||
}
|
||||
|
||||
func (catalog KeystoneServiceCatalogV3) getExternalServices(region string) []ExternalService {
|
||||
return catalog.GetServicesByInterface(region, "console")
|
||||
}
|
||||
|
||||
func (catalog KeystoneServiceCatalogV3) GetServicesByInterface(region string, infType string) []ExternalService {
|
||||
services := make([]ExternalService, 0)
|
||||
for i := 0; i < len(catalog); i++ {
|
||||
for j := 0; j < len(catalog[i].Endpoints); j++ {
|
||||
if catalog[i].Endpoints[j].RegionId == region &&
|
||||
catalog[i].Endpoints[j].Interface == "console" &&
|
||||
catalog[i].Endpoints[j].Interface == infType &&
|
||||
len(catalog[i].Endpoints[j].Name) > 0 {
|
||||
srv := ExternalService{Name: catalog[i].Endpoints[j].Name,
|
||||
Url: catalog[i].Endpoints[j].Url}
|
||||
|
||||
@@ -149,6 +149,10 @@ func (self *SSimpleToken) GetServiceURLs(service, region, zone, endpointType str
|
||||
return nil, fmt.Errorf("Not available")
|
||||
}
|
||||
|
||||
func (this *SSimpleToken) GetServicesByInterface(region string, infType string) []ExternalService {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (self *SSimpleToken) GetInternalServices(region string) []string {
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user