lp:~zyga/checkbox/result-builder

Created by Zygmunt Krynicki and last modified
Get this branch:
bzr branch lp:~zyga/checkbox/result-builder
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:
Merged

Recent revisions

3828. By Zygmunt Krynicki

plainbox:result: remove all setters and change signals

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

3827. By Zygmunt Krynicki

checkbox-ng:service: use custom dbus object path for results

This patch changes the way object paths are created for results so that
they don't reflect the identity of the wrapped object, but instead, of
the wrapper itself.

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

3826. By Zygmunt Krynicki

checkbox-ng:service: create new objects on result modification

This patch does three tightly coupled things:
 - It entirely prevents any modifications to job results, as seen in the
   service (while keeping the interface that allows one to do so over
   dbus). Each such change is now replaced by the creation of a new
   result that internally replaces the last one.
 - It removes all signal handling related to such modifications (so no
   more subscribe/unsubscribe calls)
 - It suppresses a KeyError that would be raised when a (replaced)
   result was being removed. This can happen when a result replaces
   itself (internally) and we try to remove the old instance again (only
   holding the python-side, aka native, object as the key).

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

3825. By Zygmunt Krynicki

checkbox-ng:service: use JobResultBuilder for SetOutcome()

This patch uses a result builder in the sequence of calls that implement
the SetOutcome logic (used for manual and interactive jobs only). This
is done to prevent modification of any existing result.

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

3824. By Zygmunt Krynicki

checkbox-ng:dbus_ex: add setter for ObjectWrapper.native

This patch makes it possible to re-target an ObjectWrapper so that from
the outside, nothing changes, but on the inside, the object being
wrapped (the python object being wrapped with a dbus interface) is
indeed changed.

The main motivation for this change is to make it possible to re-wire
results on any change (which are about to become immutable).

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

3823. By Zygmunt Krynicki

checkbox-ng:commands:newcli: don't clobber outcome

This patch makes checkbox-ng create a new result object rather than
modifying the existing one before a re-run session.

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

3822. By Zygmunt Krynicki

checkbox-touch: use JobResultBuilder

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

3821. By Zygmunt Krynicki

plainbox:exporter:hexr: fix escaping test

The original test injected "evil" data by setting the _io_log attribute
(note the leading underscore). This was easily mistaken since the
original code was accepting any attributes. I spotted this during the
job result builder conversion and decided to fix it properly.

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

3820. By Zygmunt Krynicki

plainbox:exporter:hexr: use JobResultBuilder

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

3819. By Zygmunt Krynicki

plainbox:commands:run: use JobResultBuilder

This patch changes all of the result handling in the implementation of
"plainbox run" to rely on job result builder. This is done to avoid any
modification of existing results and instead, if appropriate,
construction of new results.

One minor detail is that the timing measurements are now done at a lower
level, where we still have the result builder.

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

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