Beispiel #1
0
class ClusterSession:
    def __init__(self, cluster_ip, user, password, vserver=None):
        self.server = NaServer(cluster_ip, 1, 100)
        self.server.set_server_type('FILER')
        self.server.set_transport_type('HTTP')
        self.server.set_port(80)
        self.server.set_style('LOGIN')
        self.server.set_admin_user(user, password)
        if vserver is not None:
            self.server.set_vserver(vserver)

    def get_vserver(self):
        return self.server.get_vserver()

    def run_command(self, api):
        return self.server.invoke_elem(api)

    def get_nodes(self):
        api_call = NaElement('cluster-node-get-iter')
        output = self.run_command(api_call)
        if output.results_status() == 'failed':
            return output.results_status(), output.sprintf()
        else:
            cluster_node_info = output.children_get()
            for cni in cluster_node_info:
                if cni.has_children() == 1:
                    nodes = cni.children_get()
                    nodes_list = []
                    for n in nodes:
                        nodes_list.append(n.child_get_string('node-name'))
            return nodes_list