From 4093c20a76c0b286a21cdc5be97c36425f0366bc Mon Sep 17 00:00:00 2001 From: Youngjin Jo Date: Thu, 19 Dec 2024 01:47:17 +0900 Subject: [PATCH] feat: add prod level connection Signed-off-by: Youngjin Jo --- cmd/common/fetchService.go | 53 ++++++++++++++++++++++---------------- cmd/common/helpers.go | 28 ++++++++++++-------- 2 files changed, 48 insertions(+), 33 deletions(-) diff --git a/cmd/common/fetchService.go b/cmd/common/fetchService.go index c79e02e..2d1b37d 100644 --- a/cmd/common/fetchService.go +++ b/cmd/common/fetchService.go @@ -161,20 +161,24 @@ func FetchService(serviceName string, verb string, resourceName string, options if strings.HasPrefix(config.Environment, "local-") { hostPort = "localhost:50051" } else { - var envPrefix string - urlParts := strings.Split(config.Environments[config.Environment].URL, ".") - for i, part := range urlParts { - if part == "console" && i+1 < len(urlParts) { - envPrefix = urlParts[i+1] // Get the part after "console" (dev or stg) - break + if strings.Contains(config.Environments[config.Environment].URL, "megazone.io") { + hostPort = fmt.Sprintf("%s.kr1.api.spaceone.megazone.io:443", convertServiceNameToEndpoint(serviceName)) + } else { + var envPrefix string + urlParts := strings.Split(config.Environments[config.Environment].URL, ".") + for i, part := range urlParts { + if part == "console" && i+1 < len(urlParts) { + envPrefix = urlParts[i+1] + break + } } - } - if envPrefix == "" { - return nil, fmt.Errorf("environment prefix not found in URL: %s", config.Environments[config.Environment].URL) - } + if envPrefix == "" { + return nil, fmt.Errorf("environment prefix not found in URL: %s", config.Environments[config.Environment].URL) + } - hostPort = fmt.Sprintf("%s.api.%s.spaceone.dev:443", convertServiceNameToEndpoint(serviceName), envPrefix) + hostPort = fmt.Sprintf("%s.api.%s.spaceone.dev:443", convertServiceNameToEndpoint(serviceName), envPrefix) + } } // Configure gRPC connection @@ -375,6 +379,7 @@ func loadConfig() (*Config, error) { func fetchJSONResponse(config *Config, serviceName string, verb string, resourceName string, options *FetchOptions) ([]byte, error) { var conn *grpc.ClientConn var err error + var hostPort string if strings.HasPrefix(config.Environment, "local-") { conn, err = grpc.Dial("localhost:50051", grpc.WithInsecure(), @@ -386,20 +391,24 @@ func fetchJSONResponse(config *Config, serviceName string, verb string, resource return nil, fmt.Errorf("connection failed: unable to connect to local server: %v", err) } } else { - var envPrefix string - urlParts := strings.Split(config.Environments[config.Environment].URL, ".") - for i, part := range urlParts { - if part == "console" && i+1 < len(urlParts) { - envPrefix = urlParts[i+1] - break + if strings.Contains(config.Environments[config.Environment].URL, "megazone.io") { + hostPort = fmt.Sprintf("%s.kr1.api.spaceone.megazone.io:443", convertServiceNameToEndpoint(serviceName)) + } else { + var envPrefix string + urlParts := strings.Split(config.Environments[config.Environment].URL, ".") + for i, part := range urlParts { + if part == "console" && i+1 < len(urlParts) { + envPrefix = urlParts[i+1] + break + } } - } - if envPrefix == "" { - return nil, fmt.Errorf("environment prefix not found in URL: %s", config.Environments[config.Environment].URL) - } + if envPrefix == "" { + return nil, fmt.Errorf("environment prefix not found in URL: %s", config.Environments[config.Environment].URL) + } - hostPort := fmt.Sprintf("%s.api.%s.spaceone.dev:443", convertServiceNameToEndpoint(serviceName), envPrefix) + hostPort = fmt.Sprintf("%s.api.%s.spaceone.dev:443", convertServiceNameToEndpoint(serviceName), envPrefix) + } tlsConfig := &tls.Config{ InsecureSkipVerify: false, diff --git a/cmd/common/helpers.go b/cmd/common/helpers.go index cd84732..2e0617c 100644 --- a/cmd/common/helpers.go +++ b/cmd/common/helpers.go @@ -93,7 +93,6 @@ func handleLocalEnvironment(serviceName string) (map[string][]string, error) { return nil, fmt.Errorf("only plugin service is supported in local environment") } - // local 환경의 plugin 서비스 endpoint 설정 conn, err := grpc.Dial("localhost:50051", grpc.WithInsecure()) if err != nil { return nil, fmt.Errorf("failed to connect to local plugin service: %v", err) @@ -143,19 +142,26 @@ func fetchVerbResourceMap(serviceName string, config *Config) (map[string][]stri // Parse URL to get environment urlParts := strings.Split(envConfig.URL, ".") var envPrefix string - for i, part := range urlParts { - if part == "console" && i+1 < len(urlParts) { - envPrefix = urlParts[i+1] - break + var hostPort string + + if strings.Contains(envConfig.URL, "megazone.io") { + endpointServiceName := convertServiceNameToEndpoint(serviceName) + hostPort = fmt.Sprintf("%s.kr1.api.spaceone.megazone.io:443", endpointServiceName) + } else { + for i, part := range urlParts { + if part == "console" && i+1 < len(urlParts) { + envPrefix = urlParts[i+1] + break + } } - } - if envPrefix == "" { - return nil, fmt.Errorf("environment prefix not found in URL: %s", envConfig.URL) - } + if envPrefix == "" { + return nil, fmt.Errorf("environment prefix not found in URL: %s", envConfig.URL) + } - endpointServiceName := convertServiceNameToEndpoint(serviceName) - hostPort := fmt.Sprintf("%s.api.%s.spaceone.dev:443", endpointServiceName, envPrefix) + endpointServiceName := convertServiceNameToEndpoint(serviceName) + hostPort = fmt.Sprintf("%s.api.%s.spaceone.dev:443", endpointServiceName, envPrefix) + } tlsConfig := &tls.Config{ InsecureSkipVerify: false,