3131import static org .mockito .Matchers .eq ;
3232import static org .mockito .Mockito .doAnswer ;
3333import static org .mockito .Mockito .mock ;
34- import static org .mockito .Mockito .never ;
3534import static org .mockito .Mockito .times ;
3635import static org .mockito .Mockito .verify ;
3736import static org .mockito .Mockito .verifyNoMoreInteractions ;
@@ -69,34 +68,39 @@ private void setupMocks() {
6968
7069 public void testClusterChanged_info () {
7170 MlAssignmentNotifier notifier = new MlAssignmentNotifier (auditor , threadPool , configMigrator , clusterService );
72- notifier .onMaster ();
7371
74- DiscoveryNode node =
75- new DiscoveryNode ("node_id" , new TransportAddress (InetAddress .getLoopbackAddress (), 9300 ), Version .CURRENT );
7672 ClusterState previous = ClusterState .builder (new ClusterName ("_name" ))
7773 .metaData (MetaData .builder ().putCustom (PersistentTasksCustomMetaData .TYPE ,
7874 new PersistentTasksCustomMetaData (0L , Collections .emptyMap ())))
7975 .build ();
8076
8177 PersistentTasksCustomMetaData .Builder tasksBuilder = PersistentTasksCustomMetaData .builder ();
82- addJobTask ("job_id" , "node_id " , null , tasksBuilder );
78+ addJobTask ("job_id" , "_node_id " , null , tasksBuilder );
8379 MetaData metaData = MetaData .builder ().putCustom (PersistentTasksCustomMetaData .TYPE , tasksBuilder .build ()).build ();
84- ClusterState state = ClusterState .builder (new ClusterName ("_name" ))
80+ ClusterState newState = ClusterState .builder (new ClusterName ("_name" ))
8581 .metaData (metaData )
86- .nodes (DiscoveryNodes .builder ().add (node ))
82+ // set local node master
83+ .nodes (DiscoveryNodes .builder ()
84+ .add (new DiscoveryNode ("_node_id" , new TransportAddress (InetAddress .getLoopbackAddress (), 9300 ), Version .CURRENT ))
85+ .localNodeId ("_node_id" )
86+ .masterNodeId ("_node_id" ))
8787 .build ();
88- notifier .clusterChanged (new ClusterChangedEvent ("_test" , state , previous ));
88+ notifier .clusterChanged (new ClusterChangedEvent ("_test" , newState , previous ));
8989 verify (auditor , times (1 )).info (eq ("job_id" ), any ());
90- verify (configMigrator , times (1 )).migrateConfigsWithoutTasks (eq (state ), any ());
90+ verify (configMigrator , times (1 )).migrateConfigsWithoutTasks (eq (newState ), any ());
9191
92- notifier .offMaster ();
93- notifier .clusterChanged (new ClusterChangedEvent ("_test" , state , previous ));
92+ // no longer master
93+ newState = ClusterState .builder (new ClusterName ("_name" ))
94+ .metaData (metaData )
95+ .nodes (DiscoveryNodes .builder ()
96+ .add (new DiscoveryNode ("_node_id" , new TransportAddress (InetAddress .getLoopbackAddress (), 9300 ), Version .CURRENT )))
97+ .build ();
98+ notifier .clusterChanged (new ClusterChangedEvent ("_test" , newState , previous ));
9499 verifyNoMoreInteractions (auditor );
95100 }
96101
97102 public void testClusterChanged_warning () {
98103 MlAssignmentNotifier notifier = new MlAssignmentNotifier (auditor , threadPool , configMigrator , clusterService );
99- notifier .onMaster ();
100104
101105 ClusterState previous = ClusterState .builder (new ClusterName ("_name" ))
102106 .metaData (MetaData .builder ().putCustom (PersistentTasksCustomMetaData .TYPE ,
@@ -106,21 +110,31 @@ public void testClusterChanged_warning() {
106110 PersistentTasksCustomMetaData .Builder tasksBuilder = PersistentTasksCustomMetaData .builder ();
107111 addJobTask ("job_id" , null , null , tasksBuilder );
108112 MetaData metaData = MetaData .builder ().putCustom (PersistentTasksCustomMetaData .TYPE , tasksBuilder .build ()).build ();
109- ClusterState state = ClusterState .builder (new ClusterName ("_name" ))
113+ ClusterState newState = ClusterState .builder (new ClusterName ("_name" ))
110114 .metaData (metaData )
115+ // set local node master
116+ .nodes (DiscoveryNodes .builder ()
117+ .add (new DiscoveryNode ("_node_id" , new TransportAddress (InetAddress .getLoopbackAddress (), 9200 ), Version .CURRENT ))
118+ .localNodeId ("_node_id" )
119+ .masterNodeId ("_node_id" ))
111120 .build ();
112- notifier .clusterChanged (new ClusterChangedEvent ("_test" , state , previous ));
121+ notifier .clusterChanged (new ClusterChangedEvent ("_test" , newState , previous ));
113122 verify (auditor , times (1 )).warning (eq ("job_id" ), any ());
114- verify (configMigrator , times (1 )).migrateConfigsWithoutTasks (eq (state ), any ());
123+ verify (configMigrator , times (1 )).migrateConfigsWithoutTasks (eq (newState ), any ());
124+
125+ // no longer master
126+ newState = ClusterState .builder (new ClusterName ("_name" ))
127+ .metaData (metaData )
128+ .nodes (DiscoveryNodes .builder ()
129+ .add (new DiscoveryNode ("_node_id" , new TransportAddress (InetAddress .getLoopbackAddress (), 9200 ), Version .CURRENT )))
130+ .build ();
115131
116- notifier .offMaster ();
117- notifier .clusterChanged (new ClusterChangedEvent ("_test" , state , previous ));
132+ notifier .clusterChanged (new ClusterChangedEvent ("_test" , newState , previous ));
118133 verifyNoMoreInteractions (auditor );
119134 }
120135
121136 public void testClusterChanged_noPersistentTaskChanges () {
122137 MlAssignmentNotifier notifier = new MlAssignmentNotifier (auditor , threadPool , configMigrator , clusterService );
123- notifier .onMaster ();
124138
125139 PersistentTasksCustomMetaData .Builder tasksBuilder = PersistentTasksCustomMetaData .builder ();
126140 addJobTask ("job_id" , null , null , tasksBuilder );
@@ -129,14 +143,26 @@ public void testClusterChanged_noPersistentTaskChanges() {
129143 .metaData (metaData )
130144 .build ();
131145
132- ClusterState current = ClusterState .builder (new ClusterName ("_name" ))
146+ ClusterState newState = ClusterState .builder (new ClusterName ("_name" ))
133147 .metaData (metaData )
148+ // set local node master
149+ .nodes (DiscoveryNodes .builder ()
150+ .add (new DiscoveryNode ("_node_id" , new TransportAddress (InetAddress .getLoopbackAddress (), 9200 ), Version .CURRENT ))
151+ .localNodeId ("_node_id" )
152+ .masterNodeId ("_node_id" ))
134153 .build ();
135154
136- notifier .clusterChanged (new ClusterChangedEvent ("_test" , current , previous ));
137- verify (configMigrator , never ()).migrateConfigsWithoutTasks (any (), any ());
155+ notifier .clusterChanged (new ClusterChangedEvent ("_test" , newState , previous ));
156+ verify (configMigrator , times (1 )).migrateConfigsWithoutTasks (any (), any ());
157+ verifyNoMoreInteractions (auditor );
138158
139- notifier .offMaster ();
140- verify (configMigrator , never ()).migrateConfigsWithoutTasks (any (), any ());
159+ // no longer master
160+ newState = ClusterState .builder (new ClusterName ("_name" ))
161+ .metaData (metaData )
162+ .nodes (DiscoveryNodes .builder ()
163+ .add (new DiscoveryNode ("_node_id" , new TransportAddress (InetAddress .getLoopbackAddress (), 9200 ), Version .CURRENT )))
164+ .build ();
165+ notifier .clusterChanged (new ClusterChangedEvent ("_test" , newState , previous ));
166+ verifyNoMoreInteractions (configMigrator );
141167 }
142168}
0 commit comments