solution: better order of availability status

This commit is contained in:
Igor Artamonov
2019-08-03 16:21:30 -04:00
parent 22c2294983
commit 90d46d15a6
2 changed files with 21 additions and 6 deletions

View File

@@ -2,10 +2,25 @@ package io.emeraldpay.dshackle.upstream
enum class UpstreamAvailability(val grpcId: Int) {
/**
* Active fully synchronized node
*/
OK(1),
IMMATURE(2),
SYNCING(3),
LAGGING(4),
/**
* Good node, but is still synchronizing a latest block
*/
LAGGING(2),
/**
* May be good, but node doesn't have enough peers to be sure it's on corrected chain
*/
IMMATURE(3),
/**
* Node is doing it's initial synchronization, is behind by at least several blocks
*/
SYNCING(4),
/**
* Unavailable node
*/
UNAVAILABLE(5);
companion object {

View File

@@ -6,10 +6,10 @@ class UpstreamAvailabilitySpec extends Specification {
def "Defined order"() {
expect:
UpstreamAvailability.OK.compareTo(UpstreamAvailability.IMMATURE) < 0
UpstreamAvailability.OK.compareTo(UpstreamAvailability.LAGGING) < 0
UpstreamAvailability.LAGGING.compareTo(UpstreamAvailability.IMMATURE) < 0
UpstreamAvailability.IMMATURE.compareTo(UpstreamAvailability.SYNCING) < 0
UpstreamAvailability.SYNCING.compareTo(UpstreamAvailability.LAGGING) < 0
UpstreamAvailability.LAGGING.compareTo(UpstreamAvailability.UNAVAILABLE) < 0
UpstreamAvailability.SYNCING.compareTo(UpstreamAvailability.UNAVAILABLE) < 0
UpstreamAvailability.OK.compareTo(UpstreamAvailability.UNAVAILABLE) < 0
UpstreamAvailability.UNAVAILABLE.compareTo(UpstreamAvailability.OK) > 0