+++ /dev/null
-#!/usr/bin/env python
-#
-# Copyright (c) 2016 Samsung Electronics.Co.Ltd.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by the Free
-# Software Foundation; version 2 of the License
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# for more details.
-#
-"""
-BuildMonitor APIs
-
-1. Actions & Related files
- (1) gbs submit --------------- [job_submit.py]
- (2) [pre] packae build ------- [on OBS]
- (3) [pre] snapshot create ---- [job_pre_release_obs.py]
- (4) [pre] image creation ---- [job_imager.py][job_post_imager.py]
- (5) SR accept or reject ------ [job_request.py]
- (6) [post] package build ----- [on OBS]
- (7) [post] snapshot creation - [job_create_snapshot.py]
- (8) [post] image creation ---- [job_imager.py]
- (9) Completed
- * pre : pre build / post : post build
-
-2. function naming rules
-
-[ACTION]_for_[TABLE]
-
-ex) sr_submit_for_sr_status
-ACTION : gbs submit
-TABLE : sr_status
-
-3. db table list
-
-[SR parts] sr_stage | sr_status | sr_commit | sr_status_details
-[BUILD parts] build_snapshot | build_snapshot_package | build_image
-"""
-
-
-import os
-import sys
-import datetime
-import buildmonitor_db
-
-#===============================================================================
-# connect & disconnect db
-
-def bm_connect_db():
- buildmonitor_db.connect_db()
-
-def bm_disconnect_db():
- buildmonitor_db.disconnect_db()
-
-#===============================================================================
-# [job_submit.py]
-
-def sr_submit_for_sr_status(ter_git_tag):
- print '[%s] enter sr_submit_for_sr_status\n' % (__file__)
-
- # get curr_sr_status_id
- query = "SELECT id FROM sr_status WHERE sr = %s"
- query_data = (ter_git_tag)
- curr_sr_status_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- #print '[%s] curr_sr_status_id(%s)\n' % (__file__, curr_sr_status_id)
-
- if curr_sr_status_id == 9876 or curr_sr_status_id == 0:
- query = "INSERT INTO sr_status (sr, status) VALUES(%s, %s)"
- query_data = (ter_git_tag, 'C')
- buildmonitor_db.do_query(query, query_data)
- else:
- print '[%s] Already existing sr_status_id(%s) skip INSERT sr_stage\n' \
- % (__file__, curr_sr_status_id)
-
-def sr_submit_for_sr_commit(mygit, git_tag, gerrit_project,
- gerrit_newrev, gerrit_account_name):
- print '[%s] enter sr_submit_for_sr_commit\n' % (__file__)
-
- commit_date, cd_err, cd_ret = mygit._git_inout('show', ['-s', '--format=%ci'])
- commit_msg, cm_err, cm_ret = mygit._git_inout('show', ['-s', '--format=%s'])
- submit_date, sd_err, sd_ret = mygit._git_inout('for-each-ref', \
- ['--count=1', '--sort=-taggerdate', '--format=%(taggerdate:iso)'])
- submit_msg, sm_err, sm_ret = mygit._git_inout('for-each-ref', \
- ['--count=1', '--sort=-taggerdate', '--format=%(subject)'])
- submitter, st_err, st_ret = mygit._git_inout('for-each-ref',\
- ['--count=1', '--sort=-taggerdate', '--format=%(taggeremail)'])
- #print '[%s] %s%s' % (__file__, commit_date, commit_msg)
- #print '[%s] %s%s%s' % (__file__, submit_date, submit_msg, submitter)
-
- # get current_sr_status_id (should be here, after sr_submit_for_sr_status)
- query = "SELECT id FROM sr_status WHERE sr = %s"
- query_data = (git_tag)
- curr_sr_status_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- #print '[%s] curr_sr_status_id(%s)\n' % (__file__, curr_sr_status_id)
-
- obs_pkg_name = os.path.basename(gerrit_project)
- ter_submitter = submitter.split('@')[0].strip('<')
- #print '[%s] ter_submitter(%s)' % (__file__, ter_submitter)
-
- query = "INSERT INTO sr_commit (sr_status_id, git_repository," \
- "obs_package_name, git_commit_id, git_commit_date, " \
- "git_commit_message, git_committer, sr_submit_date, " \
- "sr_submit_message, sr_submitter) " \
- "VALUES(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"
- query_data = (curr_sr_status_id, gerrit_project, obs_pkg_name,
- gerrit_newrev, commit_date, commit_msg,
- gerrit_account_name, submit_date, submit_msg,
- ter_submitter)
- buildmonitor_db.do_query(query, query_data)
-
-def start_pre_build_for_sr_stage(git_tag, ter_start_datetime,
- ter_end_datetime, pre_build_project_id):
- print '[%s] enter start_pre_build_for_sr_stage\n' % (__file__)
-
- # get current_sr_status_id (should be here after sr_submit_for_sr_status)
- query = "SELECT id FROM sr_status WHERE sr = %s"
- query_data = (git_tag)
- curr_sr_status_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- #print '[%s] curr_sr_status_id(%s)\n' % (__file__, curr_sr_status_id)
-
- ### [1] end stage : SR submit
- info_stage_id = 1
- query = "UPDATE sr_stage SET stage_end_time = %s, stage_status = %s " \
- "WHERE sr_status_id = %s AND info_stage_id = %s AND build_project_id = %s"
- query_data = (ter_end_datetime, 'S', curr_sr_status_id, info_stage_id, pre_build_project_id)
- buildmonitor_db.do_query(query, query_data)
-
- ### [2] start stage : [pre] package build
- ter_start_datetime = ter_end_datetime
- info_stage_id = 2
- query = "INSERT INTO sr_stage (sr_status_id, info_stage_id, stage_start_time, " \
- "stage_status, build_project_id) VALUES(%s, %s, %s, %s, %s)"
- query_data = (curr_sr_status_id, info_stage_id, ter_start_datetime, 'R', pre_build_project_id)
- buildmonitor_db.do_query(query, query_data)
-
-def sr_submit_for_sr_stage(curr_sr_status_id, ter_start_datetime,
- ter_end_datetime, pre_build_project_id):
- print '[%s] enter sr_submit_for_sr_stage\n' % (__file__)
-
- ### [1] SR submit
- info_stage_id = 1
- query = "INSERT INTO sr_stage (sr_status_id, info_stage_id, stage_start_time, " \
- "stage_end_time, stage_status, build_project_id) VALUES(%s, %s, %s, %s, %s, %s)"
- query_data = (curr_sr_status_id, info_stage_id, ter_start_datetime,
- ter_end_datetime, 'S', pre_build_project_id)
- buildmonitor_db.do_query(query, query_data)
-
-def package_build_for_sr_detail_sr_stage(git_tag, ter_start_datetime,
- ter_end_datetime, ter_src_project_lst):
- print '[%s] enter package_build_for_sr_detail_sr_stage\n' % (__file__)
-
- # get current_sr_status_id (should be here after sr_submit_for_sr_status)
- query = "SELECT id FROM sr_status WHERE sr = %s"
- query_data = (git_tag)
- curr_sr_status_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- #print '[%s] curr_sr_status_id(%s)\n' % (__file__, curr_sr_status_id)
-
- ### for sr_status_detail & sr_stage
- # ter_src_project_lst is needed for multi profile
- print '[%s] ter_src_project_lst(%s)\n' % (__file__, ter_src_project_lst)
- for ter_src_project in ter_src_project_lst:
- #print '[%s] ter_src_project(%s)\n' % (__file__, ter_src_project)
-
- # get info_project_id -> get pre_build_project_id
- query = "SELECT id FROM info_project WHERE project_name = %s"
- query_data = (ter_src_project)
- info_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- query = "SELECT id FROM build_project WHERE info_project_id = %s"
- query_data = (info_project_id)
- pre_build_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- print '[%s] info_project_id(%s), pre_build_project_id(%s)\n' \
- % (__file__, info_project_id, pre_build_project_id)
-
- # get sr_status_detail_id for checking group submit
- query = "SELECT id FROM sr_status_detail WHERE sr_status_id = %s " \
- "AND pre_build_project_id = %s"
- query_data = (curr_sr_status_id, pre_build_project_id)
- sr_status_detail_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- #print '[%s] sr_status_detail_id(%s)\n' % (__file__, sr_status_detail_id)
-
- if sr_status_detail_id == 9876 or sr_status_detail_id == 0:
- # get pre_build_project_id
- query = "SELECT id FROM build_project WHERE info_project_id = %s"
- query_data = (info_project_id)
- pre_build_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
-
- ### for sr_status_detail
- query = "INSERT INTO sr_status_detail (sr_status_id, pre_build_project_id) " \
- "VALUES(%s, %s)"
- query_data = (curr_sr_status_id, pre_build_project_id)
- buildmonitor_db.do_query(query, query_data)
-
- ### for sr_stage for multi profile
- # [1] start stage
- sr_submit_for_sr_stage(curr_sr_status_id, ter_start_datetime,
- ter_end_datetime, pre_build_project_id)
- # [1] end stage / [2] start stage
- start_pre_build_for_sr_stage(git_tag, ter_start_datetime,
- ter_end_datetime, pre_build_project_id)
- else:
- # clear the existing tables (sr_stage & build_snapshot)
- print '[%s] Already existing sr_status_id(%s)!! clear the related tables\n' \
- % (__file__, sr_status_detail_id)
- query = "DELETE FROM sr_stage WHERE sr_status_id = %s AND build_project_id = %s"
- query_data = (curr_sr_status_id, pre_build_project_id)
- buildmonitor_db.do_query(query, query_data)
-
- # get build_snapshot_id for deleting build_snapshot_package & build_image
- query = "SELECT id FROM build_snapshot WHERE build_project_id = %s"
- query_data = (pre_build_project_id)
- build_snapshot_id = buildmonitor_db.get_value_from_query_data(query, query_data)
-
- # delete build_snapshot & build_snapshot_package & build_image
- query = "DELETE FROM build_snapshot WHERE build_project_id = %s"
- query_data = (pre_build_project_id)
- buildmonitor_db.do_query(query, query_data)
- query = "DELETE FROM build_snapshot_package WHERE build_snapshot_id = %s"
- query_data = (build_snapshot_id)
- buildmonitor_db.do_query(query, query_data)
- query = "DELETE FROM build_image WHERE build_snapshot_id = %s"
- query_data = (build_snapshot_id)
- buildmonitor_db.do_query(query, query_data)
-
- ### for sr_stage for multi profile
- # [1] start stage
- sr_submit_for_sr_stage(curr_sr_status_id, ter_start_datetime,
- ter_end_datetime, pre_build_project_id)
- # [1] end stage / [2] start stage
- start_pre_build_for_sr_stage(git_tag, ter_start_datetime,
- ter_end_datetime, pre_build_project_id)
-
-#===============================================================================
-# [job_pre_release_obs.py]
-
-def update_fail_status_for_sr_stage(project, ter_git_tag):
- print '[%s] enter update_fail_status_for_sr_stage\n' % (__file__)
-
- # get curr_sr_status_id
- query = "SELECT id FROM sr_status WHERE sr = %s"
- query_data = (ter_git_tag)
- curr_sr_status_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- #print '[%s] curr_sr_status_id (%s)\n' % (__file__, curr_sr_status_id)
-
- # get curr_info_project_id -> get curr_build_project_id for multi profile
- query = "SELECT id FROM info_project WHERE project_name = %s"
- query_data = (project)
- curr_info_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- query = "SELECT id FROM build_project WHERE info_project_id = %s"
- query_data = (curr_info_project_id)
- curr_build_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
-
- ### [3] stage end : update fail status [pre] snapshot creation
- info_stage_id = 3
- query = "UPDATE sr_stage SET stage_status = %s WHERE sr_status_id = %s " \
- "AND info_stage_id = %s AND build_project_id = %s"
- query_data = ('F', curr_sr_status_id, info_stage_id, curr_build_project_id)
- buildmonitor_db.do_query(query, query_data)
-
-def start_pre_create_snapshot_for_sr_stage(project, ter_git_tag, ter_start_datetime):
- print '[%s] enter start_pre_create_snapshot_for_sr_stage\n' % (__file__)
-
- # get curr_sr_status_id
- query = "SELECT id FROM sr_status WHERE sr = %s"
- query_data = (ter_git_tag)
- curr_sr_status_id = buildmonitor_db.get_value_from_query_data(query, query_data)
-
- # get curr_info_project_id -> get curr_build_project_id for multi profile
- query = "SELECT id FROM info_project WHERE project_name = %s"
- query_data = (project)
- curr_info_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- query = "SELECT id FROM build_project WHERE info_project_id = %s"
- query_data = (curr_info_project_id)
- curr_build_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
-
- # get multi_build_status from build_target
- query = "SELECT status FROM build_target WHERE build_project_id = %s " \
- "AND last_flag = %s"
- query_data = (curr_build_project_id, 'Y')
- multi_build_status = buildmonitor_db.get_multi_values_from_query_data(query, query_data)
- print '[%s] multi_build_status(%s)\n' % (__file__, multi_build_status)
-
- # default 'S'
- info_stage_status = 'S'
- for each_build_status in multi_build_status:
- #print '[%s] each_build_status(%s)\n' % (__file__, each_build_status)
- if each_build_status[0] == 'F':
- info_stage_status = 'F'
- print '[%s] failed!! info_stage_status(%s)\n' % (__file__, info_stage_status)
-
- ### [2] stage end : [pre] package build
- info_stage_id = 2
- ter_end_datetime = ter_start_datetime
- query = "UPDATE sr_stage SET stage_end_time = %s, stage_status = %s " \
- "WHERE sr_status_id = %s AND info_stage_id = %s AND build_project_id = %s"
- query_data = (ter_end_datetime, info_stage_status, curr_sr_status_id,
- info_stage_id, curr_build_project_id)
- buildmonitor_db.do_query(query, query_data)
-
- ### [3] stage start : [pre] snapshot creation
- info_stage_id = 3
- query = "INSERT INTO sr_stage (sr_status_id, info_stage_id, stage_start_time, " \
- "stage_status, build_project_id) VALUES(%s, %s, %s, %s, %s)"
- query_data = (curr_sr_status_id, info_stage_id,
- ter_start_datetime, 'R', curr_build_project_id)
- buildmonitor_db.do_query(query, query_data)
-
-def start_pre_create_snapshot_for_build_snapshot(project, ter_start_datetime):
- print '[%s] enter start_pre_create_snapshot_for_build_snapshot\n' % (__file__)
-
- # get pre_info_project_id -> get pre_build_project_id
- query = "SELECT id FROM info_project WHERE project_name = %s"
- query_data = (project)
- pre_info_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- query = "SELECT id FROM build_project WHERE info_project_id = %s"
- query_data = (pre_info_project_id)
- pre_build_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- #print '[%s] pre_info_project_id(%s), pre_build_project_id(%s)\n' \
- # % (__file__, pre_info_project_id, pre_build_project_id)
-
- ### for build_snapshot
- query = "INSERT INTO build_snapshot (build_project_id, start_time, status) " \
- "VALUES(%s, %s, %s)"
- query_data = (pre_build_project_id, ter_start_datetime, 'R')
- buildmonitor_db.do_query(query, query_data)
-
-def create_snapshot_packages_for_build_snapshot_package(project, ter_snapshot_name,
- ter_repo, ter_arch, ter_pkg_urls_dic,
- base_url,base_path):
- print '[%s] enter create_snapshot_packages_for_build_snapshot_package\n' % (__file__)
-
- ter_pkg_url = ter_pkg_urls_dic[ter_arch]
- ter_pkg_dir = ter_pkg_url.replace(base_url, base_path) #http -> /srv/obs
- #print '[%s] ter_arch(%s), os.listdir(ter_pkg_dir)(%s)\n' \
- # % (__file__, ter_arch, os.listdir(ter_pkg_dir))
-
- if ter_arch == 'ia32':
- ter_arch = 'i686'
-
- # get rpm files
- ter_pkg_name_lst = []
- ter_pkg_mdate_lst = []
- ter_pkg_size_lst = []
- for root, dirs, files in os.walk(ter_pkg_dir):
- for each_file in files:
- if each_file.endswith(".rpm"):
- rpm_file_path = root + '/' + each_file
- rpm_file_mdate = os.path.getmtime(rpm_file_path)
- rpm_file_size = os.path.getsize(rpm_file_path)
- ter_pkg_name_lst.append(each_file)
- ter_pkg_mdate_lst.append(rpm_file_mdate)
- ter_pkg_size_lst.append(rpm_file_size)
- #print '[%s] rpm_file_path(%s), rpm_file_mdate(%s), rpm_file_size(%s)\n' \
- # % (__file__, rpm_file_path, rpm_file_mdate, rpm_file_size)
-
- # get pre_info_project_id -> get pre_build_project_id
- query = "SELECT id FROM info_project WHERE project_name = %s"
- query_data = (project)
- pre_info_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- query = "SELECT id FROM build_project WHERE info_project_id = %s"
- query_data = (pre_info_project_id)
- pre_build_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- #print '[%s] pre_info_project_id(%s), pre_build_project_id(%s)\n' \
- # % (__file__, pre_info_project_id, pre_build_project_id)
-
- # get curr_build_snapshot_id
- query = "SELECT id FROM build_snapshot WHERE build_project_id = %s"
- query_data = (pre_build_project_id)
- curr_build_snapshot_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- #print '[%s] curr_build_snapshot_id(%s)\n' % (__file__, curr_build_snapshot_id)
-
- for each_pkg_name, each_pkg_mdate, each_pkg_size in zip(ter_pkg_name_lst, ter_pkg_mdate_lst, ter_pkg_size_lst):
- timestamp = datetime.datetime.fromtimestamp(each_pkg_mdate)
- #print '[%s] each_pkg_name(%s), timestamp(%s), each_pkg_size(%s)\n' \
- # % (__file__, each_pkg_name, timestamp, each_pkg_size)
- query = "INSERT INTO build_snapshot_package (build_snapshot_id, repository, " \
- "arch, package_name, created_date, package_size, package_url) " \
- "VALUES(%s, %s, %s, %s, %s, %s, %s)"
- query_data = (curr_build_snapshot_id, ter_repo, ter_arch, each_pkg_name,
- timestamp, each_pkg_size, ter_pkg_url)
- buildmonitor_db.do_query(query, query_data)
-
-def end_pre_create_snapshot_for_sr_stage(project, ter_git_tag,
- ter_start_datetime, ter_end_datetime):
- print '[%s] enter end_pre_create_snapshot_for_sr_stage\n' % (__file__)
-
- # get curr_sr_status_id
- query = "SELECT id FROM sr_status WHERE sr = %s"
- query_data = (ter_git_tag)
- curr_sr_status_id = buildmonitor_db.get_value_from_query_data(query, query_data)
-
- # get curr_info_project_id -> get curr_build_project_id for multi profile
- query = "SELECT id FROM info_project WHERE project_name = %s"
- query_data = (project)
- curr_info_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- query = "SELECT id FROM build_project WHERE info_project_id = %s"
- query_data = (curr_info_project_id)
- curr_build_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
-
- ### [3] stage end : [pre] snapshot creation
- info_stage_id = 3
- query = "UPDATE sr_stage SET stage_end_time = %s, stage_status = %s " \
- "WHERE sr_status_id = %s AND info_stage_id = %s AND build_project_id = %s"
- query_data = (ter_end_datetime, 'S', curr_sr_status_id,
- info_stage_id, curr_build_project_id)
- buildmonitor_db.do_query(query, query_data)
-
- ### [4] stage start : [pre] image creation
- info_stage_id = 4
- query = "INSERT INTO sr_stage (sr_status_id, info_stage_id, stage_start_time, " \
- "stage_status, build_project_id) VALUES(%s, %s, %s, %s, %s)"
- query_data = (curr_sr_status_id, info_stage_id, ter_end_datetime,
- 'R', curr_build_project_id)
- buildmonitor_db.do_query(query, query_data)
-
-def end_pre_create_snapshot_for_build_snapshot(project, ter_snapshot_name,
- ter_snapshot_url, ter_end_datetime):
- print '[%s] enter end_pre_create_snapshot_for_build_snapshot\n' % (__file__)
-
- # get pre_info_project_id -> get pre_build_project_id
- query = "SELECT id FROM info_project WHERE project_name = %s"
- query_data = (project)
- pre_info_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- query = "SELECT id FROM build_project WHERE info_project_id = %s"
- query_data = (pre_info_project_id)
- pre_build_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- #print '[%s] pre_info_project_id(%s), pre_build_project_id(%s)\n' \
- # % (__file__, pre_info_project_id, pre_build_project_id)
-
- ### for build_snapshot
- query = "UPDATE build_snapshot SET snapshot_name = %s, snapshot_url = %s, " \
- "end_time = %s, status = %s WHERE build_project_id = %s"
- query_data = (ter_snapshot_name, ter_snapshot_url, ter_end_datetime,
- 'S', pre_build_project_id)
- buildmonitor_db.do_query(query, query_data)
-
-#===============================================================================
-# [job_imager.py]
-
-def update_fail_create_image_for_sr_stage(fields, ter_start_datetime):
- print '[%s] enter update_fail_create_image_for_sr_stage\n' % (__file__)
-
- ter_prj_name = fields["project"]
- ter_split_data = fields["project"].split(':')[-1]
- ter_git_tag = 'submit/tizen/' + ter_split_data
- ter_url = os.path.join(fields.get('url_pub_base', ''),
- fields['repo_path'], fields['images_path'])
- #print '[%s] ter_prj_name(%s), ter_split_data(%s), ter_git_tag(%s), ter_url(%s)\n' \
- # % (__file__, ter_prj_name, ter_split_data, ter_git_tag, ter_url)
-
- ter_end_datetime = datetime.datetime.now()
-
- #if 'prerelease' in ter_url:
- if not ((ter_url.find("prerelease")) == -1):
-
- # [pre_build] get current_sr_status_id
- query = "SELECT id FROM sr_status WHERE sr = %s"
- query_data = (ter_git_tag)
- curr_sr_status_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- #print '[%s][pre_build] info_stage_id(%s), query_data(%s), curr_sr_status_id(%s)\n' \
- # % (__file__, info_stage_id, query_data, curr_sr_status_id)
-
- # get curr_info_project_id -> get curr_build_project_id for multi profile
- query = "SELECT id FROM info_project WHERE project_name = %s"
- query_data = (ter_prj_name)
- curr_info_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- query = "SELECT id FROM build_project WHERE info_project_id = %s"
- query_data = (curr_info_project_id)
- curr_build_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
-
- ### [4] stage : update fail status for [pre] image creation
- info_stage_id = 4
- query = "UPDATE sr_stage SET stage_start_time = %s, stage_end_time = %s, stage_status = %s " \
- "WHERE sr_status_id = %s AND info_stage_id = %s AND build_project_id = %s"
- query_data = (ter_start_datetime, ter_end_datetime, 'F',
- curr_sr_status_id, info_stage_id, curr_build_project_id)
- buildmonitor_db.do_query(query, query_data)
- else:
- # get post_info_project_id -> get post_build_project_id
- query = "SELECT id FROM info_project WHERE project_name = %s"
- query_data = (ter_prj_name)
- post_info_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- query = "SELECT id FROM build_project " \
- "WHERE info_project_id = %s ORDER BY id desc LIMIT 1"
- query_data = (post_info_project_id)
- post_build_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
-
- # get curr_sr_status_id
- query = "SELECT sr_status_id FROM sr_status_detail WHERE post_build_project_id = %s"
- query_data = (post_build_project_id)
- curr_sr_status_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- #print '[%s] curr_sr_status_id(%s)\n' % (__file__, curr_sr_status_id)
-
- ### [8] stage : update fail status for [post] image creation
- info_stage_id = 8
- query = "UPDATE sr_stage SET stage_start_time = %s, stage_end_time = %s, stage_status = %s " \
- "WHERE sr_status_id = %s AND info_stage_id = %s AND build_project_id = %s"
- query_data = (ter_start_datetime, ter_end_datetime, 'F',
- curr_sr_status_id, info_stage_id, post_build_project_id)
- buildmonitor_db.do_query(query, query_data)
-
-def create_image_for_build_image(fields, ter_start_datetime,
- ter_end_datetime, build_id):
- print '[%s] enter create_image_for_build_image\n' % (__file__)
-
- ter_repository = fields['repo']
- ter_device_name = fields['name']
- ter_status = fields['status']
- ter_url = fields['url']
- #print '[%s] ter_repository(%s), ter_device_name(%s), ter_status(%s), ter_url(%s)\n' \
- # % (__file__, ter_repository, ter_device_name, ter_status, ter_url)
-
- ter_base_path = os.getenv('PATH_REPO_BASE')
- ter_img_url = os.path.join(ter_base_path, fields['repo_path'], fields['images_path'])
- ter_img_path = ter_img_url + '/' + build_id + '_' + ter_device_name + '.tar.gz'
- ter_img_size = os.path.getsize(ter_img_path)
- #print '[%s] ter_img_path(%s), ter_img_size(%s)\n' \
- # % (__file__, ter_img_path, ter_img_size)
-
- # get curr_build_snapshot_id
- query = "SELECT id FROM build_snapshot WHERE snapshot_name = %s"
- query_data = (build_id)
- curr_build_snapshot_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- #print '[%s] curr_build_snapshot_id(%s)\n' % (__file__, curr_build_snapshot_id)
-
- ### for build_image
- query = "INSERT INTO build_image (build_snapshot_id, repository, device_name, " \
- "start_time, end_time, status, image_size, image_url) " \
- "VALUES(%s, %s, %s, %s, %s, %s, %s, %s)"
- query_data = (curr_build_snapshot_id, ter_repository, ter_device_name,
- ter_start_datetime, ter_end_datetime,
- ter_status, ter_img_size, ter_url)
- buildmonitor_db.do_query(query, query_data)
-
-#===============================================================================
-# [job_post_image.py]
-
-def end_create_image_for_sr_stage(ter_start_datetime, project):
- print '[%s] enter end_create_image_for_sr_stage project(%s)\n' % (__file__, project)
-
- if project.startswith("home:prerelease:"):
- ter_end_datetime = datetime.datetime.now()
- ter_git_tag = project.split(":")[-3] + '/' + project.split(":")[-2] + '/' + project.split(":")[-1]
- #print '[%s] ter_git_tag(%s)\n' % (__file__, ter_git_tag)
-
- # [pre_build] get current_sr_status_id
- query = "SELECT id FROM sr_status WHERE sr = %s"
- query_data = (ter_git_tag)
- curr_sr_status_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- #print '[%s][pre_build] query_data(%s), curr_sr_status_id(%s)\n' \
- # % (__file__, query_data, curr_sr_status_id)
-
- # get curr_info_project_id -> get curr_build_project_id for multi profile
- query = "SELECT id FROM info_project WHERE project_name = %s"
- query_data = (project)
- curr_info_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- query = "SELECT id FROM build_project WHERE info_project_id = %s"
- query_data = (curr_info_project_id)
- curr_build_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
-
- ### [4] stage : [pre] image creation
- info_stage_id = 4
- query = "UPDATE sr_stage SET stage_end_time = %s, stage_status = %s " \
- "WHERE sr_status_id = %s AND info_stage_id = %s AND build_project_id = %s"
- query_data = (ter_end_datetime, 'S',
- curr_sr_status_id, info_stage_id, curr_build_project_id)
- buildmonitor_db.do_query(query, query_data)
-
-#===============================================================================
-# [job_request.py]
-
-def sr_accept_for_sr_stage(ter_src_prj_name, ter_target_prj_name,
- ter_start_datetime, ter_end_datetime, ter_git_tag):
- print '[%s] enter sr_accept_for_sr_stage\n' % (__file__)
-
- # get current_sr_status_id
- query = "SELECT id FROM sr_status WHERE sr = %s"
- query_data = (ter_git_tag)
- curr_sr_status_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- #print '[%s] curr_sr_status_id(%s)\n' % (__file__, curr_sr_status_id)
-
- # get curr_info_project_id -> get curr_build_project_id for multi profile
- query = "SELECT id FROM info_project WHERE project_name = %s"
- query_data = (ter_src_prj_name)
- curr_info_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- query = "SELECT id FROM build_project WHERE info_project_id = %s"
- query_data = (curr_info_project_id)
- curr_build_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
-
- ### [5] stage : SR aceept
- info_stage_id = 5
- query = "INSERT INTO sr_stage (sr_status_id, info_stage_id, " \
- "stage_start_time, stage_end_time, stage_status, build_project_id) " \
- "VALUES(%s, %s, %s, %s, %s, %s)"
- query_data = (curr_sr_status_id, info_stage_id,
- ter_start_datetime, ter_end_datetime, 'S', curr_build_project_id)
- buildmonitor_db.do_query(query, query_data)
-
- # get curr_info_project_id -> get post_build_project_id for multi profile
- query = "SELECT id FROM info_project WHERE project_name = %s"
- query_data = (ter_target_prj_name)
- curr_info_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- query = "SELECT id FROM build_project " \
- "WHERE info_project_id = %s ORDER BY id desc LIMIT 1"
- query_data = (curr_info_project_id)
- post_build_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
-
- ### [6] stage start : [post] package build
- info_stage_id = 6
- query = "INSERT INTO sr_stage (sr_status_id, info_stage_id, " \
- "stage_start_time, stage_status, build_project_id) " \
- "VALUES(%s, %s, %s, %s, %s)"
- query_data = (curr_sr_status_id, info_stage_id, ter_start_datetime,
- 'R', post_build_project_id)
- buildmonitor_db.do_query(query, query_data)
-
-def sr_reject_for_sr_stage(ter_src_prj_name, ter_start_datetime,
- ter_end_datetime, ter_git_tag):
- print '[%s] enter sr_reject_for_sr_stage\n' % (__file__)
-
- # get curr_sr_status_id
- query = "SELECT id FROM sr_status WHERE sr = %s"
- query_data = (ter_git_tag)
- curr_sr_status_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- #print '[%s] curr_sr_status_id(%s)\n' % (__file__, curr_sr_status_id)
-
- # get curr_info_project_id -> get curr_build_project_id for multi profile
- query = "SELECT id FROM info_project WHERE project_name = %s"
- query_data = (ter_src_prj_name)
- curr_info_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- query = "SELECT id FROM build_project WHERE info_project_id = %s"
- query_data = (curr_info_project_id)
- curr_build_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
-
- ### [5] stage : SR reject
- info_stage_id = 5
- query = "INSERT INTO sr_stage (sr_status_id, info_stage_id, stage_start_time, " \
- "stage_end_time, stage_status, build_project_id) " \
- "VALUES(%s, %s, %s, %s, %s, %s)"
- query_data = (curr_sr_status_id, info_stage_id, ter_start_datetime, ter_end_datetime,
- 'F', curr_build_project_id)
- buildmonitor_db.do_query(query, query_data)
-
-def sr_accept_reject_for_sr_status_detail(event_fields, ter_start_datetime,
- ter_end_datetime, ter_git_tag):
- print '[%s] enter sr_accept_reject_for_sr_status_detail\n' % (__file__)
-
- obs_req_no = event_fields['id']
- obs_req_comment = event_fields['comment']
- obs_req_date = ter_end_datetime
- obs_req_status = event_fields['state']
- obs_req_status = obs_req_status.upper()
- ter_src_prj_name = event_fields['sourceproject']
- ter_target_prj_name = event_fields['targetproject']
- #print '[%s] obs_req_no(%s), obs_req_comment(%s), obs_req_date(%s), obs_req_status(%s)\n' \
- # % (__file__, obs_req_no, obs_req_comment, obs_req_date, obs_req_status)
- #print '[%s] ter_src_prj_name(%s), ter_target_prj_name(%s), ter_git_tag(%s)\n' \
- # % (__file__, ter_src_prj_name, ter_target_prj_name, ter_git_tag)
-
- if obs_req_status == 'ACCEPTED':
- print '[%s][ACCEPTED] obs_req_status(%s)\n' % (__file__, obs_req_status)
-
- # get pre_info_project_id -> get pre_build_project_id
- query = "SELECT id FROM info_project WHERE project_name = %s"
- query_data = (ter_src_prj_name) # should use ter_src_prj_name
- pre_info_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- query = "SELECT id FROM build_project WHERE info_project_id = %s"
- query_data = (pre_info_project_id)
- pre_build_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- #print '[%s] pre_info_project_id(%d), pre_build_project_id(%s)\n' \
- # % (__file__, pre_info_project_id, pre_build_project_id)
-
- # get post_info_project_id -> get post_build_project_id
- query = "SELECT id FROM info_project WHERE project_name = %s"
- query_data = (ter_target_prj_name)
- post_info_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- query = "SELECT id FROM build_project " \
- "WHERE info_project_id = %s ORDER BY id desc LIMIT 1"
- query_data = (post_info_project_id)
- post_build_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- #print '[%s] post_info_project_id(%s), post_build_project_id(%s)\n' \
- # % (__file__, post_info_project_id, post_build_project_id)
-
- ### for sr_status_detail
- query = "UPDATE sr_status_detail SET post_build_project_id = %s, obs_request_no = %s, " \
- "obs_request_comment = %s, obs_request_date = %s, obs_request_status = %s " \
- "WHERE pre_build_project_id = %s"
- query_data = (post_build_project_id, obs_req_no, obs_req_comment,
- obs_req_date, obs_req_status, pre_build_project_id)
- buildmonitor_db.do_query(query, query_data)
-
- ### for sr_stage (now can find the build_project_id of the target prj)
- sr_accept_for_sr_stage(ter_src_prj_name, ter_target_prj_name,
- ter_start_datetime, ter_end_datetime, ter_git_tag)
-
- elif obs_req_status == 'REVOKED' or obs_req_status == 'DECLINED':
- print '[%s][REVOKED or DECLINED] obs_req_status(%s)\n' \
- % (__file__, obs_req_status)
-
- # get info_project_id -> get pre_build_project_id
- query = "SELECT id FROM info_project WHERE project_name = %s"
- query_data = (ter_src_prj_name)
- info_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- query = "SELECT id FROM build_project WHERE info_project_id = %s"
- query_data = (info_project_id)
- pre_build_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
-
- ### for sr_status_detail
- query = "UPDATE sr_status_detail SET obs_request_no = %s, " \
- "obs_request_comment = %s, obs_request_date = %s, obs_request_status = %s " \
- "WHERE pre_build_project_id = %s"
- query_data = (obs_req_no, obs_req_comment, obs_req_date,
- obs_req_status, pre_build_project_id)
- buildmonitor_db.do_query(query, query_data)
-
- ### for sr_stage
- sr_reject_for_sr_stage(ter_src_prj_name, ter_start_datetime,
- ter_end_datetime, ter_git_tag)
-
-#===============================================================================
-# [job_create_snapshot.py]
-
-def update_fail_create_snapshot_for_sr_stage(project):
- print '[%s] enter update_fail_create_snapshot_for_sr_stage\n' % (__file__)
-
- # get post_info_project_id
- query = "SELECT id FROM info_project WHERE project_name = %s"
- query_data = (project) # Tizen:Mobile
- post_info_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
-
- # get post_build_project_id
- query = "SELECT id FROM build_project " \
- "WHERE info_project_id = %s ORDER BY id desc LIMIT 1"
- query_data = (post_info_project_id)
- post_build_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
-
- # get curr_sr_status_id
- query = "SELECT sr_status_id FROM sr_status_detail WHERE post_build_project_id = %s"
- query_data = (post_build_project_id)
- curr_sr_status_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- #print '[%s] post_info_project_id(%s), post_build_project_id(%d), curr_sr_status_id(%s)\n' \
- # % (__file__, post_info_project_id, post_build_project_id, curr_sr_status_id)
-
- ### [7] stage : update fail status when failed
- ter_start_datetime = ter_end_datetime = datetime.datetime.now()
- query = "UPDATE sr_stage SET stage_start_time = %s, stage_end_time = %s, stage_status = %s " \
- "WHERE sr_status_id = %s AND build_project_id = %s"
- query_data = (ter_start_datetime, ter_end_datetime, 'F',
- curr_sr_status_id, post_build_project_id)
- buildmonitor_db.do_query(query, query_data)
-
-def start_create_snapshot_for_sr_stage(project, ter_start_datetime):
- print '[%s] enter start_create_snapshot_for_sr_stage\n' % (__file__)
-
- # get post_info_project_id
- query = "SELECT id FROM info_project WHERE project_name = %s"
- query_data = (project) # Tizen:Mobile
- post_info_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
-
- # get post_build_project_id
- query = "SELECT id FROM build_project " \
- "WHERE info_project_id = %s ORDER BY id desc LIMIT 1"
- query_data = (post_info_project_id)
- post_build_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
-
- # get multi_sr_status_id
- query = "SELECT sr_status_id FROM sr_status_detail WHERE post_build_project_id = %s"
- query_data = (post_build_project_id)
- multi_sr_status_id = buildmonitor_db.get_multi_values_from_query_data(query, query_data)
- #print '[%s] post_info_project_id(%s), post_build_project_id(%d), multi_sr_status_id(%s)\n' \
- # % (__file__, post_info_project_id, post_build_project_id, multi_sr_status_id)
-
- ### [6] end / [7/8] start : [post] snapshot creation
- for each_sr_status_id in multi_sr_status_id:
- print '[%s] each_sr_status_id(%s)\n' % (__file__, each_sr_status_id)
- info_stage_id = 6
- ter_end_datetime = datetime.datetime.now()
- query = "UPDATE sr_stage SET stage_end_time = %s, stage_status = %s " \
- "WHERE sr_status_id = %s AND info_stage_id = %s AND build_project_id = %s"
- query_data = (ter_end_datetime, 'S',
- each_sr_status_id[0], info_stage_id, post_build_project_id)
- buildmonitor_db.do_query(query, query_data)
-
- info_stage_id = 7
- query = "INSERT INTO sr_stage (sr_status_id, info_stage_id, " \
- "stage_start_time, stage_end_time, stage_status, build_project_id) " \
- "VALUES(%s, %s, %s, %s, %s, %s)"
- query_data = (each_sr_status_id[0], info_stage_id,
- ter_start_datetime, ter_end_datetime, 'R', post_build_project_id)
- buildmonitor_db.do_query(query, query_data)
-
- info_stage_id = 8
- query = "INSERT INTO sr_stage (sr_status_id, info_stage_id, " \
- "stage_start_time, stage_end_time, stage_status, build_project_id) " \
- "VALUES(%s, %s, %s, %s, %s, %s)"
- query_data = (each_sr_status_id[0], info_stage_id,
- ter_start_datetime, ter_end_datetime, 'R', post_build_project_id)
- buildmonitor_db.do_query(query, query_data)
-
-def start_create_snapshot_for_post_build_snapshot(project, ter_snapshot_name,
- ter_start_datetime):
- print '[%s] enter start_create_snapshot_for_post_build_snapshot\n' % (__file__)
-
- # get post_info_project_id
- query = "SELECT id FROM info_project WHERE project_name = %s"
- query_data = (project)
- post_info_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
-
- # get post_build_project_id
- query = "SELECT id FROM build_project " \
- "WHERE info_project_id = %s ORDER BY id desc LIMIT 1"
- query_data = (post_info_project_id)
- post_build_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- #print '[%s] post_info_project_id(%s), post_build_project_id(%d)\n' \
- # % (__file__, post_info_project_id, post_build_project_id)
-
- # insert new post_build_project_id
- query = "INSERT INTO build_snapshot (build_project_id, snapshot_name, " \
- "start_time, status) VALUES(%s, %s, %s, %s)"
- query_data = (post_build_project_id, ter_snapshot_name, ter_start_datetime, 'R')
- buildmonitor_db.do_query(query, query_data)
-
-def create_snapshot_packages_for_post_build_snapshot_package(repo, project, ter_repo,
- ter_arch, base_path, snapshot):
- print '[%s] enter create_snapshot_packages_for_post_build_snapshot_package\n' % (__file__)
-
- if ter_arch == 'ia32':
- ter_arch = 'i686'
- ter_repo_dir = os.path.join(snapshot.path, "repos", ter_repo, "packages")
- #print '[%s] snapshot.path(%s), ter_repo(%s), ter_arch(%s)\n' \
- # % (__file__, snapshot.path, ter_repo, ter_arch)
- #print '[%s] ter_repo_dir(%s), os.listdir(ter_repo_dir)(%s)\n' \
- # % (__file__, ter_repo_dir, os.listdir(ter_repo_dir))
-
- ter_base_url = os.getenv("URL_PUBLIC_REPO_BASE")
- ter_pkg_url = ter_repo_dir.replace(base_path, ter_base_url)
- #print '[%s] ter_base_url(%s), base_path(%s), ter_pkg_url(%s)\n' \
- # % (__file__, ter_base_url, base_path, ter_pkg_url)
-
- # get rpm files
- ter_pkg_name_lst = []
- ter_pkg_mdate_lst = []
- ter_pkg_size_lst = []
- for root, dirs, files in os.walk(ter_repo_dir):
- #print '[%s] root(%s), dirs(%s), files(%s)\n' % (__file__, root, dirs, files)
- for each_file in files:
- if each_file.endswith(".rpm"):
- rpm_file_path = os.path.join(root, each_file)
- rpm_file_mdate = os.path.getmtime(rpm_file_path)
- rpm_file_size = os.path.getsize(rpm_file_path)
- ter_pkg_name_lst.append(each_file)
- ter_pkg_mdate_lst.append(rpm_file_mdate)
- ter_pkg_size_lst.append(rpm_file_size)
- # too much log
- #print '[%s] rpm_file_path(%s), rpm_file_mdate(%s), rpm_file_size(%s)\n' \
- # % (__file__, rpm_file_path, rpm_file_mdate, rpm_file_size)
-
- # get post_info_project_id
- query = "SELECT id FROM info_project WHERE project_name = %s"
- query_data = (project)
- post_info_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- #print '[%s] post_info_project_id (%s)\n' % (__file__, post_info_project_id)
-
- # get post_build_project_id
- query = "SELECT id FROM build_project " \
- "WHERE info_project_id = %s ORDER BY id desc LIMIT 1"
- query_data = (post_info_project_id)
- build_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
-
- # get curr_build_snapshot_id
- query = "SELECT id FROM build_snapshot WHERE build_project_id = %s"
- query_data = (build_project_id)
- curr_build_snapshot_id = buildmonitor_db.get_value_from_query_data(query, query_data)
-
- for each_pkg_name, each_pkg_mdate, each_pkg_size in zip(ter_pkg_name_lst, ter_pkg_mdate_lst, ter_pkg_size_lst):
- timestamp = datetime.datetime.fromtimestamp(each_pkg_mdate)
- # post build
- #print '[%s] curr_build_snapshot_id(%s), each_pkg_name(%s), timestamp(%s), each_pkg_size(%s)\n' \
- # % (__file__, curr_build_snapshot_id, each_pkg_name, timestamp, each_pkg_size)
- query = "INSERT INTO build_snapshot_package (build_snapshot_id, repository, arch, " \
- "package_name, created_date, package_size, package_url) " \
- "VALUES(%s, %s, %s, %s, %s, %s, %s)"
- query_data = (curr_build_snapshot_id, ter_repo, ter_arch,
- each_pkg_name, timestamp, each_pkg_size, ter_pkg_url)
- buildmonitor_db.do_query(query, query_data)
-
-def end_create_snapshot_create_images_for_sr_stage(project, ter_start_datetime,
- ter_end_datetime):
- print '[%s] enter end_create_snapshot_create_images_for_sr_stage\n' % (__file__)
-
- ### [7/8/9] end : [post] snapshot creation / [post] image creation / Completed
- # get post_info_project_id
- query = "SELECT id FROM info_project WHERE project_name = %s"
- query_data = (project) # Tizen:Mobile
- post_info_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
-
- # get post_build_project_id
- query = "SELECT id FROM build_project " \
- "WHERE info_project_id = %s ORDER BY id desc LIMIT 1"
- query_data = (post_info_project_id)
- post_build_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
-
- # get multi_sr_status_id
- query = "SELECT sr_status_id FROM sr_status_detail WHERE post_build_project_id = %s"
- query_data = (post_build_project_id)
- multi_sr_status_id = buildmonitor_db.get_multi_values_from_query_data(query, query_data)
- #print '[%s] post_info_project_id(%s), post_build_project_id(%d), multi_sr_status_id(%s)\n' \
- # % (__file__, post_info_project_id, post_build_project_id, multi_sr_status_id)
-
- for each_sr_status_id in multi_sr_status_id:
- print '[%s] each_sr_status_id(%s)\n' % (__file__, each_sr_status_id)
-
- # change the state_status of previous stage from 'R' to 'S'
- info_stage_id = 7
- query = "UPDATE sr_stage SET stage_end_time = %s, stage_status = %s " \
- "WHERE sr_status_id = %s AND info_stage_id = %s AND build_project_id = %s"
- query_data = (ter_end_datetime, 'S',
- each_sr_status_id[0], info_stage_id, post_build_project_id)
- buildmonitor_db.do_query(query, query_data)
-
- info_stage_id = 8
- query = "UPDATE sr_stage SET stage_end_time = %s, stage_status = %s " \
- "WHERE sr_status_id = %s AND info_stage_id = %s AND build_project_id = %s"
- query_data = (ter_end_datetime, 'S',
- each_sr_status_id[0], info_stage_id, post_build_project_id)
- buildmonitor_db.do_query(query, query_data)
-
- info_stage_id = 9
- ter_start_datetime = datetime.datetime.now()
- query = "INSERT INTO sr_stage (sr_status_id, info_stage_id, " \
- "stage_start_time, stage_end_time, stage_status, build_project_id) " \
- "VALUES(%s, %s, %s, %s, %s, %s)"
- query_data = (each_sr_status_id[0], info_stage_id,
- ter_start_datetime, ter_end_datetime, 'S', post_build_project_id)
- buildmonitor_db.do_query(query, query_data)
-
-def end_create_snapshot_for_post_build_snapshot(project, ter_start_datetime,
- ter_end_datetime, ter_snapshot_url,
- ter_snapshot_name):
- print '[%s] enter end_create_snapshot_for_post_build_snapshot\n' % (__file__)
-
- # get post_info_project_id
- query = "SELECT id FROM info_project WHERE project_name = %s"
- query_data = (project)
- post_info_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
-
- # get post_build_project_id
- query = "SELECT id FROM build_project " \
- "WHERE info_project_id = %s ORDER BY id desc LIMIT 1"
- query_data = (post_info_project_id)
- post_build_project_id = buildmonitor_db.get_value_from_query_data(query, query_data)
- #print '[%s] post_info_project_id(%s), post_build_project_id(%d)\n' \
- # % (__file__, post_info_project_id, post_build_project_id)
-
- # insert new post_build_project_id
- query = "UPDATE build_snapshot SET snapshot_url = %s, " \
- "end_time = %s, status = %s WHERE snapshot_name = %s"
- query_data = (ter_snapshot_url, ter_end_datetime, 'S', ter_snapshot_name)
- buildmonitor_db.do_query(query, query_data)
-#==================================================================================
-
-def main():
- """
- Script entry point.
- """
-
-if __name__ == '__main__':
- try:
- sys.exit(main(os.path.basename(sys.argv[1])))
- except LocalError, err:
- print err
- sys.exit(1)