Ejemplo n.º 1
0
def cli(command, name_or_id):
    """
    ls     # Lists workspaces                                                .
    use    # Remember the workspace you want to work on                      .
    """
    rest_crud.set_current_command()
    if not command:
        print("command is mandatory. Please see neoload workspaces --help")
        return
    if user_data.is_version_lower_than('2.5.0'):
        print("ERROR: This commands works only since Neoload Web 2.5.0")
        return
    rest_crud.set_current_sub_command(command)
    if name_or_id == "cur":
        name_or_id = user_data.get_meta(meta_key)
    is_id = tools.is_mongodb_id(name_or_id)
    # avoid to make two requests if we have not id.
    if command == "ls":
        # The endpoint GET /workspaces/{workspaceId} is not yet implemented
        ws_filter = None
        if name_or_id is not None: ws_filter = "id={}".format(name_or_id)
        tools.ls(None, True, __resolver, ws_filter)
        return

    __id = tools.get_id(name_or_id, __resolver, is_id)

    if command == "use":
        tools.use(__id, meta_key, __resolver)
Ejemplo n.º 2
0
def cli(name_or_id, scenario, detached, name, description, as_code, web_vu,
        sap_vu, citrix_vu, return_0):
    """run a test"""
    if not name_or_id or name_or_id == "cur":
        name_or_id = user_data.get_meta(test_settings.meta_key)

    is_id = tools.is_id(name_or_id)
    test_settings_json = tools.get_named_or_id(name_or_id, is_id,
                                               test_settings.__resolver)
    _id = test_settings_json['id']

    if scenario:
        rest_crud.patch('v2/test_result/' + _id, {'scenarioName': scenario})

    naming_pattern = name if name else test_settings_json[
        'testResultNamingPattern']
    if not naming_pattern:
        naming_pattern = "#${runID}"
    naming_pattern = naming_pattern.replace(
        '${runID}', str(test_settings_json['nextRunId']))

    # Sorry for that, post data are in the query string :'( :'(
    post_result = rest_crud.post(
        'v2/tests/%s/start?%s' %
        (_id,
         create_data(naming_pattern, description, as_code, web_vu, sap_vu,
                     citrix_vu)), {})
    user_data.set_meta(test_settings.meta_key, _id)
    user_data.set_meta(test_results.meta_key, post_result['resultId'])
    if not detached:
        running_tools.wait(post_result['resultId'], not return_0)
    else:
        tools.print_json(post_result)
Ejemplo n.º 3
0
def cli(command, name_or_id):
    """
    ls     # Lists workspaces                                                .
    use    # Remember the workspace you want to work on                      .
    """
    if not command:
        print("command is mandatory. Please see neoload workspaces --help")
        return
    if user_data.is_version_lower_than('2.5.0'):
        print("ERROR: This commands works only since Neoload Web 2.5.0")
        return
    rest_crud.set_current_sub_command(command)
    if name_or_id == "cur":
        name_or_id = user_data.get_meta(meta_key)
    is_id = tools.is_mongodb_id(name_or_id)
    # avoid to make two requests if we have not id.
    if command == "ls":
        # The endpoint GET /workspaces/{workspaceId} is not yet implemented
        if name_or_id is not None:
            print(
                "ERROR: Unable to display only one workspace. API endoint not yet implemented. Please use command neoload workspaces ls without name or ID"
            )
        tools.ls(name_or_id, is_id, __resolver)
        return

    __id = tools.get_id(name_or_id, __resolver, is_id)

    if command == "use":
        tools.use(__id, meta_key, __resolver)
Ejemplo n.º 4
0
def cli(name_or_id, return_0):
    """Wait the end of test"""
    if not name_or_id or name_or_id == "cur":
        name_or_id = user_data.get_meta(test_results.meta_key)

    id_ = tools.get_id(name_or_id, test_results.__resolver)

    running_tools.wait(id_, not return_0)
Ejemplo n.º 5
0
def use(name, meta_key, resolver):
    """Set the default test settings"""
    if name:
        user_data.set_meta(meta_key, name)
    else:
        default_id = user_data.get_meta(meta_key)
        for (name, settings_id) in resolver.get_map().items():
            prefix = '* ' if default_id == settings_id else '  '
            print(prefix + name + "\t: " + settings_id)
Ejemplo n.º 6
0
def cli(name, force):
    if not name or name == "cur":
        name = user_data.get_meta(test_results.meta_key)
    if not name:
        raise cli_exception.CliException('No test id is provided')

    if not tools.is_id(name):
        name = test_results.__resolver.resolve_name(name)

    running_tools.stop(name, force)
Ejemplo n.º 7
0
def get_id_by_name_or_id(name):
    if name == "cur":
        name = user_data.get_meta(meta_key)
    is_id = tools.is_id(name)

    __id = tools.get_id(name, __resolver, is_id)

    if not __id:
        __id = user_data.get_meta_required(meta_key)

    return __id
Ejemplo n.º 8
0
def get_endpoint(name: str):
    if name == "cur":
        name = user_data.get_meta(meta_key)
    is_id = tools.is_id(name)

    __id = tools.get_id(name, test_results.__resolver, is_id)

    if not __id:
        __id = user_data.get_meta_required(meta_key)

    return '#!result/%s/overview' % __id
