def _create_tuple(body, request_ip):
    """
    Pull the values out of the request body and create a tuple
    representation.
    """
    ## service_object_id, object_name, object_desc, parent_uuid
    ## uuid, username, service_name, event_name, category_name, request_ipaddr
    ## proxy_username, event_data, version, track_history, track_history_code
    prov = None

    try:
        # if you have a UUID, we'll grab value & log the provenance
        if body.get('uuid') is not None:
            prov = ProvTuple(body['uuid'], body['service_name'],
                            body['category_name'], body['event_name'],
                            body['username'], request_ip)
        else:
            prov = ProvTuple(None, body['service_name'], body['category_name'],
                            body['event_name'], body['username'], request_ip)
            prov.service_key = body['service_key']
            prov.object_id = body['object_id']
            prov.object_name = body['object_name']
            prov.object_desc = body['object_desc']
            prov.parent_uuid = body.get('parent_uuid') # optional...
        # optional paremeters - so we're using get()
        prov.proxy_username = body.get('proxy_username')
        prov.event_data = body.get('event_data')
        prov.version = body.get('version')
        prov.track_history = body.get('track_history')
        prov.track_history_code = body.get('track_history_code')
    except KeyError, kerr:
        raise kerr
Esempio n. 2
0
def _create_tuple(body, request_ip):
    """
    Pull the values out of the request body and create a tuple
    representation.
    """
    ## service_object_id, object_name, object_desc, parent_uuid
    ## uuid, username, service_name, event_name, category_name, request_ipaddr
    ## proxy_username, event_data, version, track_history, track_history_code
    prov = None

    try:
        # if you have a UUID, we'll grab value & log the provenance
        if body.get('uuid') is not None:
            prov = ProvTuple(body['uuid'], body['service_name'],
                             body['category_name'], body['event_name'],
                             body['username'], request_ip)
        else:
            prov = ProvTuple(None, body['service_name'], body['category_name'],
                             body['event_name'], body['username'], request_ip)
            prov.service_key = body['service_key']
            prov.object_id = body['object_id']
            prov.object_name = body['object_name']
            prov.object_desc = body['object_desc']
            prov.parent_uuid = body.get('parent_uuid')  # optional...
        # optional paremeters - so we're using get()
        prov.proxy_username = body.get('proxy_username')
        prov.event_data = body.get('event_data')
        prov.version = body.get('version')
        prov.track_history = body.get('track_history')
        prov.track_history_code = body.get('track_history_code')
    except KeyError, kerr:
        raise kerr
def test_all_arguments_validate_default_case():
    """
    Verify that a set of all values works.
    """
    prov = ProvTuple('9090909090', 'DE', 'view', 'list-dir', 'tester',
                '10.0.0.1')
    prov.proxy_username = '******'
    # this will likely fail.
    prov.version = '1.0.1'
    assert prov.has_required_arguments()
    is_valid, details = validate(prov)
    print details
    assert is_valid

    prov.version = '5.5.4rc'
    is_valid, details = validate(prov)
    print details
    assert is_valid

    prov.version = '5.5.4-rc'
    is_valid, details = validate(prov)
    print details
    assert is_valid
def test_all_arguments_validate_default_case():
    """
    Verify that a set of all values works.
    """
    prov = ProvTuple('9090909090', 'DE', 'view', 'list-dir', 'tester',
                     '10.0.0.1')
    prov.proxy_username = '******'
    # this will likely fail.
    prov.version = '1.0.1'
    assert prov.has_required_arguments()
    is_valid, details = validate(prov)
    print details
    assert is_valid

    prov.version = '5.5.4rc'
    is_valid, details = validate(prov)
    print details
    assert is_valid

    prov.version = '5.5.4-rc'
    is_valid, details = validate(prov)
    print details
    assert is_valid
