summaryrefslogtreecommitdiff
path: root/tasks.py
diff options
context:
space:
mode:
authorankitjavalkar2017-11-14 15:46:50 +0530
committerankitjavalkar2017-11-14 15:46:50 +0530
commit41e04d656e0045b3132bd3ec7de206c515606875 (patch)
treef78c8a8693f83dc56647527cf8f825ce0233ca53 /tasks.py
parent1aeb0997affaf8d6da3cdceee2d3ba8df59c4083 (diff)
downloadonline_test-41e04d656e0045b3132bd3ec7de206c515606875.tar.gz
online_test-41e04d656e0045b3132bd3ec7de206c515606875.tar.bz2
online_test-41e04d656e0045b3132bd3ec7de206c515606875.zip
Multiple minor fixes :
- Fix README instruct to run docker container before running django server - Add messages after commands execute succesfully - Touch a new file to denote successful running of code server
Diffstat (limited to 'tasks.py')
-rw-r--r--tasks.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/tasks.py b/tasks.py
index eabf8fb..68d9967 100644
--- a/tasks.py
+++ b/tasks.py
@@ -1,3 +1,4 @@
+from __future__ import print_function
import invoke
from invoke import task
import os
@@ -6,11 +7,18 @@ from yaksh.settings import SERVER_POOL_PORT
SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__))
TARGET_CONTAINER_NAME = 'yaksh_code_server'
SRC_IMAGE_NAME = 'fossee/yaksh_codeserver'
+CHECK_FILE = 'server_running.txt'
+CHECK_FILE_PATH = os.path.join(SCRIPT_DIR, 'yaksh_data', CHECK_FILE)
+
def create_dir(path):
if not os.path.exists(path):
os.makedirs(path)
+def remove_check_file(path):
+ if os.path.isfile(path):
+ os.remove(path)
+
@task
def setupdb(ctx):
print("** Setting up & migrating database **")
@@ -36,6 +44,7 @@ def getimage(ctx, image=SRC_IMAGE_NAME):
print("The docker image {0} does not exist locally".format(image))
print("\n** Pulling latest image <{0}> from docker hub **".format(image))
ctx.run("sudo docker pull {0}".format(image))
+ print("\n** Done! Successfully pulled latest image <{0}> **".format(image))
@task
def start(ctx, ports=SERVER_POOL_PORT, image=SRC_IMAGE_NAME, unsafe=False,
@@ -58,6 +67,7 @@ def start(ctx, ports=SERVER_POOL_PORT, image=SRC_IMAGE_NAME, unsafe=False,
)
}
+ remove_check_file(CHECK_FILE_PATH)
getimage(ctx, image=SRC_IMAGE_NAME)
print("** Preparing code server **")
@@ -84,12 +94,19 @@ def start(ctx, ports=SERVER_POOL_PORT, image=SRC_IMAGE_NAME, unsafe=False,
{image} {command}".format(**cmd_params)
)
+ while not os.path.isfile(CHECK_FILE_PATH):
+ print("** Checking code server status. Press Ctrl-C to exit **\r", end="")
+ print("** Code server is up and running successfully **")
+
+
@task
def stop(ctx, container=TARGET_CONTAINER_NAME, hide=True):
result = ctx.run("sudo docker ps -q --filter='name={0}'".format(container))
+ remove_check_file(CHECK_FILE_PATH)
if result.stdout:
print ("** Discarding the docker container <{0}>".format(container))
ctx.run("sudo docker stop {0}".format(container))
ctx.run("sudo docker rm {0}".format(container))
+ print ("** Done! Discarded the docker container <{0}>".format(container))
else:
print("** Docker container <{0}> not found **".format(container))