Skip to content

Commit 7ab7c67

Browse files
authored
Create DTS
1 parent 8f529ba commit 7ab7c67

File tree

1 file changed

+147
-0
lines changed

1 file changed

+147
-0
lines changed

DTS

+147
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
#!/usr/bin/python
2+
# -*- coding: UTF-8 -*-
3+
#coding=utf-8
4+
#coding: utf-8
5+
6+
import sys,os
7+
from datetime import datetime
8+
import urllib.parse,urllib.request,http.cookiejar
9+
from ntlm import HTTPNtlmAuthHandler
10+
from tkinter import *
11+
import tkinter.messagebox
12+
13+
class MainWindow:
14+
15+
def __init__(self):
16+
self.frame = Tk()
17+
18+
self.label_id = Label(self.frame,text = "USER :",width=10)
19+
self.label_pwd = Label(self.frame,text = "PWD :",width=10)
20+
self.label_jira = Label(self.frame,text = "JIRA url :",width=10)
21+
self.label_dts = Label(self.frame,text = "DTS url :",width=10)
22+
23+
self.label_id.grid(row = 0,column = 0)
24+
self.label_pwd.grid(row = 1,column = 0)
25+
self.label_jira.grid(row = 2,column = 0)
26+
self.label_dts.grid(row = 3,column = 0)
27+
28+
self.text_id = Entry(self.frame,width=40)
29+
self.text_pwd = Entry(self.frame,width=40)
30+
self.text_jira = Entry(self.frame,width=40)
31+
self.text_dts = Entry(self.frame,width=40)
32+
33+
self.text_id.grid(row = 0,column = 1)
34+
self.text_pwd.grid(row = 1,column = 1)
35+
self.text_jira.grid(row = 2,column = 1)
36+
self.text_dts.grid(row = 3,column = 1)
37+
38+
self.button_ok = Button(self.frame,text = "ok",width = 40)
39+
self.button_ok.grid(row = 4,column = 1)
40+
self.button_ok.bind("<ButtonRelease-1>",self.ok)
41+
42+
self.frame.title('JIRA DTS Handle')
43+
self.frame.mainloop()
44+
45+
46+
def ok(self,event):
47+
path_dir= os.getcwd()
48+
i_id = self.text_id.get() or ' null '
49+
i_pwd = self.text_pwd.get() or ' null '
50+
i_jira = self.text_jira.get() or r'http://hisi-jira-pfm/sr/jira.issueviews:searchrequest-excel-current-fields/14302/SearchRequest-14302.xls?tempMax=10000&useColumns=true'
51+
i_dts = self.text_dts.get() or r'http://dts.huawei.com/net/dts/DTS/DTSAllList.aspx?CustomListId=20160202-1629-3470-9495-9697f8e993b3&&DTSBizList_AllExcelExport=1&DTSBizList_AllExportType=1&DTSBizList_AllExportField=0'
52+
jira_file = r'D:\\jira.xls'
53+
dts_file = r'D:\\dts.xls'
54+
cmd = "echo " + path_dir + "\JIRA_DTS_Handle.exe " + i_id + " " + i_pwd + r' "' + i_jira + r'" ' + r' "' + jira_file + r'" ' + r' "' + i_dts + r'" ' + r' "' + dts_file + r'" ' + " > run.bat"
55+
print(cmd)
56+
os.system(cmd)
57+
cmd=r'schtasks /create /tn "My App" /tr D:\work_python\work\run.bat /sc daily /st 07:00:00 /ed 2100/12/31'
58+
os.system(cmd)
59+
#tkinter.messagebox.showinfo("messagebox","Hello, %s" % i_id)
60+
61+
class JIRAParser:
62+
""" This is a class to used to visit JIRA server and download the web data """
63+
user = "" # your domian id
64+
password = "" # your domian password
65+
jira_login_url = "http://hisi-jira-pfm/rest/gadget/1.0/login"
66+
67+
def __init__(self,user,pwd,jira_dl_url,jira_dl_File):
68+
""" initial, login """
69+
self.user=user
70+
self.password=pwd
71+
""" create HTTP password manager """
72+
""" save cookie, for ready to visit other page after login """
73+
cookie = http.cookiejar.CookieJar()
74+
handeler = urllib.request.HTTPCookieProcessor(cookie)
75+
opener = urllib.request.build_opener(handeler)
76+
opener.addheaders = [('User-agent', 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6')]
77+
urllib.request.install_opener(opener)
78+
postdata = urllib.parse.urlencode({'os_username':self.user, 'os_password':self.password, 'os_cookie':'true'})
79+
binary_data = postdata.encode('utf-8')
80+
81+
res = urllib.request.urlopen(self.jira_login_url,binary_data)
82+
#print(res.status, res.reason)
83+
if( res.status == '200' ):
84+
exit()
85+
print (datetime.now(), "Login Successfully!")
86+
""" export JIRA issue to disk """
87+
urllib.request.urlretrieve(jira_dl_url,jira_dl_File)
88+
print (datetime.now(), "Download Finished!")
89+
90+
class DTSParser:
91+
""" This is a class to used to visit DTS server and download the web data """
92+
user = "" # your domian id
93+
password = "" # your domian password
94+
dts_login_url = "http://dts.huawei.com"
95+
96+
def __init__(self,user,pwd,dts_dl_url,dts_dl_File):
97+
""" login DTS.huawei.com with NTLM """
98+
self.user=user
99+
self.password=pwd
100+
""" create HTTP password manager """
101+
passwdMgr =urllib.request.HTTPPasswordMgrWithDefaultRealm()
102+
passwdMgr.add_password(None, self.dts_login_url, self.user, self.password)
103+
# create the NTLM authentication handler
104+
NTLM_handeler = HTTPNtlmAuthHandler.HTTPNtlmAuthHandler(passwdMgr)
105+
# create and install the opener
106+
opener = urllib.request.build_opener(NTLM_handeler)
107+
108+
urllib.request.install_opener(opener)
109+
print (datetime.now(), "Login Successfully!")
110+
""" export DTS issue to disk """
111+
urllib.request.urlretrieve(dts_dl_url,dts_dl_File)
112+
print (datetime.now(), "Download Finished!")
113+
114+
def main(user,pwd,jira_dl_url,jira_dl_File,dts_dl_url,dts_dl_File):
115+
print (datetime.now(),"Main Begin")
116+
d1=datetime.now()
117+
118+
print ("Handle JIRA...")
119+
parser = JIRAParser(user,pwd,jira_dl_url,jira_dl_File)
120+
d2=datetime.now()
121+
print ("JIRA Login and download cost:",d2-d1)
122+
123+
print ("Handle DTS...")
124+
parser = DTSParser(user,pwd,dts_dl_url,dts_dl_File)
125+
d3=datetime.now()
126+
print("DTS Login and download cost:",d3-d2)
127+
128+
GreeneTransCmd_jira =r'"C:\Program Files (x86)\GreeneTransClient\GreeneTransClientTool.exe" -r ' + jira_dl_File
129+
os.system(GreeneTransCmd_jira)
130+
GreeneTransCmd_dts =r'"C:\Program Files (x86)\GreeneTransClient\GreeneTransClientTool.exe" -r ' + dts_dl_File
131+
os.system(GreeneTransCmd_dts)
132+
133+
if __name__ == '__main__':
134+
135+
#print(len(sys.argv))
136+
argv_len = len(sys.argv)
137+
138+
if (argv_len == 7):
139+
user = sys.argv[1]
140+
pwd = sys.argv[2]
141+
jira_dl_url = sys.argv[3]
142+
jira_dl_File = sys.argv[4]
143+
dts_dl_url = sys.argv[5]
144+
dts_dl_File = sys.argv[6]
145+
main(user,pwd,jira_dl_url,jira_dl_File,dts_dl_url,dts_dl_File)
146+
else :
147+
frame = MainWindow()

0 commit comments

Comments
 (0)