convert

package
v1.22.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 1, 2022 License: Apache-2.0 Imports: 9 Imported by: 0

README

Convert

This package aims at converting a CLI version of the automation config to the format required by the C/OM API

Documentation

Overview

Copyright 2021 MongoDB Inc

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Constants

View Source
const (
	AdminDB        = "admin"
	ExternalAuthDB = "$external"
)

Variables

This section is empty.

Functions

func BuildAtlasActions added in v1.11.0

func BuildAtlasActions(a []string) []atlas.Action

BuildAtlasActions converts the actions inside the array of string in an array of atlas.Action structs r contains roles in the format action[@dbName.collection].

func BuildAtlasInheritedRoles added in v1.11.0

func BuildAtlasInheritedRoles(r []string) []atlas.InheritedRole

BuildAtlasInheritedRoles converts the inherited roles inside the array of string in an array of atlas.InheritedRole structs r contains roles in the format roleName@dbName.

func BuildAtlasRoles added in v0.1.0

func BuildAtlasRoles(r []string) []atlas.Role

BuildAtlasRoles converts the roles inside the array of string in an array of mongodbatlas.Role structs. r contains roles in the format roleName@dbName.

func BuildAtlasScopes added in v1.11.0

func BuildAtlasScopes(r []string) []atlas.Scope

BuildAtlasScopes converts the scopes inside the array of string in an array of mongodbatlas.Scope structs. r contains resources in the format resourceName:resourceType.

func BuildOMRoles added in v0.1.0

func BuildOMRoles(r []string) []*opsmngr.Role

BuildOMRoles converts the roles inside the array of string in an array of opsmngr.Role structs. r contains roles in the format roleName@dbName.

Types

type ClusterConfig

type ClusterConfig struct {
	RSConfig `yaml:",inline"`
	MongoURI string           `yaml:"mongoURI,omitempty" json:"mongoURI,omitempty"`
	Shards   []*RSConfig      `yaml:"shards,omitempty" json:"shards,omitempty"`
	Config   *RSConfig        `yaml:"config,omitempty" json:"config,omitempty"`
	Mongos   []*ProcessConfig `yaml:"mongos,omitempty" json:"mongos,omitempty"`
}

ClusterConfig configuration for a cluster This cluster can be used to patch an automation config.

func FromAutomationConfig

func FromAutomationConfig(c *opsmngr.AutomationConfig) []*ClusterConfig

FromAutomationConfig convert from opsmngr.AutomationConfig format to []*ClusterConfig the given opsmngr.AutomationConfig will be modified.

func (*ClusterConfig) PatchAutomationConfig

func (c *ClusterConfig) PatchAutomationConfig(out *opsmngr.AutomationConfig) error

PatchAutomationConfig adds the ClusterConfig to a opsmngr.AutomationConfig this method will modify the given AutomationConfig to add the new replica set or sharded cluster information.

type DefaultRWConcern added in v1.20.0

type DefaultRWConcern struct {
	DefaultReadConcern  *DefaultReadConcern  `yaml:"defaultReadConcern,omitempty" json:"defaultReadConcern,omitempty"`
	DefaultWriteConcern *DefaultWriteConcern `yaml:"defaultWriteConcern,omitempty" json:"defaultWriteConcern,omitempty"`
}

type DefaultReadConcern added in v1.20.0

type DefaultReadConcern struct {
	Level string `yaml:"level" json:"level"`
}

type DefaultWriteConcern added in v1.20.0

type DefaultWriteConcern struct {
	W        interface{} `yaml:"w,omitempty" json:"w,omitempty"` // W can be string or number
	J        *bool       `yaml:"j,omitempty" json:"j,omitempty"`
	Wtimeout int         `yaml:"wtimeout" json:"wtimeout"`
}

type ProcessConfig

