mock: allow different build slave dirs

RESOLVED WONTFIX

Status

Release Engineering
General
RESOLVED WONTFIX
6 years ago
19 days ago

People

(Reporter: sfink, Unassigned)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

The mock logic requires the build slave directory to be /builds/slave afaict. I was setting up a local slave and did not have mine there. Given that buildmasters go into a separate named area (eg, I have one in /builds/buildbot/sfink/build1), it seems odd for slaves to need to be global, especially since I'd like to have multiple slaves on one host.

Changing the mount point in eg /etc/mock_mozilla/mozilla-f16-x86_64.cfg isn't enough, because the steps use the host basedir to find things. I see two options:

1:

Mount the slave dir inside the mock cfg to the same place as on the host filesystem. It's kind of inelegant, since the slave really ought to have its chroot laid out independently of the host. And I'm not sure if it'll autocreate the intervening paths. But it's probably the simpler one.

2:

Have one mock cfg per slave, mounting the mock's /build/slaves to whatever is appropriate. (Or better, add a mock_mozilla command line option for setting config_opts, or at least config_opts['plugin_conf'][...].) 

Change MockCommand.set_mock_command to update %(basedir)s references to %(mock_basedir)s.

Add a MockProperty-like step that sets mock_basedir just after MockInit.

---

I attempted the latter, but there's no good way to extract the mount options from mock_mozilla (or the config file). I thought about adding a --print-config option, but I'm not that crazy, and anyway if I were to modify mock_mozilla it would be better to pass in config_opts['plugin_conf']['bind_mount_opts']['dirs'] on the command line and then you wouldn't need to extract it.

---

Anyway, for now I'm just symlinking the dang thing. Works until I want multiple slaves on one host.
Component: Release Engineering: Automation (Release Automation) → Release Engineering: Automation (General)
QA Contact: bhearsum → catlee
(Assignee)

Updated

5 years ago
Product: mozilla.org → Release Engineering
TC + docker should fix this.
Status: NEW → RESOLVED
Last Resolved: 3 years ago
Resolution: --- → WONTFIX
(Assignee)

Updated

19 days ago
Component: General Automation → General
Product: Release Engineering → Release Engineering
You need to log in before you can comment on or make changes to this bug.