def fake_controller_setup( enf_controller=None, enf_stats_controller=None, startup_flow_controller=None, check_quota_controller=None, setup_flows_request=None, check_quota_request=None, ): """ Immitate contoller restart. This is done by manually setting contoller init fields back to False, and restarting the startup stats controller(optional) If no stats controller is given this means a clean restart, if clean restart flag is not set fail the test case. """ if setup_flows_request is None: setup_flows_request = SetupPolicyRequest( requests=[], epoch=global_epoch, ) if startup_flow_controller: startup_flow_controller._flows_received = False startup_flow_controller._table_flows.clear() hub.spawn(startup_flow_controller._poll_startup_flows, 1) else: TestCase().assertEqual(enf_controller._clean_restart, True) if enf_stats_controller: TestCase().assertEqual(enf_stats_controller._clean_restart, True) enf_controller.init_finished = False TestCase().assertEqual( setup_controller( enf_controller, setup_flows_request, ), SetupFlowsResult.SUCCESS, ) if enf_stats_controller: enf_stats_controller.init_finished = False enf_stats_controller.cleanup_state() TestCase().assertEqual( setup_controller( enf_stats_controller, setup_flows_request, ), SetupFlowsResult.SUCCESS, ) if check_quota_controller: check_quota_controller.init_finished = False if check_quota_request is None: check_quota_request = UpdateSubscriberQuotaStateRequest( requests=[], epoch=global_epoch, ) TestCase().assertEqual( setup_controller( check_quota_controller, check_quota_request, ), SetupFlowsResult.SUCCESS, )
def update_quota(client, args): update = SubscriberQuotaUpdate(sid=SIDUtils.to_pb(args.imsi), mac_addr=args.mac, update_type=args.update_type) request = UpdateSubscriberQuotaStateRequest(updates=[update], ) res = client.UpdateSubscriberQuotaState(request) if res is None: print("Error updating check quota flows")