← Back to team overview

checkbox-dev team mailing list archive

Re: CEP-4: PlainBox Target Device

 

On 28/02/2014 03:04, Zygmunt Krynicki wrote:

On Thu, Feb 27, 2014 at 5:20 PM, Sylvain Pineau <sylvain.pineau@xxxxxxxxxxxxx <mailto:sylvain.pineau@xxxxxxxxxxxxx>> wrote:

    On 27/02/2014 17:11, Daniel Manrique wrote:

        On 14-02-26 12:46 PM, Zygmunt Krynicki wrote:


            Execution controllers
            ---------------------

            Execution controllers that prepare the environment for
            each job would
            necessarily change. Existing set of controllers can run
            jobs as the regular
            user, as a root user via sudo or as a root user via
            plainbox-trusted-launcher-1.

            In addition to user handing, those controllers handle the
            task of configuring
            the filesystem for a specific job. The new remote
            controller would need to
            ensure that provider data associated with the job that is
            to be executed is
            copied (using rsync or adb push or other similar command).


        This suggests you will copy only relevant data for each test.
        Can this be
        determined reliably without too many hairy heuristics? will we
        need to add more
        metadata to jobs or scripts so that a remote environment can
        be properly configured?

        Another approach that comes to mind is copying *everything*
        (where "everything"
        needs to be determined) when the first remote job executes, so
        subsequent jobs
        can count on stuff being there. This would be handled by the
        execution
        controller I think.

    One of the execution controller future role will also be to detect
    program/scripts that have to be run locally
    but are part of the job command, e.g: "run_this_on_target |
    parse_output_with_local_parser"
    Several local jobs are using this method taking the output of a
    remote command and doing some magic to
    create jobs with run_template+udev_resource.



This is an interesting point. Technically (currently) that would all run remotely. We would copy all of the scripts (including udev_resource) and run that there. I see that we might want to run certain parts locally. Fortunately that is easy to express (though it would require us to alter jobs that want the distinction).

id: some-job
command: foo
post-process: bar

This would effectively run: "adb -s $target shell foo | bar", or "ssh $target shell foo | bar"

What do you think?

Thanks
ZK
New job metadata will help us defining/refining how a job command is executed. This without making "remote-compatible" versions of all jobs;
Mixing adb/ssh commands is a good proposal.

Sylvain

References