def test_health_monitor_update_with_flavor_task(self, mock_hm_name):
     mock_hm_name.return_value = a10constants.MOCK_HM_ID
     flavor = {
         "health_monitor": {
             "retry": 5,
             "method": {
                 "http": {
                     "http_response_code": "201"
                 }
             }
         }
     }
     update_dict = {}
     hm_task = task.UpdateHealthMonitor()
     hm_task.axapi_client = self.client_mock
     mock_hm = copy.deepcopy(HM)
     mock_hm.delay = 30
     mock_hm.name = "hm1"
     hm_task.execute(LISTENERS,
                     mock_hm,
                     VTHUNDER,
                     update_dict,
                     flavor=flavor)
     self.client_mock.slb.hm.update.assert_called_with(
         a10constants.MOCK_HM_ID,
         self.client_mock.slb.hm.TCP,
         mock_hm.delay,
         mock_hm.timeout,
         mock_hm.rise_threshold,
         method=None,
         port=mock.ANY,
         url=None,
         post_data=None,
         expect_code=None,
         **FLAVOR_ARGS)
 def test_health_monitor_update_task(self, mock_hm_name):
     mock_hm_name.return_value = a10constants.MOCK_HM_ID
     hm_task = task.UpdateHealthMonitor()
     hm_task.axapi_client = self.client_mock
     update_dict = {'delay': '10'}
     mock_hm = copy.deepcopy(HM)
     hm_task.execute(LISTENERS, mock_hm, VTHUNDER, update_dict)
     self.client_mock.slb.hm.update.assert_called_with(
         a10constants.MOCK_HM_ID,
         self.client_mock.slb.hm.TCP,
         mock_hm.delay,
         mock_hm.timeout,
         mock_hm.rise_threshold,
         method=None,
         port=mock.ANY,
         url=None,
         expect_code=None,
         post_data=None,
         **ARGS)
     self.conf.config(group=a10constants.HEALTH_MONITOR_SECTION,
                      post_data='abc=1')
     hm_task.execute(LISTENERS, mock_hm, VTHUNDER, update_dict)
     self.client_mock.slb.hm.update.assert_called_with(
         a10constants.MOCK_HM_ID,
         self.client_mock.slb.hm.TCP,
         mock_hm.delay,
         mock_hm.timeout,
         mock_hm.rise_threshold,
         method=None,
         port=mock.ANY,
         url=None,
         expect_code=None,
         post_data='abc=1',
         **ARGS)
Exemplo n.º 3
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(
            lifecycle_tasks.HealthMonitorToErrorOnRevertTask(requires=[
                constants.HEALTH_MON, constants.LISTENERS,
                constants.LOADBALANCER
            ]))
        update_hm_flow.add(
            database_tasks.MarkHealthMonitorPendingUpdateInDB(
                requires=constants.HEALTH_MON))
        update_hm_flow.add(
            a10_database_tasks.GetVThunderByLoadBalancer(
                requires=constants.LOADBALANCER,
                provides=a10constants.VTHUNDER))
        update_hm_flow.add(
            a10_database_tasks.GetFlavorData(
                rebind={a10constants.LB_RESOURCE: constants.LOADBALANCER},
                provides=constants.FLAVOR))
        update_hm_flow.add(
            health_monitor_tasks.UpdateHealthMonitor(requires=[
                constants.LISTENERS, constants.HEALTH_MON,
                a10constants.VTHUNDER, constants.UPDATE_DICT, constants.FLAVOR
            ]))
        update_hm_flow.add(
            database_tasks.UpdateHealthMonInDB(
                requires=[constants.HEALTH_MON, constants.UPDATE_DICT]))
        update_hm_flow.add(
            database_tasks.MarkHealthMonitorActiveInDB(
                requires=constants.HEALTH_MON))
        update_hm_flow.add(
            database_tasks.MarkPoolActiveInDB(requires=constants.POOL))
        update_hm_flow.add(
            database_tasks.MarkLBAndListenersActiveInDB(
                requires=[constants.LOADBALANCER, constants.LISTENERS]))
        update_hm_flow.add(
            vthunder_tasks.WriteMemory(
                name=a10constants.WRITE_MEM_FOR_LOCAL_PARTITION,
                requires=(a10constants.VTHUNDER)))
        update_hm_flow.add(
            vthunder_tasks.WriteMemory(
                name=a10constants.WRITE_MEM_FOR_SHARED_PARTITION,
                requires=(a10constants.VTHUNDER,
                          a10constants.WRITE_MEM_SHARED_PART)))
        update_hm_flow.add(
            a10_database_tasks.SetThunderUpdatedAt(
                requires=(a10constants.VTHUNDER)))
        return update_hm_flow
