Merge pull request #1776 from swordqiu/hotfix/qj-allow-access-mcclient-service-catalog

fix: allow access mcclient serviceCatalog
This commit is contained in:
yunion-ci-robot
2019-07-17 21:29:58 +08:00
committed by GitHub
6 changed files with 28 additions and 2 deletions
+1
View File
@@ -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
}
+4
View File
@@ -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{}
+2 -1
View File
@@ -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 {
+8
View File
@@ -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":
+9 -1
View File
@@ -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}
+4
View File
@@ -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
}