Commit bf3deb82 authored by Cristiano Urban's avatar Cristiano Urban
Browse files

Added TapeTask and TapeClient classes.

parent 3e89b3c9
Loading
Loading
Loading
Loading
Loading
+65 −0
Original line number Diff line number Diff line
import json
import paramiko
import sys

from tape_task import TapeTask


class TapeClient(object):

    def __init__(self, host, port, user, password):
        self.host = host
        self.port = port
        self.user = user
        self.password = password
        self.client = paramiko.SSHClient()
        self.client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        self.taskList = []
      
    def connect(self):
        self.client.connect(self.host,
                            self.port, 
                            self.user, 
                            self.password)

    def getTaskList(self):
        stdin, stdout, stderr = self.client.exec_command("eeadm task list --json")
        exitCode = stdout.channel.recv_exit_status()
        if not exitCode:
            result = json.loads(stdout.readlines()[0].rstrip('\n'))
            #print(result)
            #print(len(result["payload"]))
            #print(result["payload"][0])
            for t in result["payload"]:
                task = TapeTask()
                task.inUseTapes = t["inuse_tapes"]
                task.inUsePools = t["inuse_pools"]
                task.inUseNodeGroups = t["inuse_node_groups"]
                task.inUseDrives = t["inuse_drives"]
                task.cmdParam = t["cmd_param"]
                task.result = t["result"]
                task.status = t["status"]
                task.completedTime = t["completed_time"]
                task.startedTime = t["started_time"]
                task.createdTime = t["created_time"]
                task.setInUseLibs = t["inuse_libs"]
                task.type = t["type"]
                task.taskId = t["task_id"]
                task.id = t["id"]
                self.taskList.append(task)
            return self.taskList
        else:
            sys.exit("cmd_exit_code = FAILURE")
      
    def disconnect(self):
        self.client.close()


# Test
tc = TapeClient("192.168.56.101", 22, "root", "ibm")
tc.connect()
tl = tc.getTaskList()
tc.disconnect()
for i in tl:
    print(i.id)
    print('\n')
+59 −0
Original line number Diff line number Diff line
class TapeTask(object):
    
    def __init__(self):
        self.inUseTapes = None
        self.inUsePools = None
        self.inUseNodeGroups = None
        self.inUseDrives = None
        self.cmdParam = None
        self.result = None
        self.status = None
        self.completedTime = None
        self.startedTime = None
        self.createdTime = None
        self.setInUseLibs = None
        self.type = None
        self.taskId = None
        self.id = None
      
    def setInUseTapes(self, inUseTapes):
        self.inUseTapes = inUseTapes
        
    def setInUsePools(self, inUsePools):
        self.inUsePools = inUsePools
        
    def setInUseNodeGroups(self, inUseNodeGroups):
        self.inUseGroups = inUseGroups
    
    def setInUseDrives(self, inUseDrives):
        self.inUseNodeDrives = inUseDrives
        
    def setCmdParam(self, cmdParam):
        self.cmdParam = cmdParam
        
    def setResult(self, result):
        self.result = result
      
    def setStatus(self, status):
        self.status = status
    
    def setCompletedTime(self, completedTime):
        self.completedTime = completedTime
    
    def setStartedTime(self, startedTime):
        self.startedTime = startedTime
        
    def setCreatedTime(self, createdTime):
        self.createdTime = createdTime
    
    def setInUseLibs(self, inUseLibs):
        self.setInUseLibs = inUseLibs
        
    def setType(self, type):
        self.type = type
    
    def setTaskId(self, taskId):
        self.taskId = taskId
        
    def setId(self, id):
        self.id = id