def job_build_now(self, job_opt): data_encrypter = DataEncrypter() self.host_password_api = data_encrypter.decrypt(data=self.host_password_api) jenkins_url_job_build_now = (self.host_protocal_api + '://'+ self.host + ':' + self.host_port_api + '/job/' + self.name + '/' + job_opt) response_build_result = requests.post( jenkins_url_job_build_now, auth=(self.host_username_api, self.host_password_api)) return (response_build_result)
def container_shell(self): sshclient = paramiko.SSHClient() sshclient.load_system_host_keys() sshclient.set_missing_host_key_policy(paramiko.AutoAddPolicy()) data_encrypter = DataEncrypter() self.host_password = data_encrypter.decrypt(data=self.host_password) sshclient.connect(self.host, self.host_port, self.host_username, self.host_password) channel = sshclient.invoke_shell(term='xterm') channel.settimeout(0) return (channel)
def get_channel_over_ssh(host='', port='22', username='', password='', cmd=''): try: ssh_client = paramiko.SSHClient() ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) data_encrypter = DataEncrypter() password = data_encrypter.decrypt(data=password) ssh_client.connect(host, port, username, password) # open channel pipeline transport = ssh_client.get_transport() channel = transport.open_session() channel.get_pty() # out command into pipeline channel.exec_command(cmd) return channel except Exception as e: logging.error(e) return None
def exec_command_over_ssh(host='', port='22', username='', password='', cmd=''): try: ssh_client = paramiko.SSHClient() ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) data_encrypter = DataEncrypter() password = data_encrypter.decrypt(data=password) ssh_client.connect(host, port, username, password, timeout=1.5) std_in, std_out, std_err = ssh_client.exec_command(cmd) std_out = std_out.read() ssh_client.close() return (std_out) except Exception as e: logging.error(e) return None
def transfer_file_over_sftp(host='', port='22', username='', password='', cmd='', remote_path='', local_path=''): try: tran = paramiko.Transport((host, port)) data_encrypter = DataEncrypter() password = data_encrypter.decrypt(data=password) tran.connect(username=username, password=password) sftp = paramiko.SFTPClient.from_transport(tran) sftp.get(remote_path, local_path) tran.close() return True except Exception as e: logging.error(e) return None
def get_job_list(self): job_list = [] try: jenkins_job_list_url = self.protocal_api + '://' + self.host + ':' + str( self.port_api) + '/api/json' data_encrypter = DataEncrypter() self.password_api = data_encrypter.decrypt(data=self.password_api) jenkins_response = requests.get(jenkins_job_list_url, auth=(self.username_api, self.password_api)) job_info = jenkins_response.json().get('jobs') for i in range(0, len(job_info)): job = Job() job.host = self.host job.host_port_api = self.port_api job.host_protocal_api = self.protocal_api job.name = job_info[i].get('name') job.color = job_info[i].get('color') job_list.append(job) return (job_list) except Exception as e: logging.error(e) return None
def post(self, request): host = request.POST.get('host', '') port = request.POST.get('port', 0) username = request.POST.get('username', '') password = request.POST.get('password', '') username_api = request.POST.get('username_api', '') password_api = request.POST.get('password_api', '') port_api = request.POST.get('port_api', 0) protocal_api = request.POST.get('protocal_api', '') file_path_root = request.POST.get('file_path_root', '') description = request.POST.get('description', '') server_type = request.POST.get('server_type', '') try: server_type_id = ServerType.objects.get( server_type=server_type).server_type_id obj = Server.objects.get(server_type_id=server_type_id, host=host) obj.host = host obj.port = int(port) obj.username = username obj.username_api = username_api obj.port_api = int(port_api) obj.protocal_api = protocal_api obj.file_path_root = file_path_root obj.description = description if password != '': obj.password = password else: data_encrypter = DataEncrypter() password = data_encrypter.decrypt(data=obj.password) obj.password = password if password_api != '': obj.password_api = password_api else: data_encrypter = DataEncrypter() password_api = data_encrypter.decrypt(data=obj.password_api) obj.password_api = password_api obj.save() except Exception as e: logging.error(e) return redirect('/server/server_list')
def save(self, *args, **kwargs): data_encrypter = DataEncrypter() self.password = data_encrypter.encrypt(data=self.password) self.password_api = data_encrypter.encrypt(data=self.password_api) super().save(*args, **kwargs) # Call the "real" save() method.