query = "SELECT name, sr_auto_reject FROM main_project WHERE sr_auto_reject <> %s"
query_data =("0",)
+
projects = get_multi_values_from_query_data(query, query_data)
for prj in projects:
prj_list[prj[0]] = int(prj[1])
-
+
return prj_list
def get_build_project_id(self, project):
query_data = ( status, error_string, id)
do_query(query, query_data)
+ def get_build_repository_name_id(self, repo_name):
+
+ if not self.is_connect():
+ return
+
+ query = "SELECT id FROM build_repository_name WHERE repository = %s"
+ query_data = (repo_name,)
+
+ return get_value_from_query_data(query, query_data)
+
+ def update_build_repository_name(self, repo_name):
+
+ if not self.is_connect():
+ return
+
+ query = "INSERT INTO build_repository_name (repository) SELECT * FROM (SELECT %s) AS tmp \
+ WHERE NOT EXISTS (SELECT repository FROM build_repository_name WHERE repository = %s) LIMIT 1"
+ do_query(query, (repo_name, repo_name))
+
+ return self.get_build_repository_name_id(repo_name)
+
+ def get_build_arch_name_id(self, arch_name):
+
+ if not self.is_connect():
+ return
+
+ query = "SELECT id FROM build_arch_name WHERE repository = %s"
+ query_data = (arch_name,)
+
+ return get_value_from_query_data(query, query_data)
+
+ def update_build_arch_name(self, arch_name):
+
+ if not self.is_connect():
+ return
+
+ query = "INSERT INTO build_arch_name (arch) SELECT * FROM (SELECT %s) AS tmp \
+ WHERE NOT EXISTS (SELECT arch FROM build_arch_name WHERE arch = %s) LIMIT 1"
+ do_query(query, (arch_name, arch_name))
+
+ return self.get_build_arch_name_id(arch_name)
+
+ def get_device_name_id(self, device_name):
+
+ if not self.is_connect():
+ return
+
+ query = "SELECT id FROM device_name WHERE device_name = %s"
+ query_data = (device_name,)
+
+ return get_value_from_query_data(query, query_data)
+
+ def update_device_name(self, device_name):
+
+ if not self.is_connect():
+ return
+
+ query = "INSERT INTO device_name (device_name) SELECT * FROM (SELECT %s) AS tmp \
+ WHERE NOT EXISTS (SELECT device_name FROM device_name WHERE device_name = %s) LIMIT 1"
+ do_query(query, (device_name, device_name))
+
+ return self.get_device_name_id(device_name)
class GbsDashboard(BuildMonitorExtention):
def set_stage(self, tag, stage, reason=None, timestamp=None):
+ assert type(reason) == dict
+
if reason is None or reason == "":
- reason = ""
+ reason = {"status": ""}
assert timestamp is not None
- query = "INSERT INTO gbs_stage (gbs_status_id, gbs_stage_id, stage_status, record_date) \
+ query = "INSERT INTO gbs_stage (gbs_status_id, gbs_stage_id, stage_status, record_date, misc_info) \
SELECT * FROM ( \
(SELECT id FROM gbs_status WHERE tag=%s) AS tmp1, \
(SELECT id FROM gbs_stage_lookup WHERE stage=%s) AS tmp2, \
(SELECT (%s)) AS tmp3, \
- (SELECT (%s)) AS tmp4) \
- WHERE NOT EXISTS ( \
- SELECT * FROM (SELECT gsl.stage AS stage_name FROM gbs_stage gs, \
- gbs_status gst, gbs_stage_lookup gsl \
- WHERE gst.tag=%s AND gst.id=gs.gbs_status_id AND gs.gbs_stage_id=gsl.id \
- ORDER BY gs.id DESC LIMIT 1) AS tmp \
- WHERE stage_name=%s) \
+ (SELECT (%s)) AS tmp4, \
+ (SELECT (%s)) AS tmp5) \
LIMIT 1"
- query_data = (tag, stage, reason, timestamp, tag, stage)
+ query_data = (tag, stage, reason.get("status",""), timestamp, "%s" % reason)
do_query(query, query_data)
def set_packages(self, tag, packages):
bm_ext.purge_snapshot_manifest_exist(build_project_id)
manifest_data = []
-
# getid from git_repository
for git_repo, git_commit, obs_name in manifest_items: