本文整理汇总了Golang中github.com/wallyworld/core/state.Unit类的典型用法代码示例。如果您正苦于以下问题:Golang Unit类的具体用法?Golang Unit怎么用?Golang Unit使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Unit类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: SetCharmURL
// SetCharmURL sets the charm URL for each given unit. An error will
// be returned if a unit is dead, or the charm URL is not know.
func (u *UniterAPI) SetCharmURL(args params.EntitiesCharmURL) (params.ErrorResults, error) {
result := params.ErrorResults{
Results: make([]params.ErrorResult, len(args.Entities)),
}
canAccess, err := u.accessUnit()
if err != nil {
return params.ErrorResults{}, err
}
for i, entity := range args.Entities {
err := common.ErrPerm
if canAccess(entity.Tag) {
var unit *state.Unit
unit, err = u.getUnit(entity.Tag)
if err == nil {
var curl *charm.URL
curl, err = charm.ParseURL(entity.CharmURL)
if err == nil {
err = unit.SetCharmURL(curl)
}
}
}
result.Results[i].Error = common.ServerError(err)
}
return result, nil
}
开发者ID:jameinel,项目名称:core,代码行数:27,代码来源:uniter.go
示例2: GetPrincipal
// GetPrincipal returns the result of calling PrincipalName() and
// converting it to a tag, on each given unit.
func (u *UniterAPI) GetPrincipal(args params.Entities) (params.StringBoolResults, error) {
result := params.StringBoolResults{
Results: make([]params.StringBoolResult, len(args.Entities)),
}
canAccess, err := u.accessUnit()
if err != nil {
return params.StringBoolResults{}, err
}
for i, entity := range args.Entities {
err := common.ErrPerm
if canAccess(entity.Tag) {
var unit *state.Unit
unit, err = u.getUnit(entity.Tag)
if err == nil {
principal, ok := unit.PrincipalName()
if principal != "" {
result.Results[i].Result = names.UnitTag(principal)
}
result.Results[i].Ok = ok
}
}
result.Results[i].Error = common.ServerError(err)
}
return result, nil
}
开发者ID:jameinel,项目名称:core,代码行数:27,代码来源:uniter.go
示例3: ConfigSettings
// ConfigSettings returns the complete set of service charm config
// settings available to each given unit.
func (u *UniterAPI) ConfigSettings(args params.Entities) (params.ConfigSettingsResults, error) {
result := params.ConfigSettingsResults{
Results: make([]params.ConfigSettingsResult, len(args.Entities)),
}
canAccess, err := u.accessUnit()
if err != nil {
return params.ConfigSettingsResults{}, err
}
for i, entity := range args.Entities {
err := common.ErrPerm
if canAccess(entity.Tag) {
var unit *state.Unit
unit, err = u.getUnit(entity.Tag)
if err == nil {
var settings charm.Settings
settings, err = unit.ConfigSettings()
if err == nil {
result.Results[i].Settings = params.ConfigSettings(settings)
}
}
}
result.Results[i].Error = common.ServerError(err)
}
return result, nil
}
开发者ID:jameinel,项目名称:core,代码行数:27,代码来源:uniter.go
示例4: newAgent
func (s *UnitSuite) newAgent(c *gc.C, unit *state.Unit) *UnitAgent {
a := &UnitAgent{}
s.initAgent(c, a, "--unit-name", unit.Name())
err := a.ReadConfig(unit.Tag())
c.Assert(err, gc.IsNil)
return a
}
开发者ID:jameinel,项目名称:core,代码行数:7,代码来源:unit_test.go
示例5: waitForUnitStarted
func waitForUnitStarted(stateConn *state.State, unit *state.Unit, c *gc.C) {
timeout := time.After(5 * time.Second)
for {
select {
case <-timeout:
c.Fatalf("no activity detected")
case <-time.After(coretesting.ShortWait):
err := unit.Refresh()
c.Assert(err, gc.IsNil)
st, info, data, err := unit.Status()
c.Assert(err, gc.IsNil)
switch st {
case params.StatusPending, params.StatusInstalled:
c.Logf("waiting...")
continue
case params.StatusStarted:
c.Logf("started!")
return
case params.StatusDown:
stateConn.StartSync()
c.Logf("unit is still down")
default:
c.Fatalf("unexpected status %s %s %v", st, info, data)
}
}
}
}
开发者ID:jameinel,项目名称:core,代码行数:28,代码来源:unit_test.go
示例6: PublicAddress
// PublicAddress returns the public address for each given unit, if set.
func (u *UniterAPI) PublicAddress(args params.Entities) (params.StringResults, error) {
result := params.StringResults{
Results: make([]params.StringResult, len(args.Entities)),
}
canAccess, err := u.accessUnit()
if err != nil {
return params.StringResults{}, err
}
for i, entity := range args.Entities {
err := common.ErrPerm
if canAccess(entity.Tag) {
var unit *state.Unit
unit, err = u.getUnit(entity.Tag)
if err == nil {
address, ok := unit.PublicAddress()
if ok {
result.Results[i].Result = address
} else {
err = common.NoAddressSetError(entity.Tag, "public")
}
}
}
result.Results[i].Error = common.ServerError(err)
}
return result, nil
}
开发者ID:jameinel,项目名称:core,代码行数:27,代码来源:uniter.go
示例7: waitProvisioned
func (s *MachineSuite) waitProvisioned(c *gc.C, unit *state.Unit) (*state.Machine, instance.Id) {
c.Logf("waiting for unit %q to be provisioned", unit)
machineId, err := unit.AssignedMachineId()
c.Assert(err, gc.IsNil)
m, err := s.State.Machine(machineId)
c.Assert(err, gc.IsNil)
w := m.Watch()
defer w.Stop()
timeout := time.After(coretesting.LongWait)
for {
select {
case <-timeout:
c.Fatalf("timed out waiting for provisioning")
case _, ok := <-w.Changes():
c.Assert(ok, jc.IsTrue)
err := m.Refresh()
c.Assert(err, gc.IsNil)
if instId, err := m.InstanceId(); err == nil {
c.Logf("unit provisioned with instance %s", instId)
return m, instId
} else {
c.Check(err, jc.Satisfies, state.IsNotProvisionedError)
}
}
}
panic("watcher died")
}
开发者ID:jameinel,项目名称:core,代码行数:27,代码来源:machine_test.go
示例8: APILogin
func (s *FilterSuite) APILogin(c *gc.C, unit *state.Unit) {
password, err := utils.RandomPassword()
c.Assert(err, gc.IsNil)
err = unit.SetPassword(password)
c.Assert(err, gc.IsNil)
s.st = s.OpenAPIAs(c, unit.Tag(), password)
s.uniter = s.st.Uniter()
c.Assert(s.uniter, gc.NotNil)
}
开发者ID:jameinel,项目名称:core,代码行数:9,代码来源:filter_test.go
示例9: assertAssignedMachineRequestedNetworks
func (s *ConnSuite) assertAssignedMachineRequestedNetworks(c *gc.C, unit *state.Unit, expectInclude, expectExclude []string) {
machineId, err := unit.AssignedMachineId()
c.Assert(err, gc.IsNil)
machine, err := s.conn.State.Machine(machineId)
c.Assert(err, gc.IsNil)
include, exclude, err := machine.RequestedNetworks()
c.Assert(err, gc.IsNil)
c.Assert(include, jc.DeepEquals, expectInclude)
c.Assert(exclude, jc.DeepEquals, expectExclude)
}
开发者ID:jameinel,项目名称:core,代码行数:10,代码来源:conn_test.go
示例10: joinedRelationTags
func joinedRelationTags(unit *state.Unit) ([]string, error) {
relations, err := unit.JoinedRelations()
if err != nil {
return nil, err
}
tags := make([]string, len(relations))
for i, relation := range relations {
tags[i] = relation.Tag()
}
return tags, nil
}
开发者ID:jameinel,项目名称:core,代码行数:11,代码来源:uniter.go
示例11: destroySubordinates
func (u *UniterAPI) destroySubordinates(principal *state.Unit) error {
subordinates := principal.SubordinateNames()
for _, subName := range subordinates {
unit, err := u.getUnit(names.UnitTag(subName))
if err != nil {
return err
}
if err = unit.Destroy(); err != nil {
return err
}
}
return nil
}
开发者ID:jameinel,项目名称:core,代码行数:13,代码来源:uniter.go
示例12: matchUnit
// matchUnit attempts to match a state.Unit to one of
// a set of patterns, taking into account subordinate
// relationships.
func (m unitMatcher) matchUnit(u *state.Unit) bool {
if m.matchesAny() {
return true
}
// Keep the unit if:
// (a) its name matches a pattern, or
// (b) it's a principal and one of its subordinates matches, or
// (c) it's a subordinate and its principal matches.
//
// Note: do *not* include a second subordinate if the principal is
// only matched on account of a first subordinate matching.
if m.matchString(u.Name()) {
return true
}
if u.IsPrincipal() {
for _, s := range u.SubordinateNames() {
if m.matchString(s) {
return true
}
}
return false
}
principal, valid := u.PrincipalName()
if !valid {
panic("PrincipalName failed for subordinate unit")
}
return m.matchString(principal)
}
开发者ID:jameinel,项目名称:core,代码行数:32,代码来源:status.go
示例13: newUnitToolWaiter
func newUnitToolWaiter(u *state.Unit) *toolsWaiter {
w := u.Watch()
waiter := &toolsWaiter{
changes: make(chan struct{}, 1),
watcher: w,
tooler: u,
}
go func() {
for _ = range w.Changes() {
waiter.changes <- struct{}{}
}
close(waiter.changes)
}()
return waiter
}
开发者ID:jameinel,项目名称:core,代码行数:15,代码来源:livetests.go
示例14: OpenedPorts
// OpenedPorts returns the list of opened ports for each given unit.
func (f *FirewallerAPI) OpenedPorts(args params.Entities) (params.PortsResults, error) {
result := params.PortsResults{
Results: make([]params.PortsResult, len(args.Entities)),
}
canAccess, err := f.accessUnit()
if err != nil {
return params.PortsResults{}, err
}
for i, entity := range args.Entities {
var unit *state.Unit
unit, err = f.getUnit(canAccess, entity.Tag)
if err == nil {
result.Results[i].Ports = unit.OpenedPorts()
}
result.Results[i].Error = common.ServerError(err)
}
return result, nil
}
开发者ID:jameinel,项目名称:core,代码行数:19,代码来源:firewaller.go
示例15: prepareRelationResult
func (u *UniterAPI) prepareRelationResult(rel *state.Relation, unit *state.Unit) (params.RelationResult, error) {
nothing := params.RelationResult{}
ep, err := rel.Endpoint(unit.ServiceName())
if err != nil {
// An error here means the unit's service is not part of the
// relation.
return nothing, err
}
return params.RelationResult{
Id: rel.Id(),
Key: rel.String(),
Life: params.Life(rel.Life().String()),
Endpoint: params.Endpoint{
ServiceName: ep.ServiceName,
Relation: ep.Relation,
},
}, nil
}
开发者ID:jameinel,项目名称:core,代码行数:18,代码来源:uniter.go
示例16: setAssignedMachineAddresses
func (s *UnitSuite) setAssignedMachineAddresses(c *gc.C, u *state.Unit) {
err := u.AssignToNewMachine()
c.Assert(err, gc.IsNil)
mid, err := u.AssignedMachineId()
c.Assert(err, gc.IsNil)
machine, err := s.State.Machine(mid)
c.Assert(err, gc.IsNil)
err = machine.SetProvisioned("i-exist", "fake_nonce", nil)
c.Assert(err, gc.IsNil)
err = machine.SetAddresses(instance.Address{
Type: instance.Ipv4Address,
NetworkScope: instance.NetworkCloudLocal,
Value: "private.address.example.com",
}, instance.Address{
Type: instance.Ipv4Address,
NetworkScope: instance.NetworkPublic,
Value: "public.address.example.com",
})
c.Assert(err, gc.IsNil)
}
开发者ID:jameinel,项目名称:core,代码行数:20,代码来源:unit_test.go
示例17: Resolved
// Resolved returns the current resolved setting for each given unit.
func (u *UniterAPI) Resolved(args params.Entities) (params.ResolvedModeResults, error) {
result := params.ResolvedModeResults{
Results: make([]params.ResolvedModeResult, len(args.Entities)),
}
canAccess, err := u.accessUnit()
if err != nil {
return params.ResolvedModeResults{}, err
}
for i, entity := range args.Entities {
err := common.ErrPerm
if canAccess(entity.Tag) {
var unit *state.Unit
unit, err = u.getUnit(entity.Tag)
if err == nil {
result.Results[i].Mode = params.ResolvedMode(unit.Resolved())
}
}
result.Results[i].Error = common.ServerError(err)
}
return result, nil
}
开发者ID:jameinel,项目名称:core,代码行数:22,代码来源:uniter.go
示例18: ClosePort
// ClosePort sets the policy of the port with protocol and number to
// be closed, for all given units.
func (u *UniterAPI) ClosePort(args params.EntitiesPorts) (params.ErrorResults, error) {
result := params.ErrorResults{
Results: make([]params.ErrorResult, len(args.Entities)),
}
canAccess, err := u.accessUnit()
if err != nil {
return params.ErrorResults{}, err
}
for i, entity := range args.Entities {
err := common.ErrPerm
if canAccess(entity.Tag) {
var unit *state.Unit
unit, err = u.getUnit(entity.Tag)
if err == nil {
err = unit.ClosePort(entity.Protocol, entity.Port)
}
}
result.Results[i].Error = common.ServerError(err)
}
return result, nil
}
开发者ID:jameinel,项目名称:core,代码行数:23,代码来源:uniter.go
示例19: GetAssignedMachine
// GetAssignedMachine returns the assigned machine tag (if any) for
// each given unit.
func (f *FirewallerAPI) GetAssignedMachine(args params.Entities) (params.StringResults, error) {
result := params.StringResults{
Results: make([]params.StringResult, len(args.Entities)),
}
canAccess, err := f.accessUnit()
if err != nil {
return params.StringResults{}, err
}
for i, entity := range args.Entities {
var unit *state.Unit
unit, err = f.getUnit(canAccess, entity.Tag)
if err == nil {
var machineId string
machineId, err = unit.AssignedMachineId()
if err == nil {
result.Results[i].Result = names.MachineTag(machineId)
}
}
result.Results[i].Error = common.ServerError(err)
}
return result, nil
}
开发者ID:jameinel,项目名称:core,代码行数:24,代码来源:firewaller.go
示例20: HasSubordinates
// HasSubordinates returns the whether each given unit has any subordinates.
func (u *UniterAPI) HasSubordinates(args params.Entities) (params.BoolResults, error) {
result := params.BoolResults{
Results: make([]params.BoolResult, len(args.Entities)),
}
canAccess, err := u.accessUnit()
if err != nil {
return params.BoolResults{}, err
}
for i, entity := range args.Entities {
err := common.ErrPerm
if canAccess(entity.Tag) {
var unit *state.Unit
unit, err = u.getUnit(entity.Tag)
if err == nil {
subordinates := unit.SubordinateNames()
result.Results[i].Result = len(subordinates) > 0
}
}
result.Results[i].Error = common.ServerError(err)
}
return result, nil
}
开发者ID:jameinel,项目名称:core,代码行数:23,代码来源:uniter.go
注:本文中的github.com/wallyworld/core/state.Unit类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论