コード例 #1
0
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,
        )
コード例 #2
0
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")