slice_tag = SliceTag(self.api)
slice_tag['slice_id'] = slice['slice_id']
slice_tag['tag_type_id'] = tag_type['tag_type_id']
+ slice_tag['name'] = slice['name']
+ slice_tag['tagname'] = tag_type['tagname']
+ slice_tag['category'] = tag_type['category']
+ slice_tag['description'] = tag_type['description']
slice_tag['value'] = unicode(value)
# Sliver attribute if node is specified
"""
AlchemyObj.sync(self, commit, validate)
AlchemyObj.insert(self, dict(self))
+ slice_tag = AlchemyObj.select(self, dict(self))[0]
+ self['slice_tag_id'] = slice_tag['slice_tag_id']
def delete(self, commit = True):
"""
def __init__(self, api, filter = None, columns = None):
# the view that we're selecting upon: start with view_slices
- if not filter:
- slice_tags = SliceTags().select()
- elif isinstance(filter, dict):
- slices_tags = SliceTags().select(filter=filter)
+ if not tag_filter:
+ slice_tags = SliceTag().select()
+ elif isinstance(tag_filter, dict):
+ slice_tags = SliceTag().select(filter=tag_filter)
+ elif isinstance(tag_filter, int):
+ slice_tags = SliceTag().select(filter={'slice_tag_id': tag_filter})
+ elif isinstance(tag_filter, (list, tuple, set)):
+ ints = filter(lambda x: isinstance(x, (int, long)), tag_filter)
+ strs = filter(lambda x: isinstance(x, StringTypes), tag_filter)
+ tag_filter = {'slice_tag_id': ints}
+ slice_tags = SliceTag().select(filter=tag_filter)
else:
- raise PLCInvalidArgument, "Wrong slice_tag filter %r"%filter
+ raise PLCInvalidArgument, "Wrong slice_tag filter %r"%tag_filter
for slice_tag in slice_tags:
- self.append(slice_tag)
+ self.append(SliceTag(api, object=slice_tag, columns=columns))
if insert == True or 'tag_type_id' not in self:
AlchemyObj.insert(self, dict(self))
tag_type = AlchemyObj.select(self, filter={'tagname': self['tagname']})
- self['tag_type_id'] = tag_type['tag_type_id']
+ self['tag_type_id'] = tag_type.tag_type_id
else:
AlchemyObj.update(self, dict(self))