package constructors import ( "fmt" edgeClient "edge-infra.dev/pkg/edge/api/client" "edge-infra.dev/pkg/edge/edgeadmin/registrar" "edge-infra.dev/pkg/edge/edgecli/flagutil" "edge-infra.dev/pkg/edge/registration" "edge-infra.dev/pkg/lib/cli/rags" "edge-infra.dev/pkg/lib/runtime/version" ) func BuildRegistrar(rs *rags.RagSet) (*registrar.Registrar, error) { endpoint := flagutil.GetStringFlag(rs, flagutil.Endpoint) if endpoint == "" && flagutil.GetStringFlag(rs, "bff-endpoint") != "" { fmt.Println("WARNING: bff-endpoint flag is being deprecated in Edge Version 0.22, please consider switching over to api-endpoint") endpoint = flagutil.GetStringFlag(rs, "bff-endpoint") } opts := []edgeClient.Option{ edgeClient.WithBaseURL(endpoint), } token := flagutil.GetStringFlag(rs, flagutil.BearerTokenFlag) if token != "" { opts = append(opts, edgeClient.WithBearerToken(token)) } else { opts = append(opts, edgeClient.WithCredentials(flagutil.GetStringFlag(rs, flagutil.UsernameFlag), flagutil.GetStringFlag(rs, flagutil.PasswordFlag), flagutil.GetStringFlag(rs, flagutil.OrganizationFlag))) } client, err := edgeClient.New(opts...) if err != nil { return nil, err } reg := ®istrar.Registrar{Client: client} return reg, err } func BuildRegistration(rs *rags.RagSet) (*registration.Registration, error) { endpoint := flagutil.GetStringFlag(rs, flagutil.Endpoint) if endpoint == "" && flagutil.GetStringFlag(rs, "bff-endpoint") != "" { fmt.Println("WARNING: bff-endpoint flag is being deprecated in Edge Version 0.22, please consider switching over to api-endpoint") endpoint = flagutil.GetStringFlag(rs, "bff-endpoint") } b := registration.NewBuilder(). // cluster info Banner(flagutil.GetStringFlag(rs, flagutil.BannerFlag)). Store(flagutil.GetStringFlag(rs, flagutil.StoreFlag)). ClusterType(flagutil.GetStringFlag(rs, flagutil.ClusterTypeFlag)). // bff info BSLOrganization(flagutil.GetStringFlag(rs, flagutil.OrganizationFlag)). APIEndpoint(endpoint). BearerToken(flagutil.GetStringFlag(rs, flagutil.BearerTokenFlag)). BSLUserPassword(flagutil.GetStringFlag(rs, flagutil.UsernameFlag), flagutil.GetStringFlag(rs, flagutil.PasswordFlag)). CreateBSLSite(flagutil.GetBoolFlag(rs, flagutil.CreateBSLSite)). BSLSiteEuid(flagutil.GetStringFlag(rs, flagutil.BslSiteEuid)). BSLSiteLatitude(flagutil.GetFloat64Flag(rs, flagutil.BslSiteLatitude)). BSLSiteLongitude(flagutil.GetFloat64Flag(rs, flagutil.BslSiteLongitude)). BSLSiteReferenceID(flagutil.GetStringFlag(rs, flagutil.BslSiteRefernceID)). Fleet(flagutil.GetStringFlag(rs, flagutil.FleetFlag)). FleetVersion(flagutil.GetStringFlag(rs, flagutil.FleetVersion)). //CLI Version EdgeVersion(version.New().SemVer) return b.Build() } func BuildBootstrap(rs *rags.RagSet, clusterEdgeID, clusterCaHash string) (*registration.Registration, error) { endpoint := flagutil.GetStringFlag(rs, flagutil.Endpoint) if endpoint == "" && flagutil.GetStringFlag(rs, "bff-endpoint") != "" { fmt.Println("WARNING: bff-endpoint flag is being deprecated in Edge Version 0.22, please consider switching over to api-endpoint") endpoint = flagutil.GetStringFlag(rs, "bff-endpoint") } b := registration.NewBuilder(). // cluster info ClusterEdgeID(clusterEdgeID). ForceBootstrap(flagutil.GetBoolFlag(rs, flagutil.Force)). ClusterCaHash(clusterCaHash). // bff info APIEndpoint(endpoint). BSLUserPassword(flagutil.GetStringFlag(rs, flagutil.UsernameFlag), flagutil.GetStringFlag(rs, flagutil.PasswordFlag)). BSLOrganization(flagutil.GetStringFlag(rs, flagutil.OrganizationFlag)). BearerToken(flagutil.GetStringFlag(rs, flagutil.BearerTokenFlag)). //CLI Version EdgeVersion(version.New().SemVer) return b.BootstrapBuild() }