Documentation ¶
Overview ¶
(C) Copyright 2019 Intel Corporation.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
GOVERNMENT LICENSE RIGHTS-OPEN SOURCE SOFTWARE The Government's rights to use, modify, reproduce, release, perform, display, or disclose this software are subject to the terms of the Apache License as provided in Contract No. 8F-30005. Any reproduction of computer software, computer software documentation, or portions thereof marked with this legend must also reproduce the markings.
Index ¶
- Variables
- type Member
- type MemberResult
- type MemberResults
- type MemberState
- type Members
- type Membership
- func (m *Membership) Add(member *Member) (int, error)
- func (m *Membership) AddOrUpdate(member *Member) (bool, *MemberState)
- func (m *Membership) Get(rank uint32) (*Member, error)
- func (m *Membership) Hosts(excludedStates ...MemberState) (addresses []string)
- func (m *Membership) Members(excludedStates ...MemberState) (ms Members)
- func (m *Membership) Ranks() (ranks []uint32)
- func (m *Membership) Remove(rank uint32)
- func (m *Membership) SetMemberState(rank uint32, state MemberState) error
- func (m *Membership) UpdateMemberStates(results MemberResults) error
Constants ¶
This section is empty.
Variables ¶
var ( FaultMemberExists = systemFault( code.SystemMemberExists, "system member with given rank already exists", "update system member instead of adding", ) FaultMemberMissing = systemFault( code.SystemMemberMissing, "system member with given rank doesn't exists", "", ) )
Functions ¶
This section is empty.
Types ¶
type Member ¶
type Member struct { Rank uint32 UUID string Addr net.Addr // contains filtered or unexported fields }
Member refers to a data-plane instance that is a member of this DAOS system running on host with the control-plane listening at "Addr".
func (*Member) MarshalJSON ¶
func (*Member) UnmarshalJSON ¶
type MemberResult ¶
type MemberResult struct { Rank uint32 Action string Errored bool Msg string State MemberState }
MemberResult refers to the result of an action on a Member identified its string representation "address/rank".
func NewMemberResult ¶
func NewMemberResult(rank uint32, action string, err error, state MemberState) *MemberResult
NewMemberResult returns a reference to a new member result struct.
func (*MemberResult) MarshalJSON ¶
func (mr *MemberResult) MarshalJSON() ([]byte, error)
func (*MemberResult) UnmarshalJSON ¶
func (mr *MemberResult) UnmarshalJSON(data []byte) error
type MemberResults ¶
type MemberResults []*MemberResult
MemberResults is a type alias for a slice of member result references.
func (MemberResults) HasErrors ¶
func (smr MemberResults) HasErrors() bool
HasErrors returns true if any of the member results errored.
type MemberState ¶
type MemberState int
MemberState represents the activity state of DAOS system members.
const ( MemberStateUnknown MemberState = iota MemberStateStarted MemberStateStopping // prep-shutdown successfully run MemberStateStopped // process cleanly stopped MemberStateEvicted // rank has been evicted from DAOS system MemberStateErrored // process stopped with errors MemberStateUnresponsive // e.g. zombie process )
func (MemberState) String ¶
func (ms MemberState) String() string
type Membership ¶
Membership tracks details of system members.
func NewMembership ¶
func NewMembership(log logging.Logger) *Membership
NewMembership returns a reference to a new DAOS system membership.
func (*Membership) Add ¶
func (m *Membership) Add(member *Member) (int, error)
Add adds member to membership, returns member count.
func (*Membership) AddOrUpdate ¶
func (m *Membership) AddOrUpdate(member *Member) (bool, *MemberState)
AddOrUpdate adds member to membership or updates member state if member already exists in membership. Returns flag for whether member was created and the previous state if updated.
func (*Membership) Get ¶
func (m *Membership) Get(rank uint32) (*Member, error)
Get retrieves member reference from membership based on Rank.
func (*Membership) Hosts ¶
func (m *Membership) Hosts(excludedStates ...MemberState) (addresses []string)
Hosts returns slice of ordered member control addresses filtering any addresses that only manage members with excluded states.
func (*Membership) Members ¶
func (m *Membership) Members(excludedStates ...MemberState) (ms Members)
Members returns slice of references to all system members filtering members with excluded states. Results ordered by member rank.
func (*Membership) Ranks ¶
func (m *Membership) Ranks() (ranks []uint32)
Ranks returns slice of ordered member ranks.
func (*Membership) Remove ¶
func (m *Membership) Remove(rank uint32)
Remove removes member from membership, idempotent.
func (*Membership) SetMemberState ¶
func (m *Membership) SetMemberState(rank uint32, state MemberState) error
SetMemberState updates existing member state in membership.
func (*Membership) UpdateMemberStates ¶
func (m *Membership) UpdateMemberStates(results MemberResults) error
UpdateMemberStates updates member's state according to result state.
TODO: store error message in membership