Mailinglist Archive: opensuse-buildservice (266 mails)

< Previous Next >
Re: [opensuse-buildservice] Linked projects and "Status" page in webui
On 20/1/2013 at 06:34 PM, Stephan Kulow <coolo@xxxxxxx> 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/f768bf776b1f1284a0037b8a3171dfdd9602515a

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@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-buildservice+owner@xxxxxxxxxxxx

< Previous Next >