Git Product home page Git Product logo

iris-panel's Introduction

iris-panel's People

Contributors

babywolfh avatar bart0sh avatar huanghao avatar liverbirdkte avatar sunshine027 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

iris-panel's Issues

Show Product choices in submissions page

Current we have only "ALL" and "My" choice in this page, it's better to add "Product" choice besides current buttones.

And the layout of current "ALL" and "My" button is a little confused. How about we design the UI like this (see attached picture).

new-submission-filter-ui

Collect build time for submissions

Build time information is important part of the process and one of the main criteria in defining the order of accepting submissions. We need to have this info in IRIS and add it to the results of list submissions API and submission details API.
Build time is a time between submission is created and the time of the last update. There is no need to modify jenkins for that as IRIS can just store creation and update time. There could be some corner cases in determining build time, e.g. when build is restarted build time should be reset.

I set priority to high as repa already shows build time. So we need this feature to provide similar user experience for repa users when working with IRIS.

Remove xvfb and replace with phantomjs

We have serval selenium test cases, and we are using xvfb as the headless x server. However it's another dependency and sometimes it may fails in Travis. Fortunately Travis support phantom by default, so let's try to switch from xvfb to phantom.

Provide detail infor about image and snapshot

Hi Hao,

Great news !

I tested the UI and found it simple and fast: that's good !

But I also noticed that all lists are unsorted.
Examples:
- https://panel.tizen.org/app/packagedb/packages/
- https://panel.tizen.org/app/packagedb/gittrees/
- https://panel.tizen.org/users/
Would it be possible to have a sort() called somewhere when generating the tables, without waiting for next version of IRIS ?

I also found some pages that are useless, like for example the 'images' list.
Example: https://panel.tizen.org/app/packagedb/images/9/
I was waiting for the current snapshots/releases list, then click on a given snapshot, get the images list with details (packages list) or at lease a link to download.tizen.org. So is it planned to have a better description for the images ?

Best regards
--
Stéphane Desneux
Intel OTC - Vannes/FR
gpg:1CA35726/DFA9B0232EF80493AF2891FA24E3A2841CA35726

