Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

task: delete Atlas dead code #2764

Merged
merged 1 commit into from Mar 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
18 changes: 0 additions & 18 deletions internal/cli/global_opts.go
Expand Up @@ -123,21 +123,3 @@ func DescriptionServiceName() string {
}
return "Atlas"
}

// ReturnValueForSetting returns a boolean value that is useful when working with boolean flags to inform
// whether the given option should be active or inactive.
func ReturnValueForSetting(enableFlag, disableFlag bool) *bool {
var valueToSet bool
if enableFlag && disableFlag {
return nil
}
if enableFlag {
valueToSet = true
return &valueToSet
}
if disableFlag {
valueToSet = false
return &valueToSet
}
return nil
}
9 changes: 1 addition & 8 deletions internal/cli/refresher_opts.go
Expand Up @@ -25,8 +25,6 @@ import (
"go.mongodb.org/ops-manager/opsmngr"
)

var TokenRefreshed bool

type RefresherOpts struct {
flow Refresher
}
Expand Down Expand Up @@ -60,7 +58,6 @@ func (opts *RefresherOpts) RefreshAccessToken(ctx context.Context) error {
return err
}
if current.Valid() {
TokenRefreshed = true
return nil
}
t, _, err := opts.flow.RefreshToken(ctx, config.RefreshToken())
Expand All @@ -76,11 +73,7 @@ func (opts *RefresherOpts) RefreshAccessToken(ctx context.Context) error {
}
config.SetAccessToken(t.AccessToken)
config.SetRefreshToken(t.RefreshToken)
if err := config.Save(); err != nil {
return err
}
TokenRefreshed = true
return nil
return config.Save()
}

