Exemplo n.º 1
0
def main():
    f = open("/home/bi/work/macro/private/private.txt", 'r')
    # f = open("D:\업무\python\private\private.txt",'r')
    ID = f.readline()[:-1]
    PW = f.readline()[:-1]
    f.close()
    LOG = logLib.log(ID)

    # SIC
    qJira = jira('QTRACKER', ID, PW, LOG)
    for i in range(Q_FILTER.__len__()):
        issues = _issues(qJira.searchIssues(Q_FILTER[i]))
        target = issues.checkLabel(Q_LABEL[i])
        LOG.info('target: {0}'.format(target))
        issues.uploadLabel(target, Q_LABEL[i])

    # RTK, MStar
    harJira = jira('HARMONY', ID, PW, LOG)
    for i in range(HAR_FILTER.__len__()):
        issues = _issues(harJira.searchIssues(HAR_FILTER[i]))
        target = issues.checkLabel(HAR_LABEL[i])
        LOG.info('target: {0}'.format(target))
        issues.uploadLabel(target, HAR_LABEL[i])

    # HDMI2.1 Switch / MStar인원에게 전달된 O18, M16P3이슈
    for i in range(HDMI21_FILTER.__len__()):
        if HDMI21_FILTER[i]:
            issues = _issues(harJira.searchIssues(HDMI21_FILTER[i]))
            target = issues.checkLabel(Q_LABEL[i])
            LOG.info('target: {0}'.format(target))
            issues.uploadLabel(target, Q_LABEL[i])
Exemplo n.º 2
0
	def __init__(self, name, server, filter, platform, manager=''):
		self.name = name
		self.server = server
		self.jira = jiraLib.jira(server, ID, PW, LOG)
		self.filter = 'created < "-'+ OFFSET + 'd" and status != FixReady and filter=' + filter
		self.platform = platform
		self.manager = manager
Exemplo n.º 3
0
def main():
    # interval = 18000  # 5시간
    # interval = 7200  # 2시간
    # interval = 3600  # 1시간
    # interval = 60  # 1분
    interval = 1800  # 30분
    PID = '748003010'
    PW = getpass.getpass()
    ID = sys.argv[1]

    LOG = logLib.log(ID)
    flag = 0

    collab = collabLib.collab(ID, PW, LOG)
    jira = {}
    jira['HARMONY'] = jiraLib.jira('HARMONY', ID, PW, LOG)
    jira['QTRACKER'] = jiraLib.jira('QTRACKER', ID, PW, LOG)
    jira['DEVTRACKER'] = jiraLib.jira('DEVTRACKER', ID, PW, LOG)
    _run(ID, jira, collab, PID, LOG)
    while True:
        now = datetime.datetime.now()
        h = now.strftime('%H')
        m = now.strftime('%M')
        s = now.strftime('%S')
        if h in ('08', '13') and flag == 0:
            LOG.info('{0}시 {1}분 {2}초 매크로 시작'.format(h, m, s))
            _run(ID, jira, collab, PID, LOG)
            flag = 1
        if flag == 1 and h not in ('08', '13'):
            LOG.info('flag toggle : {0}'.format(flag))
            flag = 0

        LOG.info("{0} 초 동안 sleep / flag:{1}".format(interval, flag))
        time.sleep(interval)

    LOG.info('완료')
Exemplo n.º 4
0
def main():
	# f = open("D:\업무\python\private\private.txt",'r')
	f = open("/home/sangwoo_ahn/macro/private/private.txt", 'r')
	ID = f.readline()[:-1]
	PW = f.readline()[:-1]
	f.close()

	qJira = jira('QTRACKER', ID, PW)
	receiver = [SYSTEM_MAILIST, CDP_MAILIST, VIDEO_MAILIST]

	for i in range(FILTER.__len__()):
		TIME = datetime.datetime.now()
		# 필터에서 이슈 받기 (VIDEO -> CDP -> SYSTEM)
		# [i][0] EMPTY DUE 이슈 받기 / [i][1] Over due 이슈 받기
		_MSG = htmlLib.html()
		TITLE = '[webOS4.5] TBC팀 due date 관리 메일'
		TITLE = TITLE + ' - ' + receiver[i][0]
		_MSG.insertText('<p style = "font-size:11px"> 이 e-mail은 매일 오전 7시/ 오후 4시에 자동으로 전송됩니다. 문의사항이 있으시면 저에게 해주시면됩니다.</p>')
		_MSG.insertText('<br></br>')
		_MSG.insertText('<p><strong>' + receiver[i][0] + '</strong> Empty/Over Due-date Issues </p>')
		_MSG.insertText('<p>범위 : webOS4.5 </p>')
		_MSG.insertText('<p>시점 : ' + TIME.strftime("%Y-%m-%d %H:%M") + '</p>')
		print(receiver[i][0])
		for j in range(FILTER[i].__len__()):
			targetIssues = qJira.searchIssues(FILTER[i][j])
			_MSG.insertText('<div></div>')
			if j == 0:
				_MSG.insertText('<p><strong> < Empty duedate issues ></strong></p>')
				print("Empty Due")
			elif j == 1:
				_MSG.insertText('<p><strong> < Over duedate Issues ></strong></p>')
				print("Over Due")
			elif j == 2:
				_MSG.insertText("<p><strong> < Issues with today's deadline (내일이면 OverDue가 되는 이슈)></strong></p>")
				print("Today Due")
			print('target:',targetIssues)
			if targetIssues == []:
				_MSG.insertText('<p>없음.</p>')
			else:
				_MSG.insertTable(['Key', 'Due', 'Assignee', 'Status', 'Chip', 'Created', 'Model'])

				issueList = []
				for k in targetIssues:
					print(" /", k.key, "was sent")
					try:  # q-tracker
						chip = k.fields.customfield_13802[0]
					except Exception as e:
						print('chip 정보가 없습니다.')
						chip = 'Empty'
					issueList.append([jiraLib.ISSUE_ADDRESS[0] + str(k.key), k.fields.duedate, k.fields.assignee.displayName, k.fields.status.name, chip, k.fields.created.split('T')[0], str(k.fields.components[0]).split(')')[0] + ')'])
				issueList = sorted(issueList, key=lambda tmp: tmp[4])
				issueList = sorted(issueList, key=lambda tmp: tmp[2])

				for k in issueList:
					_MSG.insertRow(k, 0)
				_MSG.endOftable()
		# CC = '[email protected], [email protected]'
		# TO = '*****@*****.**'
		TO = receiver[i][1]
		CC = '[email protected], [email protected]'
		emailLib.sendMsg(FROM='*****@*****.**', TO=TO, TITLE=TITLE, MSG=_MSG.getMsg(), CC=CC)