Huang, Hao H wrote:
> **On behalf of Tizen development tools team and all other 
> contributors**
>
> We are very pleased to announce that 0.1 version of Infrastructure and Release Information System (IRIS) is released on Tizen.org.
>
> Click the link below to start your trial:
>
>    [IRIS Panel] (https://panel.tizen.org)
>
> Overview
> ========
>
> IRIS is a data-aggregation web service for Tizen development. By collecting original data from backend systems and presenting processed data in web GUI, IRIS enables all stakeholders of Tizen to query and manage the information they need.
>
> Current version of IRIS (v0.1) provides **PackageDB** application. For more information, refer to `Hightlight` section.
>
> Coming versions of IRIS (v0.2, v0.3) will provide **Submissions** and **Reports** applications. For more information, refer to `Planned Features` section.
>
> Highlight
> =========
>
> **New PackageDB application**
>
>    - Shows metadata for Domains, including the following:
>
>      + Sub-domains and Git trees
>      + All Roles: Architects, Maintainers, Reviewers, Integrators and 
> Developers
>
>    - Shows relationship between Products and Git trees.
>
>    - Shows metadata for packages and images.
>
>      For packages, following metadata is presented:
>
>      + Package name and Git tree path
>      + Domain and subdomain
>
>      For images, following metadata is presented:
>
>      + Image name and product
>      + Target and architecture
>
>    - Provides RESTful APIs for developers to obtain the data.
>
> Planned Features
> ================
>
> Planned features include the following:
>
> * **Submissions application** (IRIS v0.2)
>
>    Submissions application will enable Tizen stakeholders to track the entire
>    life-cycle of a patch by providing metadata for CI (Continuous Integration)
>    and build systems as well as package integration.
>
> * **Reports application** (IRIS v0.3)
>
>    Reports application will provide a variety of reports for Tizen stakeholders
>    to grasp a big-picture view of Tizen development.
>
> Links
> =====
>
>   For any bug report or feature request, please visit the following links:
>
>   [1]: https://bugs.tizen.org/jira/browse/TINF/component/11900
>          "Bug tracker"
>   [2]: https://wiki.tizen.org/wiki/IRIS
>          "Wiki"
>
>
>
>
>
> _______________________________________________
> Dev mailing list
> [email protected]
> https://lists.tizen.org/listinfo/dev

Use pip for packaging

Now we have ansible playbook for deployment. However it needs rpm package, and there are some post-scripts in our spec file. If we want to switch to github and using pip as packaging solution. We need change ansible to adapt it.

Remove entry point code

We could separate our applications using django apps. Now we release all apps at the same time.
Entry point is useless now.

Corrupt scm meta data

Received two error emails. There were sent by update cron job, which means the online scm meta data is wrong.
We need to fix it.

[Django] ERROR: (TREE): Unknown domain name: Base / Hardware Adaption
No stack trace available

Request repr() unavailable.
[Django] ERROR: (TREE): Unknown domain name: Common / Hardware Adaption
No stack trace available

Request repr() unavailable.

ReST API: list submissions

This API will be used by repa. Hopefully this will be much faster than querying the OBS.

Parameters:

  • project
  • optional: List of statuses. default: everything except of rejected/accepted
  • optional: base project

URL: /submissions//?status=&base=

Result is a jsoned list of dictionaries in this form:
[{submission: , status: , status_base:, packages: <list of packages/git trees>} ... ]

Desired order: by submission name

Example of typical request from repa:
Parameters: projects: Tizen:Wearable, base project: Tizen:Common

Result should contain all active submissions for Tizen:Wearable, list of packages for each of them and statuses in Tizen:Wearable and Tizen:Common for each of them ordered by submission name:

[
  {"submission": "submit/tizen/20141221.153450", "status": "package build failed", "status_base": "rejected. SR 31191", "packages": ["bluetooth"]},
  {"submission": "submit/tizen/20141221.153513", "status": "package build failed", "status_base": "rejected. SR 31190", "packages": ["ug-bluetooth-efl", "efl"]},
  {"submission": "submit/tizen/20141222.094713", "status": "ready",                "status_base": "accepted. SR 31201", "packages": ["bluetooth", "bluetooth-frwk"]}
]

Here is an example of repa command line and output:

$ repa -p Tizen:TV list --base Tizen:Common
submit/tizen/20141231.144409          blocked                  accepted. SR 31491       tlm
submit/tizen/20150105.140239          blocked                  accepted. SR 31501       polkit
submit/tizen/20150106.022857          blocked                  accepted. SR 31602       augeas
submit/tizen/20150106.054727          blocked                  unresolvable packages    e-mod-tizen-devicemgr
submit/tizen/20150106.055045          blocked                  unresolvable packages    e-mod-tizen-effect
submit/tizen/20150106.055130          blocked                  unresolvable packages    e-mod-tizen-wm-policy
submit/tizen/20150106.075439          blocked                  rejected. SR 31604       efl-util
submit/tizen/20150106.075614          blocked                  unresolvable packages    e-mod-tizen-keyrouter
submit/tizen/20150106.103429          ready                    accepted. SR 31606       gstreamer-vaapi
submit/tizen/20150107.020040          blocked                  accepted. SR 31605       efl-util
submit/tizen/20150107.065721          package build failed     unresolvable packages    libmm-log
submit/tizen/20150107.065933          package build failed     unresolvable packages    libmm-common
submit/tizen/20150107.100620          blocked                  accepted. SR 31607       notification-service
submit/tizen_tv/20150107.090021       package building                                  meta-tv

Check newly added flags in scm/meta/git

 17 Filename: "git-trees"
 18     T: [mandatory] tree path
 19     D: [mandatory] Domain
 20     O: [optional] Description
 21     P: [optional] Profile (Mobile,IVI,...)
 22     S: [optional] Status (Maintained, Obsoleted, ...)
 23     M: [optional] Maintainer(s)
 24     I: [optional] Integrator(s)
 25     R: [optional] Reviewers(s)
 26     B: [optional] Branch(es)
 27     L: [optional] License(s)
 28     H: [optional] Web site or web page related to project
 29     U: [optional] Upstream URL
 30     V: [optional] Upstream version control system URL
 31     C: [optional] Comments

For example, the flag S(Status).

Check all flags to see if we need to change logic in IRIS.

Clear expired django session in database

We have more than 2 million rows in django_session, more than 1.4 million are expired (useless).

mysql> select count(), min(expire_date) from django_session ;
+----------+---------------------+
| count(
) | min(expire_date) |
+----------+---------------------+
| 2030781 | 2014-06-16 05:57:11 |
+----------+---------------------+
1 row in set (2.14 sec)

mysql> select count() from django_session where expire_date < SUBDATE(NOW(), 14);
+----------+
| count(
) |
+----------+
| 1478945 |
+----------+
1 row in set (0.63 sec)
django manage.py clearsessions can be used to clear expired sessions.
https://docs.djangoproject.com/en/1.7/ref/django-admin/#django-admin-clearsessions

We could add a cron to do that.

We also need to reduce creation of this session record, every event sent from JJ create one row in this table, which means everyday thousands of records are created.

[Django] ERROR (EXTERNAL IP): Internal Server Error: /api/submissions/events/pre_created/

Traceback (most recent call last):

File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py", line 114, in get_response
response = wrapped_callback(request, _callback_args, *_callback_kwargs)

File "/usr/lib/python2.7/site-packages/django/views/generic/base.py", line 69, in view
return self.dispatch(request, _args, *_kwargs)

File "/usr/lib/python2.7/site-packages/django/views/decorators/csrf.py", line 57, in wrapped_view
return view_func(_args, *_kwargs)

File "/usr/lib/python2.7/site-packages/rest_framework/views.py", line 399, in dispatch
response = self.handle_exception(exc)

File "/usr/lib/python2.7/site-packages/rest_framework/views.py", line 387, in dispatch
self.initial(request, _args, *_kwargs)

File "/usr/lib/python2.7/site-packages/rest_framework/views.py", line 316, in initial
self.perform_authentication(request)

File "/usr/lib/python2.7/site-packages/rest_framework/views.py", line 266, in perform_authentication
request.user

File "/usr/lib/python2.7/site-packages/rest_framework/request.py", line 219, in user
self._authenticate()

File "/usr/lib/python2.7/site-packages/rest_framework/request.py", line 377, in _authenticate
user_auth_tuple = authenticator.authenticate(self)

File "/usr/lib/python2.7/site-packages/rest_framework/authentication.py", line 119, in authenticate
self.enforce_csrf(request)

File "/usr/lib/python2.7/site-packages/rest_framework/authentication.py", line 128, in enforce_csrf
reason = CSRFCheck().process_view(request, None, (), {})

File "/usr/lib/python2.7/site-packages/django/middleware/csrf.py", line 170, in process_view
request_csrf_token = request.POST.get('csrfmiddlewaretoken', '')

File "/usr/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 146, in _get_post
self._load_post_and_files()

File "/usr/lib/python2.7/site-packages/django/http/request.py", line 231, in _load_post_and_files
self._post, self._files = QueryDict(self.body, encoding=self._encoding), MultiValueDict()

File "/usr/lib/python2.7/site-packages/django/http/request.py", line 194, in body
six.reraise(UnreadablePostError, UnreadablePostError(*e.args), sys.exc_info()[2])

File "/usr/lib/python2.7/site-packages/django/http/request.py", line 192, in body
self._body = self.read()

File "/usr/lib/python2.7/site-packages/django/http/request.py", line 248, in read
six.reraise(UnreadablePostError, UnreadablePostError(*e.args), sys.exc_info()[2])

File "/usr/lib/python2.7/site-packages/django/http/request.py", line 246, in read
return self._stream.read(_args, *_kwargs)

File "/usr/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 45, in read
result = self.buffer + self._read_limited()

File "/usr/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 39, in _read_limited
result = self.stream.read(size)

UnreadablePostError: request data read error

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.