本文整理汇总了Golang中github.com/github/orchestrator/go/db.ExecOrchestrator函数的典型用法代码示例。如果您正苦于以下问题:Golang ExecOrchestrator函数的具体用法?Golang ExecOrchestrator怎么用?Golang ExecOrchestrator使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ExecOrchestrator函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: RegisterNode
// RegisterNode writes down this node in the node_health table
func RegisterNode(extraInfo string, command string, firstTime bool) (sql.Result, error) {
if firstTime {
db.ExecOrchestrator(`
insert ignore into node_health_history
(hostname, token, first_seen_active, extra_info, command, app_version)
values
(?, ?, NOW(), ?, ?, ?)
`,
ThisHostname, ProcessToken.Hash, extraInfo, command,
config.RuntimeCLIFlags.ConfiguredVersion,
)
}
return db.ExecOrchestrator(`
insert into node_health
(hostname, token, last_seen_active, extra_info, command, app_version)
values
(?, ?, NOW(), ?, ?, ?)
on duplicate key update
token=values(token),
last_seen_active=values(last_seen_active),
extra_info=if(values(extra_info) != '', values(extra_info), extra_info),
app_version=values(app_version)
`,
ThisHostname, ProcessToken.Hash, extraInfo, command,
config.RuntimeCLIFlags.ConfiguredVersion,
)
}
开发者ID:enisoc,项目名称:orchestrator,代码行数:28,代码来源:health_dao.go
示例2: WriteHostnameUnresolve
// WriteHostnameUnresolve upserts an entry in hostname_unresolve
func WriteHostnameUnresolve(instanceKey *InstanceKey, unresolvedHostname string) error {
writeFunc := func() error {
_, err := db.ExecOrchestrator(`
insert into hostname_unresolve (
hostname,
unresolved_hostname,
last_registered)
values (?, ?, NOW())
on duplicate key update
unresolved_hostname=values(unresolved_hostname),
last_registered=now()
`, instanceKey.Hostname, unresolvedHostname,
)
if err != nil {
return log.Errore(err)
}
_, err = db.ExecOrchestrator(`
replace into hostname_unresolve_history (
hostname,
unresolved_hostname,
last_registered)
values (?, ?, NOW())
`, instanceKey.Hostname, unresolvedHostname,
)
writeUnresolvedHostnameCounter.Inc(1)
return nil
}
return ExecDBWriteFunc(writeFunc)
}
开发者ID:enisoc,项目名称:orchestrator,代码行数:30,代码来源:resolve_dao.go
示例3: UpdateClusterAliases
// UpdateClusterAliases writes down the cluster_alias table based on information
// gained from database_instance
func UpdateClusterAliases() error {
writeFunc := func() error {
_, err := db.ExecOrchestrator(`
replace into
cluster_alias (alias, cluster_name, last_registered)
select
suggested_cluster_alias,
substring_index(group_concat(
cluster_name order by
((last_checked <= last_seen) is true) desc,
read_only asc,
num_slave_hosts desc
), ',', 1) as cluster_name,
NOW()
from
database_instance
left join database_instance_downtime using (hostname, port)
where
suggested_cluster_alias!=''
/* exclude newly demoted, downtimed masters */
and ifnull(
database_instance_downtime.downtime_active = 1
and database_instance_downtime.end_timestamp > now()
and database_instance_downtime.reason = ?
, false) is false
group by
suggested_cluster_alias
`, DowntimeLostInRecoveryMessage)
return log.Errore(err)
}
if err := ExecDBWriteFunc(writeFunc); err != nil {
return err
}
writeFunc = func() error {
// Handling the case where no cluster alias exists: we write a dummy alias in the form of the real cluster name.
_, err := db.ExecOrchestrator(`
replace into
cluster_alias (alias, cluster_name, last_registered)
select
cluster_name, cluster_name, now()
from
database_instance
group by
cluster_name
having
sum(suggested_cluster_alias = '') = count(*)
`)
return log.Errore(err)
}
if err := ExecDBWriteFunc(writeFunc); err != nil {
return err
}
return nil
}
开发者ID:enisoc,项目名称:orchestrator,代码行数:56,代码来源:cluster_alias_dao.go
示例4: WriteLongRunningProcesses
// WriteLongRunningProcesses rewrites current state of long running processes for given instance
func WriteLongRunningProcesses(instanceKey *InstanceKey, processes []Process) error {
writeFunc := func() error {
_, err := db.ExecOrchestrator(`
delete from
database_instance_long_running_queries
where
hostname = ?
and port = ?
`,
instanceKey.Hostname,
instanceKey.Port)
if err != nil {
return log.Errore(err)
}
for _, process := range processes {
_, merr := db.ExecOrchestrator(`
insert ignore into database_instance_long_running_queries (
hostname,
port,
process_id,
process_started_at,
process_user,
process_host,
process_db,
process_command,
process_time_seconds,
process_state,
process_info
) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
instanceKey.Hostname,
instanceKey.Port,
process.Id,
process.StartedAt,
process.User,
process.Host,
process.Db,
process.Command,
process.Time,
process.State,
process.Info,
)
if merr != nil {
err = merr
}
}
if err != nil {
return log.Errore(err)
}
return nil
}
return ExecDBWriteFunc(writeFunc)
}
开发者ID:enisoc,项目名称:orchestrator,代码行数:55,代码来源:process_dao.go
示例5: auditInstanceAnalysisInChangelog
// auditInstanceAnalysisInChangelog will write down an instance's analysis in the database_instance_analysis_changelog table.
// To not repeat recurring analysis code, the database_instance_last_analysis table is used, so that only changes to
// analysis codes are written.
func auditInstanceAnalysisInChangelog(instanceKey *InstanceKey, analysisCode AnalysisCode) error {
if lastWrittenAnalysis, found := recentInstantAnalysis.Get(instanceKey.DisplayString()); found {
if lastWrittenAnalysis == analysisCode {
// Surely nothing new.
// And let's expand the timeout
recentInstantAnalysis.Set(instanceKey.DisplayString(), analysisCode, cache.DefaultExpiration)
return nil
}
}
// Passed the cache; but does database agree that there's a change? Here's a persistent cache; this comes here
// to verify no two orchestrator services are doing this without coordinating (namely, one dies, the other taking its place
// and has no familiarity of the former's cache)
analysisChangeWriteAttemptCounter.Inc(1)
sqlResult, err := db.ExecOrchestrator(`
insert ignore into database_instance_last_analysis (
hostname, port, analysis_timestamp, analysis
) values (
?, ?, now(), ?
) on duplicate key update
analysis = values(analysis),
analysis_timestamp = if(analysis = values(analysis), analysis_timestamp, values(analysis_timestamp))
`,
instanceKey.Hostname, instanceKey.Port, string(analysisCode),
)
if err != nil {
return log.Errore(err)
}
rows, err := sqlResult.RowsAffected()
if err != nil {
return log.Errore(err)
}
recentInstantAnalysis.Set(instanceKey.DisplayString(), analysisCode, cache.DefaultExpiration)
lastAnalysisChanged := (rows > 0)
if !lastAnalysisChanged {
return nil
}
_, err = db.ExecOrchestrator(`
insert into database_instance_analysis_changelog (
hostname, port, analysis_timestamp, analysis
) values (
?, ?, now(), ?
)
`,
instanceKey.Hostname, instanceKey.Port, string(analysisCode),
)
if err == nil {
analysisChangeWriteCounter.Inc(1)
}
return log.Errore(err)
}
开发者ID:enisoc,项目名称:orchestrator,代码行数:55,代码来源:analysis_dao.go
示例6: TestDiscover
func (s *TestSuite) TestDiscover(c *C) {
var err error
_, err = db.ExecOrchestrator("delete from database_instance where hostname = ? and port = ?", masterKey.Hostname, masterKey.Port)
_, err = db.ExecOrchestrator("delete from database_instance where hostname = ? and port = ?", slave1Key.Hostname, slave1Key.Port)
_, err = db.ExecOrchestrator("delete from database_instance where hostname = ? and port = ?", slave2Key.Hostname, slave2Key.Port)
_, err = db.ExecOrchestrator("delete from database_instance where hostname = ? and port = ?", slave3Key.Hostname, slave3Key.Port)
_, found, _ := ReadInstance(&masterKey)
c.Assert(found, Equals, false)
_, _ = ReadTopologyInstance(&slave1Key)
_, found, err = ReadInstance(&slave1Key)
c.Assert(found, Equals, true)
c.Assert(err, IsNil)
}
开发者ID:enisoc,项目名称:orchestrator,代码行数:13,代码来源:instance_dao_test.go
示例7: EnableRecovery
// EnableRecovery ensures recoveries are enabled globally
func EnableRecovery() error {
_, err := db.ExecOrchestrator(`
DELETE FROM global_recovery_disable
`,
)
return err
}
开发者ID:enisoc,项目名称:orchestrator,代码行数:8,代码来源:disable_recovery.go
示例8: BeginDowntime
// BeginDowntime will make mark an instance as downtimed (or override existing downtime period)
func BeginDowntime(instanceKey *InstanceKey, owner string, reason string, durationSeconds uint) error {
if durationSeconds == 0 {
durationSeconds = config.Config.MaintenanceExpireMinutes * 60
}
_, err := db.ExecOrchestrator(`
insert
into database_instance_downtime (
hostname, port, downtime_active, begin_timestamp, end_timestamp, owner, reason
) VALUES (
?, ?, 1, NOW(), NOW() + INTERVAL ? SECOND, ?, ?
)
on duplicate key update
downtime_active=values(downtime_active),
begin_timestamp=values(begin_timestamp),
end_timestamp=values(end_timestamp),
owner=values(owner),
reason=values(reason)
`,
instanceKey.Hostname,
instanceKey.Port,
durationSeconds,
owner,
reason,
)
if err != nil {
return log.Errore(err)
}
AuditOperation("begin-downtime", instanceKey, fmt.Sprintf("owner: %s, reason: %s", owner, reason))
return nil
}
开发者ID:enisoc,项目名称:orchestrator,代码行数:33,代码来源:downtime_dao.go
示例9: EndDowntime
// EndDowntime will remove downtime flag from an instance
func EndDowntime(instanceKey *InstanceKey) error {
res, err := db.ExecOrchestrator(`
update
database_instance_downtime
set
downtime_active = NULL,
end_timestamp = NOW()
where
hostname = ?
and port = ?
and downtime_active = 1
`,
instanceKey.Hostname,
instanceKey.Port,
)
if err != nil {
return log.Errore(err)
}
if affected, _ := res.RowsAffected(); affected == 0 {
err = fmt.Errorf("Instance is not in downtime mode: %+v", instanceKey)
} else {
// success
AuditOperation("end-downtime", instanceKey, "")
}
return err
}
开发者ID:enisoc,项目名称:orchestrator,代码行数:28,代码来源:downtime_dao.go
示例10: deleteHostnameResolves
// deleteHostnameResolves compeltely erases the database cache
func deleteHostnameResolves() error {
_, err := db.ExecOrchestrator(`
delete
from hostname_resolve`,
)
return err
}
开发者ID:enisoc,项目名称:orchestrator,代码行数:8,代码来源:resolve_dao.go
示例11: DeleteInvalidHostnameResolves
// DeleteInvalidHostnameResolves removes invalid resolves. At this time these are:
// - infinite loop resolves (A->B and B->A), remove earlier mapping
func DeleteInvalidHostnameResolves() error {
var invalidHostnames []string
query := `
select
early.hostname
from
hostname_resolve as latest
join hostname_resolve early on (latest.resolved_hostname = early.hostname and latest.hostname = early.resolved_hostname)
where
latest.hostname != latest.resolved_hostname
and latest.resolved_timestamp > early.resolved_timestamp
`
err := db.QueryOrchestratorRowsMap(query, func(m sqlutils.RowMap) error {
invalidHostnames = append(invalidHostnames, m.GetString("hostname"))
return nil
})
if err != nil {
return err
}
for _, invalidHostname := range invalidHostnames {
_, err = db.ExecOrchestrator(`
delete
from hostname_resolve
where
hostname = ?`,
invalidHostname,
)
log.Errore(err)
}
return err
}
开发者ID:enisoc,项目名称:orchestrator,代码行数:36,代码来源:resolve_dao.go
示例12: DisableRecovery
// DisableRecovery ensures recoveries are disabled globally
func DisableRecovery() error {
_, err := db.ExecOrchestrator(`
INSERT IGNORE INTO global_recovery_disable
(disable_recovery)
VALUES (1)
`,
)
return err
}
开发者ID:enisoc,项目名称:orchestrator,代码行数:10,代码来源:disable_recovery.go
示例13: ForgetLongUnseenAgents
// ForgetLongUnseenAgents will remove entries of all agents that have long since been last seen.
func ForgetLongUnseenAgents() error {
_, err := db.ExecOrchestrator(`
delete
from host_agent
where
last_submitted < NOW() - interval ? hour`,
config.Config.UnseenAgentForgetHours,
)
return err
}
开发者ID:enisoc,项目名称:orchestrator,代码行数:11,代码来源:agent_dao.go
示例14: ForgetExpiredHostnameResolves
// ForgetExpiredHostnameResolves
func ForgetExpiredHostnameResolves() error {
_, err := db.ExecOrchestrator(`
delete
from hostname_resolve
where
resolved_timestamp < NOW() - interval (? * 2) minute`,
config.Config.ExpiryHostnameResolvesMinutes,
)
return err
}
开发者ID:enisoc,项目名称:orchestrator,代码行数:11,代码来源:resolve_dao.go
示例15: ExpireClusterDomainName
// ExpireClusterDomainName expires cluster_domain_name entries that haven't been updated recently.
func ExpireClusterDomainName() error {
writeFunc := func() error {
_, err := db.ExecOrchestrator(`
delete from cluster_domain_name
where last_registered < NOW() - INTERVAL ? MINUTE
`, config.Config.ExpiryHostnameResolvesMinutes,
)
return log.Errore(err)
}
return ExecDBWriteFunc(writeFunc)
}
开发者ID:enisoc,项目名称:orchestrator,代码行数:12,代码来源:cluster_domain_dao.go
示例16: ExpireMasterPositionEquivalence
// ExpireMasterPositionEquivalence expires old master_position_equivalence
func ExpireMasterPositionEquivalence() error {
writeFunc := func() error {
_, err := db.ExecOrchestrator(`
delete from master_position_equivalence
where last_suggested < NOW() - INTERVAL ? HOUR
`, config.Config.UnseenInstanceForgetHours,
)
return log.Errore(err)
}
return ExecDBWriteFunc(writeFunc)
}
开发者ID:enisoc,项目名称:orchestrator,代码行数:12,代码来源:master_equivalence_dao.go
示例17: DeregisterHostnameUnresolve
// DeregisterHostnameUnresolve removes an unresovle entry
func DeregisterHostnameUnresolve(instanceKey *InstanceKey) error {
writeFunc := func() error {
_, err := db.ExecOrchestrator(`
delete from hostname_unresolve
where hostname=?
`, instanceKey.Hostname,
)
return log.Errore(err)
}
return ExecDBWriteFunc(writeFunc)
}
开发者ID:enisoc,项目名称:orchestrator,代码行数:12,代码来源:resolve_dao.go
示例18: ExpireInstanceAnalysisChangelog
// ExpireInstanceAnalysisChangelog removes old-enough analysis entries from the changelog
func ExpireInstanceAnalysisChangelog() error {
_, err := db.ExecOrchestrator(`
delete
from database_instance_analysis_changelog
where
analysis_timestamp < now() - interval ? hour
`,
config.Config.UnseenInstanceForgetHours,
)
return log.Errore(err)
}
开发者ID:enisoc,项目名称:orchestrator,代码行数:12,代码来源:analysis_dao.go
示例19: ExpireNodesHistory
// ExpireNodesHistory cleans up the nodes history
func ExpireNodesHistory() error {
_, err := db.ExecOrchestrator(`
delete
from node_health_history
where
first_seen_active < now() - interval ? hour
`,
config.Config.UnseenInstanceForgetHours,
)
return log.Errore(err)
}
开发者ID:enisoc,项目名称:orchestrator,代码行数:12,代码来源:health_dao.go
示例20: ExpirePoolInstances
// ExpirePoolInstances cleans up the database_instance_pool table from expired items
func ExpirePoolInstances() error {
_, err := db.ExecOrchestrator(`
delete
from database_instance_pool
where
registered_at < now() - interval ? minute
`,
config.Config.InstancePoolExpiryMinutes,
)
return log.Errore(err)
}
开发者ID:enisoc,项目名称:orchestrator,代码行数:12,代码来源:pool_dao.go
注:本文中的github.com/github/orchestrator/go/db.ExecOrchestrator函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论