def test_mark_lb_and_listener_active_in_db(self, mock_generate_uuid,
                                               mock_LOG, mock_get_session,
                                               mock_loadbalancer_repo_update,
                                               mock_listener_repo_update,
                                               mock_amphora_repo_update,
                                               mock_amphora_repo_delete):

        mark_lb_and_listener_active = (
            database_tasks.MarkLBAndListenerActiveInDB())
        mark_lb_and_listener_active.execute(self.loadbalancer_mock,
                                            self.listener_mock)

        repo.ListenerRepository.update.assert_called_once_with(
            'TEST', LISTENER_ID, provisioning_status=constants.ACTIVE)
        repo.LoadBalancerRepository.update.assert_called_once_with(
            'TEST', LB_ID, provisioning_status=constants.ACTIVE)

        # Test the revert

        mock_loadbalancer_repo_update.reset_mock()
        mock_listener_repo_update.reset_mock()

        mark_lb_and_listener_active.revert(self.loadbalancer_mock,
                                           self.listener_mock)

        repo.ListenerRepository.update.assert_called_once_with(
            'TEST', LISTENER_ID, provisioning_status=constants.ERROR)
        repo.LoadBalancerRepository.update.assert_called_once_with(
            'TEST', LB_ID, provisioning_status=constants.ERROR)
Exemple #2
0
    def get_create_health_monitor_flow(self):
        """Create a flow to create a health monitor

        :returns: The flow for creating a health monitor
        """
        create_hm_flow = linear_flow.Flow(constants.CREATE_HEALTH_MONITOR_FLOW)
        create_hm_flow.add(amphora_driver_tasks.ListenerUpdate(
            requires=[constants.LISTENER, constants.VIP]))
        create_hm_flow.add(database_tasks.MarkLBAndListenerActiveInDB(
            requires=[constants.LOADBALANCER, constants.LISTENER]))

        return create_hm_flow
Exemple #3
0
    def get_create_pool_flow(self):
        """Create a flow to create a pool

        :returns: The flow for creating a pool
        """
        create_pool_flow = linear_flow.Flow(constants.CREATE_POOL_FLOW)
        create_pool_flow.add(
            amphora_driver_tasks.ListenerUpdate(
                requires=[constants.LISTENER, constants.VIP]))
        create_pool_flow.add(
            database_tasks.MarkLBAndListenerActiveInDB(
                requires=[constants.LOADBALANCER, constants.LISTENER]))

        return create_pool_flow
Exemple #4
0
    def get_delete_health_monitor_flow(self):
        """Create a flow to delete a health monitor

        :returns: The flow for deleting a health monitor
        """
        delete_hm_flow = linear_flow.Flow(constants.DELETE_HEALTH_MONITOR_FLOW)
        delete_hm_flow.add(model_tasks.
                           DeleteModelObject(rebind={constants.OBJECT:
                                                     constants.HEALTH_MON}))
        delete_hm_flow.add(amphora_driver_tasks.ListenerUpdate(
            requires=[constants.LISTENER, constants.VIP]))
        delete_hm_flow.add(database_tasks.DeleteHealthMonitorInDB(
            requires=constants.POOL_ID))
        delete_hm_flow.add(database_tasks.MarkLBAndListenerActiveInDB(
            requires=[constants.LOADBALANCER, constants.LISTENER]))

        return delete_hm_flow
Exemple #5
0
    def get_update_health_monitor_flow(self):
        """Create a flow to update a health monitor

        :returns: The flow for updating a health monitor
        """
        update_hm_flow = linear_flow.Flow(constants.UPDATE_HEALTH_MONITOR_FLOW)
        update_hm_flow.add(model_tasks.
                           UpdateAttributes(
                               rebind={constants.OBJECT: constants.HEALTH_MON},
                               requires=[constants.UPDATE_DICT]))
        update_hm_flow.add(amphora_driver_tasks.ListenerUpdate(
            requires=[constants.LISTENER, constants.VIP]))
        update_hm_flow.add(database_tasks.UpdateHealthMonInDB(
            requires=[constants.HEALTH_MON, constants.UPDATE_DICT]))
        update_hm_flow.add(database_tasks.MarkLBAndListenerActiveInDB(
            requires=[constants.LOADBALANCER, constants.LISTENER]))

        return update_hm_flow
Exemple #6
0
    def get_delete_pool_flow(self):
        """Create a flow to delete a pool

        :returns: The flow for deleting a pool
        """
        delete_pool_flow = linear_flow.Flow(constants.DELETE_POOL_FLOW)
        delete_pool_flow.add(
            model_tasks.DeleteModelObject(
                rebind={constants.OBJECT: constants.POOL}))
        delete_pool_flow.add(
            amphora_driver_tasks.ListenerUpdate(
                requires=[constants.LISTENER, constants.VIP]))
        delete_pool_flow.add(
            database_tasks.DeletePoolInDB(requires=constants.POOL))
        delete_pool_flow.add(
            database_tasks.MarkLBAndListenerActiveInDB(
                requires=[constants.LOADBALANCER, constants.LISTENER]))

        return delete_pool_flow
Exemple #7
0
    def get_update_listener_flow(self):
        """Create a flow to update a listener

        :returns: The flow for updating a listener
        """
        update_listener_flow = linear_flow.Flow(constants.UPDATE_LISTENER_FLOW)
        update_listener_flow.add(
            model_tasks.UpdateAttributes(
                rebind={constants.OBJECT: constants.LISTENER},
                requires=[constants.UPDATE_DICT]))
        update_listener_flow.add(
            amphora_driver_tasks.ListenerUpdate(
                requires=[constants.LISTENER, constants.VIP]))
        update_listener_flow.add(
            database_tasks.UpdateListenerInDB(
                requires=[constants.LISTENER, constants.UPDATE_DICT]))
        update_listener_flow.add(
            database_tasks.MarkLBAndListenerActiveInDB(
                requires=[constants.LOADBALANCER, constants.LISTENER]))

        return update_listener_flow
Exemple #8
0
    def get_create_member_flow(self):
        """Create a flow to create a member

        :returns: The flow for creating a member
        """
        create_member_flow = linear_flow.Flow(constants.CREATE_MEMBER_FLOW)
        create_member_flow.add(
            network_tasks.CalculateDelta(requires=constants.LOADBALANCER,
                                         provides=constants.DELTAS))
        create_member_flow.add(
            network_tasks.HandleNetworkDeltas(requires=constants.DELTAS,
                                              provides=constants.ADDED_PORTS))
        create_member_flow.add(
            amphora_driver_tasks.AmphoraePostNetworkPlug(
                requires=(constants.LOADBALANCER, constants.ADDED_PORTS)))
        create_member_flow.add(
            amphora_driver_tasks.ListenerUpdate(requires=(constants.LISTENER,
                                                          constants.VIP)))
        create_member_flow.add(
            database_tasks.MarkLBAndListenerActiveInDB(
                requires=(constants.LOADBALANCER, constants.LISTENER)))

        return create_member_flow