From: Ian Campbell <ian.campbell@citrix.com>
To: Ian Jackson <Ian.Jackson@eu.citrix.com>
Cc: xen-devel@lists.xen.org
Subject: Re: [PATCH OSSTEST] get_hostflags: return an empty list when there is no flight/job.
Date: Tue, 11 Aug 2015 16:57:57 +0100 [thread overview]
Message-ID: <1439308677.9747.292.camel@citrix.com> (raw)
In-Reply-To: <1438771857.9747.56.camel@citrix.com>
On Wed, 2015-08-05 at 11:50 +0100, Ian Campbell wrote:
> On Fri, 2015-07-31 at 16:39 +0100, Ian Campbell wrote:
> > On Fri, 2015-07-31 at 16:31 +0100, Ian Jackson wrote:
> > > Ian Campbell writes ("[PATCH OSSTEST] get_hostflags: return an empty
> > > list
> > > when there is no flight/job."):
> > > > From: Ian Campbell <Ian.Campbell@citrix.com>
> > > >
> > > > Otherwise trying to use mg-hosts mkpxedir fails with:
> > >
> > > I think your proposed fix is incorrect. It is wrong to call
> > > get_hostflags outside the context of a job, because get_hostflags is
> > > supposed to return the job's host flags for that ident.
> > >
> > > The bug was introduced by me in 11e788f7 "JobDB/Executive: Improve an
> > > internal `die' error", where a refactoring meant that we always call
> > > get_hostflags.
> > >
> > > How about this instead ?
> > >
> > > diff --git a/Osstest/JobDB/Executive.pm b/Osstest/JobDB/Executive.pm
> > > index 1ec947e..cc52f57 100644
> > > --- a/Osstest/JobDB/Executive.pm
> > > +++ b/Osstest/JobDB/Executive.pm
> > > @@ -128,7 +128,7 @@ sub host_check_allocated ($$) { #method
> > > $ho->{Shared} &&
> > > $ho->{Shared}{State} eq 'ready';
> > > my $harness = get_harness_rev();
> > > - my @flags = get_hostflags($ho->{Ident});
> > > + my @flags = defined($job) ? get_hostflags($ho->{Ident}) :
> > > qw(OUTSIDE
> > > -JOB);
> > > $ho->{SharedReady}=
> > > $ho->{SharedMaybeOthers} &&
> > > !! (grep { $_." ".$harness eq "share-".$ho->{Shared}{Type} }
> > >
> > > Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
> >
> > LGTM, I suppose the use of the OUTSIDE-JOB sentinel value is just for
> > the
> > benefit of the reader of the following die() should it occur.
> >
> > Acked-by: Ian Campbell <ian.campbell@citrix.com>
>
> I fabricated some sort of commit message and pushed to pretest.
>
> commit 2e51119a34d06162b69275f38010130193d5501e
> Author: Ian Jackson <Ian.Jackson@eu.citrix.com>
> Date: Wed Aug 5 11:42:10 2015 +0100
>
> Executive: Support host_check_allocated outside a job.
>
> When called outside a job there are no hostflags, so get_hostflags
> cannot be used. Instead assume a new pseudo-flag "OUTSIDE-JOB" when
> there is no $job.
>
> Otherwise uses of select_host such as "mg-hosts mkpxedir" fail.
>
> Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
> Acked-by: Ian Campbell <ian.campbell@citrix.com>
> [ ijc -- wrong commit message ]
I really meant wrote here, sorry. It's through the gate now though.
prev parent reply other threads:[~2015-08-11 15:57 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-29 16:28 [PATCH OSSTEST] get_hostflags: return an empty list when there is no flight/job Ian Campbell
2015-07-31 15:31 ` Ian Jackson
2015-07-31 15:39 ` Ian Campbell
2015-08-05 10:50 ` Ian Campbell
2015-08-11 15:57 ` Ian Campbell [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1439308677.9747.292.camel@citrix.com \
--to=ian.campbell@citrix.com \
--cc=Ian.Jackson@eu.citrix.com \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.