Skip to content

Commit

Permalink
Merge pull request #71 from Elchinchel/fix/70
Browse files Browse the repository at this point in the history
fix(#70): Dont add storage if error has occured on initialization
  • Loading branch information
randreev1321 committed Jul 17, 2024
2 parents 94f46ef + e62b709 commit 59372fc
Showing 1 changed file with 17 additions and 31 deletions.
48 changes: 17 additions & 31 deletions ctx/storages_init.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,9 @@ var allowedConnectParams = []string{

func storagesInit(storageConnects []storageConnectConf, mainLim *limitsConf) (storagesMap map[string]interfaces.Storage, err error) {
var (
rl int64
errs *multierror.Error
rl int64
errs *multierror.Error
storage interfaces.Storage
)

storagesMap = make(map[string]interfaces.Storage)
Expand Down Expand Up @@ -57,42 +58,27 @@ func storagesInit(storageConnects []storageConnectConf, mainLim *limitsConf) (st

switch {
case st.S3Params != nil:
storagesMap[st.Name], err = s3.Init(st.Name, s3.Opts(*st.S3Params), rl)
if err != nil {
errs = multierror.Append(errs, fmt.Errorf("Failed to init storage `%s` with error: %w ", st.Name, err))
}
storage, err = s3.Init(st.Name, s3.Opts(*st.S3Params), rl)
case st.ScpParams != nil:
storagesMap[st.Name], err = sftp.Init(st.Name, sftp.Opts(*st.ScpParams), rl)
if err != nil {
errs = multierror.Append(errs, fmt.Errorf("Failed to init storage `%s` with error: %w ", st.Name, err))
}
storage, err = sftp.Init(st.Name, sftp.Opts(*st.ScpParams), rl)
case st.SftpParams != nil:
storagesMap[st.Name], err = sftp.Init(st.Name, sftp.Opts(*st.SftpParams), rl)
if err != nil {
errs = multierror.Append(errs, fmt.Errorf("Failed to init storage `%s` with error: %w ", st.Name, err))
}
storage, err = sftp.Init(st.Name, sftp.Opts(*st.SftpParams), rl)
case st.FtpParams != nil:
storagesMap[st.Name], err = ftp.Init(st.Name, ftp.Opts(*st.FtpParams), rl)
if err != nil {
errs = multierror.Append(errs, fmt.Errorf("Failed to init storage `%s` with error: %w ", st.Name, err))
}
storage, err = ftp.Init(st.Name, ftp.Opts(*st.FtpParams), rl)
case st.NfsParams != nil:
storagesMap[st.Name], err = nfs.Init(st.Name, nfs.Opts(*st.NfsParams), rl)
if err != nil {
errs = multierror.Append(errs, fmt.Errorf("Failed to init storage `%s` with error: %w ", st.Name, err))
}
storage, err = nfs.Init(st.Name, nfs.Opts(*st.NfsParams), rl)
case st.WebDavParams != nil:
storagesMap[st.Name], err = webdav.Init(st.Name, webdav.Opts(*st.WebDavParams), rl)
if err != nil {
errs = multierror.Append(errs, fmt.Errorf("Failed to init storage `%s` with error: %w ", st.Name, err))
}
storage, err = webdav.Init(st.Name, webdav.Opts(*st.WebDavParams), rl)
case st.SmbParams != nil:
storagesMap[st.Name], err = smb.Init(st.Name, smb.Opts(*st.SmbParams), rl)
if err != nil {
errs = multierror.Append(errs, fmt.Errorf("Failed to init storage `%s` with error: %w ", st.Name, err))
}
storage, err = smb.Init(st.Name, smb.Opts(*st.SmbParams), rl)
default:
errs = multierror.Append(errs, fmt.Errorf("unable to define `%s` storage connect type by its params. Allowed connect params: %s", st.Name, strings.Join(allowedConnectParams, ", ")))
err = fmt.Errorf("unable to define `%s` storage connect type by its params. Allowed connect params: %s", st.Name, strings.Join(allowedConnectParams, ", "))
}

if err != nil {
errs = multierror.Append(errs, fmt.Errorf("Failed to init storage `%s` with error: %w ", st.Name, err))
} else {
storagesMap[st.Name] = storage
}
}

Expand Down

0 comments on commit 59372fc

Please sign in to comment.