Skip to content
Snippets Groups Projects
Commit cb44c7b2 authored by Jono Wenger's avatar Jono Wenger
Browse files

Fix bindings

parent 377549f0
No related branches found
No related tags found
2 merge requests!510Release,!432Control node reg
......@@ -102,13 +102,33 @@ func (c *Cmix) ReadyToSend() bool {
return numReg >= total*7/10
}
// IsReadyInfo contains information on if the network is ready and how close it
// is to being ready.
//
// Example JSON:
// {
// "IsReady": true,
// "HowClose": 0.534
// }
type IsReadyInfo struct {
IsReady bool
HowClose float64
}
// IsReady returns true if at least percentReady of node registrations has
// completed. If not all have completed, then it returns false and howClose will
// be a percent (0-1) of node registrations completed.
func (c *Cmix) IsReady(percentReady float64) (isReady bool, howClose float64) {
//
// Parameters:
// - percentReady - The percentage of nodes required to be registered with to
// be ready. This is a number between 0 and 1.
//
// Returns:
// - JSON of [IsReadyInfo].
func (c *Cmix) IsReady(percentReady float64) ([]byte, error) {
// Check if the network is currently healthy
if !c.api.GetCmix().IsHealthy() {
return false, 0
return json.Marshal(&IsReadyInfo{false, 0})
}
numReg, numNodes, err := c.api.GetNodeRegistrationStatus()
......@@ -116,10 +136,10 @@ func (c *Cmix) IsReady(percentReady float64) (isReady bool, howClose float64) {
jww.FATAL.Panicf("Failed to get node registration status: %+v", err)
}
isReady = (float64(numReg) / float64(numNodes)) >= percentReady
howClose = float64(numNodes) / (float64(numReg) * percentReady)
isReady := (float64(numReg) / float64(numNodes)) >= percentReady
howClose := float64(numNodes) / (float64(numReg) * percentReady)
return isReady, howClose
return json.Marshal(&IsReadyInfo{isReady, howClose})
}
// NetworkFollowerStatus gets the state of the network follower. It returns a
......@@ -177,7 +197,8 @@ func (c *Cmix) PauseNodeRegistrations(timeoutMS int) error {
// - toRun - The number of parallel node registrations.
// - timeoutMS - The timeout, in milliseconds, to wait when changing node
// registrations.
func (c *Cmix) ChangeNumberOfNodeRegistrations(toRun int, timeout time.Duration) error {
func (c *Cmix) ChangeNumberOfNodeRegistrations(toRun, timeoutMS int) error {
timeout := time.Duration(timeoutMS) * time.Millisecond
return c.api.ChangeNumberOfNodeRegistrations(toRun, timeout)
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment