# desired.
# 1. Lowercase.
- # 2. Begins with login_base (only letters).
+ # 2. Begins with login_base (letters or numbers).
# 3. Then single underscore after login_base.
# 4. Then letters, numbers, or underscores.
- good_name = r'^[a-z]+_[a-z0-9_]+$'
+ good_name = r'^[a-z0-9]+_[a-zA-Z0-9_]+$'
if not name or \
not re.match(good_name, name):
raise PLCInvalidArgument, "Invalid slice name"
if expires is not None:
if expires >= 0:
- sql += " AND expires > %(expires)d"
+ sql += " AND expires > %d" % expires
else:
expires = -expires
- sql += " AND expires < %(expires)d"
+ sql += " AND expires < %d" % expires
if slice_filter is not None:
if isinstance(slice_filter, (list, tuple, set)):
slice_filter = Filter(Slice.fields, slice_filter)
sql += " AND (%s)" % slice_filter.sql(api, "AND")
- self.selectall(sql, locals())
+ self.selectall(sql)