lp:~zyga/checkbox/local-device

Created by Zygmunt Krynicki and last modified
Get this branch:
bzr branch lp:~zyga/checkbox/local-device
Only Zygmunt Krynicki can upload to this branch. If you are Zygmunt Krynicki please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Zygmunt Krynicki
Project:
Checkbox
Status:
Development

Recent revisions

3366. By Zygmunt Krynicki

plainbox:session: add device awareness to SessionDeviceContext

This patch finally makes the SessionDeviceContext class handle Device
objects. The device is now a mandatory argument (all of the current call
sites were adapted to pass Device.open_local() there). Adding a provider
to the device will transparently push it to the device. Execution
controllers are no longer handled internally and instead are now finally
loaded from the device, using the provider consumer API.

Signed-off-by: Zygmunt Krynicki <email address hidden>

3365. By Zygmunt Krynicki

plainbox:runner: use Device.open_local() when no execution_ctrl_list is set

Signed-off-by: Zygmunt Krynicki <email address hidden>

3364. By Zygmunt Krynicki

plainbox: add device-api-test.sh

Signed-off-by: Zygmunt Krynicki <email address hidden>

3363. By Zygmunt Krynicki

plainbox:commands:device: rewrite 'plainbox device'

This patch entirely changes the 'plainbox device' command.

The first major change is that 'plainbox device' requires an URL that
describes the device that one wants to interact with. The second is that
the new version exposes all of the low-level device APIs as subcommands.

File system commands are the most prominent, sporting a total of eight
sub-commands that allow various file and directory manipulation. Process
control command allows running processes remotely (akin to remote shell,
ssh or adb shell) and OS command exposes the results of OS
finger-printing (probing) that can aid in figuring out what is running
on the other end of the connection.

Signed-off-by: Zygmunt Krynicki <email address hidden>

3362. By Zygmunt Krynicki

plainbox:device: re-design device APIs

This patch discards the current (experimental) device API that bundled
three concepts (connection, operating system and abstract apis) into
separate entities. Now a device running a given operating system should
behave the same regardless of how it is being accessed. At the same time
a connection method (e.g. adb or ssh) doesn't determine the operating
system running on the other end.

The only class now exposed via the device module is the Device class
which has a plugin-based Device.open() class method that can be used to
open any device from a connection URL. The resulting device object has
just a connection object (which is a resource that applications need to
manage) as well as capabilities dictionary that can be used to discover
features exposed by that device.

The long-term goal is to reimplement some execution controllers on top
the device filesystem and process control methods. This way such
execution controllers (coupled with the ABI cookie) could transparently
work in a "remote" testing session.

Currently all of the OS probing code is removed, it will be re-added in
one of the subsequent patches where it uses the filesystem and process
control APIs to detect the "remote" OS.

Signed-off-by: Zygmunt Krynicki <email address hidden>

3361. By Zygmunt Krynicki

plainbox:conn_local: add local connection method

This patch adds a local connection method that can be used with the
'plainbox device' command using the local:// URL. Local connections
expose all four interfaces (fs, proc, os and provider).

Signed-off-by: Zygmunt Krynicki <email address hidden>

3360. By Zygmunt Krynicki

plainbox:os_probe: add OperatingSystemProbe

Signed-off-by: Zygmunt Krynicki <email address hidden>

3359. By Zygmunt Krynicki

plainbox:abc: add device abstraction classes

This patch adds a number of new interfaces for interacting with devices
in plainbox. Those include the IConnectionMethod (connection initiator
and entry point), IConnection (active connection wrapper), IDevice (main
device interface that exposes connection and personalities) and a number
of API classes.

Currently there are four API classes defined: IFileSystemAPI (exposing
basic file system access), IProcessAPI (exposing a way to run processes)
and IOperatingSystemAPI (which simply exposes the os metadata & abi
cookie) and IProviderConsumerAPI (which exposes low-level methods for
working with providers).

Signed-off-by: Zygmunt Krynicki <email address hidden>

fixup-abc

3358. By Zygmunt Krynicki

plainbox:abc: fix PEP-8 issue

Signed-off-by: Zygmunt Krynicki <email address hidden>

3357. By Zygmunt Krynicki

"automatic merge by tarmac [r=kissiel][bug=][author=zkrynicki]"

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
lp:checkbox
This branch contains Public information 
Everyone can see this information.

Subscribers