On Wed, Mar 19, 2014 at 10:25 AM, Michele Tartara <[email protected]>wrote:
> On Wed, Mar 19, 2014 at 9:55 AM, Hrvoje Ribicic <[email protected]> wrote: > > To explicitly specify the order of patches executed, the QA provides an > > "order" file. It can contain names of patches that will be executed > > first, and in the order listed, before all the other patches that still > > follow an alphabetical order. > > > > Signed-off-by: Hrvoje Ribicic <[email protected]> > > --- > > qa/patch/order | 0 > > qa/qa_config.py | 24 +++++++++++++++++++++++- > > 2 files changed, 23 insertions(+), 1 deletion(-) > > create mode 100644 qa/patch/order > > > > diff --git a/qa/patch/order b/qa/patch/order > > new file mode 100644 > > index 0000000..e69de29 > > diff --git a/qa/qa_config.py b/qa/qa_config.py > > index 0340883..3798483 100644 > > --- a/qa/qa_config.py > > +++ b/qa/qa_config.py > > @@ -45,6 +45,7 @@ _ENABLED_DISK_TEMPLATES_KEY = "enabled-disk-templates" > > _QA_BASE_PATH = os.path.dirname(__file__) > > _QA_DEFAULT_PATCH = "qa-patch.json" > > _QA_PATCH_DIR = "patch" > > +_QA_PATCH_ORDER_FILE = "order" > > > > #: QA configuration (L{_QaConfig}) > > _config = None > > @@ -311,10 +312,31 @@ class _QaConfig(object): > > @return: The modified configuration data. > > > > """ > > + ordered_patches = [] > > + order_path = os.path.join(_QA_BASE_PATH, _QA_PATCH_DIR, > > + _QA_PATCH_ORDER_FILE) > > + if os.path.exists(order_path): > > + order_file = open(order_path, 'r') > > + ordered_patches = order_file.read().splitlines() > > + ordered_patches = filter(None, ordered_patches) > > It's not entirely clear to me what this line is doing. Is it removing > empty lines from the "order" file? > Yes, passing None to the filter function in Python makes the filter use the identity function. If there is not a better way of doing this, I will simply place a comment as to not confuse anyone? > > > + > > + # Add the patch dir > > + ordered_patches = map(lambda x: os.path.join(_QA_PATCH_DIR, x), > > + ordered_patches) > > + > > + # First the ordered patches > > + for patch in ordered_patches: > > + if patch not in patches: > > + raise qa_error.Error("Patch %s specified in the ordering file > does not " > > + "exist" % patch) > > + data = patch_module.apply_patch(data, patches[patch]) > > + > > + # Then the other non-default ones > > for patch in sorted(patches): > > - if patch != _QA_DEFAULT_PATCH: > > + if patch != _QA_DEFAULT_PATCH and patch not in ordered_patches: > > data = patch_module.apply_patch(data, patches[patch]) > > > > + # Finally the default one > > if _QA_DEFAULT_PATCH in patches: > > data = patch_module.apply_patch(data, patches[_QA_DEFAULT_PATCH]) > > > > -- > > 1.9.0.279.gdc9e3eb > > > > Rest LGTM, thanks. > > Cheers, > Michele > > -- > Google Germany GmbH > Dienerstr. 12 > 80331 München > > Registergericht und -nummer: Hamburg, HRB 86891 > Sitz der Gesellschaft: Hamburg > Geschäftsführer: Graham Law, Christine Elizabeth Flores >
