diff options
-rw-r--r-- | docs/testing/developer/devguide/index.rst | 1 | ||||
-rw-r--r-- | docs/testing/developer/devguide/web.rst | 100 |
2 files changed, 101 insertions, 0 deletions
diff --git a/docs/testing/developer/devguide/index.rst b/docs/testing/developer/devguide/index.rst index 0b583cc5..ab411005 100644 --- a/docs/testing/developer/devguide/index.rst +++ b/docs/testing/developer/devguide/index.rst @@ -16,5 +16,6 @@ QTIP Developer Guide framework.rst cli.rst api.rst + web.rst compute-qpi.rst storage-qpi.rst diff --git a/docs/testing/developer/devguide/web.rst b/docs/testing/developer/devguide/web.rst new file mode 100644 index 00000000..ae4e3156 --- /dev/null +++ b/docs/testing/developer/devguide/web.rst @@ -0,0 +1,100 @@ +.. 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_<log_id>`` 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 |