From bd6afb89521ed94fdffde31d3e6030ec2d295359 Mon Sep 17 00:00:00 2001 From: Patrik Nordwall Date: Mon, 3 Jul 2017 10:44:24 +0200 Subject: [PATCH 1/2] Revert "Less abbreviations, more reliable test" This reverts commit 61e289b276f410654c1b063c33648e0d7ea88e50. --- akka-cluster/src/main/resources/reference.conf | 4 ++-- .../src/main/scala/akka/cluster/ClusterJmx.scala | 2 +- .../src/main/scala/akka/cluster/Member.scala | 2 +- .../multi-jvm/scala/akka/cluster/MBeanSpec.scala | 16 ++++++++-------- akka-docs/src/main/paradox/scala/cluster-team.md | 4 ++-- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/akka-cluster/src/main/resources/reference.conf b/akka-cluster/src/main/resources/reference.conf index f5b49f6c81..8e69ea6d20 100644 --- a/akka-cluster/src/main/resources/reference.conf +++ b/akka-cluster/src/main/resources/reference.conf @@ -65,8 +65,8 @@ akka { # move 'WeaklyUp' members to 'Up' status once convergence has been reached. allow-weakly-up-members = on - # Teams are used to make islands of the cluster that are colocated. This can be used - # to make the cluster aware that it is running across multiple availability zones or regions. + # Teams are used to make islands of the cluster that are colocated. It can be used + # to make the cluster "dc-aware", run the cluster in multiple availability zones or regions. # The team is added to the list of roles of the node with the prefix "team-". team = "default" diff --git a/akka-cluster/src/main/scala/akka/cluster/ClusterJmx.scala b/akka-cluster/src/main/scala/akka/cluster/ClusterJmx.scala index 26056f8963..bd828e4e80 100644 --- a/akka-cluster/src/main/scala/akka/cluster/ClusterJmx.scala +++ b/akka-cluster/src/main/scala/akka/cluster/ClusterJmx.scala @@ -154,7 +154,7 @@ private[akka] class ClusterJmx(cluster: Cluster, log: LoggingAdapter) { val members = clusterView.members.toSeq.sorted(Member.ordering).map { m ⇒ s"""{ | "address": "${m.address}", - | "roles": [${if (m.roles.isEmpty) "" else m.roles.toList.sorted.map("\"" + _ + "\"").mkString("\n ", ",\n ", "\n ")}], + | "roles": [${if (m.roles.isEmpty) "" else m.roles.map("\"" + _ + "\"").mkString("\n ", ",\n ", "\n ")}], | "status": "${m.status}" | }""".stripMargin } mkString (",\n ") diff --git a/akka-cluster/src/main/scala/akka/cluster/Member.scala b/akka-cluster/src/main/scala/akka/cluster/Member.scala index c0195d5e39..145d14f9ef 100644 --- a/akka-cluster/src/main/scala/akka/cluster/Member.scala +++ b/akka-cluster/src/main/scala/akka/cluster/Member.scala @@ -22,7 +22,7 @@ class Member private[cluster] ( val status: MemberStatus, val roles: Set[String]) extends Serializable { - lazy val team: String = roles.find(_.startsWith("team-")) + lazy val team = roles.find(_.startsWith("team-")) .getOrElse(throw new IllegalStateException("Team undefined, should not be possible")) def address: Address = uniqueAddress.address diff --git a/akka-cluster/src/multi-jvm/scala/akka/cluster/MBeanSpec.scala b/akka-cluster/src/multi-jvm/scala/akka/cluster/MBeanSpec.scala index cb43fe4d52..37ed3d24ae 100644 --- a/akka-cluster/src/multi-jvm/scala/akka/cluster/MBeanSpec.scala +++ b/akka-cluster/src/multi-jvm/scala/akka/cluster/MBeanSpec.scala @@ -120,32 +120,32 @@ abstract class MBeanSpec | { | "address": "${sortedNodes(0)}", | "roles": [ - | "team-default", - | "testNode" + | "testNode", + | "team-default" | ], | "status": "Up" | }, | { | "address": "${sortedNodes(1)}", | "roles": [ - | "team-default", - | "testNode" + | "testNode", + | "team-default" | ], | "status": "Up" | }, | { | "address": "${sortedNodes(2)}", | "roles": [ - | "team-default", - | "testNode" + | "testNode", + | "team-default" | ], | "status": "Up" | }, | { | "address": "${sortedNodes(3)}", | "roles": [ - | "team-default", - | "testNode" + | "testNode", + | "team-default" | ], | "status": "Up" | } diff --git a/akka-docs/src/main/paradox/scala/cluster-team.md b/akka-docs/src/main/paradox/scala/cluster-team.md index a4019d360f..436d5a9ad8 100644 --- a/akka-docs/src/main/paradox/scala/cluster-team.md +++ b/akka-docs/src/main/paradox/scala/cluster-team.md @@ -6,8 +6,8 @@ Cluster teams are a work-in-progress feature, and behavior is still expected to @@@ -Teams are used to make islands of the cluster that are colocated. This can be used -to make the cluster aware that it is running across multiple availability zones or regions. +Teams are used to define islands of the cluster that are colocated. +They can be used to make the cluster "dc-aware", run the cluster in multiple availability zones or regions. Cluster nodes can be assigned to a team by setting the `akka.cluster.team` setting. When no team is specified, a node will belong to the 'default' team. From a7dc938188acc1a34974340929afc41f4199904e Mon Sep 17 00:00:00 2001 From: Patrik Nordwall Date: Mon, 3 Jul 2017 10:44:36 +0200 Subject: [PATCH 2/2] Revert "Introduce cluster 'team' setting and add to Member" This reverts commit a06badaa03fa9f3c9a942b1468090f758c74a869. --- .../src/main/resources/reference.conf | 5 ---- .../scala/akka/cluster/ClusterSettings.scala | 3 +-- .../src/main/scala/akka/cluster/Member.scala | 3 --- .../scala/akka/cluster/MBeanSpec.scala | 12 ++++------ .../scala/akka/cluster/QuickRestartSpec.scala | 2 +- .../akka/cluster/ClusterConfigSpec.scala | 24 ++----------------- .../src/main/paradox/java/cluster-team.md | 1 - .../src/main/paradox/scala/cluster-team.md | 15 ------------ 8 files changed, 8 insertions(+), 57 deletions(-) delete mode 120000 akka-docs/src/main/paradox/java/cluster-team.md delete mode 100644 akka-docs/src/main/paradox/scala/cluster-team.md diff --git a/akka-cluster/src/main/resources/reference.conf b/akka-cluster/src/main/resources/reference.conf index 8e69ea6d20..d53aece519 100644 --- a/akka-cluster/src/main/resources/reference.conf +++ b/akka-cluster/src/main/resources/reference.conf @@ -65,11 +65,6 @@ akka { # move 'WeaklyUp' members to 'Up' status once convergence has been reached. allow-weakly-up-members = on - # Teams are used to make islands of the cluster that are colocated. It can be used - # to make the cluster "dc-aware", run the cluster in multiple availability zones or regions. - # The team is added to the list of roles of the node with the prefix "team-". - team = "default" - # The roles of this member. List of strings, e.g. roles = ["A", "B"]. # The roles are part of the membership information and can be used by # routers or other services to distribute work to certain member types, diff --git a/akka-cluster/src/main/scala/akka/cluster/ClusterSettings.scala b/akka-cluster/src/main/scala/akka/cluster/ClusterSettings.scala index 44b92a8009..80453ce1d8 100644 --- a/akka-cluster/src/main/scala/akka/cluster/ClusterSettings.scala +++ b/akka-cluster/src/main/scala/akka/cluster/ClusterSettings.scala @@ -93,8 +93,7 @@ final class ClusterSettings(val config: Config, val systemName: String) { val AllowWeaklyUpMembers = cc.getBoolean("allow-weakly-up-members") - val Team: String = cc.getString("team") - val Roles: Set[String] = immutableSeq(cc.getStringList("roles")).toSet + s"team-$Team" + val Roles: Set[String] = immutableSeq(cc.getStringList("roles")).toSet val MinNrOfMembers: Int = { cc.getInt("min-nr-of-members") } requiring (_ > 0, "min-nr-of-members must be > 0") diff --git a/akka-cluster/src/main/scala/akka/cluster/Member.scala b/akka-cluster/src/main/scala/akka/cluster/Member.scala index 145d14f9ef..2fcb9bdf35 100644 --- a/akka-cluster/src/main/scala/akka/cluster/Member.scala +++ b/akka-cluster/src/main/scala/akka/cluster/Member.scala @@ -22,9 +22,6 @@ class Member private[cluster] ( val status: MemberStatus, val roles: Set[String]) extends Serializable { - lazy val team = roles.find(_.startsWith("team-")) - .getOrElse(throw new IllegalStateException("Team undefined, should not be possible")) - def address: Address = uniqueAddress.address override def hashCode = uniqueAddress.## diff --git a/akka-cluster/src/multi-jvm/scala/akka/cluster/MBeanSpec.scala b/akka-cluster/src/multi-jvm/scala/akka/cluster/MBeanSpec.scala index 37ed3d24ae..8ac5e092b7 100644 --- a/akka-cluster/src/multi-jvm/scala/akka/cluster/MBeanSpec.scala +++ b/akka-cluster/src/multi-jvm/scala/akka/cluster/MBeanSpec.scala @@ -120,32 +120,28 @@ abstract class MBeanSpec | { | "address": "${sortedNodes(0)}", | "roles": [ - | "testNode", - | "team-default" + | "testNode" | ], | "status": "Up" | }, | { | "address": "${sortedNodes(1)}", | "roles": [ - | "testNode", - | "team-default" + | "testNode" | ], | "status": "Up" | }, | { | "address": "${sortedNodes(2)}", | "roles": [ - | "testNode", - | "team-default" + | "testNode" | ], | "status": "Up" | }, | { | "address": "${sortedNodes(3)}", | "roles": [ - | "testNode", - | "team-default" + | "testNode" | ], | "status": "Up" | } diff --git a/akka-cluster/src/multi-jvm/scala/akka/cluster/QuickRestartSpec.scala b/akka-cluster/src/multi-jvm/scala/akka/cluster/QuickRestartSpec.scala index df14986ac1..3e1da843f2 100644 --- a/akka-cluster/src/multi-jvm/scala/akka/cluster/QuickRestartSpec.scala +++ b/akka-cluster/src/multi-jvm/scala/akka/cluster/QuickRestartSpec.scala @@ -91,7 +91,7 @@ abstract class QuickRestartSpec Cluster(system).state.members.size should ===(totalNumberOfNodes) Cluster(system).state.members.map(_.status == MemberStatus.Up) // use the role to test that it is the new incarnation that joined, sneaky - Cluster(system).state.members.flatMap(_.roles) should ===(Set(s"round-$n", "team-default")) + Cluster(system).state.members.flatMap(_.roles) should ===(Set(s"round-$n")) } } enterBarrier("members-up-" + n) diff --git a/akka-cluster/src/test/scala/akka/cluster/ClusterConfigSpec.scala b/akka-cluster/src/test/scala/akka/cluster/ClusterConfigSpec.scala index 171e67d42c..481556bd77 100644 --- a/akka-cluster/src/test/scala/akka/cluster/ClusterConfigSpec.scala +++ b/akka-cluster/src/test/scala/akka/cluster/ClusterConfigSpec.scala @@ -5,13 +5,9 @@ package akka.cluster import language.postfixOps -import scala.concurrent.duration._ - -import com.typesafe.config.ConfigFactory - import akka.testkit.AkkaSpec import akka.dispatch.Dispatchers - +import scala.concurrent.duration._ import akka.remote.PhiAccrualFailureDetector import akka.util.Helpers.ConfigOps import akka.actor.Address @@ -45,8 +41,7 @@ class ClusterConfigSpec extends AkkaSpec { DownRemovalMargin should ===(Duration.Zero) MinNrOfMembers should ===(1) MinNrOfMembersOfRole should ===(Map.empty[String, Int]) - Team should ===("default") - Roles should ===(Set("team-default")) + Roles should ===(Set.empty[String]) JmxEnabled should ===(true) UseDispatcher should ===(Dispatchers.DefaultDispatcherId) GossipDifferentViewProbability should ===(0.8 +- 0.0001) @@ -54,20 +49,5 @@ class ClusterConfigSpec extends AkkaSpec { SchedulerTickDuration should ===(33 millis) SchedulerTicksPerWheel should ===(512) } - - "be able to parse non-default cluster config elements" in { - val settings = new ClusterSettings(ConfigFactory.parseString( - """ - |akka { - | cluster { - | roles = [ "hamlet" ] - | team = "blue" - | } - |} - """.stripMargin).withFallback(ConfigFactory.load()), system.name) - import settings._ - Roles should ===(Set("hamlet", "team-blue")) - Team should ===("blue") - } } } diff --git a/akka-docs/src/main/paradox/java/cluster-team.md b/akka-docs/src/main/paradox/java/cluster-team.md deleted file mode 120000 index b25b4db61f..0000000000 --- a/akka-docs/src/main/paradox/java/cluster-team.md +++ /dev/null @@ -1 +0,0 @@ -../scala/cluster-team.md \ No newline at end of file diff --git a/akka-docs/src/main/paradox/scala/cluster-team.md b/akka-docs/src/main/paradox/scala/cluster-team.md deleted file mode 100644 index 436d5a9ad8..0000000000 --- a/akka-docs/src/main/paradox/scala/cluster-team.md +++ /dev/null @@ -1,15 +0,0 @@ -# Cluster Team - -@@@ note - -Cluster teams are a work-in-progress feature, and behavior is still expected to change. - -@@@ - -Teams are used to define islands of the cluster that are colocated. -They can be used to make the cluster "dc-aware", run the cluster in multiple availability zones or regions. - -Cluster nodes can be assigned to a team by setting the `akka.cluster.team` setting. -When no team is specified, a node will belong to the 'default' team. - -The team is added to the list of roles of the node with the prefix "team-". \ No newline at end of file