ResultCloud is a web tool for management of long-term testing results, and showing it in human readable form. ResultCloud written in PHP and AngularJS, for design purposes it use Materialize CSS framework. System based on plugins, there are already three plugins for different types of testing results: SystemTap, GLibc and CPAlien.
Main things needed to run ResultCloud are Apache server, MySQL database and PHP.
To install Apache server, following command had to be executed:
sudo apt-get install apache2
After that, the Apache was ready.
sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql
And activated with this command:
To finish installation and setup, this command had to be ran
which started configuration process.
Command for installation:
sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
There is no extra configuration needed to run ResultCloud, except to set maximum file upload size to allow Corly import larger suites. All configuration is done in php.ini file and for file upload is as follows (for 40MB):
; Maximum allowed size for uploaded files. upload_max_filesize = 40M ; Must be greater than or equal to upload_max_filesize post_max_size = 40M
This month was a big one for ResultCloud, now deployed on school server. This test result repository was supposed to accept test results remotely via API, created by Bohdan Iakymets.
To allow this API to work, I had to add .htaccess file into application folder to map incoming requests the way ResultCloud understood them. This .htaccess file created by Bohdan worked as expected on virtual servers with application base set to:
But to make this work in user home folder, I had to change that to:
After this was set, the application stopped working. When I checked, I found out, that mod_rewrite is not enabled, so I asked server admin to do add this module into Apache enabled modules list, which led into application working again and API as well.
We also had a meeting with Bohdan to better understand how ResultCloud works and to think about things that can be done better.
After testing ResultCloud on OpenShift, we got opportunity to deploy ResultCloud on school Debian server, from which we expected better performance and control.
The server itself did not have anything installed, so everything had to be done from scratch.
For ResultCloud, home folder for my account was created, where was placed folder with Apache enabled and permissions to access from the web. That is a where I installed ResultCloud via scp command from my local machine. When I opened URL to my account, ResultCloud showed up with installation form. Here, I came up to a problem. After installation effort, application still assumed that the application was not installed.
First thing, that came to my mind was to check, if ResultCloud database was created. It was, so I assumed, that the problem was in configuration file, where database credentials are saved. The problem was, that application did not have permissions to create files, so the configuration file wasn’t even created. So i had to create it manually. After this, all needed to be done was to register new user and log in to fully running application.
After I finished API, my next mission was create a script for working with this API. Script I wrote on Python2.7. It’s simple script with only one function, upload test file to server, if file bigger than 1 MB script will cut it and upload part by part.
You can find this script here. And here a little tutorial for working with it:
$ ./corly-import.py <your_user_name> <your_password> <plugin_id> <project_id> <file_path>
Script will create file with username, date of creation and token or read from them if enter username and file username are same, and creation date less than one day.
Now in the main page has appeared registration button, so anyone can register and try ResultCloud. I think add the button was the simplest task, cause ResultCloud’s architecture already has all needed stuff for that.
ResultCloud still has some unfinished things. So in next months I am planing to add some new function to API, like returning list of plugins with ids, add new functionality to script, like different options not only uploading, add rights, ResultCloud has only one group of users is ‘admin’, so I want add new groups with specific rights, and etc.
ResultCloud growing day by day and soon it will be a great system for managing and analyzing results of long-term testing, and I’m glad that I part of its history.
One month ago I started developing ResultCloud’s import API. For me it was very useful not in terms of my programming skills, but in working with someone else’s code. Understand code step by step it was not very hard for me, the hardest part was follow author’s logic, cause’ we are different people and we can’t think in the same way.
My first task was create an API for working with external applications. For safe log in I’m using Tokens, expiration date is 24 hour. In case of large files, system can load file part by part, for that I’m using import session, expiration date is 24 hour too. Import will end only after closing session.
For using API you only need to type http://corly-verifit.rhcloud.com/method/(method name).(function name)?(other parameters) . There is only two methods: “auth” and “import”. “Auth” has one function: “login”. In parameters you must send “username” and “password”. Import has three function: “start”, “upload”, “end”. “Start” – starting import session. In parameters: “token_key”, “plugin” and “project”. It will return session id, so you can use this in “upload” function for sending file by parts, or you can use “upload” without session id and upload whole file, but you need to set in parameters: “token_key”, “plugin”, “project” and send file by POST. For function “end” is need only one parameter: “sessionid”. This function close import session.
My next task is create script in python for working with this API. I already have some example of script, but need to finish it.
It is really interesting for me. During task execution I’d found some unfinished details. So, there is room to grow.
ResultCloud is a web application for managing and analyzing results of long-term testing created by Filip Matys. I’m glad to work on this interesting project, but jumping into running train is always hard and I am trying to deal with it as soon as possible.
First, I forked repository from https://github.com/FilipMatys/IBP2013 to my account https://github.com/bond95/IBP2013 . Then I created an OpenShift instance for ResultCloud. You can find it here: http://corly-verifit.rhcloud.com/ . OpenShift sometimes works irregularly, but it’s free, so I can forgive it.
After that we created a board on KanbanFlow for easy To-Do management. There are already some tasks.
My first and important mission is to create an API for working with external applications. At the moment I have some development in progress. I think I can finish that in the next few weeks.
This application will be used in Red Hat. Beacase it is a large company, for me it’s the best start in the serious development. And I will try to do as much as can for this project.