Class confusion

Discussion in 'Python' started by Rodrick Brown, Jan 9, 2013.

  1. 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')
     
    Rodrick Brown, Jan 9, 2013
    #1
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. E11
    Replies:
    1
    Views:
    4,850
    Thomas Weidenfeller
    Oct 12, 2005
  2. Fao, Sean

    Class Confusion

    Fao, Sean, Sep 1, 2004, in forum: C++
    Replies:
    4
    Views:
    439
    Fao, Sean
    Sep 2, 2004
  3. christopher diggins
    Replies:
    16
    Views:
    771
    Pete Becker
    May 4, 2005
  4. Cndistin
    Replies:
    3
    Views:
    273
    Pierre Quentel
    Jan 6, 2004
  5. Joseph Turian
    Replies:
    5
    Views:
    610
Loading...

Share This Page