[opensuse-buildservice] Linked projects and "Status" page in webui
Hi, I just realized that the "Status" page in webui for a linked project doesn't list failing packages. I'm not sure if this is by design or a bug. OBS version: 2.3.7 Project setup: $ osc meta prj ProjectA <project name="ProjectA"> ... <repository name="standard"> <path project="openSUSE.org:openSUSE:12.2" repository="standard"/> <arch>i586</arch> <arch>x86_64</arch> </repository> </project> $ osc meta prj ProjectB <project name="ProjectB"> ... <link project="OES:11:Update:Test"/> <repository name="standard" linkedbuild="all"> <path project="openSUSE.org:openSUSE:Factory" repository="standard"/> <path project="ProjectA" repository="standard"/> <arch>i586</arch> <arch>x86_64</arch> </repository> </project> Note that linkedbuild="all" setting in ProjectB's "standard" repository will trigger rebuild of packages that do not have any real sources in ProjectB. Now, because of updated packages / dependencies coming from openSUSE:Factory, there could be some build failures in ProjectB. In the webui, the "Overview" page of "ProjectB" shows, let's say, "5 build errors", but if you go to the "Status" page of this project, there are no packages listed. After reading a lot of code around api, webui and backend, I found that status information of linked / aggregated packages are not listed in /status/project/<project> API call. Is this intentional? Is this information available from backend but not queried by the API? AFAIU, backend knows about these packages and their build status since scheduler understands "linkedbuild" property of a repository. Is my understanding incorrect? If I wanted these packages listed in the webui, where should I start looking / hacking? Regards, Srinidhi. -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
Am 20.01.2013 10:24, schrieb Srinidhi B:
Hi,
I just realized that the "Status" page in webui for a linked project doesn't list failing packages. I'm not sure if this is by design or a bug.
OBS version: 2.3.7 Project setup:
$ osc meta prj ProjectA <project name="ProjectA"> ... <repository name="standard"> <path project="openSUSE.org:openSUSE:12.2" repository="standard"/> <arch>i586</arch> <arch>x86_64</arch> </repository> </project> $ osc meta prj ProjectB <project name="ProjectB"> ... <link project="OES:11:Update:Test"/> <repository name="standard" linkedbuild="all"> <path project="openSUSE.org:openSUSE:Factory" repository="standard"/> <path project="ProjectA" repository="standard"/> <arch>i586</arch> <arch>x86_64</arch> </repository> </project>
Note that linkedbuild="all" setting in ProjectB's "standard" repository will trigger rebuild of packages that do not have any real sources in ProjectB.
Now, because of updated packages / dependencies coming from openSUSE:Factory, there could be some build failures in ProjectB. In the webui, the "Overview" page of "ProjectB" shows, let's say, "5 build errors", but if you go to the "Status" page of this project, there are no packages listed.
After reading a lot of code around api, webui and backend, I found that status information of linked / aggregated packages are not listed in /status/project/<project> API call. Is this intentional? Is this information available from backend but not queried by the API?
AFAIU, backend knows about these packages and their build status since scheduler understands "linkedbuild" property of a repository. Is my understanding incorrect? If I wanted these packages listed in the webui, where should I start looking / hacking?
Well, you need to check the package list from the backend if project is a project link - the backend has a expand=1 parameter for that route. But that won't make the code more pretty ;( Greetings, Stephan -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On 20/1/2013 at 06:34 PM, Stephan Kulow <coolo@suse.de> wrote: Am 20.01.2013 10:24, schrieb Srinidhi B: Hi,
I just realized that the "Status" page in webui for a linked project doesn't list failing packages. I'm not sure if this is by design or a bug.
OBS version: 2.3.7 Project setup:
$ osc meta prj ProjectA <project name="ProjectA"> ... <repository name="standard"> <path project="openSUSE.org:openSUSE:12.2" repository="standard"/> <arch>i586</arch> <arch>x86_64</arch> </repository> </project> $ osc meta prj ProjectB <project name="ProjectB"> ... <link project="OES:11:Update:Test"/> <repository name="standard" linkedbuild="all"> <path project="openSUSE.org:openSUSE:Factory" repository="standard"/> <path project="ProjectA" repository="standard"/> <arch>i586</arch> <arch>x86_64</arch> </repository> </project>
Note that linkedbuild="all" setting in ProjectB's "standard" repository will trigger rebuild of packages that do not have any real sources in ProjectB.
Now, because of updated packages / dependencies coming from openSUSE:Factory, there could be some build failures in ProjectB. In the webui, the "Overview" page of "ProjectB" shows, let's say, "5 build errors", but if you go to the "Status" page of this project, there are no packages listed.
After reading a lot of code around api, webui and backend, I found that status information of linked / aggregated packages are not listed in /status/project/<project> API call. Is this intentional? Is this information available from backend but not queried by the API?
AFAIU, backend knows about these packages and their build status since scheduler understands "linkedbuild" property of a repository. Is my understanding incorrect? If I wanted these packages listed in the webui, where should I start looking / hacking?
Well, you need to check the package list from the backend if project is a project link - the backend has a expand=1 parameter for that route.
But that won't make the code more pretty ;(
So, I've been reading a bit more of code. Here's what I've found. The problem, from what I understand, is that the package list itself doesn't contain all packages. In 2.3 branch, bs_srcserver doesn't have expand=1 - I had seen one of the commit from Adrian where he had documented this in one of the test cases and marked it as FIXME2.4: https://github.com/openSUSE/open-build-service/commit/f768bf776b1f1284a0037b... On the backend server, curl http://localhost:5352/source/ProjectB does list all packages - without any need for passing ?expand=1. But in the "calc_status" method inside api/app/helpers/status_helper.rb, dbproj.db_packages only lists those packages that have real sources in ProjectB. Is there anyway I can query all packages of a DbProject object? I'm either missing something or not able to understand code flow / structure. Regards, Srinidhi. -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
participants (2)
-
Srinidhi B
-
Stephan Kulow