[yocto] Some questions about the webhob design

Paul Eggleton paul.eggleton at linux.intel.com
Thu Jul 5 03:01:01 PDT 2012


On Tuesday 03 July 2012 12:10:57 Xu, Dongxiao wrote:
> Today Jessica and PRC team had a discussion of the webhob tasks listed in
> the wiki page, and about the "Group" and "Project" concept, we still have
> some questions.

Let's be clear though from the below, we're talking about projects only.
 
> Say user A and user B are privileged users, who have the right to customize
> images, while user C is normal user (Say a TME) and only "building image"
> is allowed.
> 
> 1) If user A customized an image with certain configurations, and he told
> user C that the environment is ready, and user C can build his demo image
> there. However, before user C starts to build, user B changed some
> configurations, making the final output not the expected version.

So firstly, in the design, any change to a project made by a user that occurs 
while another user is also configuring a build on that same project should be 
reflected in real-time in the other user's interface, and will be accompanied 
by a notification that a change has been made.

When more than one user is working on a project, it is expected that they 
would all be working towards the same goal. Creating separate projects for 
separate work efforts that may have different needs is intended to be easy. If a 
user does want to do some experimenting on a project in isolation, the design 
provides for the ability to duplicate the project which can then be modified 
privately without affecting the original project.

It's also a similar situation to working with any other shared resource such 
as a source code repository or a shared document - some discipline is 
required, and there's a limit to how much the tool can enforce in terms of 
people not messing up other people's work (other than providing a permissions 
framework, of course).

> 2) Another issue may be how to avoid global project changes happened
> together? For example user A and user B change the setting in the same
> time?

At the implementation level, with the usual database-level locking there must 
be a "winner" and a "loser" in this situation. The "winner" in our case should 
be whoever made the change last. As above there will be notifications shown to 
both users.
 
> 3) If user A changes the global project setting, what's the impact to the
> user B who already kicked off a build based on the original setting?

Once the build has started it should be isolated from the configuration within 
the interface, i.e. any subsequent changes should not affect it. Internally in 
the implementation I would recommend taking a lock on the project settings as 
soon as the user requests the build to start, which shortly afterwards can be 
released once the build has actually started - but this is not something that 
should be visible at a user level, except as a minor delay. In case user B 
goes back in to view the settings that are now different to what is being used 
for the build, the system should be able to fairly easily show a note within 
the configuration screen that the settings shown have been changed since the 
currently executing build was started.

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre



More information about the yocto mailing list