fixed: encodes boolean and double type values for the requests
[plcapi.git] / PLC / NodeTags.py
index 6577c91..7f69e32 100644 (file)
@@ -1,13 +1,12 @@
 #
 # Thierry Parmentelat - INRIA
 #
-# $Revision: 9423 $
-#
 from PLC.Faults import *
 from PLC.Parameter import Parameter
 from PLC.Filter import Filter
 from PLC.Table import Row, Table
-from PLC.NodeTagTypes import NodeTagType, NodeTagTypes
+from PLC.Nodes import Node, Nodes
+from PLC.TagTypes import TagType, TagTypes
 
 class NodeTag(Row):
     """
@@ -19,15 +18,13 @@ class NodeTag(Row):
     primary_key = 'node_tag_id'
     fields = {
         'node_tag_id': Parameter(int, "Node tag identifier"),
-        'node_id': Parameter(int, "Node identifier"),
-        'node_tag_type_id': NodeTagType.fields['node_tag_type_id'],
-        'name': NodeTagType.fields['name'],
-        'description': NodeTagType.fields['description'],
-        'category': NodeTagType.fields['category'],
-        'min_role_id': NodeTagType.fields['min_role_id'],
+        'node_id': Node.fields['node_id'],
+        'hostname' : Node.fields['hostname'],
+        'tag_type_id': TagType.fields['tag_type_id'],
         'value': Parameter(str, "Node tag value"),
-       ### relations
-       
+        'tagname': TagType.fields['tagname'],
+        'description': TagType.fields['description'],
+        'category': TagType.fields['category'],
         }
 
 class NodeTags(Table):
@@ -43,12 +40,10 @@ class NodeTags(Table):
               ", ".join(self.columns)
 
         if node_tag_filter is not None:
-            if isinstance(node_tag_filter, (list, tuple, set)):
+            if isinstance(node_tag_filter, (list, tuple, set, int, long)):
                 node_tag_filter = Filter(NodeTag.fields, {'node_tag_id': node_tag_filter})
             elif isinstance(node_tag_filter, dict):
                 node_tag_filter = Filter(NodeTag.fields, node_tag_filter)
-            elif isinstance(node_tag_filter, int):
-                node_tag_filter = Filter(NodeTag.fields, {'node_tag_id': [node_tag_filter]})
             else:
                 raise PLCInvalidArgument, "Wrong node tag filter %r"%node_tag_filter
             sql += " AND (%s) %s" % node_tag_filter.sql(api)