type ProcessConfig struct {
	ArbiterOnly                      *bool                   `yaml:"arbiterOnly,omitempty" json:"arbiterOnly,omitempty"`
	AuditLogPath                     string                  `yaml:"auditLogPath,omitempty" json:"auditLogPath,omitempty"`
	AuditLogDestination              string                  `yaml:"auditLogDestination,omitempty" json:"auditLogDestination,omitempty"`
	AuditLogFormat                   string                  `yaml:"auditLogFormat,omitempty" json:"auditLogFormat,omitempty"`
	AuditLogFilter                   string                  `yaml:"auditLogFilter,omitempty" json:"auditLogFilter,omitempty"`
	BackupRestoreCheckpointTimestamp interface{}             `yaml:"backupRestoreCheckpointTimestamp,omitempty" json:"backupRestoreCheckpointTimestamp,omitempty"`
	BuildIndexes                     *bool                   `yaml:"buildIndexes,omitempty" json:"buildIndexes,omitempty"`
	DBPath                           string                  `yaml:"dbPath,omitempty" json:"dbPath,omitempty"`
	BindIP                           *string                 `yaml:"bindIp,omitempty" json:"bindIp,omitempty"`
	BindIPAll                        *bool                   `yaml:"bindIpAll,omitempty" json:"bindIpAll,omitempty"`
	DefaultRWConcern                 *DefaultRWConcern       `yaml:"defaultRWConcern,omitempty" json:"defaultRWConcern,omitempty"` //nolint:tagliatelle // correct from API
	DirectoryPerDB                   *bool                   `yaml:"directoryPerDB,omitempty" json:"directoryPerDB,omitempty"`
	Disabled                         bool                    `yaml:"disabled" json:"disabled"`
	Engine                           string                  `yaml:"engine,omitempty" json:"engine,omitempty"`
	EnableMajorityReadConcern        *bool                   `yaml:"enableMajorityReadConcern,omitempty" json:"enableMajorityReadConcern,omitempty"`
	FeatureCompatibilityVersion      string                  `yaml:"featureCompatibilityVersion,omitempty" json:"featureCompatibilityVersion,omitempty"`
	Hidden                           *bool                   `yaml:"hidden,omitempty" json:"hidden,omitempty"`
	Hostname                         string                  `yaml:"hostname" json:"hostname"`
	InMemory                         *map[string]interface{} `yaml:"inMemory,omitempty" json:"inMemory,omitempty"`
	IndexBuildRetry                  *bool                   `yaml:"indexBuildRetry,omitempty" json:"indexBuildRetry,omitempty"`
	IPV6                             *bool                   `yaml:"ipv6,omitempty" json:"ipv6,omitempty"`
	Journal                          *map[string]interface{} `yaml:"journal,omitempty" json:"journal,omitempty"`
	LogAppend                        bool                    `yaml:"logAppend,omitempty" json:"logAppend,omitempty"`
	LogDestination                   string                  `yaml:"logDestination,omitempty" json:"logDestination,omitempty"`
	LogPath                          string                  `yaml:"logPath" json:"logPath"`
	LogRotate                        string                  `yaml:"logRotate,omitempty" json:"logRotate,omitempty"`
	LogVerbosity                     int                     `yaml:"logVerbosity,omitempty" json:"logVerbosity,omitempty"`
	LogQuiet                         bool                    `yaml:"logQuiet,omitempty" json:"logQuiet,omitempty"`
	SyslogFacility                   string                  `yaml:"syslogFacility,omitempty" json:"syslogFacility,omitempty"`
	LogTimeStampFormat               string                  `yaml:"logTimeStampFormat,omitempty" json:"logTimeStampFormat,omitempty"`
	Name                             string                  `yaml:"name,omitempty" json:"name,omitempty"`
	OperationProfiling               *map[string]interface{} `yaml:"operationProfiling,omitempty" json:"operationProfiling,omitempty"`
	OplogMinRetentionHours           *float64                `yaml:"oplogMinRetentionHours,omitempty" json:"oplogMinRetentionHours,omitempty"`
	OplogSizeMB                      *int                    `yaml:"oplogSizeMB,omitempty" json:"oplogSizeMB,omitempty"`
	Port                             int                     `yaml:"port" json:"port"`
	Priority                         *float64                `yaml:"priority,omitempty" json:"priority,omitempty"`
	ProcessType                      string                  `yaml:"processType" json:"processType"`
	SmallFiles                       *bool                   `yaml:"smallFiles,omitempty" json:"smallFiles,omitempty"`
	SecondaryDelaySecs               *float64                `yaml:"secondaryDelaySecs,omitempty" json:"secondaryDelaySecs,omitempty"`
	SlaveDelay                       *float64                `yaml:"slaveDelay,omitempty" json:"slaveDelay,omitempty"`
	SyncPeriodSecs                   *float64                `yaml:"syncPeriodSecs,omitempty" json:"syncPeriodSecs,omitempty"`
	Votes                            *float64                `yaml:"votes,omitempty" json:"votes,omitempty"`
	Security                         *map[string]interface{} `yaml:"security,omitempty" json:"security,omitempty"`
	SetParameter                     *map[string]interface{} `yaml:"setParameter,omitempty" json:"setParameter,omitempty"`
	TLS                              *TLS                    `yaml:"tls,omitempty" json:"tls,omitempty"`
	Version                          string                  `yaml:"version,omitempty" json:"version,omitempty"`
	WiredTiger                       *map[string]interface{} `yaml:"wiredTiger,omitempty" json:"wiredTiger,omitempty"`
}

ProcessConfig that belongs to a cluster.

type RSConfig added in v1.1.0

type RSConfig struct {
	Name                        string           `yaml:"name,omitempty" json:"name,omitempty"`
	FeatureCompatibilityVersion string           `yaml:"featureCompatibilityVersion,omitempty" json:"featureCompatibilityVersion,omitempty"`
	Processes                   []*ProcessConfig `yaml:"processes,omitempty" json:"processes,omitempty"`
	Tags                        []string         `yaml:"tags,omitempty" json:"tags,omitempty"`
	Version                     string           `yaml:"version,omitempty" json:"version,omitempty"`
}

RSConfig shared properties of replica sets, config servers, and sharded clusters.

type TLS added in v1.8.0

type TLS struct {
	CAFile                     string `yaml:"CAFile,omitempty" json:"CAFile,omitempty"`
	CertificateKeyFile         string `yaml:"certificateKeyFile,omitempty" json:"certificateKeyFile,omitempty"`
	CertificateKeyFilePassword string `yaml:"certificateKeyFilePassword,omitempty" json:"certificateKeyFilePassword,omitempty"`
	CertificateSelector        string `yaml:"certificateSelector,omitempty" json:"certificateSelector,omitempty"`
	ClusterCertificateSelector string `yaml:"clusterCertificateSelector,omitempty" json:"clusterCertificateSelector,omitempty"`
	ClusterFile                string `yaml:"clusterFile,omitempty" json:"clusterFile,omitempty"`
	ClusterPassword            string `yaml:"clusterPassword,omitempty" json:"clusterPassword,omitempty"`
	CRLFile                    string `yaml:"CRLFile,omitempty" json:"CRLFile,omitempty"`
	DisabledProtocols          string `yaml:"disabledProtocols,omitempty" json:"disabledProtocols,omitempty"`
	FIPSMode                   *bool  `yaml:"FIPSMode,omitempty" json:"FIPSMode,omitempty"`
	Mode                       string `yaml:"mode,omitempty" json:"mode,omitempty"`
	PEMKeyFile                 string `yaml:"PEMKeyFile,omitempty" json:"PEMKeyFile,omitempty"`
}

TLS defines TLS parameters for Net.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL