How can I make a class that has methods with attributes and other functions?
I see a lot of code I'm reading the documentation to Redhat's Satellite software which has a XMLRPC interface and wrote the following code to test the api. I would like to extend this code to support methods with methods? I see this done a lot in python code but I'm not sure how to accomplish something like this? i.e. sc = SatelliteConnect() sc.get_systemlist().get_systemid() ? or sc.get_systemlist().get_running_kernel() How does one chain methods and attributes like this with classes? import xmlrpclib import os import sys class SatelliteConnect(object): SATELLITE_URL = "http://nebula.nydc.fxcorp.prv/rpc/api" SATELLITE_LOGIN = os.environ['USER'] SATELLITE_PASS = os.environ.get('SATELLITE_PASS',None) def __init__(self): self.client = xmlrpclib.Server(self.SATELLITE_URL, verbose=0) self._check_env('SATELLITE_PASS') self.key = self.client.auth.login(self.SATELLITE_LOGIN, self.SATELLITE_PASS) def _check_env(self, env_var): if not os.environ.get('SATELLITE_PASS'): print("{} error please set environment varible {} and re-run script".format(sys.argv[0], env_var)) sys.exit(-1) def get_runningkernel(self, sysid): self.get_systemid('somehost') kernel = self.client.system.getRunningKernel(self.key, sysid) if kernel: return kernel else: return None def get_systemlist(self): systemlist = self.client.system.listSystems(self.key) return([ system.get('name') for system in systemlist ]) self.client.auth.logout(self.key) def get_systemid(self, host): systemlist = self.client.system.getId(self.key, host) for system in systemlist: return system.get('id')
-- http://mail.python.org/mailman/listinfo/python-list