本文整理汇总了Golang中github.com/flynn/flynn/pkg/sirenia/state.Config类的典型用法代码示例。如果您正苦于以下问题:Golang Config类的具体用法?Golang Config怎么用?Golang Config使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Config类的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: reconfigure
func (p *Postgres) reconfigure(config *state.Config) (err error) {
log := p.log.New("fn", "reconfigure")
defer func() {
if err == nil {
p.setConfig(config)
p.configApplied = true
}
}()
if config != nil && config.Role == state.RoleNone {
log.Info("nothing to do", "reason", "null role")
return nil
}
// If we've already applied the same postgres config, we don't need to do anything
if p.configApplied && config != nil && p.config() != nil && config.Equal(p.config()) {
log.Info("nothing to do", "reason", "config already applied")
return nil
}
// If we're already running and it's just a change from async to sync with the same node, we don't need to restart
if p.configApplied && p.running() && p.config() != nil && config != nil &&
p.config().Role == state.RoleAsync && config.Role == state.RoleSync && config.Upstream.Meta[pgIdKey] == p.config().Upstream.Meta[pgIdKey] {
log.Info("nothing to do", "reason", "becoming sync with same upstream")
return nil
}
// Make sure that we don't keep waiting for replication sync while reconfiguring
p.cancelSyncWait()
p.setSyncedDownstream(nil)
// If we're already running and this is only a sync change, we just need to update the config.
if p.running() && p.config() != nil && config != nil && p.config().Role == state.RolePrimary && config.Role == state.RolePrimary {
return p.updateSync(config.Downstream)
}
// If we're already running and this is only a downstream change, just wait for the new downstream to catch up
if p.running() && p.config().IsNewDownstream(config) {
log.Info("downstream changed", "to", config.Downstream.Addr)
p.waitForSync(config.Downstream, false)
return
}
if config == nil {
config = p.config()
}
if config.Role == state.RolePrimary {
return p.assumePrimary(config.Downstream)
}
return p.assumeStandby(config.Upstream, config.Downstream)
}
开发者ID:eldarion-gondor,项目名称:cli,代码行数:54,代码来源:postgres.go
示例2: reconfigure
func (p *Process) reconfigure(config *state.Config) error {
logger := p.Logger.New("fn", "reconfigure")
if err := func() error {
if config != nil && config.Role == state.RoleNone {
logger.Info("nothing to do", "reason", "null role")
return nil
}
// If we've already applied the same config, we don't need to do anything
if p.configApplied && config != nil && p.config() != nil && config.Equal(p.config()) {
logger.Info("nothing to do", "reason", "config already applied")
return nil
}
// If we're already running and it's just a change from async to sync with the same node, we don't need to restart
if p.configApplied && p.running() && p.config() != nil && config != nil &&
p.config().Role == state.RoleAsync && config.Role == state.RoleSync && config.Upstream.Meta["MYSQL_ID"] == p.config().Upstream.Meta["MYSQL_ID"] {
logger.Info("nothing to do", "reason", "becoming sync with same upstream")
return nil
}
// Make sure that we don't keep waiting for replication sync while reconfiguring
p.cancelSyncWait()
p.syncedDownstreamValue.Store((*discoverd.Instance)(nil))
// If we're already running and this is only a downstream change, just wait for the new downstream to catch up
if p.running() && p.config().IsNewDownstream(config) {
logger.Info("downstream changed", "to", config.Downstream.Addr)
p.waitForSync(config.Downstream, false)
return nil
}
if config == nil {
config = p.config()
}
if config.Role == state.RolePrimary {
return p.assumePrimary(config.Downstream)
}
return p.assumeStandby(config.Upstream, config.Downstream)
}(); err != nil {
return err
}
// Apply configuration.
p.configValue.Store(config)
p.configApplied = true
return nil
}
开发者ID:yanghongkjxy,项目名称:flynn,代码行数:52,代码来源:process.go
注:本文中的github.com/flynn/flynn/pkg/sirenia/state.Config类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论