Ejemplo n.º 9
0
def cli(command, name, rename, description, scenario, controller_zone_id,
        lg_zone_ids, naming_pattern):
    """
    ls     # Lists test settings                                             .
    create # Create a new test settings                                      .
    put    # Update all fields of a test settings                            .
    patch  # Update only the selected fields of a test settings              .
    delete # Remove a test settings and all associated test results          .
    use    # Remember the test settings you want to work on. Example : neoload
    |        test-settings use MyTest ; neoload test-settings delete         .
    """
    if not command:
        print("command is mandatory. Please see neoload tests-settings --help")
        return
    rest_crud.set_current_sub_command(command)
    if name == "cur":
        name = user_data.get_meta(meta_key)
    is_id = tools.is_id(name)
    # avoid to make two requests if we have not id.
    if command == "ls":
        tools.ls(name, is_id, __resolver)
        return
    elif command == "create":
        id_created = create(
            create_json(name, description, scenario, controller_zone_id,
                        lg_zone_ids, naming_pattern))
        user_data.set_meta(meta_key, id_created)
        return

    __id = tools.get_id(name, __resolver, is_id)

    if command == "use":
        tools.use(__id, meta_key, __resolver)
        return

    if not __id:
        __id = user_data.get_meta_required(meta_key)

    if command == "put":
        put(
            __id,
            create_json(rename, description, scenario, controller_zone_id,
                        lg_zone_ids, naming_pattern))
        user_data.set_meta(meta_key, __id)
    elif command == "patch":
        patch(
            __id,
            create_json(rename, description, scenario, controller_zone_id,
                        lg_zone_ids, naming_pattern))
        user_data.set_meta(meta_key, __id)
    elif command == "delete":
        delete(__id)
        user_data.set_meta(meta_key, None)
Ejemplo n.º 10
0
def parse_to_id(name_or_id):
    val = name_or_id
    if val == "cur":
        val = user_data.get_meta(meta_key)
    is_id = tools.is_id(val)

    __id = tools.get_id(val, __resolver, is_id)

    if not __id:
        __id = user_data.get_meta_required(meta_key)

    return __id
Ejemplo n.º 11
0
def cli(command, name, rename, description, quality_status, junit_file, file,
        filter):
    """
    ls       # Lists test results                                            .
    summary  # Display a summary of the result : SLAs and statistics         .
    junitsla # Output SLA results to a file with junit format                .
    put      # Update the name, description or quality-status of the result  .
    delete   # Remove a result                                               .
    use      # Remember the test result you want to work on. Example : neoload
    |          test-results use MyTest#1 ; neoload test-results summary      .
    """
    rest_crud.set_current_command()
    if not command:
        print("command is mandatory. Please see neoload tests-results --help")
        return
    rest_crud.set_current_sub_command(command)
    if name == "cur":
        name = user_data.get_meta(meta_key)
    is_id = tools.is_id(name)
    # avoid to make two requests if we have not id.
    if command == "ls":
        tools.ls(name, is_id, __resolver, filter,
                 ['project', 'status', 'author', 'sort'])
        return

    __id = tools.get_id(name, __resolver, is_id)

    if command == "use":
        tools.use(__id, meta_key, __resolver)
        return

    if not __id:
        __id = user_data.get_meta_required(meta_key)

    system_exit = {'message': '', 'code': 0}
    if command == "summary":
        system_exit = summary(__id)
    elif command == "junitsla":
        junit(__id, junit_file)
    elif command == "delete":
        delete(__id)
        user_data.set_meta(meta_key, None)
    else:
        json_data = load_from_file(file) if file else create_json(
            rename, description, quality_status)
        if command == "put":
            put(__id, json_data)
        elif command == "patch":
            patch(__id, json_data)
    if command != "delete":
        user_data.set_meta(meta_key, __id)

    tools.system_exit(system_exit)
Ejemplo n.º 12
0
def cli(command, name_or_id, path):
    """Upload and list scenario from settings"""
    if not name_or_id or name_or_id == "cur":
        name_or_id = user_data.get_meta(test_settings.meta_key)

    if not tools.is_id(name_or_id):
        name_or_id = test_settings.__resolver.resolve_name(name_or_id)

    if command[:2] == "up":
        upload(path, name_or_id)
    elif command == "meta":
        meta_data(name_or_id)
    user_data.set_meta(test_settings.meta_key, name_or_id)
    rest_crud.set_current_sub_command(command)
Ejemplo n.º 13
0
def cli(name_or_id, scenario, detached, name, description, as_code, web_vu,
        sap_vu, citrix_vu, return_0):
    """run a test"""
    rest_crud.set_current_command()
    if not name_or_id or name_or_id == "cur":
        name_or_id = user_data.get_meta(test_settings.meta_key)

    is_id = tools.is_id(name_or_id)
    test_settings_json = tools.get_named_or_id(name_or_id, is_id,
                                               test_settings.__resolver)
    _id = test_settings_json['id']

    if scenario:
        rest_crud.patch(test_settings.get_end_point(_id),
                        {'scenarioName': scenario})

    naming_pattern = name if name else test_settings_json[
        'testResultNamingPattern']
    if not naming_pattern:
        naming_pattern = "#${runID}"
    naming_pattern = naming_pattern.replace(
        '${runID}', str(test_settings_json['nextRunId']))

    hooks.trig("test.start", test_settings_json)

    # Sorry for that, post data are in the query string :'( :'(
    post_result = rest_crud.post(
        test_settings.get_end_point(_id) + '/start?' + create_data(
            naming_pattern, description, as_code, web_vu, sap_vu, citrix_vu),
        {})
    user_data.set_meta(test_settings.meta_key, _id)
    user_data.set_meta(test_results.meta_key, post_result['resultId'])
    # Wait 5 seconds until the test result is created.
    time.sleep(5)
    if not detached:
        running_tools.wait(post_result['resultId'], not return_0)
    else:
        tools.print_json(post_result)
Ejemplo n.º 14
0
def get_workspace():
    return user_data.get_meta('workspace id')