def test_fail_validate_for_any_field():
    """
    Verify that regex is catching invalid characters for all other
    fields.
    """
    prov = ProvTuple('65099091929', 'DWAP', 'create', 'make-dir', 'tester',
                '10.0.66.1')
    assert prov.has_required_arguments()
    tmp = prov.service_name
    prov.service_name = 'D%6^'
    is_valid, details = validate(prov)
    print details
    assert not is_valid

    prov.service_name = tmp
    tmp = prov.category_name
    prov.category_name = 'cre&'
    is_valid, details = validate(prov)
    print details
    assert not is_valid

    prov.category_name = tmp
    tmp = prov.event_name
    prov.event_name = 'make-*'
    is_valid, details = validate(prov)
    print details
    assert not is_valid

    prov.event_name = tmp
    tmp = prov.username
    prov.username = '******'
    is_valid, details = validate(prov)
    print details
    assert not is_valid
    prov.username = '******'
    is_valid, details = validate(prov)
    print details
    assert not is_valid


    prov.username = tmp
    prov.proxy_username = '******'
    is_valid, details = validate(prov)
    print details
    assert not is_valid

    prov.proxy_username = None
    prov.version = '5.5.4:rc'
    is_valid, details = validate(prov)
    print details
    assert not is_valid

    prov.version = '5.5.4;rc'
    is_valid, details = validate(prov)
    print details
    assert not is_valid

    prov.version = '5.5.4 (rc)'
    is_valid, details = validate(prov)
    print details
    assert not is_valid

    prov.version = None

    tmp = prov.event_name
    prov.event_name = 'solve-{rubix}'
    is_valid, details = validate(prov)
    print details
    assert not is_valid
    prov.event_name = 'make|rubix'
    is_valid, details = validate(prov)
    print details
    assert not is_valid
    prov.event_name = 'solve\\kjlkj'
    is_valid, details = validate(prov)
    print details
    assert not is_valid
    prov.event_name = 'solve/rubics'
    is_valid, details = validate(prov)
    print details
    assert not is_valid
    prov.event_name = 'life=rubics'
    is_valid, details = validate(prov)
    print details
    assert not is_valid
    prov.event_name = 'dalek+artoo'
    is_valid, details = validate(prov)
    print details
    assert not is_valid
    prov.event_name = '`reality`'
    is_valid, details = validate(prov)
    print details
    assert not is_valid
    prov.event_name = '~millions'
    is_valid, details = validate(prov)
    print details
    assert not is_valid
    prov.event_name = 'millions?'
    is_valid, details = validate(prov)
    print details
    assert not is_valid
    prov.event_name = '<millions>'
    is_valid, details = validate(prov)
    print details
    assert not is_valid
    prov.event_name = 'millions, /really'
    is_valid, details = validate(prov)
    print details
    assert not is_valid
def test_fail_validate_for_any_field():
    """
    Verify that regex is catching invalid characters for all other
    fields.
    """
    prov = ProvTuple('65099091929', 'DWAP', 'create', 'make-dir', 'tester',
                     '10.0.66.1')
    assert prov.has_required_arguments()
    tmp = prov.service_name
    prov.service_name = 'D%6^'
    is_valid, details = validate(prov)
    print details
    assert not is_valid

    prov.service_name = tmp
    tmp = prov.category_name
    prov.category_name = 'cre&'
    is_valid, details = validate(prov)
    print details
    assert not is_valid

    prov.category_name = tmp
    tmp = prov.event_name
    prov.event_name = 'make-*'
    is_valid, details = validate(prov)
    print details
    assert not is_valid

    prov.event_name = tmp
    tmp = prov.username
    prov.username = '******'
    is_valid, details = validate(prov)
    print details
    assert not is_valid
    prov.username = '******'
    is_valid, details = validate(prov)
    print details
    assert not is_valid

    prov.username = tmp
    prov.proxy_username = '******'
    is_valid, details = validate(prov)
    print details
    assert not is_valid

    prov.proxy_username = None
    prov.version = '5.5.4:rc'
    is_valid, details = validate(prov)
    print details
    assert not is_valid

    prov.version = '5.5.4;rc'
    is_valid, details = validate(prov)
    print details
    assert not is_valid

    prov.version = '5.5.4 (rc)'
    is_valid, details = validate(prov)
    print details
    assert not is_valid

    prov.version = None

    tmp = prov.event_name
    prov.event_name = 'solve-{rubix}'
    is_valid, details = validate(prov)
    print details
    assert not is_valid
    prov.event_name = 'make|rubix'
    is_valid, details = validate(prov)
    print details
    assert not is_valid
    prov.event_name = 'solve\\kjlkj'
    is_valid, details = validate(prov)
    print details
    assert not is_valid
    prov.event_name = 'solve/rubics'
    is_valid, details = validate(prov)
    print details
    assert not is_valid
    prov.event_name = 'life=rubics'
    is_valid, details = validate(prov)
    print details
    assert not is_valid
    prov.event_name = 'dalek+artoo'
    is_valid, details = validate(prov)
    print details
    assert not is_valid
    prov.event_name = '`reality`'
    is_valid, details = validate(prov)
    print details
    assert not is_valid
    prov.event_name = '~millions'
    is_valid, details = validate(prov)
    print details
    assert not is_valid
    prov.event_name = 'millions?'
    is_valid, details = validate(prov)
    print details
    assert not is_valid
    prov.event_name = '<millions>'
    is_valid, details = validate(prov)
    print details
    assert not is_valid
    prov.event_name = 'millions, /really'
    is_valid, details = validate(prov)
    print details
    assert not is_valid