.. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 *************************************** Web Portal for Benchmarking Services *************************************** QTIP consists of different tools(metrics) to benchmark the NFVI. These metrics fall under different NFVI subsystems(QPI's) such as compute, storage and network. QTIP benchmarking tasks are built upon `Ansible`_ playbooks and roles. QTIP web portal is a platform to expose QTIP as a benchmarking service hosted on a central host. Framework ========= The web travel has been developed on Python `Django`_ framework. Dig into the documentation to learn about Django. Design ====== Django is a MTV (Model Template View) framework. Database objects are mapped to models in ``models.py``. Views handle the requests from client side and interact with database using Django ORM. Templates are responsible for UI rendering based on response context from Views. Models ------ Repo ~~~~ Model for `workspace`_ repos :: Repo: name git_link Task ~~~~ Tasks keep track of every benchmark run through QTIP-Web Services. Whenever you run a benchmark, a new task is created which keep track of time stats and log task progress and ansible output for the respective playbook. :: Task start_time end_time status run_time repo log Views ----- Dashboard ~~~~~~~~~ - Base class - TemplateVIew Class based view serving as home page for the application. ReposView ~~~~~~~~~ - Base class - LoginRequiredMixin, CreateView Class based view for listing and add new repos RepoUpdate ~~~~~~~~~~ - Base class - LoginRequiredMixin, UpdateView Class based View for listing and updating an existing repo details. *Both ReposView and RepoUpdate View use same template ``repo_form.html``. The context has an extra variable ``template_role`` which is used to distinguish if repo form is for create or edit operation.* Run ~~~ - Base class - LoginRequiredMixin, View - template name - run.html Class based View for adding new task and run benchmark based on task details. The logs are saved in ``logs/run_`` directory. .. _Ansible: https://www.ansible.com/ .. _Django: https://docs.djangoproject.com/en/1.11/ .. _workspace: https://github.com/opnfv/qtip/blob/master/docs/testing/developer/devguide/ansible.rst#create-workspace