Comment 0 for bug 1737126

Revision history for this message
Dmitrii Shcherbakov (dmitriis) wrote : [xenial-updates-backport] support dash "-" in a tag name for filters

Need to backport this to be able to match tag names that contain dashes:

http://bazaar.launchpad.net/~simplestreams-dev/simplestreams/trunk/revision/445

commit 2df782018dda0b58f2296b981e6eef2cc08b9ab0
Author: Lee Trager <email address hidden>
Date: Mon Oct 17 13:26:06 2016 -0700

    Allow filtered fields to contain a '-'

diff --git a/simplestreams/filters.py b/simplestreams/filters.py
index 5e93ce4..3818949 100644
--- a/simplestreams/filters.py
+++ b/simplestreams/filters.py
@@ -22,7 +22,7 @@ import re

 class ItemFilter(object):
     def __init__(self, content, noneval=""):
- rparsefmt = r"(\w+)[ ]*([!]{0,1}[=~])[ ]*(.*)[ ]*$"
+ rparsefmt = r"([\w|\-]+)[ ]*([!]{0,1}[=~])[ ]*(.*)[ ]*$"
         parsed = re.match(rparsefmt, content)

         if not parsed:

I was trying to match by bootloader-type:

sstream-mirror --progress --max=1 --keyring=/usr/share/keyrings/ubuntu-cloudimage-keyring.gpg http://images.maas.io/ephemeral-v3/daily/ ~/mirror/images.maas.io/ephemeral-v3/daily/ 'bootloader-type=~(pxe|(^$))' 'arch=amd64' 'subarch~((ga-16.04)|(^$))' 'kflavor~((generic)|(^$))' 'content_id~((com.ubuntu.maas:daily:1:bootloader-download)|com.ubuntu.maas.daily:v3)'
Traceback (most recent call last):
  File "/usr/bin/sstream-mirror", line 157, in <module>
    main()
  File "/usr/bin/sstream-mirror", line 112, in main
    filter_list = filters.get_filters(args.filters)
  File "/usr/lib/python3/dist-packages/simplestreams/filters.py", line 62, in get_filters
    flist.append(ItemFilter(f, noneval=noneval))
  File "/usr/lib/python3/dist-packages/simplestreams/filters.py", line 29, in __init__
    raise ValueError("Unable to parse expression %s" % content)
ValueError: Unable to parse expression bootloader-type=~(pxe|(^$))