Exemplo n.º 5
0
def main():
	MODULE_NAME = ['AUDIO', 'HDMI', 'MEDIA', 'DECODER', 'VENC','PVR', 'BACKEND', 'DOLBY', 'PQ', 'VIDEO', 'DEMOD', 'NETWORK',
				  'USB', 'SYSTEM', '신뢰성', 'GRAPHIC', '8K']

	KEWORD_QE = 'SQE'
	KEWORD_QA = '인정'

	LABEL_QE = 'sic_qe'
	LABEL_QA = 'sic_qa'
	LABEL_MODULE = ''
	LABEL_TEST = ''

	FILTER_MODULE_1 = 'filter = SIC.'
	FILTER_MODULE_2 = '.MEMBERS AND resolution = Unresolved AND filter = WEBOS50.PROJECT.SW'
	FILTER_MODULE = 'DEFAULT'

	SLEEP = 1800

	# PW = getpass.getpass()
	# ID = sys.argv[1]

	f = open("/home/bi/work/macro/private/private.txt", 'r')
	ID = f.readline()[:-1]
	PW = f.readline()[:-1]
	f.close()

	LOG = logLib.log(ID)
	LOG.info('Labeling START')
	#============================================================================================


	# SIC
	qJira = jira('QTRACKER', ID, PW, LOG)
	for i in range(MODULE_NAME.__len__()):
		# 라벨 정하기
		LABEL_MODULE = 'SIC_' + MODULE_NAME[i]
		# 필터 정하기
		FILTER_MODULE = FILTER_MODULE_1+MODULE_NAME[i]+FILTER_MODULE_2

		# 필터 사용해서 이슈 뽑기
		issues = qJira.searchIssues(FILTER_MODULE)
		print('filter = ', FILTER_MODULE)
		# print('issues = ', issues)

		for issue in issues:
			print('{0} - '.format(issue), end=' ')

			## 테스트 부서 라벨 업데이트
			# 이미 라벨이 있다면 기존 라벨 유지
			GROUP_UPDATE = True
			if LABEL_QA in issue.fields.labels or LABEL_QE in issue.fields.labels:
				print('skip TEST_GROUP_LABEL', end=' ')
				GROUP_UPDATE = False
				pass
			else:
				if KEWORD_QE in str(issue.fields.components[0]):
					LABEL_TEST = LABEL_QE
				elif KEWORD_QA in str(issue.fields.components[0]):
					LABEL_TEST = LABEL_QA
				issue.fields.labels.append(LABEL_TEST)
				print('Append:{0}'.format(LABEL_TEST), end=' ')

			## 모듈 라벨 업데이트
			# 이미 라벨이 있다면 기존 라벨 유지
			MODULE_UPDATE = True
			for n in MODULE_NAME:
				if 'SIC_' + n in issue.fields.labels:
					print('skip MODULE_LABEL', end=' ')
					MODULE_UPDATE = False

			## (임시) 8K 컴포넌트는 라벨을 8K로 일괄 정리
			chip = issue.fields.customfield_13802
			if (chip is not None) and ('F20' in chip[0]):
				LABEL_MODULE = 'SIC_8K'

			if MODULE_UPDATE == True:
				issue.fields.labels.append(LABEL_MODULE)
				print('Append:{0}'.format(LABEL_MODULE), end=' ')

			# 라벨 최종 submit
			print()
			if GROUP_UPDATE == True or MODULE_UPDATE == True:
				LOG.info('{0} - label : {1}'.format(issue, issue.fields.labels))
				issue.update(fields={"labels": issue.fields.labels})
	LOG.info('Labeling END')