# @param geni_fields dictionary of geni fields
# @param pl_fields dictionary of PLC fields (output)
- def geni_fields_to_pl_fields(self, type, hrn, geni_fields, pl_fields):
- if type == "user":
- if not "email" in pl_fields:
- if not "email" in geni_fields:
- raise MissingGeniInfo("email")
- pl_fields["email"] = geni_fields["email"]
-
- if not "first_name" in pl_fields:
- pl_fields["first_name"] = "geni"
-
- if not "last_name" in pl_fields:
- pl_fields["last_name"] = hrn
-
- elif type == "slice":
- if not "instantiation" in pl_fields:
- pl_fields["instantiation"] = "delegated" # "plc-instantiated"
- if not "name" in pl_fields:
- pl_fields["name"] = hrn_to_pl_slicename(hrn)
- if not "max_nodes" in pl_fields:
- pl_fields["max_nodes"] = 10
+ def geni_fields_to_pl_fields(self, type, hrn, record):
+
+ def convert_ints(tmpdict, int_fields):
+ for field in int_fields:
+ if field in tmpdict:
+ tmpdict[field] = int(tmpdict[field])
+
+ pl_record = {}
+ #for field in record:
+ # pl_record[field] = record[field]
+
+ if type == "slice":
+ if not "instantiation" in pl_record:
+ pl_record["instantiation"] = "plc-instantiated"
+ pl_record["name"] = hrn_to_pl_slicename(hrn)
+ if "url" in record:
+ pl_record["url"] = record["url"]
elif type == "node":
- if not "hostname" in pl_fields:
- if not "dns" in geni_fields:
+ if not "hostname" in pl_record:
+ if not "dns" in record:
raise MissingGeniInfo("dns")
- pl_fields["hostname"] = geni_fields["dns"]
- if not "model" in pl_fields:
- pl_fields["model"] = "geni"
+ pl_record["hostname"] = record["dns"]
+ if not "model" in pl_record:
+ pl_record["model"] = "geni"
elif type == "authority":
- pl_fields["login_base"] = hrn_to_pl_login_base(hrn)
+ pl_record["login_base"] = hrn_to_pl_login_base(hrn)
- if not "name" in pl_fields:
- pl_fields["name"] = hrn
+ if not "name" in pl_record:
+ pl_record["name"] = hrn
- if not "abbreviated_name" in pl_fields:
- pl_fields["abbreviated_name"] = hrn
+ if not "abbreviated_name" in pl_record:
+ pl_record["abbreviated_name"] = hrn
- if not "enabled" in pl_fields:
- pl_fields["enabled"] = True
-
- if not "is_public" in pl_fields:
- pl_fields["is_public"] = True
+ if not "enabled" in pl_record:
+ pl_record["enabled"] = True
+ if not "is_public" in pl_record:
+ pl_record["is_public"] = True
+ return pl_record
def fill_record_pl_info(self, record):
"""
user_records = auth_table.find("user", person_id, "pointer")
for user_record in user_records:
self.fill_record_info(user_record)
-
user_roles = user_record.get("roles")
if (role=="*") or (role in user_roles):
record_list.append(user_record.get_name())
def fill_record_geni_info(self, record):
geni_info = {}
type = record.get_type()
-
if (type == "slice"):
auth_table = self.auth.get_auth_table(self.auth.get_authority(record.get_name()))
person_ids = record.get("person_ids", [])
def update_membership_list(self, oldRecord, record, listName, addFunc, delFunc):
# get a list of the HRNs tht are members of the old and new records
- oldList = oldRecord.get(listName, [])
+ if oldRecord:
+ oldList = oldRecord.get(listName, [])
+ else:
+ oldList = []
newList = record.get(listName, [])
# if the lists are the same, then we don't have to update anything