Skip to content

Commit

Permalink
Merge 45beb36 into 76dfee6
Browse files Browse the repository at this point in the history
  • Loading branch information
deeghuge committed Sep 11, 2018
2 parents 76dfee6 + 45beb36 commit 6e1b12b
Show file tree
Hide file tree
Showing 9 changed files with 74 additions and 27 deletions.
19 changes: 11 additions & 8 deletions local/clients.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,19 @@ 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")
return nil, fmt.Errorf("No client can be initialized....please check config file")
logger.Println("No client can be initialized. Please check ubiquity-configmap parameters")
return nil, fmt.Errorf("No client can be initialized. Please check ubiquity-configmap parameters")
}
return clients, nil
}
36 changes: 36 additions & 0 deletions local/clients_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package local_test

import (
"os"
"log"
"github.com/IBM/ubiquity/resources"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"github.com/IBM/ubiquity/local"
)

var _ = Describe("Clients", func() {
var (
fakeConfig resources.UbiquityServerConfig
fakeScbeConfig resources.ScbeConfig
fakeConnectionInfo resources.ConnectionInfo
err error
logger *log.Logger
client map[string]resources.StorageClient
)
BeforeEach(func() {
logger = log.New(os.Stdout, "ubiquity: ", log.Lshortfile|log.LstdFlags)
})

Context(".GetLocalClients", func() {
It("should fail when ManagementIP is empty for SCBE backend", func() {
fakeConnectionInfo = resources.ConnectionInfo{}
fakeScbeConfig = resources.ScbeConfig{ConnectionInfo: fakeConnectionInfo,}
fakeConfig = resources.UbiquityServerConfig{ScbeConfig: fakeScbeConfig,}
client, err = local.GetLocalClients(logger, fakeConfig)
Expect(client).To(BeNil())
Expect(err).To(HaveOccurred())
Expect(err.Error()).To(Equal("No client can be initialized. Please check ubiquity-configmap parameters"))
})
})
})
2 changes: 1 addition & 1 deletion local/spectrumscale/connectors/connectors.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ const (
)

func GetSpectrumScaleConnector(logger *log.Logger, config resources.SpectrumScaleConfig) (SpectrumScaleConnector, error) {
if config.RestConfig.Endpoint != "" {
if config.RestConfig.ManagementIP != "" {
logger.Printf("Initializing SpectrumScale REST connector\n")
return NewSpectrumRestV2(logger, config.RestConfig)
}
Expand Down
4 changes: 2 additions & 2 deletions local/spectrumscale/connectors/rest.go
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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
}

Expand Down
4 changes: 2 additions & 2 deletions local/spectrumscale/connectors/rest_v2.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
3 changes: 2 additions & 1 deletion local/spectrumscale/connectors/rest_v2_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
2 changes: 1 addition & 1 deletion local/spectrumscale/spectrumscale.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
11 changes: 7 additions & 4 deletions resources/resources.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
const SpectrumScaleParamPrefix = "SPECTRUMSCALE_"

type SshConfig struct {
User string
Expand All @@ -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 {
Expand Down
20 changes: 12 additions & 8 deletions utils/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -233,16 +233,20 @@ func LoadConfig() (resources.UbiquityServerConfig, error) {
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(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.DefaultFilesystemName = os.Getenv("DEFAULT_FILESYSTEM_NAME")
sscConfig.RestConfig = restConfig
sscConfig.DefaultFilesystemName = os.Getenv(resources.SpectrumScaleParamPrefix + "DEFAULT_FILESYSTEM_NAME")
sscConfig.NfsServerAddr = os.Getenv("SSC_NFS_SERVER_ADDRESS")
forceDelete, err := strconv.ParseBool(os.Getenv("FORCE_DELETE"))
forceDelete, err := strconv.ParseBool(os.Getenv(resources.SpectrumScaleParamPrefix + "FORCE_DELETE"))
if err != nil {
sscConfig.ForceDelete = false
} else {
Expand Down

0 comments on commit 6e1b12b

Please sign in to comment.