77 lines
2.2 KiB
Go
77 lines
2.2 KiB
Go
package upgrade
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"fmt"
|
|
"path/filepath"
|
|
|
|
"github.com/influxdata/influx-cli/v2/clients"
|
|
"github.com/influxdata/influx-cli/v2/clients/setup"
|
|
"github.com/influxdata/influx-cli/v2/config"
|
|
"github.com/influxdata/influxdb/v2"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
func setupAdmin(ctx context.Context, v2 *influxDBv2, req *influxdb.OnboardingRequest) (*influxdb.OnboardingResults, error) {
|
|
res, err := v2.onboardSvc.OnboardInitialUser(ctx, req)
|
|
|
|
if err != nil {
|
|
return nil, fmt.Errorf("onboarding error: %w", err)
|
|
}
|
|
return res, nil
|
|
}
|
|
|
|
func onboardingRequest(cli clients.CLI, options *options) (*influxdb.OnboardingRequest, error) {
|
|
setupClient := setup.Client{CLI: cli}
|
|
cliReq, err := setupClient.OnboardingRequest(&setup.Params{
|
|
Username: options.target.userName,
|
|
Password: options.target.password,
|
|
AuthToken: options.target.token,
|
|
Org: options.target.orgName,
|
|
Bucket: options.target.bucket,
|
|
Retention: options.target.retention,
|
|
Force: options.force,
|
|
})
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
req := influxdb.OnboardingRequest{
|
|
User: cliReq.Username,
|
|
Org: cliReq.Org,
|
|
Bucket: cliReq.Bucket,
|
|
}
|
|
if cliReq.Password != nil {
|
|
req.Password = *cliReq.Password
|
|
}
|
|
if cliReq.RetentionPeriodSeconds != nil {
|
|
req.RetentionPeriodSeconds = *cliReq.RetentionPeriodSeconds
|
|
}
|
|
if cliReq.Token != nil {
|
|
req.Token = *cliReq.Token
|
|
}
|
|
return &req, nil
|
|
}
|
|
|
|
func saveLocalConfig(sourceOptions *optionsV1, targetOptions *optionsV2, log *zap.Logger) error {
|
|
dPath, dir := targetOptions.cliConfigsPath, filepath.Dir(targetOptions.cliConfigsPath)
|
|
if dPath == "" || dir == "" {
|
|
return errors.New("a valid configurations path must be provided")
|
|
}
|
|
|
|
localConfigSVC := config.NewLocalConfigService(targetOptions.cliConfigsPath)
|
|
p := config.DefaultConfig
|
|
p.Token = targetOptions.token
|
|
p.Org = targetOptions.orgName
|
|
if sourceOptions.dbURL != "" {
|
|
p.Host = sourceOptions.dbURL
|
|
}
|
|
if _, err := localConfigSVC.CreateConfig(p); err != nil {
|
|
log.Error("failed to save CLI config", zap.String("path", dPath), zap.Error(err))
|
|
return errors.New("failed to save CLI config")
|
|
}
|
|
log.Info("CLI config has been stored.", zap.String("path", dPath))
|
|
|
|
return nil
|
|
}
|