ソースを参照

Update manage.py

qiaofeng1227 2 年 前
コミット
a6c1f0da51
1 ファイル変更21 行追加19 行削除
  1. 21 19
      appmanage/api/service/manage.py

+ 21 - 19
appmanage/api/service/manage.py

@@ -254,8 +254,13 @@ def install_app_delay(app_name, customer_app_name, app_version):
 
                 cmd = "cd /data/apps/" + customer_app_name + " && sudo docker compose pull && sudo docker compose up -d"
                 output = shell_execute.execute_command_output_all(cmd)
-                if int(output["code"]) != 0:
+                myLogger.info_logger("install output")
+                myLogger.info_logger(output["code"])
+                myLogger.info_logger(output["result"])
+                if int(output["code"]) != 0 or "error" in output["result"] or "fail" in output["result"]:
                    raise Exception("installfailed!")
+                else:
+                   return "success"
             else:
                 raise Exception("prepare_app failed")
         else:
@@ -264,8 +269,11 @@ def install_app_delay(app_name, customer_app_name, app_version):
         myLogger.info_logger(customer_app_name+"install failed!")
         myLogger.error_logger(e)
         job_id = app_name + "_" + customer_app_name
-        fail_job = q.fetch_job(job_id)
-        fail_job.set_status('failed')
+        try:
+            uninstall_app(job_id)
+        except Exception as e:
+            myLogger.error_logger(e)
+        return "fail"
 
 def if_app_exits(app_id):
     app_name = app_id.split('_')[1]
@@ -411,27 +419,21 @@ def get_apps_from_queue():
     myLogger.info_logger(finish_job_ids)
     myLogger.info_logger(failed_jobs )
     myLogger.info_logger(scheduled_jobs)
-    myLogger.info_logger("other get jobids")
-    queued_jobs = q.fetch_jobs_by_status(status='queued')
-    started_jobs = q.fetch_jobs_by_status(status='started')
-    failed_jobs = q.fetch_jobs_by_status(status='failed')
-    finished_jobs = q.fetch_jobs_by_status(status='finished')
+ 
     myLogger.info_logger("----------------------------------------")
-    myLogger.info_logger(queued_jobs)
-    myLogger.info_logger(started_jobs)
-    myLogger.info_logger(failed_jobs)
-    myLogger.info_logger(finished_jobs)
-	
+
     installing_list = []
-    for job in started_jobs:
-        app = get_installing_app(job.id, const.APP_READY, 'installing')
+    for job in run_job_ids:
+        app = get_installing_app(job, const.APP_READY, 'installing')
         installing_list.append(app)
-    for job in queued_jobs:
+    for job in q.jobs: 
         app = get_installing_app(job.id, const.APP_WAIT, 'waiting')
         installing_list.append(app)
-    for job in failed_jobs:
-        app = get_installing_app(job.id, const.APP_ERROR, 'error')
-        installing_list.append(app)
+    for job_id in finish_job_ids:
+        job = q.fetch_job(job_id)
+        if job.result == "fail":
+           app = get_installing_app(job_id, const.APP_ERROR, 'error')
+           installing_list.append(app)
 	
     return installing_list