[yocto] [yocto-autobuilder][PATCHv2 4/5] autobuilder/buildsteps: Add DAFTFlash buildstep

Aníbal Limón anibal.limon at linux.intel.com
Tue Jun 6 08:48:13 PDT 2017


This v2 fixes an small issue on variable name, DAFT_WORKER_WORKSPACE_DIR
-> DAFT_WORKER_WORKSPACE.

Cheers,
Anibal

On 06/06/2017 10:46 AM, 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.limon at linux.intel.com>
> Signed-off-by: Monserrat Sedeno <monserratx.sedeno.bustos.intel.com>
> Signed-off-by: Edwin Plauchu <edwin.plauchu.camacho at 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')
> +        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
> +        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")
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20170606/37a55b64/attachment.pgp>


More information about the yocto mailing list