--- /dev/null
+The server folder contains basically the code for the registry interface.
+ The most important file is called the 'server.py' containing the implementation of the operations of the API.
+ There are two files containing python dictionaries which are used to save and reload cache information about the authority hierarchies.
+ The 'slice' and 'component' folders contain the keys of each authority in hierarchy.
+
+The gui directory is the client part.
+ There is a GUI in java, but the authentication logic and function calls are all in a file called 'clientstub.py'. This file is found in 'gui/JavaApplication1/client_osaka' directory.
+ 'client_osaka' and 'client_keiko' are just two example client folders that we use to test the interfaces.
+
+util folder contains almost all of the core code.
+ 'tree.py' is important for setting up a hierarchy of authorities corresponding to PlanetLab sites. As noted before, you can find the generated hierarchy under the folder in server folder, with names 'slice' and 'component' folders.
+ sec folder under util is the security module. 'sec.py' contains both the authentication/authorization related functions (used while a new connection is being established), also certificate related functions (credentials creation, etc).
+ Other files are util code for PlanetLab to GENI conversion logic, database and exceptions.
+
+Contact me at ssevinc@cs.princeton.edu for more information.
+Soner Sevinc
+
+
class GENIServer(SSL.SSLServer):
- #NOTE:
- # step1: The caller first makes a discovery call.
- # step2: If the hrn is not managed by this interface, the appropriate child wrapper URL is returned.
- # step3: Else, DOMAIN_NAME is returned.
- # step4: Then, the caller does the call with authentication and authorization elements.
- # step5: The interface handles the call:
- # - Check if HRN is in the same database, or another db (again handled by this interface)
- # - Perform the call in appropriate database in appropriate table.
- # - For remote databases, ensure security.
-
- #NOTE: For all calls below, if the parameter dbinfo that points to the db/tabe to act shows a different db than the interface tree's root, then
- #the PL calls should also reflect that; the PL calls should be made to that db. Currently PL API db configuration is static, and there is no problem now
- #since all nodes in interface tree reside at the same database
-
#record is the record to be registered
#dbinfo is the information showing the relevant tables to act (db and table name), in the subtree this interface manages
def register(self, record, dbinfo):