- s = ovs.db.parser.unwrap_json(json, "uuid", unicode)
- if not UUID.uuidRE.match(s):
- raise error.Error("\"%s\" is not a valid UUID" % s, json)
- return UUID(s)
- except error.Error, e:
- if not symtab:
- raise e
- try:
- name = ovs.db.parser.unwrap_json(json, "named-uuid", unicode)
- except error.Error:
- raise e
-
- if name not in symtab:
- symtab[name] = uuid4()
- return symtab[name]
-
- def to_json(self):
- return ["uuid", str(self)]
-
- def cInitUUID(self, var):
- m = re.match(str(self))
- return ["%s.parts[0] = 0x%s;" % (var, m.group(1)),
- "%s.parts[1] = 0x%s%s;" % (var, m.group(2), m.group(3)),
- "%s.parts[2] = 0x%s%s;" % (var, m.group(4), m.group(5)),
- "%s.parts[3] = 0x%s;" % (var, m.group(6))]
+ name = ovs.db.parser.unwrap_json(json, "named-uuid",
+ [str, unicode], "string")
+ except error.Error:
+ raise e
+
+ if name not in symtab:
+ symtab[name] = uuid.uuid4()
+ return symtab[name]
+
+
+def to_json(uuid_):
+ return ["uuid", str(uuid_)]
+
+
+def to_c_assignment(uuid_, var):
+ """Returns an array of strings, each of which contain a C statement. The
+ statements assign 'uuid_' to a "struct uuid" as defined in Open vSwitch
+ lib/uuid.h."""