From 69b630425a89c3f15da6004afa00ae7b0e230e7b Mon Sep 17 00:00:00 2001 From: Faiyaz Ahmed Date: Wed, 15 Apr 2009 00:47:16 +0000 Subject: [PATCH] moved comments into function for help(). --- geni/util/record.py | 115 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 94 insertions(+), 21 deletions(-) diff --git a/geni/util/record.py b/geni/util/record.py index 72d54c88..6e82d9fa 100644 --- a/geni/util/record.py +++ b/geni/util/record.py @@ -8,28 +8,30 @@ import report from types import StringTypes from gid import * from geni.util.rspec import * -## -# The GeniRecord class implements a Geni Record. A GeniRecord is a tuple -# (Name, GID, Type, Info). -# -# Name specifies the HRN of the object -# GID is the GID of the object -# Type is user | sa | ma | slice | component -# -# Info is comprised of the following sub-fields -# pointer = a pointer to the record in the PL database -# pl_info = planetlab-specific info (when talking to client) -# geni_info = geni-specific info (when talking to client) -# -# The pointer is interpreted depending on the type of the record. For example, -# if the type=="user", then pointer is assumed to be a person_id that indexes -# into the persons table. -# -# A given HRN may have more than one record, provided that the records are -# of different types. For example, planetlab.us.arizona may have both an SA -# and a MA record, but cannot have two SA records. + class GeniRecord: + """ + The GeniRecord class implements a Geni Record. A GeniRecord is a tuple + (Name, GID, Type, Info). + + Name specifies the HRN of the object + GID is the GID of the object + Type is user | sa | ma | slice | component + + Info is comprised of the following sub-fields + pointer = a pointer to the record in the PL database + pl_info = planetlab-specific info (when talking to client) + geni_info = geni-specific info (when talking to client) + + The pointer is interpreted depending on the type of the record. For example, + if the type=="user", then pointer is assumed to be a person_id that indexes + into the persons table. + + A given HRN may have more than one record, provided that the records are + of different types. For example, planetlab.us.arizona may have both an SA + and a MA record, but cannot have two SA records. + """ ## # Create a Geni Record @@ -67,6 +69,9 @@ class GeniRecord: # @param name is a string containing the HRN def set_name(self, name): + """ + Set the name of the record + """ self.name = name self.dirty = True @@ -76,6 +81,10 @@ class GeniRecord: # @param gid is a GID object or the string representation of a GID object def set_gid(self, gid): + """ + Set the GID of the record + """ + if isinstance(gid, StringTypes): self.gid = gid else: @@ -88,6 +97,9 @@ class GeniRecord: # @param type is a string: user | sa | ma | slice | component def set_type(self, type): + """ + Set the type of the record + """ self.type = type self.dirty = True @@ -97,6 +109,9 @@ class GeniRecord: # @param pointer is an integer containing the ID of a PLC record def set_pointer(self, pointer): + """ + Set the pointer of the record + """ self.pointer = pointer self.dirty = True @@ -106,6 +121,9 @@ class GeniRecord: # @param pl_info is a dictionary containing planetlab info def set_pl_info(self, pl_info): + """ + Set the PLC info of the record + """ if isinstance(pl_info, list): pl_info = pl_info[0] @@ -125,6 +143,9 @@ class GeniRecord: # @param geni_info is a dictionary containing geni info def set_geni_info(self, geni_info): + """ + Set the geni info the record + """ if isinstance(geni_info, list): geni_info = geni_info[0] self.geni_info = geni_info @@ -134,6 +155,9 @@ class GeniRecord: # Return the pl_info of the record, or an empty dictionary if none exists def get_pl_info(self): + """ + Return the pl_info of the record, or an empty dictionary if none exists + """ if self.pl_info: return self.pl_info else: @@ -143,6 +167,9 @@ class GeniRecord: # Return the geni_info of the record, or an empty dictionary if none exists def get_geni_info(self): + """ + Return the geni_info of the record, or an empty dictionary if none exists + """ if self.geni_info: return self.geni_info else: @@ -152,12 +179,18 @@ class GeniRecord: # Return the name (HRN) of the record def get_name(self): + """ + Return the name (HRN) of the record + """ return self.name ## # Return the type of the record def get_type(self): + """ + Return the type of the record + """ return self.type ## @@ -166,6 +199,11 @@ class GeniRecord: # depends on the type of the record def get_pointer(self): + """ + Return the pointer of the record. The pointer is an integer that may be + used to look up the record in the PLC database. The evaluation of pointer + depends on the type of the record + """ return self.pointer ## @@ -174,6 +212,9 @@ class GeniRecord: # gidObjects in the Cred def get_gid_object(self): + """ + Return the GID of the record, in the form of a GID object + """ return GID(string=self.gid) ## @@ -182,6 +223,11 @@ class GeniRecord: # database. def get_key(self): + """ + Return a key that uniquely identifies this record among all records in + Geni. This key is used to uniquely identify the record in the Geni + database. + """ return self.name + "#" + self.type ## @@ -190,6 +236,11 @@ class GeniRecord: # database, but are rather computed values from other entities def get_field_names(self): + """ + Returns a list of field names in this record. pl_info, geni_info are not + included because they are not part of the record that is stored in the + database, but are rather computed values from other entities + """ return ["name", "gid", "type", "pointer"] ## @@ -198,6 +249,9 @@ class GeniRecord: # @param name is the name of field to be returned def get_field_value_string(self, fieldname): + """ + Given a field name ("name", "gid", ...) return the value of that field. + """ if fieldname == "key": val = self.get_key() else: @@ -213,6 +267,9 @@ class GeniRecord: # @param fieldnames is a list of field names def get_field_value_strings(self, fieldnames): + """ + Given a list of field names, return a list of values for those fields. + """ strs = [] for fieldname in fieldnames: strs.append(self.get_field_value_string(fieldname)) @@ -222,6 +279,9 @@ class GeniRecord: # Return the record in the form of a dictionary def as_dict(self): + """ + Return the record in the form of a dictionary + """ dict = {} names = self.get_field_names() for name in names: @@ -241,6 +301,9 @@ class GeniRecord: # @param dict dictionary to load record fields from def load_from_dict(self, dict): + """ + Load the record from a dictionary + """ self.set_name(dict['name']) gidstr = dict.get("gid", None) if gidstr: @@ -258,7 +321,10 @@ class GeniRecord: # the record. def save_to_string(self): - + """ + Save the record to a string. The string contains an XML representation of + the record. + """ dict = self.as_dict() record = RecordSpec() record.parseDict(dict) @@ -271,6 +337,10 @@ class GeniRecord: # representation of the record. def load_from_string(self, str): + """ + Load the record from a string. The string is assumed to contain an XML + representation of the record. + """ #dict = xmlrpclib.loads(str)[0][0] record = RecordSpec() @@ -285,6 +355,9 @@ class GeniRecord: # @param dump_parents if true, then the parents of the GID will be dumped def dump(self, dump_parents=False): + """ + Walk tree and dump records. + """ print "RECORD", self.name print " hrn:", self.name print " type:", self.type -- 2.43.0