-
- ##
- # Connect to a remote shell via XMLRPC
-
- def connect_remote_shell(self):
- from geni.util import remoteshell
- self.shell = remoteshell.RemoteShell()
-
- ##
- # Connect to a local shell via local API functions
-
- def connect_local_shell(self):
- import PLC.Shell
- self.shell = PLC.Shell.Shell(globals = globals())
-
- ##
- # Register the server RPCs for the registry
-
- def loadCredential(self):
- """
- Attempt to load credential from file if it exists. If it doesnt get
- credential from registry.
- """
-
- # see if this file exists
- # XX This is really the aggregate's credential. Using this is easier than getting
- # the registry's credential from iteslf (ssl errors).
- ma_cred_filename = self.server_basedir + os.sep + "agg." + self.hrn + ".ma.cred"
- try:
- self.credential = Credential(filename = ma_cred_filename)
- except IOError:
- self.credential = self.getCredentialFromRegistry()
-
- def getCredentialFromRegistry(self):
- """
- Get our current credential from the registry.
- """
- # get self credential
- self_cred_filename = self.server_basedir + os.sep + "smgr." + self.hrn + ".cred"
- self_cred = self.registry.get_credential(None, 'ma', self.hrn)
- self_cred.save_to_file(self_cred_filename, save_parents=True)
-
- # get ma credential
- ma_cred_filename = self.server_basedir + os.sep + "smgr." + self.hrn + ".sa.cred"
- ma_cred = self.registry.get_credential(self_cred, 'sa', self.hrn)
- ma_cred.save_to_file(ma_cred_filename, save_parents=True)
- return ma_cred
-
- def connectRegistry(self):
- """
- Connect to the registry
- """
- # connect to registry using GeniClient
- address = self.config.GENI_REGISTRY_HOSTNAME
- port = self.config.GENI_REGISTRY_PORT
- url = 'http://%(address)s:%(port)s' % locals()
- self.registry = GeniClient(url, self.key_file, self.cert_file)
-