本文整理汇总了Golang中github.com/outbrain/orchestrator/go/db.QueryOrchestrator函数的典型用法代码示例。如果您正苦于以下问题:Golang QueryOrchestrator函数的具体用法?Golang QueryOrchestrator怎么用?Golang QueryOrchestrator使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了QueryOrchestrator函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: ReadSeedStates
// SeedOperationState reads states for a given seed operation
func ReadSeedStates(seedId int64) ([]SeedOperationState, error) {
res := []SeedOperationState{}
query := `
select
agent_seed_state_id,
agent_seed_id,
state_timestamp,
state_action,
error_message
from
agent_seed_state
where
agent_seed_id = ?
order by
agent_seed_state_id desc
`
err := db.QueryOrchestrator(query, sqlutils.Args(seedId), func(m sqlutils.RowMap) error {
seedState := SeedOperationState{}
seedState.SeedStateId = m.GetInt64("agent_seed_state_id")
seedState.SeedId = m.GetInt64("agent_seed_id")
seedState.StateTimestamp = m.GetString("state_timestamp")
seedState.Action = m.GetString("state_action")
seedState.ErrorMessage = m.GetString("error_message")
res = append(res, seedState)
return nil
})
if err != nil {
log.Errore(err)
}
return res, err
}
开发者ID:BrianIp,项目名称:orchestrator,代码行数:34,代码来源:agent_dao.go
示例2: readAgentBasicInfo
// readAgentBasicInfo returns the basic data for an agent directly from backend table (no agent access)
func readAgentBasicInfo(hostname string) (Agent, string, error) {
agent := Agent{}
token := ""
query := `
select
hostname,
port,
token,
last_submitted,
mysql_port
from
host_agent
where
hostname = ?
`
err := db.QueryOrchestrator(query, sqlutils.Args(hostname), func(m sqlutils.RowMap) error {
agent.Hostname = m.GetString("hostname")
agent.Port = m.GetInt("port")
agent.LastSubmitted = m.GetString("last_submitted")
agent.MySQLPort = m.GetInt64("mysql_port")
token = m.GetString("token")
return nil
})
if err != nil {
return agent, "", err
}
if token == "" {
return agent, "", log.Errorf("Cannot get agent/token: %s", hostname)
}
return agent, token, nil
}
开发者ID:BrianIp,项目名称:orchestrator,代码行数:34,代码来源:agent_dao.go
示例3: ReadAvailableNodes
func ReadAvailableNodes(onlyHttpNodes bool) ([]string, error) {
res := []string{}
extraInfo := ""
if onlyHttpNodes {
extraInfo = string(OrchestratorExecutionHttpMode)
}
query := `
select
concat(hostname, ';', token, ';', app_version) as node
from
node_health
where
last_seen_active > now() - interval ? second
and ? in (extra_info, '')
order by
hostname
`
err := db.QueryOrchestrator(query, sqlutils.Args(registrationPollSeconds*2, extraInfo), func(m sqlutils.RowMap) error {
res = append(res, m.GetString("node"))
return nil
})
if err != nil {
log.Errore(err)
}
return res, err
}
开发者ID:BrianIp,项目名称:orchestrator,代码行数:27,代码来源:health_dao.go
示例4: ReadClusterPoolInstances
func ReadClusterPoolInstances(clusterName string) (*PoolInstancesMap, error) {
var poolInstancesMap = make(PoolInstancesMap)
query := `
select
database_instance_pool.*
from
database_instance
join database_instance_pool using (hostname, port)
where
database_instance.cluster_name = ?
`
err := db.QueryOrchestrator(query, sqlutils.Args(clusterName), func(m sqlutils.RowMap) error {
pool := m.GetString("pool")
hostname := m.GetString("hostname")
port := m.GetInt("port")
if _, ok := poolInstancesMap[pool]; !ok {
poolInstancesMap[pool] = [](*InstanceKey){}
}
poolInstancesMap[pool] = append(poolInstancesMap[pool], &InstanceKey{Hostname: hostname, Port: port})
return nil
})
if err != nil {
return nil, err
}
return &poolInstancesMap, nil
}
开发者ID:0-T-0,项目名称:orchestrator,代码行数:30,代码来源:pool_dao.go
示例5: ReadMaintenanceInstanceKey
// ReadMaintenanceInstanceKey will return the instanceKey for active maintenance by maintenanceToken
func ReadMaintenanceInstanceKey(maintenanceToken int64) (*InstanceKey, error) {
var res *InstanceKey
query := `
select
hostname, port
from
database_instance_maintenance
where
database_instance_maintenance_id = ?
`
err := db.QueryOrchestrator(query, sqlutils.Args(maintenanceToken), func(m sqlutils.RowMap) error {
instanceKey, merr := NewInstanceKeyFromStrings(m.GetString("hostname"), m.GetString("port"))
if merr != nil {
return merr
}
res = instanceKey
return nil
})
if err != nil {
log.Errore(err)
}
return res, err
}
开发者ID:BrianIp,项目名称:orchestrator,代码行数:27,代码来源:maintenance_dao.go
示例6: getHostAttributesByClause
func getHostAttributesByClause(whereClause string, args []interface{}) ([]HostAttributes, error) {
res := []HostAttributes{}
query := fmt.Sprintf(`
select
hostname,
attribute_name,
attribute_value,
submit_timestamp ,
ifnull(expire_timestamp, '') as expire_timestamp
from
host_attributes
%s
order by
hostname, attribute_name
`, whereClause)
err := db.QueryOrchestrator(query, args, func(m sqlutils.RowMap) error {
hostAttributes := HostAttributes{}
hostAttributes.Hostname = m.GetString("hostname")
hostAttributes.AttributeName = m.GetString("attribute_name")
hostAttributes.AttributeValue = m.GetString("attribute_value")
hostAttributes.SubmitTimestamp = m.GetString("submit_timestamp")
hostAttributes.ExpireTimestamp = m.GetString("expire_timestamp")
res = append(res, hostAttributes)
return nil
})
if err != nil {
log.Errore(err)
}
return res, err
}
开发者ID:0-T-0,项目名称:orchestrator,代码行数:33,代码来源:attributes_dao.go
示例7: ReadLongRunningProcesses
// ReadLongRunningProcesses returns the list of current known long running processes of all instances
func ReadLongRunningProcesses(filter string) ([]Process, error) {
longRunningProcesses := []Process{}
if filter != "" {
filter = "%" + filter + "%"
} else {
filter = "%"
}
query := `
select
hostname,
port,
process_id,
process_started_at,
process_user,
process_host,
process_db,
process_command,
process_time_seconds,
process_state,
process_info
from
database_instance_long_running_queries
where
hostname like ?
or process_user like ?
or process_host like ?
or process_db like ?
or process_command like ?
or process_state like ?
or process_info like ?
order by
process_time_seconds desc
`
args := sqlutils.Args(filter, filter, filter, filter, filter, filter, filter)
err := db.QueryOrchestrator(query, args, func(m sqlutils.RowMap) error {
process := Process{}
process.InstanceHostname = m.GetString("hostname")
process.InstancePort = m.GetInt("port")
process.Id = m.GetInt64("process_id")
process.User = m.GetString("process_user")
process.Host = m.GetString("process_host")
process.Db = m.GetString("process_db")
process.Command = m.GetString("process_command")
process.Time = m.GetInt64("process_time_seconds")
process.State = m.GetString("process_state")
process.Info = m.GetString("process_info")
process.StartedAt = m.GetString("process_started_at")
longRunningProcesses = append(longRunningProcesses, process)
return nil
})
if err != nil {
log.Errore(err)
}
return longRunningProcesses, err
}
开发者ID:0-T-0,项目名称:orchestrator,代码行数:60,代码来源:process_dao.go
示例8: GetEquivalentMasterCoordinates
func GetEquivalentMasterCoordinates(instanceCoordinates *InstanceBinlogCoordinates) (result [](*InstanceBinlogCoordinates), err error) {
query := `
select
master1_hostname as hostname,
master1_port as port,
master1_binary_log_file as binlog_file,
master1_binary_log_pos as binlog_pos
from
master_position_equivalence
where
master2_hostname = ?
and master2_port = ?
and master2_binary_log_file = ?
and master2_binary_log_pos = ?
union
select
master2_hostname as hostname,
master2_port as port,
master2_binary_log_file as binlog_file,
master2_binary_log_pos as binlog_pos
from
master_position_equivalence
where
master1_hostname = ?
and master1_port = ?
and master1_binary_log_file = ?
and master1_binary_log_pos = ?
`
args := sqlutils.Args(
instanceCoordinates.Key.Hostname,
instanceCoordinates.Key.Port,
instanceCoordinates.Coordinates.LogFile,
instanceCoordinates.Coordinates.LogPos,
instanceCoordinates.Key.Hostname,
instanceCoordinates.Key.Port,
instanceCoordinates.Coordinates.LogFile,
instanceCoordinates.Coordinates.LogPos,
)
err = db.QueryOrchestrator(query, args, func(m sqlutils.RowMap) error {
equivalentCoordinates := InstanceBinlogCoordinates{}
equivalentCoordinates.Key.Hostname = m.GetString("hostname")
equivalentCoordinates.Key.Port = m.GetInt("port")
equivalentCoordinates.Coordinates.LogFile = m.GetString("binlog_file")
equivalentCoordinates.Coordinates.LogPos = m.GetInt64("binlog_pos")
result = append(result, &equivalentCoordinates)
return nil
})
if err != nil {
return nil, err
}
return result, nil
}
开发者ID:0-T-0,项目名称:orchestrator,代码行数:56,代码来源:master_equivalence_dao.go
示例9: readFailureDetections
// readRecoveries reads recovery entry/audit entires from topology_recovery
func readFailureDetections(whereCondition string, limit string, args []interface{}) ([]TopologyRecovery, error) {
res := []TopologyRecovery{}
query := fmt.Sprintf(`
select
detection_id,
hostname,
port,
in_active_period as is_active,
start_active_period,
end_active_period_unixtime,
processing_node_hostname,
processcing_node_token,
analysis,
cluster_name,
cluster_alias,
count_affected_slaves,
slave_hosts,
(select max(recovery_id) from topology_recovery where topology_recovery.last_detection_id = detection_id) as related_recovery_id
from
topology_failure_detection
%s
order by
detection_id desc
%s
`, whereCondition, limit)
err := db.QueryOrchestrator(query, args, func(m sqlutils.RowMap) error {
failureDetection := TopologyRecovery{}
failureDetection.Id = m.GetInt64("detection_id")
failureDetection.IsActive = m.GetBool("is_active")
failureDetection.RecoveryStartTimestamp = m.GetString("start_active_period")
failureDetection.ProcessingNodeHostname = m.GetString("processing_node_hostname")
failureDetection.ProcessingNodeToken = m.GetString("processcing_node_token")
failureDetection.AnalysisEntry.AnalyzedInstanceKey.Hostname = m.GetString("hostname")
failureDetection.AnalysisEntry.AnalyzedInstanceKey.Port = m.GetInt("port")
failureDetection.AnalysisEntry.Analysis = inst.AnalysisCode(m.GetString("analysis"))
failureDetection.AnalysisEntry.ClusterDetails.ClusterName = m.GetString("cluster_name")
failureDetection.AnalysisEntry.ClusterDetails.ClusterAlias = m.GetString("cluster_alias")
failureDetection.AnalysisEntry.CountSlaves = m.GetUint("count_affected_slaves")
failureDetection.AnalysisEntry.ReadSlaveHostsFromString(m.GetString("slave_hosts"))
failureDetection.RelatedRecoveryId = m.GetInt64("related_recovery_id")
failureDetection.AnalysisEntry.ClusterDetails.ReadRecoveryInfo()
res = append(res, failureDetection)
return nil
})
if err != nil {
log.Errore(err)
}
return res, err
}
开发者ID:BrianIp,项目名称:orchestrator,代码行数:56,代码来源:topology_recovery_dao.go
示例10: ReadPendingAsyncRequests
func ReadPendingAsyncRequests(limit int) (res [](*AsyncRequest), err error) {
limitClause := ``
args := sqlutils.Args()
if limit > 0 {
limitClause = `limit ?`
args = append(args, limit)
}
query := fmt.Sprintf(`
select
request_id,
command,
hostname,
port,
destination_hostname,
destination_port,
pattern,
gtid_hint,
story
from
async_request
where
begin_timestamp IS NULL
order by
request_id asc
%s
`, limitClause)
err = db.QueryOrchestrator(query, args, func(m sqlutils.RowMap) error {
asyncRequest := NewEmptyAsyncRequest()
asyncRequest.Id = m.GetInt64("request_id")
asyncRequest.Command = m.GetString("command")
asyncRequest.OperatedInstanceKey = &inst.InstanceKey{}
asyncRequest.OperatedInstanceKey.Hostname = m.GetString("hostname")
asyncRequest.OperatedInstanceKey.Port = m.GetInt("port")
if m.GetString("destination_hostname") != "" {
asyncRequest.DestinationKey = &inst.InstanceKey{}
asyncRequest.DestinationKey.Hostname = m.GetString("destination_hostname")
asyncRequest.DestinationKey.Port = m.GetInt("destination_port")
}
asyncRequest.Pattern = m.GetString("pattern")
asyncRequest.GTIDHint = inst.OperationGTIDHint(m.GetString("gtid_hint"))
asyncRequest.Story = m.GetString("story")
res = append(res, asyncRequest)
return nil
})
if err != nil {
log.Errore(err)
}
return res, err
}
开发者ID:0-T-0,项目名称:orchestrator,代码行数:54,代码来源:async_request_dao.go
示例11: ReadAliasByClusterName
// ReadAliasByClusterName returns the cluster alias for the given cluster name,
// or the cluster name itself if not explicit alias found
func ReadAliasByClusterName(clusterName string) (alias string, err error) {
alias = clusterName // default return value
query := `
select
alias
from
cluster_alias
where
cluster_name = ?
`
err = db.QueryOrchestrator(query, sqlutils.Args(clusterName), func(m sqlutils.RowMap) error {
alias = m.GetString("alias")
return nil
})
return clusterName, err
}
开发者ID:BrianIp,项目名称:orchestrator,代码行数:18,代码来源:cluster_alias_dao.go
示例12: ReadRecentAudit
// ReadRecentAudit returns a list of audit entries order chronologically descending, using page number.
func ReadRecentAudit(instanceKey *InstanceKey, page int) ([]Audit, error) {
res := []Audit{}
args := sqlutils.Args()
whereCondition := ``
if instanceKey != nil {
whereCondition = `where hostname=? and port=?`
args = append(args, instanceKey.Hostname, instanceKey.Port)
}
query := fmt.Sprintf(`
select
audit_id,
audit_timestamp,
audit_type,
hostname,
port,
message
from
audit
%s
order by
audit_timestamp desc
limit ?
offset ?
`, whereCondition)
args = append(args, config.Config.AuditPageSize, page*config.Config.AuditPageSize)
err := db.QueryOrchestrator(query, args, func(m sqlutils.RowMap) error {
audit := Audit{}
audit.AuditId = m.GetInt64("audit_id")
audit.AuditTimestamp = m.GetString("audit_timestamp")
audit.AuditType = m.GetString("audit_type")
audit.AuditInstanceKey.Hostname = m.GetString("hostname")
audit.AuditInstanceKey.Port = m.GetInt("port")
audit.Message = m.GetString("message")
res = append(res, audit)
return nil
})
if err != nil {
log.Errore(err)
}
return res, err
}
开发者ID:0-T-0,项目名称:orchestrator,代码行数:45,代码来源:audit_dao.go
示例13: TokenIsValid
// TokenIsValid checks to see whether a given token exists and is not outdated.
func TokenIsValid(publicToken string, secretToken string) (result bool, err error) {
query := `
select
count(*) as valid_token
from
access_token
where
public_token=?
and secret_token=?
and (
generated_at >= now() - interval ? minute
or is_reentrant = 1
)
`
err = db.QueryOrchestrator(query, sqlutils.Args(publicToken, secretToken, config.Config.AccessTokenExpiryMinutes), func(m sqlutils.RowMap) error {
result = m.GetInt("valid_token") > 0
return nil
})
return result, log.Errore(err)
}
开发者ID:BrianIp,项目名称:orchestrator,代码行数:21,代码来源:access_token_dao.go
示例14: TokenBelongsToHealthyHttpService
func TokenBelongsToHealthyHttpService(token string) (result bool, err error) {
extraInfo := string(OrchestratorExecutionHttpMode)
query := `
select
token
from
node_health
where
and token = ?
and extra_info = ?
`
err = db.QueryOrchestrator(query, sqlutils.Args(token, extraInfo), func(m sqlutils.RowMap) error {
// Row exists? We're happy
result = true
return nil
})
return result, log.Errore(err)
}
开发者ID:BrianIp,项目名称:orchestrator,代码行数:20,代码来源:health_dao.go
示例15: ReadOutdatedAgentsHosts
// ReadOutdatedAgentsHosts returns agents that need to be updated
func ReadOutdatedAgentsHosts() ([]string, error) {
res := []string{}
query := `
select
hostname
from
host_agent
where
IFNULL(last_checked < now() - interval ? minute, true)
`
err := db.QueryOrchestrator(query, sqlutils.Args(config.Config.AgentPollMinutes), func(m sqlutils.RowMap) error {
hostname := m.GetString("hostname")
res = append(res, hostname)
return nil
})
if err != nil {
log.Errore(err)
}
return res, err
}
开发者ID:BrianIp,项目名称:orchestrator,代码行数:22,代码来源:agent_dao.go
示例16: ReadClusterPoolInstances
// ReadClusterPoolInstances reads cluster-pool-instance associationsfor given cluster and pool
func ReadClusterPoolInstances(clusterName string, pool string) (result [](*ClusterPoolInstance), err error) {
args := sqlutils.Args()
whereClause := ``
if clusterName != "" {
whereClause = `
where
database_instance.cluster_name = ?
and ? in ('', pool)
`
args = append(args, clusterName, pool)
}
query := fmt.Sprintf(`
select
cluster_name,
ifnull(alias, cluster_name) as alias,
database_instance_pool.*
from
database_instance
join database_instance_pool using (hostname, port)
left join cluster_alias using (cluster_name)
%s
`, whereClause)
err = db.QueryOrchestrator(query, args, func(m sqlutils.RowMap) error {
clusterPoolInstance := ClusterPoolInstance{
ClusterName: m.GetString("cluster_name"),
ClusterAlias: m.GetString("alias"),
Pool: m.GetString("pool"),
Hostname: m.GetString("hostname"),
Port: m.GetInt("port"),
}
result = append(result, &clusterPoolInstance)
return nil
})
if err != nil {
return nil, err
}
return result, nil
}
开发者ID:BrianIp,项目名称:orchestrator,代码行数:41,代码来源:pool_dao.go
示例17: ReadBlockedRecoveries
// ReadBlockedRecoveries reads blocked recovery entries, potentially filtered by cluster name (empty to unfilter)
func ReadBlockedRecoveries(clusterName string) ([]BlockedTopologyRecovery, error) {
res := []BlockedTopologyRecovery{}
whereClause := ""
args := sqlutils.Args()
if clusterName != "" {
whereClause = `where cluster_name = ?`
args = append(args, clusterName)
}
query := fmt.Sprintf(`
select
hostname,
port,
cluster_name,
analysis,
last_blocked_timestamp,
blocking_recovery_id
from
blocked_topology_recovery
%s
order by
last_blocked_timestamp desc
`, whereClause)
err := db.QueryOrchestrator(query, args, func(m sqlutils.RowMap) error {
blockedTopologyRecovery := BlockedTopologyRecovery{}
blockedTopologyRecovery.FailedInstanceKey.Hostname = m.GetString("hostname")
blockedTopologyRecovery.FailedInstanceKey.Port = m.GetInt("port")
blockedTopologyRecovery.ClusterName = m.GetString("cluster_name")
blockedTopologyRecovery.Analysis = inst.AnalysisCode(m.GetString("analysis"))
blockedTopologyRecovery.LastBlockedTimestamp = m.GetString("last_blocked_timestamp")
blockedTopologyRecovery.BlockingRecoveryId = m.GetInt64("blocking_recovery_id")
res = append(res, blockedTopologyRecovery)
return nil
})
if err != nil {
log.Errore(err)
}
return res, err
}
开发者ID:BrianIp,项目名称:orchestrator,代码行数:41,代码来源:topology_recovery_dao.go
示例18: ReadClusterNameByAlias
// ReadClusterNameByAlias
func ReadClusterNameByAlias(alias string) (clusterName string, err error) {
query := `
select
cluster_name
from
cluster_alias
where
alias = ?
or cluster_name = ?
`
err = db.QueryOrchestrator(query, sqlutils.Args(alias, alias), func(m sqlutils.RowMap) error {
clusterName = m.GetString("cluster_name")
return nil
})
if err != nil {
return "", err
}
if clusterName == "" {
err = fmt.Errorf("No cluster found for alias %s", alias)
}
return clusterName, err
}
开发者ID:BrianIp,项目名称:orchestrator,代码行数:23,代码来源:cluster_alias_dao.go
示例19: AcquireAccessToken
// AcquireAccessToken attempts to acquire a hopefully free token; returning in such case
// the secretToken as proof of ownership.
func AcquireAccessToken(publicToken string) (secretToken string, err error) {
secretToken = ""
sqlResult, err := db.ExecOrchestrator(`
update access_token
set
is_acquired=1,
acquired_at=now()
where
public_token=?
and (
(
is_acquired=0
and generated_at > now() - interval ? second
)
or is_reentrant=1
)
`,
publicToken, config.Config.AccessTokenUseExpirySeconds,
)
if err != nil {
return secretToken, log.Errore(err)
}
rows, err := sqlResult.RowsAffected()
if err != nil {
return secretToken, log.Errore(err)
}
if rows == 0 {
return secretToken, log.Errorf("Cannot acquire token %s", publicToken)
}
// Seems like we made it!
query := `
select secret_token from access_token where public_token=?
`
err = db.QueryOrchestrator(query, sqlutils.Args(publicToken), func(m sqlutils.RowMap) error {
secretToken = m.GetString("secret_token")
return nil
})
return secretToken, log.Errore(err)
}
开发者ID:BrianIp,项目名称:orchestrator,代码行数:41,代码来源:access_token_dao.go
示例20: ReadClusterDomainName
// ReadClusterDomainName reads the domain name associated with a cluster, if any
func ReadClusterDomainName(clusterName string) (string, error) {
domainName := ""
query := `
select
domain_name
from
cluster_domain_name
where
cluster_name = ?
`
err := db.QueryOrchestrator(query, sqlutils.Args(clusterName), func(m sqlutils.RowMap) error {
domainName = m.GetString("domain_name")
return nil
})
if err != nil {
return "", err
}
if domainName == "" {
err = fmt.Errorf("No domain name found for cluster %s", clusterName)
}
return domainName, err
}
开发者ID:0-T-0,项目名称:orchestrator,代码行数:24,代码来源:cluster_domain_dao.go
注:本文中的github.com/outbrain/orchestrator/go/db.QueryOrchestrator函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论