Linked projects and "Status" page in webui

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Linked projects and "Status" page in webui

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?

Regards,
Srinidhi.

--
To unsubscribe, e-mail: [hidden email]
To contact the owner, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Linked projects and "Status" page in webui

Stephan Kulow-3
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: [hidden email]
To contact the owner, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Linked projects and "Status" page in webui

Srinidhi B
 >>> On 20/1/2013 at 06:34 PM, Stephan Kulow <[hidden email]> 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: [hidden email]
To contact the owner, e-mail: [hidden email]