ansible-community / ara-web

Stateless web client for the ARA Records Ansible API.
https://ara.recordsansible.org
GNU General Public License v3.0
37 stars 8 forks source link

Group Playbook Task results ... per task #7

Closed stdedos closed 5 years ago

stdedos commented 5 years ago

As a user, I would expect to have a more consise output like:

Task Name Action Elasped Duration Status
Task 1 x AVG 0s AVG 1s 11 / OK
Task 2 y AVG 1m AVG 1m 11 / CHANGED
Task 3 z AVG 1.5m AVG 1.5m 10 / CHANGED, 1 FAILED
Task 4 a AVG 0s AVG 1s 11 / SKIPPED

which could then, expand and/or track per host what has happened

e.g. 10 hosts * 28 tasks is not fun to go through

dmsimard commented 5 years ago

@stdedos I think that's a good idea.

We are actually in the process of rewriting the web interface as a standalone project for ARA 1.0 so this is a good opportunity to implement this in some shape or form in ara-web.

GitHub says we can transfer issues but it's beta so let me try that.

dmsimard commented 5 years ago

The transfer worked \o/

We have not settled on the actual layout of the reports in the new UI yet, mostly focusing on making sure that the new API provides the necessary information in the right format and that querying the API works.

I'll leave this opened.

guillaumevincent commented 5 years ago

Regrouping the status per task is a really good idea

guillaumevincent commented 5 years ago

This will be fixed after https://review.opendev.org/660698 merged

Example: http://logs.openstack.org/98/660698/1/check/ara-web-build-dashboard/503764e/npm/html/playbooks/1

stdedos commented 5 years ago

This will be fixed after https://review.opendev.org/660698 merged

Perfect. Please give me instructions so I can update my playground too when this is merged!

Example: http://logs.openstack.org/98/660698/1/check/ara-web-build-dashboard/503764e/npm/html/playbooks/1

"File not found" as of now

dmsimard commented 5 years ago

@stdedos @guillaumevincent the link is broken because of the routing -- try this instead (no /playbooks/1): http://logs.openstack.org/98/660698/1/check/ara-web-build-dashboard/503764e/npm/html

stdedos commented 5 years ago

I am not sure what am I seening now to be honest.

Could the testcase be extended to have 2 hosts, and preferably "fabricate" one of the hosts, so that it acts differently on some tasks?

dmsimard commented 5 years ago

Yes, actually there ought to be more results in that demo -- there is a regression with Ansible 2.8 that I'm working to fix right now: https://github.com/ansible-community/ara/issues/46

Meanwhile, I've updated the API demo with a database after the fix which contains more things so you can have another look.

Here's a screenshot list

And another: details

guillaumevincent commented 5 years ago

This is a work in progress, I will update the duration to make them more human readable

dmsimard commented 5 years ago

@stdedos

Perfect. Please give me instructions so I can update my playground too when this is merged!

The change is merged so you can just pull the latest code from https://github.com/ansible-community/ara-web and re-install that.

stdedos commented 5 years ago

I was wondering about that; I think I have installed "one package", and not separate packages.

Should "the new packages" be an in-place replacement for the "one" package?

dmsimard commented 5 years ago

@stdedos From source, running npm install will install (or update) the dependencies and put them in a node_modules folder in the current working directory. npm start will start the embedded server using those dependencies.

Otherwise there is a role which basically takes care of this for you: https://ara.readthedocs.io/en/feature-1.0/ansible-role-ara-web.html

Documentation for ara-web is a bit light right now, happy to accept patches :)

Edit: the role is actually located here: https://github.com/ansible-community/ara/tree/feature/1.0/roles/ara_web

stdedos commented 5 years ago

Now I remember more; I used pip install ara # ara==2.7.8 to make everything work.

So, now the ara-web is coming from npm, and the rest "as usual"?

dmsimard commented 5 years ago

@stdedos yes, ara-web is a standalone web client that provides an interface to the new API in ara. There are docs on how to get started with ARA 1.0 ahead of release here: https://ara.readthedocs.io/en/feature-1.0/installation.html

guillaumevincent commented 5 years ago

@stdedos just to be clear ara-web is not on npm, ara-web can be installed from source using npm or yarn

stdedos commented 5 years ago

(Feel free to tell me when to split to a separate ticket or move somewhere else)

I have a side-by-side installation of ara and ara-web:

(venv-ansible) [1] root@mgmt ~/ansible # ara-manage runserver                                                                                                                                             
 * Serving Flask app "ara" (lazy loading)                                                                                                                                                                   
 * Environment: production                                                                                                                                                                                  
   WARNING: Do not use the development server in a production environment.                                                                                                                                  
   Use a production WSGI server instead.                                                                                                                                                                    
 * Debug mode: off   
=================================================================================
(venv-ansible) [1] root@mgmt ~/ansible/ara-web # npm start
[...]
Compiled successfully!

You can now view ara-web in the browser.

  Local:            http://localhost:3000/
  On Your Network:  http://192.168.206.171:3000/

Note that the development build is not optimized.
To create a production build, use npm run build.

However, http://localhost:3000/playbooks is empty; http://localhost:9191/reports/ has runs

I tried setting:

{
  "apiURL": "http://localhost:9191"
}

but no dice

dmsimard commented 5 years ago

@stdedos This new UI is a client interface to a yet-unreleased version of ARA, 1.0. ARA 0.x doesn't provide an API and comes with it's own bundled web interface.

You can install the beta pre-release by using pip install --pre ara instead of pip install ara. If you have any questions, feel free to hop on IRC or Slack