Skip to content
Snippets Groups Projects
Commit f4b12013 authored by Chris Hines's avatar Chris Hines
Browse files

Merge branch 'dev' into 'test'

Dev

See merge request !96
parents 8144c7a5 8086c2b6
No related branches found
No related tags found
2 merge requests!97Test,!96Dev
Pipeline #70139 passed
...@@ -84,7 +84,7 @@ deploy_prod: ...@@ -84,7 +84,7 @@ deploy_prod:
- docker ps -a -q | xargs -I{} docker rm {} || echo "No containers to remove" - docker ps -a -q | xargs -I{} docker rm {} || echo "No containers to remove"
- docker images -q | xargs -I{} docker rmi {} || echo "No images to remove" - docker images -q | xargs -I{} docker rmi {} || echo "No images to remove"
- docker pull l1ll1/strudel2_backend:$CI_COMMIT_BRANCH - docker pull l1ll1/strudel2_backend:$CI_COMMIT_BRANCH
- docker run --mount type=bind,source=/messages,target=/messages --mount type=bind,source=/var/log/strudel2,target=/var/log/strudel2 --restart=always -d -p 8080:8080 -p 8090:8090 --log-driver json-file --log-opt max-size=10m --log-opt max-file=3 --name strudel2_backend l1ll1/strudel2_backend:$CI_COMMIT_BRANCH || echo "Unable to start image ... possibly the old wsgi process is still running?" - docker run --mount type=bind,source=/messages,target=/messages --mount type=bind,source=/var/log/strudel2,target=/var/log/strudel2 -v /home/ubuntu/telegraf.conf:/etc/telegraf/telegraf.conf:ro --restart=always -d -p 8080:8080 -p 8090:8090 --log-driver json-file --log-opt max-size=10m --log-opt max-file=3 --name strudel2_backend l1ll1/strudel2_backend:$CI_COMMIT_BRANCH || echo "Unable to start image ... possibly the old wsgi process is still running?"
dependencies: dependencies:
- build - build
...@@ -9,6 +9,7 @@ uwsgi \ ...@@ -9,6 +9,7 @@ uwsgi \
--gid=www-data \ --gid=www-data \
--stats /tmp/statsock \ --stats /tmp/statsock \
--memory-report \ --memory-report \
--listen=512 \
-w tes.tes_wsgi & -w tes.tes_wsgi &
telegraf & telegraf &
twsproxy 8090 twsproxy 8090
......
...@@ -98,8 +98,11 @@ class Ssh: ...@@ -98,8 +98,11 @@ class Ssh:
@staticmethod @staticmethod
def check_ctrlsocket(sess, ctrlsocket): def check_ctrlsocket(sess, ctrlsocket):
cmd = ['ssh','-S',ctrlsocket,'-O','check','-l','noone','nohost'] cmd = ['ssh','-S',ctrlsocket,'-O','check','-l','noone','nohost']
check_p = subprocess.Popen(cmd,stdout=subprocess.PIPE,stderr=subprocess.PIPE,stdin=None) try:
(stderr,stdout) = check_p.communicate(timeout=Ssh.TIMEOUT) check_p = subprocess.Popen(cmd,stdout=subprocess.PIPE,stderr=subprocess.PIPE,stdin=None)
(stderr,stdout) = check_p.communicate(timeout=Ssh.TIMEOUT)
except subprocess.TimeoutExpired as e:
raise e
return check_p.returncode == 0 return check_p.returncode == 0
@staticmethod @staticmethod
...@@ -113,11 +116,16 @@ class Ssh: ...@@ -113,11 +116,16 @@ class Ssh:
import logging import logging
logger = logging.getLogger() logger = logging.getLogger()
logger.debug("enter get_ctrl_master_socket") logger.debug("enter get_ctrl_master_socket")
sess.lock.acquire()
ctrlsocket = "/tmp/cm-{}-{}-{}".format(user,host,sess.sshsessid) ctrlsocket = "/tmp/cm-{}-{}-{}".format(user,host,sess.sshsessid)
if Ssh.check_ctrlsocket(sess,ctrlsocket): sess.lock.acquire()
try:
if Ssh.check_ctrlsocket(sess,ctrlsocket):
sess.lock.release()
return ctrlsocket
except subprocess.TimeoutExpired as e:
sess.lock.release() sess.lock.release()
return ctrlsocket raise e
try: try:
mode = os.stat(ctrlsocket).st_mode mode = os.stat(ctrlsocket).st_mode
logger.debug('removing stale control socket') logger.debug('removing stale control socket')
...@@ -126,25 +134,29 @@ class Ssh: ...@@ -126,25 +134,29 @@ class Ssh:
except FileNotFoundError as e: except FileNotFoundError as e:
pass pass
sshcmd = Ssh.SSHCMDWITHOPTS.copy() try:
sshcmd.extend([ sshcmd = Ssh.SSHCMDWITHOPTS.copy()
"-S", ctrlsocket, sshcmd.extend([
"-M", '-o', 'ControlPersist=60s', "-S", ctrlsocket,
'-p', sshport, '-N','-l', user, host]) "-M", '-o', 'ControlPersist=60s',
env = os.environ.copy() '-p', sshport, '-N','-l', user, host])
if sess.socket is None: env = os.environ.copy()
if sess.socket is None:
sess.lock.release()
logger.debug("Exception get_ctrl_master_socket")
raise SshAgentException("No ssh-agent yet")
env['SSH_AUTH_SOCK'] = sess.socket
logger.debug("creating master socket")
logger.debug("ssh_auth_sock {}".format(sess.socket))
logger.debug(" ".join(sshcmd))
ctrl_p = subprocess.Popen(sshcmd,
stdout=subprocess.PIPE, stderr=subprocess.PIPE,
stdin=None,
env=env)
(stderr,stdout) = ctrl_p.communicate() # The process should exit, while the mux persists
except Exception as e:
sess.lock.release() sess.lock.release()
logger.debug("Exception get_ctrl_master_socket") raise e
raise SshAgentException("No ssh-agent yet")
env['SSH_AUTH_SOCK'] = sess.socket
logger.debug("creating master socket")
logger.debug("ssh_auth_sock {}".format(sess.socket))
logger.debug(" ".join(sshcmd))
ctrl_p = subprocess.Popen(sshcmd,
stdout=subprocess.PIPE, stderr=subprocess.PIPE,
stdin=None,
env=env)
(stderr,stdout) = ctrl_p.communicate() # The process should exit, while the mux persists
if ctrl_p.returncode == 0: if ctrl_p.returncode == 0:
sess.lock.release() sess.lock.release()
return ctrlsocket return ctrlsocket
......
...@@ -64,8 +64,12 @@ class SSHSession: ...@@ -64,8 +64,12 @@ class SSHSession:
import logging import logging
logger = logging.getLogger() logger = logging.getLogger()
self.lock.acquire() self.lock.acquire()
if self.socket is None: try:
self.start_agent() if self.socket is None:
self.start_agent()
except Exception as e:
self.lock.release()
raise e
self.lock.release() self.lock.release()
keyf = tempfile.NamedTemporaryFile(mode='w',delete=False) keyf = tempfile.NamedTemporaryFile(mode='w',delete=False)
keyname = keyf.name keyname = keyf.name
...@@ -206,8 +210,12 @@ class SSHSession: ...@@ -206,8 +210,12 @@ class SSHSession:
logger=logging.getLogger() logger=logging.getLogger()
env = os.environ.copy() env = os.environ.copy()
sess.lock.acquire() sess.lock.acquire()
if sess.socket is None: try:
sess.start_agent() if sess.socket is None:
sess.start_agent()
except Exception as e:
sess.lock.release()
raise e
sess.lock.release() sess.lock.release()
env['SSH_AUTH_SOCK'] = sess.socket env['SSH_AUTH_SOCK'] = sess.socket
cmd = [sess.sshadd,'-l'] cmd = [sess.sshadd,'-l']
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment