Пример #1
0
    def fill_tracker_topologies(self):
        def create_mock_execution_state(role):
            estate = protoEState.ExecutionState()
            estate.role = role
            return estate

        self.topology1 = Topology('top_name1', 'mock_name1')
        self.topology1.cluster = 'cluster1'
        self.topology1.environ = 'env1'
        self.topology1.execution_state = create_mock_execution_state('mark')

        self.topology2 = Topology('top_name2', 'mock_name1')
        self.topology2.cluster = 'cluster1'
        self.topology2.environ = 'env1'
        self.topology2.execution_state = create_mock_execution_state('bob')

        self.topology3 = Topology('top_name3', 'mock_name1')
        self.topology3.cluster = 'cluster1'
        self.topology3.environ = 'env2'
        self.topology3.execution_state = create_mock_execution_state('tom')

        self.topology4 = Topology('top_name4', 'mock_name2')
        self.topology4.cluster = 'cluster2'
        self.topology4.environ = 'env1'

        self.topology5 = Topology('top_name5', 'mock_name2')
        self.topology5.cluster = 'cluster2'
        self.topology5.environ = 'env2'
        self.tracker.topologies = [
            self.topology1, self.topology2, self.topology3, self.topology4,
            self.topology5
        ]
Пример #2
0
 def get_topologies_for_state_location_side_effect(name):
     if name == 'mock_name1':
         return [
             Topology('top_name1', 'mock_name1'),
             Topology('top_name2', 'mock_name1')
         ]
     if name == 'mock_name2':
         return [
             Topology('top_name3', 'mock_name2'),
             Topology('top_name4', 'mock_name2')
         ]
     return []
Пример #3
0
 def fill_tracker_topologies(self):
     self.topology1 = Topology('top_name1', 'mock_name1')
     self.topology1.cluster = 'cluster1'
     self.topology1.environ = 'env1'
     self.topology2 = Topology('top_name2', 'mock_name1')
     self.topology2.cluster = 'cluster1'
     self.topology2.environ = 'env1'
     self.topology3 = Topology('top_name3', 'mock_name1')
     self.topology3.cluster = 'cluster1'
     self.topology3.environ = 'env2'
     self.topology4 = Topology('top_name4', 'mock_name2')
     self.topology4.cluster = 'cluster2'
     self.topology4.environ = 'env1'
     self.topology5 = Topology('top_name5', 'mock_name2')
     self.topology5.cluster = 'cluster2'
     self.topology5.environ = 'env2'
     self.tracker.topologies = [
         self.topology1, self.topology2, self.topology3, self.topology4,
         self.topology5
     ]
Пример #4
0
    def addNewTopology(self, state_manager, topologyName):
        """
    Adds a topology in the local cache, and sets a watch
    on any changes on the topology.
    """
        topology = Topology(topologyName, state_manager.name)
        Log.info("Adding new topology: %s, state_manager: %s", topologyName,
                 state_manager.name)
        self.topologies.append(topology)

        # Register a watch on topology and change
        # the topologyInfo on any new change.
        topology.register_watch(self.setTopologyInfo)

        def on_topology_pplan(data):
            """watch physical plan"""
            Log.info("Watch triggered for topology pplan: " + topologyName)
            topology.set_physical_plan(data)
            if not data:
                Log.debug("No data to be set")

        def on_topology_execution_state(data):
            """watch execution state"""
            Log.info("Watch triggered for topology execution state: " +
                     topologyName)
            topology.set_execution_state(data)
            if not data:
                Log.debug("No data to be set")

        def on_topology_tmaster(data):
            """set tmaster"""
            Log.info("Watch triggered for topology tmaster: " + topologyName)
            topology.set_tmaster(data)
            if not data:
                Log.debug("No data to be set")

        def on_topology_scheduler_location(data):
            """set scheduler location"""
            Log.info("Watch triggered for topology scheduler location: " +
                     topologyName)
            topology.set_scheduler_location(data)
            if not data:
                Log.debug("No data to be set")

        # Set watches on the pplan, execution_state, tmaster and scheduler_location.
        state_manager.get_pplan(topologyName, on_topology_pplan)
        state_manager.get_execution_state(topologyName,
                                          on_topology_execution_state)
        state_manager.get_tmaster(topologyName, on_topology_tmaster)
        state_manager.get_scheduler_location(topologyName,
                                             on_topology_scheduler_location)
Пример #5
0
 def setUp(self):
     self.state_manager_name = "test_state_manager_name"
     self.topology = Topology(MockProto.topology_name,
                              self.state_manager_name)