func (opts *RefresherOpts) PollToken(c context.Context, d *atlasauth.DeviceCode) (*atlasauth.Token, *opsmngr.Response, error) {
Expand Down
99 changes: 1 addition & 98 deletions internal/config/profile.go
Expand Up @@ -39,14 +39,12 @@ import (

const (
MongoCLIEnvPrefix = "MCLI" // MongoCLIEnvPrefix prefix for MongoCLI ENV variables
AtlasCLIEnvPrefix = "MONGODB_ATLAS" // AtlasCLIEnvPrefix prefix for AtlasCLI ENV variables
DefaultProfile = "default" // DefaultProfile default
CloudManagerService = "cloud-manager" // CloudManagerService settings when using CLoud Manager API
OpsManagerService = "ops-manager" // OpsManagerService settings when using Ops Manager API
JSON = "json" // JSON output format as json
projectID = "project_id"
orgID = "org_id"
mongoShellPath = "mongosh_path"
configType = "toml"
service = "service"
publicAPIKey = "public_api_key"
Expand All @@ -64,20 +62,11 @@ const (
configPerm = 0600
defaultPermissions = 0700
skipUpdateCheck = "skip_update_check"
TelemetryEnabledProperty = "telemetry_enabled"
MongoCLI = "mongocli"
ContainerizedHostNameEnv = "MONGODB_ATLAS_IS_CONTAINERIZED"
GitHubActionsHostNameEnv = "GITHUB_ACTIONS"
AtlasActionHostNameEnv = "ATLAS_GITHUB_ACTION"
NativeHostName = "native"
DockerContainerHostName = "container"
GitHubActionsHostName = "all_github_actions"
AtlasActionHostName = "atlascli_github_action"
)

var (
HostName = getConfigHostnameFromEnvs()
UserAgent = fmt.Sprintf("%s/%s (%s;%s;%s)", MongoCLI, version.Version, runtime.GOOS, runtime.GOARCH, HostName)
UserAgent = fmt.Sprintf("%s/%s (%s;%s)", MongoCLI, version.Version, runtime.GOOS, runtime.GOARCH)
defaultProfile = newProfile()
)

Expand Down Expand Up @@ -122,9 +111,7 @@ func Properties() []string {
baseURL,
opsManagerCACertificate,
opsManagerSkipVerify,
mongoShellPath,
skipUpdateCheck,
TelemetryEnabledProperty,
AccessTokenField,
RefreshTokenField,
}
Expand All @@ -133,15 +120,12 @@ func Properties() []string {
func BooleanProperties() []string {
return []string{
skipUpdateCheck,
TelemetryEnabledProperty,
}
}

func GlobalProperties() []string {
return []string{
skipUpdateCheck,
TelemetryEnabledProperty,
mongoShellPath,
}
}

Expand Down Expand Up @@ -173,51 +157,6 @@ func Exists(name string) bool {
return search.StringInSlice(List(), name)
}

// getConfigHostnameFromEnvs patches the agent hostname based on set env vars.
func getConfigHostnameFromEnvs() string {
var builder strings.Builder

envVars := []struct {
envName string
hostName string
}{
{AtlasActionHostNameEnv, AtlasActionHostName},
{GitHubActionsHostNameEnv, GitHubActionsHostName},
{ContainerizedHostNameEnv, DockerContainerHostName},
}

for _, envVar := range envVars {
if envIsTrue(envVar.envName) {
appendToHostName(&builder, envVar.hostName)
} else {
appendToHostName(&builder, "-")
}
}
configHostName := builder.String()

if isDefaultHostName(configHostName) {
return NativeHostName
}
return configHostName
}

func envIsTrue(env string) bool {
return IsTrue(os.Getenv(env))
}

func appendToHostName(builder *strings.Builder, configVal string) {
if builder.Len() > 0 {
builder.WriteString("|")
}
builder.WriteString(configVal)
}

// isDefaultHostName checks if the hostname is the default placeholder.
func isDefaultHostName(hostname string) bool {
// Using strings.Count for a more dynamic approach.
return strings.Count(hostname, "-") == strings.Count(hostname, "|")+1
}

func newProfile() *Profile {
configDir, err := CLIConfigHome()
np := &Profile{
Expand Down Expand Up @@ -634,21 +573,6 @@ func (p *Profile) Rename(newProfileName string) error {
return nil
}

func LoadAtlasCLIConfig() error { return Default().LoadAtlasCLIConfig(true) }
func (p *Profile) LoadAtlasCLIConfig(readEnvironmentVars bool) error {
if p.err != nil {
return p.err
}

viper.SetConfigName("config")

if hasMongoCLIEnvVars() {
viper.SetEnvKeyReplacer(strings.NewReplacer(AtlasCLIEnvPrefix, MongoCLIEnvPrefix))
}

return p.load(readEnvironmentVars, AtlasCLIEnvPrefix)
}

func LoadMongoCLIConfig() error { return Default().LoadMongoCLIConfig(true) }
func (p *Profile) LoadMongoCLIConfig(readEnvironmentVars bool) error {
if p.err != nil {
Expand All @@ -658,17 +582,6 @@ func (p *Profile) LoadMongoCLIConfig(readEnvironmentVars bool) error {
return p.load(readEnvironmentVars, MongoCLIEnvPrefix)
}

func hasMongoCLIEnvVars() bool {
envVars := os.Environ()
for _, v := range envVars {
if strings.HasPrefix(v, MongoCLIEnvPrefix) {
return true
}
}

return false
}

func (p *Profile) load(readEnvironmentVars bool, envPrefix string) error {
viper.SetConfigType(configType)
viper.SetConfigPermissions(configPerm)
Expand Down Expand Up @@ -737,16 +650,6 @@ func MongoCLIConfigHome() (string, error) {
return path.Join(home, "mongocli"), nil
}

// AtlasCLIConfigHome retrieves configHome path based used by AtlasCLI.
func AtlasCLIConfigHome() (string, error) {
home, err := os.UserConfigDir()
if err != nil {
return "", err
}

return path.Join(home, "atlascli"), nil
}

// CLIConfigHome retrieves configHome path.
func CLIConfigHome() (string, error) {
return MongoCLIConfigHome()
Expand Down
90 changes: 0 additions & 90 deletions internal/config/profile_test.go
Expand Up @@ -21,7 +21,6 @@ import (
"os"
"testing"

"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)

Expand Down Expand Up @@ -68,24 +67,6 @@ func TestConfig_OldMongoCLIConfigHome(t *testing.T) {
})
}

func TestConfig_AtlasCLIConfigHome(t *testing.T) {
t.Run("with env set", func(t *testing.T) {
expHome, err := os.UserConfigDir()
expected := fmt.Sprintf("%s/atlascli", expHome)
if err != nil {
t.Fatalf("os.UserConfigDir() unexpected error: %v", err)
}

home, err := AtlasCLIConfigHome()
if err != nil {
t.Fatalf("AtlasCLIConfigHome() unexpected error: %v", err)
}
if home != expected {
t.Errorf("AtlasCLIConfigHome() = %s; want '%s'", home, expected)
}
})
}

func TestConfig_IsTrue(t *testing.T) {
tests := []struct {
input string
Expand Down Expand Up @@ -163,77 +144,6 @@ func TestConfig_IsTrue(t *testing.T) {
}
}

func Test_getConfigHostname(t *testing.T) {
type fields struct {
containerizedEnv string
atlasActionEnv string
ghActionsEnv string
}
tests := []struct {
name string
fields fields
expectedHostName string
}{
{
name: "sets native hostname when no hostname env var is set",
fields: fields{
containerizedEnv: "",
atlasActionEnv: "",
ghActionsEnv: "",
},
expectedHostName: NativeHostName,
},
{
name: "sets container hostname when containerized env var is set",
fields: fields{
containerizedEnv: "true",
atlasActionEnv: "",
ghActionsEnv: "",
},
expectedHostName: "-|-|" + DockerContainerHostName,
},
{
name: "sets atlas action hostname when containerized env var is set",
fields: fields{
containerizedEnv: "",
atlasActionEnv: "true",
ghActionsEnv: "",
},
expectedHostName: AtlasActionHostName + "|-|-",
},
{
name: "sets github actions hostname when action env var is set",
fields: fields{
containerizedEnv: "",
atlasActionEnv: "",
ghActionsEnv: "true",
},
expectedHostName: "-|" + GitHubActionsHostName + "|-",
},
{
name: "sets actions and containerized hostnames when both env vars are set",
fields: fields{
containerizedEnv: "true",
atlasActionEnv: "true",
ghActionsEnv: "true",
},
expectedHostName: AtlasActionHostName + "|" + GitHubActionsHostName + "|" + DockerContainerHostName,
},
}
for _, tt := range tests {
fields := tt.fields
expectedHostName := tt.expectedHostName
t.Run(tt.name, func(t *testing.T) {
t.Setenv(AtlasActionHostNameEnv, fields.atlasActionEnv)
t.Setenv(GitHubActionsHostNameEnv, fields.ghActionsEnv)
t.Setenv(ContainerizedHostNameEnv, fields.containerizedEnv)
actualHostName := getConfigHostnameFromEnvs()

assert.Equal(t, expectedHostName, actualHostName)
})
}
}

func TestConfig_SetName(t *testing.T) {
t.Run("valid", func(t *testing.T) {
require.NoError(t, SetName("default"))
Expand Down
8 changes: 0 additions & 8 deletions internal/store/store.go
Expand Up @@ -47,7 +47,6 @@ const (
idleConnTimeout = 30 * time.Second
expectContinueTimeout = 1 * time.Second
versionManifestStaticPath = "https://opsmanager.mongodb.com/"
cloudGovServiceURL = "https://cloud.mongodbgov.com/"
)

var errUnsupportedService = errors.New("unsupported service")
Expand Down Expand Up @@ -227,13 +226,6 @@ func SkipVerify() Option {
}
}

func Telemetry() Option {
return func(s *Store) error {
s.telemetry = true
return nil
}
}

// CredentialsGetter interface for how to get credentials when Store must be authenticated.
type CredentialsGetter interface {
PublicAPIKey() string
Expand Down