本文整理汇总了Golang中github.com/juju/juju/state.RelationUnit类的典型用法代码示例。如果您正苦于以下问题:Golang RelationUnit类的具体用法?Golang RelationUnit怎么用?Golang RelationUnit使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了RelationUnit类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: checkRemoteUnit
func (u *UniterAPIV3) checkRemoteUnit(relUnit *state.RelationUnit, remoteUnitTag string) (string, error) {
// Make sure the unit is indeed remote.
if remoteUnitTag == u.auth.GetAuthTag().String() {
return "", common.ErrPerm
}
// Check remoteUnit is indeed related. Note that we don't want to actually get
// the *Unit, because it might have been removed; but its relation settings will
// persist until the relation itself has been removed (and must remain accessible
// because the local unit's view of reality may be time-shifted).
tag, err := names.ParseUnitTag(remoteUnitTag)
if err != nil {
return "", common.ErrPerm
}
remoteUnitName := tag.Id()
remoteServiceName, err := names.UnitApplication(remoteUnitName)
if err != nil {
return "", common.ErrPerm
}
rel := relUnit.Relation()
_, err = rel.RelatedEndpoints(remoteServiceName)
if err != nil {
return "", common.ErrPerm
}
return remoteUnitName, nil
}
示例2: changeSettings
func changeSettings(c *gc.C, ru *state.RelationUnit) {
node, err := ru.Settings()
c.Assert(err, jc.ErrorIsNil)
value, _ := node.Get("value")
v, _ := value.(int)
node.Set("value", v+1)
_, err = node.Write()
c.Assert(err, jc.ErrorIsNil)
}
示例3: setSettings
func setSettings(c *gc.C, ru *state.RelationUnit, settings map[string]interface{}) {
node, err := ru.Settings()
c.Assert(err, gc.IsNil)
for _, k := range node.Keys() {
node.Delete(k)
}
node.Update(settings)
_, err = node.Write()
c.Assert(err, gc.IsNil)
}
示例4: watchOneRelationUnit
func (u *UniterAPIV3) watchOneRelationUnit(relUnit *state.RelationUnit) (params.RelationUnitsWatchResult, error) {
watch := relUnit.Watch()
// Consume the initial event and forward it to the result.
if changes, ok := <-watch.Changes(); ok {
return params.RelationUnitsWatchResult{
RelationUnitsWatcherId: u.resources.Register(watch),
Changes: changes,
}, nil
}
return params.RelationUnitsWatchResult{}, watcher.EnsureErr(watch)
}
示例5: assertInScope
func (s *uniterSuite) assertInScope(c *gc.C, relUnit *state.RelationUnit, inScope bool) {
ok, err := relUnit.InScope()
c.Assert(err, jc.ErrorIsNil)
c.Assert(ok, gc.Equals, inScope)
}
示例6: assertNotJoined
func assertNotJoined(c *gc.C, ru *state.RelationUnit) {
ok, err := ru.Joined()
c.Assert(err, jc.ErrorIsNil)
c.Assert(ok, jc.IsFalse)
}
示例7: assertJoined
func assertJoined(c *gc.C, ru *state.RelationUnit) {
assertInScope(c, ru)
ok, err := ru.Joined()
c.Assert(err, jc.ErrorIsNil)
c.Assert(ok, jc.IsTrue)
}
示例8: assertInScope
func assertInScope(c *gc.C, ru *state.RelationUnit) {
ok, err := ru.InScope()
c.Assert(err, jc.ErrorIsNil)
c.Assert(ok, jc.IsTrue)
}
示例9: assertNotInScope
func assertNotInScope(c *gc.C, ru *state.RelationUnit) {
assertNotJoined(c, ru)
ok, err := ru.InScope()
c.Assert(err, gc.IsNil)
c.Assert(ok, jc.IsFalse)
}