Class confusion

R

Rodrick Brown

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')
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top