瀏覽代碼

fix console error

walle 6 年之前
父節點
當前提交
4af82bd061
共有 2 個文件被更改,包括 19 次插入21 次删除
  1. 0 3
      walle/service/deployer.py
  2. 19 18
      walle/service/waller.py

+ 0 - 3
walle/service/deployer.py

@@ -48,9 +48,6 @@ class Deployer:
     dir_codebase = '/tmp/walle/codebase/'
     dir_codebase_project = ''
 
-    # 定义远程机器
-    # env.hosts = ['172.16.0.231', '172.16.0.177']
-
     dir_release = None
     dir_webroot = None
 

+ 19 - 18
walle/service/waller.py

@@ -6,10 +6,8 @@
 
 from fabric2 import Connection
 from flask import current_app
+from flask_socketio import emit
 from walle.model.record import RecordModel
-from flask_socketio import SocketIO, emit
-
-
 
 
 class Waller(Connection):
@@ -56,18 +54,19 @@ class Waller(Connection):
                 emit('console', {'event': 'task:console', 'data': ws_dict}, room=wenv['task_id'])
 
             RecordModel().save_record(stage=wenv['stage'], sequence=wenv['sequence'], user_id=wenv['user_id'],
-                                          task_id=wenv['task_id'], status=result.exited, host=self.host, user=self.user,
-                                          command=result.command,success=result.stdout.strip(), error=result.stderr.strip())
+                                      task_id=wenv['task_id'], status=result.exited, host=self.host, user=self.user,
+                                      command=result.command, success=result.stdout.strip(),
+                                      error=result.stderr.strip())
             current_app.logger.info(message)
             return result
 
         except Exception as e:
-            #current_app.logger.exception(e)
-            #return None
+            # current_app.logger.exception(e)
+            # return None
             # TODO 貌似可能的异常有很多种,需要分层才能完美解决 something wrong without e.result
             RecordModel().save_record(stage=wenv['stage'], sequence=wenv['sequence'], user_id=wenv['user_id'],
-                                          task_id=wenv['task_id'], status=1, host=self.host, user=self.user,
-                                          command=command, success='', error='e.result')
+                                      task_id=wenv['task_id'], status=1, host=self.host, user=self.user,
+                                      command=command, success='', error='e.result')
             if hasattr(e, 'resean') and hasattr(e, 'result'):
                 message = 'task_id=%s, host:%s command:%s, status=1, reason:%s, result:%s' % (
                     wenv['task_id'], self.host, command, e.reason, e.result
@@ -105,26 +104,28 @@ class Waller(Connection):
         return self.sync(wtype='put', local=local, remote=remote, wenv=wenv, *args, **kwargs)
 
     def sync(self, wtype, remote=None, local=None, wenv=None):
+        command = 'put: scp %s %s@%s:%s' % (local, self.user, self.host, remote) if wtype == 'put' \
+            else 'get: scp %s@%s:%s %s' % (self.user, self.host, remote, local)
+
         try:
             if wtype == 'put':
                 result = super(Waller, self).put(local=local, remote=remote)
-                command = 'put: scp %s %s@%s:%s' % (result.local, self.user, self.host, result.remote)
                 current_app.logger.info('put: local %s, remote %s', local, remote)
 
             else:
                 result = super(Waller, self).get(remote=remote, local=local)
-                command = 'get: scp %s@%s:%s %s' % (self.user, self.host, result.remote, result.local)
                 current_app.logger.info('get: local %s, remote %s', local, remote)
                 current_app.logger.info('get: orig_local %s, local %s', result.orig_local, result.local)
 
             current_app.logger.info('put: %s, %s', result, dir(result))
             # TODO 可能会有非22端口的问题
             RecordModel().save_record(stage=wenv['stage'], sequence=wenv['sequence'], user_id=wenv['user_id'],
-                                          task_id=wenv['task_id'], status=0, host=self.host, user=self.user,
-                                          command=command, )
-            message = 'task_id=%d, host:%s command:%s status:0, success:, error:' % (
-            wenv['task_id'], self.host, command)
-            current_app.logger.info(message)
+                                      task_id=wenv['task_id'], status=0, host=self.host, user=self.user,
+                                      command=command, )
+            message = 'task_id=%s, host:%s command:%s status:0, success:, error:' % (
+                wenv['task_id'], self.host, command)
+            current_app.logger.error(self)
+            current_app.logger.error(result)
 
             # TODO
             ws_dict = {
@@ -135,7 +136,7 @@ class Waller(Connection):
                 'stage': wenv['stage'],
                 'sequence': wenv['sequence'],
                 'success': '',
-                'error': result.stderr.strip(),
+                'error': '',
             }
             if wenv['console']:
                 emit('console', {'event': 'task:console', 'data': ws_dict}, room=wenv['task_id'])
@@ -149,7 +150,7 @@ class Waller(Connection):
             ws_dict = {
                 'user': self.user,
                 'host': self.host,
-                'cmd': 'command',
+                'cmd': command,
                 'status': 1,
                 'stage': wenv['stage'],
                 'sequence': wenv['sequence'],