forklift icon indicating copy to clipboard operation
forklift copied to clipboard

instructions unclear on running robottelo

Open thomasmckay opened this issue 6 years ago • 5 comments

I have no idea from the docs how to run robottelo. I'd like instructions to include:

  • sample boxes section (variables, etc.)
  • description of available variables
  • details on how this is meant to run (is it a separate vm or meant to run on existing server?)
  • how to work with a devel environment
  • how to work with the robottelo tests themselves (ie. how do i add/mod a test and re-run?)

thomasmckay avatar Jun 15 '18 14:06 thomasmckay

I agree the documentation/examples needs to be improved. For the record, though, here's how I've got it ~working~.

A playbook I put in user_playbooks (I think we should go ahead and add this as a playbook to forklift):

---
- hosts: all
  become: true
  roles:
    - robottelo

In boxes, use a box you already have up (possibly add this to the example local boxes file?):

centos7-katello-3.7:
  box: centos7
  ansible:
    playbook: 'user_playbooks/robottelo.yml'

And run vagrant provision centos7-katello-3.7. An alternative is to copy the playbook in question and add the robottelo role to the end; however, that's not really as feasible with the generated release boxes.

All the possible options are found in forklift/roles/robottelo/defaults/main.yml like every other Ansible role, though this requires some prior knowledge of Ansible. I don't know the answer to your last point. :)

akofink avatar Jun 18 '18 12:06 akofink

And, this fails with the following (Full log):

TASK [robottelo : Run tests] ***************************************************
Monday 18 June 2018  08:12:47 -0400 (0:00:00.458)       0:03:47.086 ***********
fatal: [centos7-katello-3.7]: FAILED! => {
    "changed": true,
    "cmd": [
        "/root/robottelo/venv/bin/py.test",
        "--junit-xml=results.xml",
        "-m",
        "not stubbed",
        "tests/foreman/endtoend/test_api_endtoend.py"
    ],
    "delta": "0:00:02.736914",
    "end": "2018-06-18 12:12:47.631643",
    "rc": 4,
    "start": "2018-06-18 12:12:44.894729"
}

STDERR:

Traceback (most recent call last):
  File "/root/robottelo/venv/lib/python2.7/site-packages/_pytest/config.py", line 392, in _importconftest
    mod = conftestpath.pyimport()
  File "/root/robottelo/venv/lib/python2.7/site-packages/py/_path/local.py", line 668, in pyimport
    __import__(modname)
  File "/root/robottelo/venv/lib/python2.7/site-packages/_pytest/assertion/rewrite.py", line 216, in load_module
    py.builtin.exec_(co, mod.__dict__)
  File "/root/robottelo/venv/lib/python2.7/site-packages/py/_builtin.py", line 221, in exec_
    exec2(obj, globals, locals)
  File "<string>", line 7, in exec2
  File "/root/robottelo/tests/foreman/conftest.py", line 9, in <module>
    from robottelo.cleanup import EntitiesCleaner
  File "/root/robottelo/robottelo/cleanup.py", line 6, in <module>
    from robottelo.cli.base import CLIReturnCodeError
  File "/root/robottelo/robottelo/cli/base.py", line 6, in <module>
    from robottelo import ssh
  File "/root/robottelo/robottelo/ssh.py", line 13, in <module>
    from robottelo.config import settings
  File "/root/robottelo/robottelo/config/__init__.py", line 1, in <module>
    from robottelo.config.base import Settings
  File "/root/robottelo/robottelo/config/base.py", line 18, in <module>
    import airgun.settings
  File "/root/robottelo/venv/lib/python2.7/site-packages/airgun/__init__.py", line 1, in <module>
    from airgun.settings import Settings
  File "/root/robottelo/venv/lib/python2.7/site-packages/airgun/settings.py", line 4, in <module>
    from configparser import ConfigParser
ImportError: No module named configparser
ERROR: could not load /root/robottelo/tests/foreman/conftest.py

akofink avatar Jun 18 '18 12:06 akofink

Looks like airgun is assuming python 3.

ekohl avatar Jun 18 '18 12:06 ekohl

Looks like they broke it intentionally: https://github.com/SatelliteQE/airgun/pull/96

ekohl avatar Jun 18 '18 12:06 ekohl

It turns out robottelo master dropped Python 2 support and now requires Python 3. We'll need to pull in a Python 3 SCL and run using that.

ekohl avatar Jun 19 '18 09:06 ekohl