]> Frank Brehm's Git Trees - profitbricks/jenkins-build-scripts.git/commitdiff
adopt to changes in db design, this time for liveboot
authorHolger Levsen <holger@layer-acht.org>
Fri, 12 Oct 2012 10:37:34 +0000 (12:37 +0200)
committerHolger Levsen <holger@layer-acht.org>
Fri, 12 Oct 2012 10:37:34 +0000 (12:37 +0200)
db_add.py
liveboot2db.py
liveboot_build.sh

index 38f2d0432169b734fbb2b83ac04d7eadbd252809..2244785671c889883aaafaea6a48c43789eff098 100755 (executable)
--- a/db_add.py
+++ b/db_add.py
@@ -38,6 +38,16 @@ def db_add_build(con, db_id, number, start, end, status):
         logger.info("INSERT INTO jenkins_build(jenkins_job_id, jenkins_build_number, build_start, build_end, status) VALUES(%s, %s, '%s', '%s', '%s') RETURNING id" % (db_id, number, start, end, status))
     return cur.fetchone()[0]
 
+def db_update_build(con, db_id, end, status):
+    cur = con.cursor()
+    cur.execute("SAVEPOINT a")
+    try:
+        cur.execute("UPDATE jenkins_build SET build_end = '%s', status = '%s' WHERE id = %s RETURNING id" % (db_id, end, status))
+    except psycopg2.DatabaseError as e:
+        cur.execute("ROLLBACK TO a")  # have to rollback after failed command
+        logger.info("UPDATE jenkins_build SET build_end = '%s', status = '%s' WHERE id = %s RETURNING id" % (db_id, end, status))
+    return cur.fetchone()[0]
+
 def db_add_origin(con, origin):
     cur = con.cursor()
     cur.execute("SAVEPOINT a")
@@ -159,18 +169,18 @@ def get_liveboot_build_id(job_name, build_number):
         return False
     return cur.fetchone()[0]
 
-def add_liveboot_build(job_name, build_number, request_id):
+def add_liveboot_build(job_name, build_number, request_id, start):
     con = db_connect()
     db_job_id = db_add_job(con, job_name)
-    db_build_id = db_add_build (con, build_number, db_job_id)
-    db_add_requested_liveboot_build (con, request_id, db_build_id)
+    db_build_id = db_add_build(con, db_job_id, build_number, start, 'NULL', 'in progress')
+    db_add_requested_liveboot_build(con, request_id, db_build_id)
     con.commit()
     logger.info("CIDB init for liveboot OK.")
     return
 
-def finish_liveboot_build(build_id, start, end):
+def finish_liveboot_build(build_id, end):
     con = db_connect()
-    db_add_build_result (con, build_id, start, end, 'successful')
+    db_update_build(con, build_id, end, 'successful')
     con.commit()
     logger.info("CIDB update for liveboot OK.")
     return
index 107e45d0d34af3adaa36cb6d353dda848f3b1f37..cc5e93ecd309171c346e5e881b736aca56ef4640 100755 (executable)
@@ -7,9 +7,9 @@ from db_add import *
 
 
 if __name__ == '__main__':
-    if len(sys.argv) != 4 and len(sys.argv) !=6:
+    if len(sys.argv) != 5 and len(sys.argv) !=6:
         # if the build was just started:
-        print("usage: %s $job_name $build_number $liveboot_request_id")
+        print("usage: %s $job_name $build_number $liveboot_request_id $start_time")
         print("or:")
         # if the build was successful
         print("usage: %s $job_name $build_number $liveboot_request_id $start_time $end_time")
@@ -18,13 +18,13 @@ if __name__ == '__main__':
     job_name = sys.argv[1]
     build_number = sys.argv[2]
     request_id = sys.argv[3]
+    start = sys.argv[4]
 
     if len(sys.argv) != 6:
-        add_liveboot_build(job_name, build_number, request_id)
+        add_liveboot_build(job_name, build_number, request_id, start)
     else:
-        begin = sys.argv[4]
         end = sys.argv[5]
         build_id = get_liveboot_build_id(job_name, build_number)
-        finish_liveboot_build(build_id, begin, end)
+        finish_liveboot_build(build_id, end)
 
 
index 5bb40a9bfe8422c7f0097a2419bf6ac30e18d82d..24307ce6e695c695a71a0c7fc89706c554f6e623 100755 (executable)
@@ -43,7 +43,7 @@ EOF
 # add liveboot build to cidb
 #
 BUILD_START=$(date +%s)
-$SCRIPTSDIR/liveboot2db.py $JOB_NAME $BUILD_NUMBER $REQUEST_ID
+$SCRIPTSDIR/liveboot2db.py $JOB_NAME $BUILD_NUMBER $REQUEST_ID $BUILD_START
 
 #
 # build liveboot