Exemplo n.º 4
0
 def test_health_monitor_update_with_regex_overwrite_flavor_task(self):
     flavor = {
         "health_monitor": {
             "retry":
             5,
             "timeout":
             90,
             "method": {
                 "http": {
                     "http_response_code": "201"
                 }
             },
             "name_expressions": [{
                 "regex": "hm1",
                 "json": {
                     "timeout": 8,
                     "method": {
                         "http": {
                             "http_host": "my.test.com"
                         }
                     }
                 }
             }]
         }
     }
     update_dict = {}
     hm_task = task.UpdateHealthMonitor()
     hm_task.axapi_client = self.client_mock
     mock_hm = copy.deepcopy(HM)
     mock_hm.delay = 30
     mock_hm.name = "hm1"
     hm_task.execute(LISTENERS,
                     mock_hm,
                     VTHUNDER,
                     update_dict,
                     flavor=flavor)
     self.client_mock.slb.hm.update.assert_called_with(
         a10constants.MOCK_HM_ID,
         self.client_mock.slb.hm.TCP,
         mock_hm.delay,
         mock_hm.timeout,
         mock_hm.rise_threshold,
         method=None,
         port=mock.ANY,
         url=None,
         expect_code=None,
         post_data=None,
         **FLAVOR_WITH_REGEX_ARGS)
 def test_health_monitor_update_task(self):
     mock_hm = task.UpdateHealthMonitor()
     mock_hm.axapi_client = self.client_mock
     update_dict = {'delay': '10'}
     hm = copy.deepcopy(HM)
     mock_hm.execute(LISTENERS, hm, VTHUNDER, update_dict)
     self.client_mock.slb.hm.update.assert_called_with(
         a10constants.MOCK_HM_ID,
         self.client_mock.slb.hm.TCP,
         hm.delay,
         hm.timeout,
         hm.rise_threshold,
         method=None,
         port=mock.ANY,
         url=None,
         expect_code=None,
         axapi_args=ARGS)
Exemplo n.º 6
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(
            lifecycle_tasks.HealthMonitorToErrorOnRevertTask(requires=[
                constants.HEALTH_MON, constants.LISTENERS,
                constants.LOADBALANCER
            ]))
        update_hm_flow.add(
            database_tasks.MarkHealthMonitorPendingUpdateInDB(
                requires=constants.HEALTH_MON))
        update_hm_flow.add(
            a10_database_tasks.GetVThunderByLoadBalancer(
                requires=constants.LOADBALANCER,
                provides=a10constants.VTHUNDER))
        update_hm_flow.add(
            health_monitor_tasks.UpdateHealthMonitor(requires=[
                constants.LISTENERS, constants.HEALTH_MON,
                a10constants.VTHUNDER, constants.UPDATE_DICT
            ]))
        update_hm_flow.add(
            database_tasks.UpdateHealthMonInDB(
                requires=[constants.HEALTH_MON, constants.UPDATE_DICT]))
        update_hm_flow.add(
            database_tasks.MarkHealthMonitorActiveInDB(
                requires=constants.HEALTH_MON))
        update_hm_flow.add(
            database_tasks.MarkPoolActiveInDB(requires=constants.POOL))
        update_hm_flow.add(
            database_tasks.MarkLBAndListenersActiveInDB(
                requires=[constants.LOADBALANCER, constants.LISTENERS]))
        update_hm_flow.add(
            vthunder_tasks.WriteMemory(requires=a10constants.VTHUNDER))
        return update_hm_flow