From e2cdd2616e095bc1242db59608b80cfbcb4ec5b6 Mon Sep 17 00:00:00 2001 From: deeghuge Date: Tue, 28 Aug 2018 10:02:51 +0530 Subject: [PATCH 1/2] Spectrumscale-epic1 fix for UB-1487,UB-1488,UB-1495 UB-1487 : Using ManagementIP and Port instead of accepting URL for endpoint UB-1488 : Using SPECTRUMSCALE_ prefix instead of SSC_ UB-1495 : Improve the check in backend initilization. Added check for scbe backend. Check for Spectrum Scale will be added later. Removed MMCLI and MMSSH backend initialization as they are no longer valid Removed sshconfig from resource.go because it is no longer required --- local/clients.go | 15 ++++++---- local/spectrumscale/connectors/connectors.go | 15 ++-------- local/spectrumscale/connectors/rest.go | 4 +-- local/spectrumscale/connectors/rest_v2.go | 4 +-- .../spectrumscale/connectors/rest_v2_test.go | 3 +- local/spectrumscale/spectrumscale.go | 2 +- resources/resources.go | 11 ++++--- utils/utils.go | 29 +++++++++---------- 8 files changed, 38 insertions(+), 45 deletions(-) diff --git a/local/clients.go b/local/clients.go index d19af697..64cfd1b5 100644 --- a/local/clients.go +++ b/local/clients.go @@ -26,12 +26,15 @@ import ( func GetLocalClients(logger *log.Logger, config resources.UbiquityServerConfig) (map[string]resources.StorageClient, error) { // TODO need to refactor and load all the existing clients automatically (instead of hardcore each one here) clients := make(map[string]resources.StorageClient) - ScbeClient, err := scbe.NewScbeLocalClient(config.ScbeConfig) - if err != nil { - logger.Printf("Not enough params to initialize '%s' client", resources.SCBE) - } else { - clients[resources.SCBE] = ScbeClient - } + + if (config.ScbeConfig.ConnectionInfo.ManagementIP != "") { + ScbeClient, err := scbe.NewScbeLocalClient(config.ScbeConfig) + if err != nil { + logger.Printf("Not enough params to initialize '%s' client", resources.SCBE) + } else { + clients[resources.SCBE] = ScbeClient + } + } if len(clients) == 0 { log.Fatal("No client can be initialized....please check config file") diff --git a/local/spectrumscale/connectors/connectors.go b/local/spectrumscale/connectors/connectors.go index 7f5be218..ca467fac 100644 --- a/local/spectrumscale/connectors/connectors.go +++ b/local/spectrumscale/connectors/connectors.go @@ -54,17 +54,6 @@ const ( ) func GetSpectrumScaleConnector(logger *log.Logger, config resources.SpectrumScaleConfig) (SpectrumScaleConnector, error) { - if config.RestConfig.Endpoint != "" { - logger.Printf("Initializing SpectrumScale REST connector\n") - return NewSpectrumRestV2(logger, config.RestConfig) - } - if config.SshConfig.User != "" && config.SshConfig.Host != "" { - if config.SshConfig.Port == "" || config.SshConfig.Port == "0" { - config.SshConfig.Port = "22" - } - logger.Printf("Initializing SpectrumScale SSH connector with sshConfig: %+v\n", config.SshConfig) - return NewSpectrumSSH(logger, config.SshConfig) - } - logger.Println("Initializing SpectrumScale MMCLI Connector") - return NewSpectrumMMCLI(logger) + logger.Printf("Initializing SpectrumScale REST connector\n") + return NewSpectrumRestV2(logger, config.RestConfig) } diff --git a/local/spectrumscale/connectors/rest.go b/local/spectrumscale/connectors/rest.go index 85ffcb34..171d9406 100644 --- a/local/spectrumscale/connectors/rest.go +++ b/local/spectrumscale/connectors/rest.go @@ -36,7 +36,7 @@ type spectrum_rest struct { } func NewSpectrumRest(logger *log.Logger, restConfig resources.RestConfig) (SpectrumScaleConnector, error) { - endpoint := restConfig.Endpoint + endpoint := fmt.Sprintf("https://%s:%d/", restConfig.ManagementIP, restConfig.Port) user := restConfig.User password := restConfig.Password @@ -48,7 +48,7 @@ func NewSpectrumRest(logger *log.Logger, restConfig resources.RestConfig) (Spect } func NewSpectrumRestWithClient(logger *log.Logger, restConfig resources.RestConfig, client *http.Client) (SpectrumScaleConnector, error) { - endpoint := restConfig.Endpoint + endpoint := fmt.Sprintf("https://%s:%d/", restConfig.ManagementIP, restConfig.Port) return &spectrum_rest{logger: logger, httpClient: client, endpoint: endpoint}, nil } diff --git a/local/spectrumscale/connectors/rest_v2.go b/local/spectrumscale/connectors/rest_v2.go index 63795815..20496950 100644 --- a/local/spectrumscale/connectors/rest_v2.go +++ b/local/spectrumscale/connectors/rest_v2.go @@ -123,7 +123,7 @@ func (s *spectrumRestV2) AsyncJobCompletion(jobURL string) error { func NewSpectrumRestV2(logger *log.Logger, restConfig resources.RestConfig) (SpectrumScaleConnector, error) { - endpoint := restConfig.Endpoint + endpoint := fmt.Sprintf("https://%s:%d/", restConfig.ManagementIP, restConfig.Port) user := restConfig.User password := restConfig.Password hostname := restConfig.Hostname @@ -135,7 +135,7 @@ func NewSpectrumRestV2(logger *log.Logger, restConfig resources.RestConfig) (Spe } func NewspectrumRestV2WithClient(logger *log.Logger, restConfig resources.RestConfig) (SpectrumScaleConnector, *http.Client, error) { - endpoint := restConfig.Endpoint + endpoint := fmt.Sprintf("https://%s:%d/", restConfig.ManagementIP, restConfig.Port) user := restConfig.User password := restConfig.Password hostname := restConfig.Hostname diff --git a/local/spectrumscale/connectors/rest_v2_test.go b/local/spectrumscale/connectors/rest_v2_test.go index b79c55c6..60c45f2c 100644 --- a/local/spectrumscale/connectors/rest_v2_test.go +++ b/local/spectrumscale/connectors/rest_v2_test.go @@ -46,7 +46,8 @@ var _ = Describe("spectrumRestV2", func() { logger = log.New(os.Stdout, "spectrum: ", log.Lshortfile|log.LstdFlags) httpmock.Activate() fakeurl = "http://1.1.1.1:443" - restConfig.Endpoint = fakeurl + restConfig.ManagementIP = "1.1.1.1" + restConfig.Port = 443 restConfig.User = "fakeuser" restConfig.Password = "fakepassword" restConfig.Hostname = "fakehostname" diff --git a/local/spectrumscale/spectrumscale.go b/local/spectrumscale/spectrumscale.go index e72b4c1b..909d90ee 100644 --- a/local/spectrumscale/spectrumscale.go +++ b/local/spectrumscale/spectrumscale.go @@ -630,7 +630,7 @@ func (s *spectrumLocalClient) updateDBWithExistingFilesetQuota(filesystem, name, return err } - if s.config.RestConfig.Endpoint != "" { + if s.config.RestConfig.ManagementIP != "" { s.logger.Printf("For REST connector converting quotas to bytes\n") filesetQuotaBytes, err := utils.ConvertToBytes(s.logger, filesetQuota) if err != nil { diff --git a/resources/resources.go b/resources/resources.go index d4fbbea0..26dc779f 100644 --- a/resources/resources.go +++ b/resources/resources.go @@ -85,6 +85,8 @@ const KeyScbeSslMode = "SCBE_SSL_MODE" const DefaultDbSslMode = SslModeVerifyFull const DefaultScbeSslMode = SslModeVerifyFull const DefaultPluginsSslMode = SslModeVerifyFull +const SpectrumscaleDefaultPort = 443 // the default port for SPECTRUM SCALE management + type SshConfig struct { User string @@ -93,10 +95,11 @@ type SshConfig struct { } type RestConfig struct { - Endpoint string - User string - Password string - Hostname string + Port int + ManagementIP string + User string + Password string + Hostname string } type SpectrumNfsRemoteConfig struct { diff --git a/utils/utils.go b/utils/utils.go index 3d74d96a..42715319 100644 --- a/utils/utils.go +++ b/utils/utils.go @@ -225,24 +225,21 @@ func LoadConfig() (resources.UbiquityServerConfig, error) { config.LogLevel = os.Getenv("LOG_LEVEL") sscConfig := resources.SpectrumScaleConfig{} - sshConfig := resources.SshConfig{} - sshConfig.User = os.Getenv("SSC_SSH_USER") - sshConfig.Host = os.Getenv("SSC_SSH_HOST") - sshConfig.Port = os.Getenv("SSC_SSH_PORT") - if sshConfig.User != "" && sshConfig.Host != "" && sshConfig.Port != "" { - sscConfig.SshConfig = sshConfig - } restConfig := resources.RestConfig{} - restConfig.Endpoint = os.Getenv("SSC_REST_ENDPOINT") - restConfig.User = os.Getenv("SSC_REST_USER") - restConfig.Password = os.Getenv("SSC_REST_PASSWORD") - restConfig.Hostname = os.Getenv("SSC_REST_HOSTNAME") - if restConfig.User != "" && restConfig.Hostname != "" && restConfig.Password != "" { - sscConfig.RestConfig = restConfig + restConfig.User = os.Getenv("SPECTRUMSCALE_REST_USER") + restConfig.Password = os.Getenv("SPECTRUMSCALE_REST_PASSWORD") + restConfig.Hostname = os.Getenv("SPECTRUMSCALE_REST_HOSTNAME") + restConfig.ManagementIP = os.Getenv("SPECTRUMSCALE_MANAGEMENT_IP") + spectrumscalePort, err := strconv.ParseInt(os.Getenv("SPECTRUMSCALE_MANAGEMENT_PORT"), 0, 32) + if err != nil { + restConfig.Port = resources.SpectrumscaleDefaultPort + } else { + restConfig.Port = int(spectrumscalePort) } - sscConfig.DefaultFilesystemName = os.Getenv("DEFAULT_FILESYSTEM_NAME") - sscConfig.NfsServerAddr = os.Getenv("SSC_NFS_SERVER_ADDRESS") - forceDelete, err := strconv.ParseBool(os.Getenv("FORCE_DELETE")) + sscConfig.RestConfig = restConfig + sscConfig.DefaultFilesystemName = os.Getenv("SPECTRUMSCALE_DEFAULT_FILESYSTEM_NAME") + sscConfig.NfsServerAddr = os.Getenv("SPECTRUMSCALE_NFS_SERVER_ADDRESS") + forceDelete, err := strconv.ParseBool(os.Getenv("SPECTRUMSCALE_FORCE_DELETE")) if err != nil { sscConfig.ForceDelete = false } else { From 5841a2a0cbdc56a4b1a26a3a4a688083ca7ded30 Mon Sep 17 00:00:00 2001 From: deeghuge Date: Thu, 30 Aug 2018 12:35:14 +0530 Subject: [PATCH 2/2] addressed pull request review comments for PR#243 - Reverted changes of NFS, Connector, SSH as they should not be part of epic1 changes. - Added variable for SpectrumScaleParamPrefix --- local/spectrumscale/connectors/connectors.go | 15 +++++++++++-- resources/resources.go | 2 +- utils/utils.go | 23 +++++++++++++------- 3 files changed, 29 insertions(+), 11 deletions(-) diff --git a/local/spectrumscale/connectors/connectors.go b/local/spectrumscale/connectors/connectors.go index ca467fac..49caa912 100644 --- a/local/spectrumscale/connectors/connectors.go +++ b/local/spectrumscale/connectors/connectors.go @@ -54,6 +54,17 @@ const ( ) func GetSpectrumScaleConnector(logger *log.Logger, config resources.SpectrumScaleConfig) (SpectrumScaleConnector, error) { - logger.Printf("Initializing SpectrumScale REST connector\n") - return NewSpectrumRestV2(logger, config.RestConfig) + if config.RestConfig.ManagementIP != "" { + logger.Printf("Initializing SpectrumScale REST connector\n") + return NewSpectrumRestV2(logger, config.RestConfig) + } + if config.SshConfig.User != "" && config.SshConfig.Host != "" { + if config.SshConfig.Port == "" || config.SshConfig.Port == "0" { + config.SshConfig.Port = "22" + } + logger.Printf("Initializing SpectrumScale SSH connector with sshConfig: %+v\n", config.SshConfig) + return NewSpectrumSSH(logger, config.SshConfig) + } + logger.Println("Initializing SpectrumScale MMCLI Connector") + return NewSpectrumMMCLI(logger) } diff --git a/resources/resources.go b/resources/resources.go index 26dc779f..13fa6a48 100644 --- a/resources/resources.go +++ b/resources/resources.go @@ -86,7 +86,7 @@ const DefaultDbSslMode = SslModeVerifyFull const DefaultScbeSslMode = SslModeVerifyFull const DefaultPluginsSslMode = SslModeVerifyFull const SpectrumscaleDefaultPort = 443 // the default port for SPECTRUM SCALE management - +const SpectrumScaleParamPrefix = "SPECTRUMSCALE_" type SshConfig struct { User string diff --git a/utils/utils.go b/utils/utils.go index 42715319..efd9c753 100644 --- a/utils/utils.go +++ b/utils/utils.go @@ -225,21 +225,28 @@ func LoadConfig() (resources.UbiquityServerConfig, error) { config.LogLevel = os.Getenv("LOG_LEVEL") sscConfig := resources.SpectrumScaleConfig{} + sshConfig := resources.SshConfig{} + sshConfig.User = os.Getenv("SSC_SSH_USER") + sshConfig.Host = os.Getenv("SSC_SSH_HOST") + sshConfig.Port = os.Getenv("SSC_SSH_PORT") + if sshConfig.User != "" && sshConfig.Host != "" && sshConfig.Port != "" { + sscConfig.SshConfig = sshConfig + } restConfig := resources.RestConfig{} - restConfig.User = os.Getenv("SPECTRUMSCALE_REST_USER") - restConfig.Password = os.Getenv("SPECTRUMSCALE_REST_PASSWORD") - restConfig.Hostname = os.Getenv("SPECTRUMSCALE_REST_HOSTNAME") - restConfig.ManagementIP = os.Getenv("SPECTRUMSCALE_MANAGEMENT_IP") - spectrumscalePort, err := strconv.ParseInt(os.Getenv("SPECTRUMSCALE_MANAGEMENT_PORT"), 0, 32) + restConfig.User = os.Getenv(resources.SpectrumScaleParamPrefix + "REST_USER") + restConfig.Password = os.Getenv(resources.SpectrumScaleParamPrefix + "REST_PASSWORD") + restConfig.Hostname = os.Getenv(resources.SpectrumScaleParamPrefix + "REST_HOSTNAME") + restConfig.ManagementIP = os.Getenv(resources.SpectrumScaleParamPrefix + "MANAGEMENT_IP") + spectrumscalePort, err := strconv.ParseInt(os.Getenv(resources.SpectrumScaleParamPrefix + "MANAGEMENT_PORT"), 0, 32) if err != nil { restConfig.Port = resources.SpectrumscaleDefaultPort } else { restConfig.Port = int(spectrumscalePort) } sscConfig.RestConfig = restConfig - sscConfig.DefaultFilesystemName = os.Getenv("SPECTRUMSCALE_DEFAULT_FILESYSTEM_NAME") - sscConfig.NfsServerAddr = os.Getenv("SPECTRUMSCALE_NFS_SERVER_ADDRESS") - forceDelete, err := strconv.ParseBool(os.Getenv("SPECTRUMSCALE_FORCE_DELETE")) + sscConfig.DefaultFilesystemName = os.Getenv(resources.SpectrumScaleParamPrefix + "DEFAULT_FILESYSTEM_NAME") + sscConfig.NfsServerAddr = os.Getenv("SSC_NFS_SERVER_ADDRESS") + forceDelete, err := strconv.ParseBool(os.Getenv(resources.SpectrumScaleParamPrefix + "FORCE_DELETE")) if err != nil { sscConfig.ForceDelete = false } else {