Documentation ¶
Index ¶
- Constants
- Variables
- func GetDatabaseEngineName(dbType string) string
- func GetDatabasePortByType(dbType string) int32
- func GetDatabaseTypeFromEngine(engine string) string
- func GetOperationStatus(o OperationResponse) string
- func ResolveProfiles(ctx context.Context, ndb_client *ndb_client.NDBClient, databaseType string, ...) (profilesMap map[string]ProfileResponse, err error)
- type ActionArgument
- type AuthValidateResponse
- type CloneDeprovisionRequest
- type ContinuousSchedule
- type DatabaseCloneRequest
- type DatabaseDeprovisionRequest
- type DatabaseInterface
- type DatabaseLCMConfig
- type DatabaseNode
- type DatabaseProvisionRequest
- type DatabaseResponse
- func GetAllClones(ctx context.Context, ndbClient *ndb_client.NDBClient) (clones []DatabaseResponse, err error)
- func GetAllDatabases(ctx context.Context, ndbClient *ndb_client.NDBClient) (databases []DatabaseResponse, err error)
- func GetDatabaseById(ctx context.Context, ndbClient *ndb_client.NDBClient, id string) (database DatabaseResponse, err error)
- type DatabaseServer
- type DatabaseServerDeprovisionRequest
- type ExpiryDetails
- type LcmConfig
- type MSSQLRequestAppender
- type MongoDbRequestAppender
- type MonthlySchedule
- type MySqlRequestAppender
- type Node
- type OperationResponse
- type PostgresRequestAppender
- type ProfileResolver
- type ProfileResolvers
- type ProfileResponse
- type Property
- type QuarterlySchedule
- type RefreshDetails
- type RequestAppender
- type SLAResponse
- type Schedule
- type SnapshotTimeOfDay
- type TaskInfoSummaryResponse
- func DeprovisionClone(ctx context.Context, ndbClient *ndb_client.NDBClient, id string, ...) (task TaskInfoSummaryResponse, err error)
- func DeprovisionDatabase(ctx context.Context, ndbClient *ndb_client.NDBClient, id string, ...) (task TaskInfoSummaryResponse, err error)
- func DeprovisionDatabaseServer(ctx context.Context, ndbClient *ndb_client.NDBClient, id string, ...) (task TaskInfoSummaryResponse, err error)
- func ProvisionClone(ctx context.Context, ndbClient *ndb_client.NDBClient, ...) (task TaskInfoSummaryResponse, err error)
- func ProvisionDatabase(ctx context.Context, ndbClient *ndb_client.NDBClient, ...) (task TaskInfoSummaryResponse, err error)
- type TimeMachineInfo
- type WeeklySchedule
- type YearlySchedule
Constants ¶
const OPERATION_STATUS_FAILED = "FAILED"
const OPERATION_STATUS_PASSED = "PASSED"
Variables ¶
var ComputeOOBProfileResolver = func(p ProfileResponse) bool { return p.Type == common.PROFILE_TYPE_COMPUTE && p.SystemProfile && strings.EqualFold(p.Name, common.PROFILE_DEFAULT_OOB_SMALL_COMPUTE) }
var DbParamInstanceOOBProfileResolver = func(p ProfileResponse) bool { return p.SystemProfile && p.Type == common.PROFILE_TYPE_DATABASE_PARAMETER && p.Topology == common.TOPOLOGY_INSTANCE }
var DbParamOOBProfileResolver = func(p ProfileResponse) bool { return p.SystemProfile && p.Type == common.PROFILE_TYPE_DATABASE_PARAMETER }
var NetworkOOBProfileResolver = func(p ProfileResponse) bool { return p.Type == common.PROFILE_TYPE_NETWORK }
var SoftwareOOBProfileResolverForSingleInstance = func(p ProfileResponse) bool { return p.Type == common.PROFILE_TYPE_SOFTWARE && p.SystemProfile && p.Topology == common.TOPOLOGY_SINGLE }
Functions ¶
func GetDatabaseEngineName ¶
func GetDatabasePortByType ¶
func GetDatabaseTypeFromEngine ¶ added in v0.0.8
func GetOperationStatus ¶ added in v0.0.8
func GetOperationStatus(o OperationResponse) string
Returns an operation status string
func ResolveProfiles ¶
func ResolveProfiles(ctx context.Context, ndb_client *ndb_client.NDBClient, databaseType string, profileResolvers ProfileResolvers) (profilesMap map[string]ProfileResponse, err error)
Fetches all the profiles and returns a map of profiles Returns an error if any profile is not found
Types ¶
type ActionArgument ¶
type AuthValidateResponse ¶ added in v0.0.7
func AuthValidate ¶ added in v0.0.7
func AuthValidate(ctx context.Context, ndbClient *ndb_client.NDBClient) (authValidateResponse AuthValidateResponse, err error)
Validates the auth credentials against the 'auth/validate' endpoint Returns the response along with an error (if any)
type CloneDeprovisionRequest ¶ added in v0.0.8
type CloneDeprovisionRequest struct { SoftRemove bool `json:"softRemove"` Remove bool `json:"remove"` Delete bool `json:"delete"` Forced bool `json:"forced"` DeleteDataDrives bool `json:"deleteDataDrives"` DeleteLogicalCluster bool `json:"deleteLogicalCluster"` RemoveLogicalCluster bool `json:"removeLogicalCluster"` DeleteTimeMachine bool `json:"deleteTimeMachine"` }
func GenerateDeprovisionCloneRequest ¶ added in v0.0.8
func GenerateDeprovisionCloneRequest() (req *CloneDeprovisionRequest)
Returns a request to delete a clone instance
type ContinuousSchedule ¶ added in v0.0.6
type DatabaseCloneRequest ¶ added in v0.0.8
type DatabaseCloneRequest struct { Name string `json:"name"` Description string `json:"description"` CreateDbServer bool `json:"createDbserver"` Clustered bool `json:"clustered"` NxClusterId string `json:"nxClusterId"` SSHPublicKey string `json:"sshPublicKey,omitempty"` DbServerId string `json:"dbserverId,omitempty"` DbServerClusterId string `json:"dbserverClusterId,omitempty"` DbserverLogicalClusterId string `json:"dbserverLogicalClusterId,omitempty"` TimeMachineId string `json:"timeMachineId"` SnapshotId string `json:"snapshotId,omitempty"` UserPitrTimestamp string `json:"userPitrTimestamp,omitempty"` TimeZone string `json:"timeZone"` LatestSnapshot bool `json:"latestSnapshot"` NodeCount int `json:"nodeCount"` Nodes []Node `json:"nodes"` ActionArguments []ActionArgument `json:"actionArguments"` Tags interface{} `json:"tags"` LcmConfig *LcmConfig `json:"lcmConfig,omitempty"` VmPassword string `json:"vmPassword"` ComputeProfileId string `json:"computeProfileId"` NetworkProfileId string `json:"networkProfileId"` DatabaseParameterProfileId string `json:"databaseParameterProfileId"` }
func GenerateCloningRequest ¶ added in v0.0.8
func GenerateCloningRequest(ctx context.Context, ndb_client *ndb_client.NDBClient, database DatabaseInterface, reqData map[string]interface{}) (requestBody *DatabaseCloneRequest, err error)
This function generates and returns a request for cloning a database on NDB
type DatabaseDeprovisionRequest ¶
type DatabaseDeprovisionRequest struct { Delete bool `json:"delete"` Remove bool `json:"remove"` SoftRemove bool `json:"softRemove"` Forced bool `json:"forced"` DeleteTimeMachine bool `json:"deleteTimeMachine"` DeleteLogicalCluster bool `json:"deleteLogicalCluster"` }
func GenerateDeprovisionDatabaseRequest ¶
func GenerateDeprovisionDatabaseRequest() (req *DatabaseDeprovisionRequest)
Returns a request to delete a database instance
type DatabaseInterface ¶
type DatabaseInterface interface { IsClone() bool GetName() string GetDescription() string GetClusterId() string GetProfileResolvers() ProfileResolvers GetCredentialSecret() string GetTimeZone() string GetInstanceType() string GetInstanceDatabaseNames() string GetInstanceSize() int GetInstanceTMDetails() (string, string, string) GetTMScheduleForInstance() (Schedule, error) GetCloneSourceDBId() string GetCloneSnapshotId() string GetAdditionalArguments() map[string]string }
type DatabaseLCMConfig ¶ added in v0.0.8
type DatabaseLCMConfig struct { ExpiryDetails ExpiryDetails `json:"expiryDetails,omitempty"` RefreshDetails RefreshDetails `json:"refreshDetails,omitempty"` }
type DatabaseNode ¶
type DatabaseNode struct { Id string `json:"id"` Name string `json:"name"` DatabaseServerId string `json:"dbServerId"` DbServer DatabaseServer `json:"dbserver"` }
type DatabaseProvisionRequest ¶
type DatabaseProvisionRequest struct { DatabaseType string `json:"databaseType"` Name string `json:"name"` DatabaseDescription string `json:"databaseDescription"` SoftwareProfileId string `json:"softwareProfileId"` SoftwareProfileVersionId string `json:"softwareProfileVersionId"` ComputeProfileId string `json:"computeProfileId"` NetworkProfileId string `json:"networkProfileId"` DbParameterProfileId string `json:"dbParameterProfileId"` NewDbServerTimeZone string `json:"newDbServerTimeZone"` CreateDbServer bool `json:"createDbserver"` NodeCount int `json:"nodeCount"` NxClusterId string `json:"nxClusterId"` SSHPublicKey string `json:"sshPublicKey,omitempty"` Clustered bool `json:"clustered"` AutoTuneStagingDrive bool `json:"autoTuneStagingDrive"` TimeMachineInfo TimeMachineInfo `json:"timeMachineInfo"` ActionArguments []ActionArgument `json:"actionArguments"` Nodes []Node `json:"nodes"` DatabaseName string `json:"databaseName,omitempty"` }
func GenerateProvisioningRequest ¶
func GenerateProvisioningRequest(ctx context.Context, ndb_client *ndb_client.NDBClient, database DatabaseInterface, reqData map[string]interface{}) (requestBody *DatabaseProvisionRequest, err error)
This function generates and returns a request for provisioning a database (and a dbserver vm) on NDB The database provisioned has a NONE time machine SLA attached to it, and uses the default OOB profiles
type DatabaseResponse ¶
type DatabaseResponse struct { Id string `json:"id"` Name string `json:"name"` Status string `json:"status"` DatabaseNodes []DatabaseNode `json:"databaseNodes"` Properties []Property `json:"properties"` TimeMachineId string `json:"timeMachineId"` Type string `json:"type"` }
func GetAllClones ¶ added in v0.0.8
func GetAllClones(ctx context.Context, ndbClient *ndb_client.NDBClient) (clones []DatabaseResponse, err error)
Fetches all the clones on the NDB instance and retutns a slice of the databases
func GetAllDatabases ¶
func GetAllDatabases(ctx context.Context, ndbClient *ndb_client.NDBClient) (databases []DatabaseResponse, err error)
Fetches all the databases on the NDB instance and retutns a slice of the databases
func GetDatabaseById ¶
func GetDatabaseById(ctx context.Context, ndbClient *ndb_client.NDBClient, id string) (database DatabaseResponse, err error)
Fetches and returns a database by an Id
type DatabaseServer ¶
type DatabaseServerDeprovisionRequest ¶
type DatabaseServerDeprovisionRequest struct { Delete bool `json:"delete"` Remove bool `json:"remove"` SoftRemove bool `json:"softRemove"` DeleteVgs bool `json:"deleteVgs"` DeleteVmSnapshots bool `json:"deleteVmSnapshots"` }
func GenerateDeprovisionDatabaseServerRequest ¶
func GenerateDeprovisionDatabaseServerRequest() (req *DatabaseServerDeprovisionRequest)
Returns a request to delete a database server vm
type ExpiryDetails ¶ added in v0.0.8
type LcmConfig ¶ added in v0.0.8
type LcmConfig struct {
DatabaseLCMConfig DatabaseLCMConfig `json:"databaseLCMConfig,omitempty"`
}
type MSSQLRequestAppender ¶ added in v0.0.8
type MSSQLRequestAppender struct{}
Implements RequestAppender
type MongoDbRequestAppender ¶ added in v0.0.8
type MongoDbRequestAppender struct{}
Implements RequestAppender
type MonthlySchedule ¶ added in v0.0.6
type MySqlRequestAppender ¶ added in v0.0.8
type MySqlRequestAppender struct{}
Implements RequestAppender
type Node ¶
type Node struct { VmName string `json:"vmName"` ComputeProfileId string `json:"computeProfileId,omitempty"` NetworkProfileId string `json:"networkProfileId,omitempty"` NewDbServerTimeZone string `json:"newDbServerTimeZone,omitempty"` NxClusterId string `json:"nxClusterId,omitempty"` Properties []string `json:"properties"` }
type OperationResponse ¶ added in v0.0.8
type OperationResponse struct { Id string `json:"id"` Name string `json:"name"` Status string `json:"status"` PercentageComplete string `json:"percentageComplete"` Message string `json:"message"` StartTime string `json:"startTime"` EndTime string `json:"endTime"` }
func GetOperationById ¶ added in v0.0.8
func GetOperationById(ctx context.Context, ndbClient *ndb_client.NDBClient, id string) (operation OperationResponse, err error)
Fetches and returns a operation by an Id
type PostgresRequestAppender ¶ added in v0.0.8
type PostgresRequestAppender struct{}
Implements RequestAppender
type ProfileResolver ¶
type ProfileResolver interface { Resolve(ctx context.Context, allProfiles []ProfileResponse, filter func(p ProfileResponse) bool) (profile ProfileResponse, err error) GetName() string GetId() string }
type ProfileResolvers ¶
type ProfileResolvers map[string]ProfileResolver
type ProfileResponse ¶
type ProfileResponse struct { Id string `json:"id"` Name string `json:"name"` Type string `json:"type"` EngineType string `json:"engineType"` LatestVersionId string `json:"latestVersionId"` Topology string `json:"topology"` SystemProfile bool `json:"systemProfile"` Status string `json:"status"` }
func GetAllProfiles ¶
func GetAllProfiles(ctx context.Context, ndbClient *ndb_client.NDBClient) (profiles []ProfileResponse, err error)
Fetches and returns all the available profiles as a profile slice
type QuarterlySchedule ¶ added in v0.0.6
type RefreshDetails ¶ added in v0.0.8
type RequestAppender ¶ added in v0.0.8
type RequestAppender interface {
// contains filtered or unexported methods
}
func GetRequestAppender ¶ added in v0.0.8
func GetRequestAppender(databaseType string) (requestAppender RequestAppender, err error)
Get specific implementation of the DBProvisionRequestAppender interface based on the provided databaseType
type SLAResponse ¶
type SLAResponse struct { Id string `json:"id"` Name string `json:"name"` UniqueName string `json:"uniqueName"` Description string `json:"description"` DailyRetention int `json:"dailyRetention"` WeeklyRetention int `json:"weeklyRetention"` MonthlyRetention int `json:"monthlyRetention"` QuarterlyRetention int `json:"quarterlyRetention"` YearlyRetention int `json:"yearlyRetention"` }
func GetAllSLAs ¶
func GetAllSLAs(ctx context.Context, ndbClient *ndb_client.NDBClient) (slas []SLAResponse, err error)
Fetches and returns all the SLAs as a sla slice
func GetSLAByName ¶ added in v0.0.6
func GetSLAByName(ctx context.Context, ndb_client *ndb_client.NDBClient, name string) (sla SLAResponse, err error)
Fetches all the SLAs from the ndb and returns the SLA matching the name Returns an error if not found.
type Schedule ¶ added in v0.0.6
type Schedule struct { SnapshotTimeOfDay SnapshotTimeOfDay `json:"snapshotTimeOfDay"` ContinuousSchedule ContinuousSchedule `json:"continuousSchedule"` WeeklySchedule WeeklySchedule `json:"weeklySchedule"` MonthlySchedule MonthlySchedule `json:"monthlySchedule"` QuarterlySchedule QuarterlySchedule `json:"quartelySchedule"` YearlySchedule YearlySchedule `json:"yearlySchedule"` }
type SnapshotTimeOfDay ¶ added in v0.0.6
type TaskInfoSummaryResponse ¶
type TaskInfoSummaryResponse struct { Name string `json:"name"` WorkId string `json:"workId"` OperationId string `json:"operationId"` DbServerId string `json:"dbserverId"` Message string `json:"messgae"` EntityId string `json:"entityId"` EntityName string `json:"entityName"` EntityType string `json:"entityType"` Status string `json:"status"` AssociatedOperations []TaskInfoSummaryResponse `json:"associatedOperations"` DependencyReport interface{} `json:"dependencyReport"` }
func DeprovisionClone ¶ added in v0.0.8
func DeprovisionClone(ctx context.Context, ndbClient *ndb_client.NDBClient, id string, req CloneDeprovisionRequest) (task TaskInfoSummaryResponse, err error)
Deprovisions a clone instance given a clone id Returns the task info summary response for the operation
func DeprovisionDatabase ¶
func DeprovisionDatabase(ctx context.Context, ndbClient *ndb_client.NDBClient, id string, req DatabaseDeprovisionRequest) (task TaskInfoSummaryResponse, err error)
Deprovisions a database instance given a database id Returns the task info summary response for the operation
func DeprovisionDatabaseServer ¶
func DeprovisionDatabaseServer(ctx context.Context, ndbClient *ndb_client.NDBClient, id string, req DatabaseServerDeprovisionRequest) (task TaskInfoSummaryResponse, err error)
Deprovisions a database server vm given a server id Returns the task info summary response for the operation
func ProvisionClone ¶ added in v0.0.8
func ProvisionClone(ctx context.Context, ndbClient *ndb_client.NDBClient, req *DatabaseCloneRequest) (task TaskInfoSummaryResponse, err error)
Provisions a clone based on the clone provisioning request Returns the task info summary response for the operation
func ProvisionDatabase ¶
func ProvisionDatabase(ctx context.Context, ndbClient *ndb_client.NDBClient, req *DatabaseProvisionRequest) (task TaskInfoSummaryResponse, err error)
Provisions a database instance based on the database provisioning request Returns the task info summary response for the operation
type TimeMachineInfo ¶
type WeeklySchedule ¶ added in v0.0.6
type YearlySchedule ¶ added in v0.0.6
Source Files ¶
- auth.go
- auth_response_types.go
- clone.go
- clone_helpers.go
- clone_request_types.go
- common_helpers.go
- common_response_types.go
- common_types.go
- db.go
- db_helpers.go
- db_request_types.go
- db_response_types.go
- dbserver.go
- dbserver_helpers.go
- dbserver_request_types.go
- interfaces.go
- operation.go
- operation_helpers.go
- operation_response_types.go
- profile.go
- profile_helpers.go
- profile_response_types.go
- sla.go
- sla_helpers.go
- sla_response_types.go