On 07/03/2017 09:03 AM, Joshua Lock wrote: > On Tue, 2017-06-06 at 10:46 -0500, Aníbal Limón wrote: >> This will execute daft flash cycle without reboot and prepare the dut >> for sanity tests. >> >> [YOCTO #10604] >> >> Signed-off-by: Aníbal Limón <anibal.li...@linux.intel.com> >> Signed-off-by: Monserrat Sedeno <monserratx.sedeno.bustos.intel.com> > > Typo in the email address here. > >> Signed-off-by: Edwin Plauchu <edwin.plauchu.cama...@linux.intel.com> >> --- >> config/autobuilder.conf.example | 1 + >> .../autobuilder/buildsteps/DaftFlash.py | 42 >> ++++++++++++++++++++++ >> lib/python2.7/site-packages/autobuilder/config.py | 1 + >> 3 files changed, 44 insertions(+) >> create mode 100644 lib/python2.7/site- >> packages/autobuilder/buildsteps/DaftFlash.py >> >> diff --git a/config/autobuilder.conf.example >> b/config/autobuilder.conf.example >> index e5ec16b..2e992cf 100644 >> --- a/config/autobuilder.conf.example >> +++ b/config/autobuilder.conf.example >> @@ -98,3 +98,4 @@ PERFORMANCE_MAIL_SIG = "Multiline\nSig\nLine" >> >> [Daft] >> DAFT_WORKER_DEVICES_CFG = "/etc/daft/devices.cfg" >> +DAFT_WORKER_WORKSPACE = "/home/ab/workspace" >> diff --git a/lib/python2.7/site- >> packages/autobuilder/buildsteps/DaftFlash.py b/lib/python2.7/site- >> packages/autobuilder/buildsteps/DaftFlash.py >> new file mode 100644 >> index 0000000..d5f6de8 >> --- /dev/null >> +++ b/lib/python2.7/site-packages/autobuilder/buildsteps/DaftFlash.py >> @@ -0,0 +1,42 @@ >> +import os >> + >> +from autobuilder.config import DAFT_WORKER_WORKSPACE >> +from buildbot.steps.shell import ShellCommand >> + >> +class DaftFlash(ShellCommand): >> + haltOnFailure = True >> + >> + name = "DaftFlash" >> + >> + def __init__(self, factory, argdict=None, **kwargs): >> + self.tests = None >> + self.factory = factory >> + for k, v in argdict.iteritems(): >> + setattr(self, k, v) >> + self.description = "DUT Flashing" >> + self.timeout = 100000 >> + kwargs['timeout']=self.timeout >> + ShellCommand.__init__(self, **kwargs) >> + >> + def start(self): >> + workspace_dir = DAFT_WORKER_WORKSPACE >> + >> + dut_name = self.getProperty('dut_name') >> + workdir = self.getProperty('workdir') >> + image = self.getProperty('BUILDIMAGES') > > Remember to fix this when you rename the property. > >> + machine = self.getProperty('MACHINE') >> + >> + image_path = os.path.join(workdir, 'build', 'build', 'tmp', >> 'deploy', >> + 'images', machine, '%s-%s.hddimg' % (image, >> machine)) >> + image_name = os.path.basename(image_path) >> + >> + # XXX: DAFT needs to have the image in a shared workspace >> + self.command = "cp %s %s; " % (image_path, workspace_dir) >> + >> + self.command += "cd %s; " % (workspace_dir) >> + >> + # XXX: DAFT needs to be executed by root user > > Why's that? Is that an intrinsic requirement of DAFT or is it because > DAFT wants to use certain devices that are typically owned by root? Can > we instead make the requirement that the user running daft has > permissions and groups correctly configured to access these devices?
I don't have too much insight about this security issue, i think there is because the deployment resources files are on /root directory, so i agree that this needs to be changed but i don't know how much effort will require. I'm adding Jair since he knows more about this situation, and Miko that as far as i know he works on refkit QA. Cheers, Anibal > >> + daft_cmd = "daft --setout %s %s" % (dut_name, image_name) >> + self.command += "sudo su -l -c 'cd {} && {}'; >> ".format(workspace_dir, daft_cmd) >> + >> + ShellCommand.start(self) >> diff --git a/lib/python2.7/site-packages/autobuilder/config.py >> b/lib/python2.7/site-packages/autobuilder/config.py >> index 5bcf6c6..fcc08f0 100644 >> --- a/lib/python2.7/site-packages/autobuilder/config.py >> +++ b/lib/python2.7/site-packages/autobuilder/config.py >> @@ -24,3 +24,4 @@ IPK_PUBLISH_DIR = os.environ.get("IPK_PUBLISH_DIR") >> DEB_PUBLISH_DIR = os.environ.get("DEB_PUBLISH_DIR") >> PERFORMANCE_PUBLISH_DIR = os.environ.get("PERFORMANCE_PUBLISH_DIR") >> DAFT_WORKER_DEVICES_CFG = os.environ.get("DAFT_WORKER_DEVICES_CFG") >> +DAFT_WORKER_WORKSPACE = os.environ.get("DAFT_WORKER_WORKSPACE") -- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto