[Automated-testing] Looking for a Debian kernel provisioning solution
Paweł Wieczorek
p.wieczorek2 at samsung.com
Fri Feb 23 11:19:48 PST 2018
On 22/02/18 20:48, Tim.Bird at sony.com wrote:
>> -----Original Message-----
>> From: Paweł Wieczorek
>> On 16/02/18 19:47, Tim.Bird at sony.com wrote:
> ...
>>> P.S. Actually, I'll ask one question now. I recently started using a
>>> program called 'dlipower' to manage my DLI web powerswitch. It's
>>> written in python and talks to the power switch using an http interface.
>>> Would something like this integrate into your system at some layer, or
>>> does your system require the power management of a board to go
>>> through MuxPi? If it can fit in your system, where would it run?
>>> That is, would your nanoPi be able to run the 'dlipower' command,
>>> or would it run on the host?
>> In our system each target device gets its own supervisor (DUT-S: NanoPi)
>> and controller (DUT-C: MuxPi):
>>
>> .-----.-------.-------.
>> | DUT | DUT-C | DUT-S +---+
>> '-----'-------'-------' |
>> | ________
>> .-----.-------.-------. | / \
>> | DUT | DUT-C | DUT-S +---+---+ Boruta +--- etc.
>> '-----'-------'-------' | \________/
>> |
>> .-----.-------.-------. |
>> | DUT | DUT-C | DUT-S +---+
>> '-----'-------'-------'
>>
>> Correct me if I am wrong - I assume that using DLI powerswitch would
>> force DUTs to share a single controller:
>>
>> .-----.-------.-------.
>> | DUT | | DUT-S +---+
>> '-----+ +-------' |
>> | | | ________
>> .-----+ +-------. | / \
>> | DUT | DUT-C | DUT-S +---+---+ Boruta +--- etc.
>> '-----+ +-------' | \________/
>> | | |
>> .-----+ +-------. |
>> | DUT | | DUT-S +---+
>> '-----'-------'-------'
>>
>> Running "dlipower" commands could and should be done on supervisor
>> (NanoPi), but target devices would no longer be independent. Board
>> control is kept at DUT-C/DUT-S level and is completely separated from
>> the rest of the stack (Boruta, Weles, Perun), so no further changes in
>> any other layer would be required.
>>
>> I hope that clarifies it. Do let me know if you have further questions.
> I think that's right. I'm not sure I would characterize it as
> using DLI power "forces" the boards to use a single controller,
> but rather that using a single power controller requires that
> the DUT control software deal with mixing and matching
> board control mechanisms from different hardware.
Agreed. I focused on supplying power and assumed basic DUT-C would cover
this feature only.
> It sounds like your 'Boruta' layer provides the abstractions
> for this.
>
> What is the division of labor between your control hardware
> and your supervisor hardware (/software)? From your
> diagram I presume that Boruta is host-side software, and
> that other software is running on the Nanopi and implementing
> board supervisor functions?
You are correct on Boruta being host-side software. It only schedules
access to Dryad, i.e. DUT controlled by DUT-C (MuxPi board) under DUT-S
(NanoPi) supervision (like DUT/DUT-C/DUT-S modules from my previous
message).
Control hardware (MuxPi) takes care of physical aspects of DUT
management (switching power supply, jumpers/buttons etc.) while
supervisor provides connection to the DUT and abstraction for DUT
management actions (e.g. dut_boot, dut_exec commands - additional
software on NanoPi).
> Power is one dimension of board control. Serial port is another.
> Button presses are another. Other buses (like USB or SDcard) are
> yet another dimension of board control. If I understand correctly,
> MuxPi assumes all of these board control mechanisms are under the
> control of a single piece of board control hardware (and software?).
Correct - combining all of it and providing a unified interface is
MuxPi's primary purpose.
> This simplifies things because it reduces the number of connections
> to the host for all these different dimensions of board control.
> But it comes at the expense of requiring a uniform hardware control
> system for the whole lab (and for all control dimensions).
That's right. Once DUT becomes part of a Dryad and is fully configured,
it can be controlled in a uniform way like every other target in the
laboratory.
> Looking at your FOSDEM presentation, I like that you have some layers
> identified, and are concerned with modularity (and KISS at each level).
> But I'm not sure I understand each layer:
>
> Perun - CI layer? (detect when to run, schedule jobs, interpret results)?
> Weles - test execution layer?
> Boruta - board control software layer?
> MuxPI - physical layer
>
> What is "Dryad" in relation to these? I'm a bit confused by that.
Almost correct:
Perun - CI layer + dashboard (results interpretation and presentation)
Weles - testing framework: translates YAML job definition to actions to
be executed, requests Dryad access from Boruta, runs actions on granted
Dryad, collects results and artifacts
Boruta - Dryad access scheduler: grants access, provides SSH tunnel to
DUT supervisor
Dryad - module combining DUT-S (NanoPi), DUT-C (MuxPi) and proper DUT
> Note: I can wait until ELC to hear the presentation myself and try to understand
> it there.
>
> I and writing some notes about board farm software
> and wanted a placeholder name for your software. I *think* that my 'ttc' (Tim's target control)
> is roughly equivalent to your 'boruta' layer, and 'fuego' is roughly at the
> same layer are your 'Weles', but I'm not positive. (and, just to complete
> the comparison, I believe Fuego uses Jenkins for the functionality you
> use Perun for, but we don't actually ship any provisioning functionality
> or any of the Jenkins jobs for detecting CI triggers (e.g. when LTS gets
> updated).
>
> What would be a good name for the whole "stack"? I've been referring to
> it in my notes as either Samsung's stack or Pawel's stack, :-) , but is "MuxPi" the name
> for the whole stack? That's what it seems like from the slides.
MuxPi is the basis for the whole stack. It was initially a separate
project. Other components came because we wanted to automate interaction
with it. Since those layers got their names from Slavic mythology, the
whole stack is called SLAV ;)
> Please let me know if I've misunderstood something here.
> -- Tim
>
All the best,
Paweł Wieczorek
Samsung R&D Institute Poland
Samsung Electronics
p.wieczorek2 at samsung.com
More information about the automated-testing
mailing list