Class confusion
Rodrick Brown
rodrick.brown at gmail.com
Wed Jan 9 15:13:30 EST 2013
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')
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20130109/5e7e40eb/attachment.html>
More information about the Python-list
mailing list