From 29dea80a84840a6492687d4a5f0a6299de75a291 Mon Sep 17 00:00:00 2001 From: rndviktor Date: Tue, 6 Sep 2016 23:11:25 +0300 Subject: [PATCH 1/7] added wetty submodule --- .gitmodules | 3 +++ wetty | 1 + 2 files changed, 4 insertions(+) create mode 160000 wetty diff --git a/.gitmodules b/.gitmodules index 36269b1..6e9e6d7 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,3 +4,6 @@ [submodule "rpc"] path = rpc url = git://github.com/LTD-Beget/sprutio-rpc.git +[submodule "wetty"] + path = wetty + url = https://github.com/rndviktor/wetty.git diff --git a/wetty b/wetty new file mode 160000 index 0000000..3babfc4 --- /dev/null +++ b/wetty @@ -0,0 +1 @@ +Subproject commit 3babfc4acc55cf0b31c5e8d85317a886deab8772 From 6edb0ad938eb5e973ea91eb1d68b6b8076fe18e8 Mon Sep 17 00:00:00 2001 From: rndviktor Date: Sat, 10 Sep 2016 22:12:43 +0300 Subject: [PATCH 2/7] run wetty in container beside sprutio --- .dockerignore | 1 + Makefile | 14 ++++++++++---- docker-compose.dev.yml | 5 +++++ docker-compose.yml | 5 +++++ travis/docker-build.sh | 3 +++ 5 files changed, 24 insertions(+), 4 deletions(-) diff --git a/.dockerignore b/.dockerignore index 45eefa3..72bdf7e 100644 --- a/.dockerignore +++ b/.dockerignore @@ -8,3 +8,4 @@ downloads logs var ssl +wetty diff --git a/Makefile b/Makefile index 1f0c44d..2b8a2de 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,10 @@ .PHONY: all build push \ - build-python build-cron build-bower build-rpc build-app build-nginx build-frontend \ - push-python push-cron push-bower push-rpc push-app push-nginx push-frontend + build-python build-cron build-bower build-rpc build-app build-nginx build-wetty build-frontend \ + push-python push-cron push-bower push-rpc push-wetty push-app push-nginx push-frontend all: build -build: build-python build-cron build-bower build-rpc build-app build-nginx build-frontend +build: build-python build-cron build-bower build-rpc build-app build-nginx build-frontend build-wetty build-python: docker build -t beget/sprutio-python -f Dockerfile ./ @@ -24,11 +24,14 @@ build-app: build-nginx: docker build -t beget/sprutio-nginx -f Dockerfile.nginx ./ +build-wetty: + docker build -t rndviktor/wetty -f wetty/Dockerfile wetty/ + build-frontend: docker run -v $(PWD)/app/public:/app -w /app beget/sprutio-bower bower install --allow-root docker build -t beget/sprutio-frontend -f app/public/Dockerfile app/public/ -push: push-cron push-rpc push-app push-nginx push-frontend +push: push-cron push-rpc push-app push-nginx push-frontend push-wetty push-cron: docker push beget/sprutio-cron @@ -42,6 +45,9 @@ push-app: push-nginx: docker push beget/sprutio-nginx +push-wetty: + docker push rndviktor/wetty + push-frontend: docker push beget/sprutio-frontend diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 89ff414..30cdf2b 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -25,6 +25,11 @@ cron: redis: image: redis +wetty: + build: wetty + ports: + - "3000:3000" + bower: build: . dockerfile: Dockerfile.bower diff --git a/docker-compose.yml b/docker-compose.yml index 6ff67f5..aa15763 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -49,4 +49,9 @@ cron: redis: image: redis:3.0 +wetty: + image: rndviktor/wetty + ports: + - "3000:3000" + # EOF diff --git a/travis/docker-build.sh b/travis/docker-build.sh index f9f3d6c..854e26c 100755 --- a/travis/docker-build.sh +++ b/travis/docker-build.sh @@ -22,6 +22,9 @@ docker build -t beget/sprutio-app -f app/Dockerfile app/ # nginx image docker build -t beget/sprutio-nginx -f Dockerfile.nginx ./ +# wetty image +docker build -t rndviktor/wetty -f wetty/Dockerfile wetty/ + # frontend docker build -t beget/sprutio-bower -f Dockerfile.bower ./ docker run -v $PWD/app/public:/app -w /app beget/sprutio-bower bower install --allow-root From 436a4e78b553d4054984726e3702603f0d7c0a36 Mon Sep 17 00:00:00 2001 From: rndviktor Date: Sun, 9 Oct 2016 16:04:26 +0300 Subject: [PATCH 3/7] app changes for terminal support --- app/classes/core/FM.py | 4 +++ app/config/routes.py | 2 ++ app/handlers/actions/main/TerminalHandler.py | 27 +++++++++++++++++++ .../home/actions/main/open_terminal.py | 16 +++++++++++ 4 files changed, 49 insertions(+) create mode 100644 app/handlers/actions/main/TerminalHandler.py create mode 100644 app/modules/home/actions/main/open_terminal.py diff --git a/app/classes/core/FM.py b/app/classes/core/FM.py index 70f67c9..c0f320f 100755 --- a/app/classes/core/FM.py +++ b/app/classes/core/FM.py @@ -115,6 +115,8 @@ class Actions(object): CREATE_ARCHIVE = 'actions.archive.create.CreateArchive' EXTRACT_ARCHIVE = 'actions.archive.extract.ExtractArchive' + OPEN_TERMINAL = 'actions.main.open_terminal.OpenTerminal' + # Aliases for FM actions class Action(object): @@ -173,6 +175,8 @@ class Action(object): HELP = 'FM.action.Help' LOGOUT = 'FM.action.Logout' + TERMINAL = 'FM.action.Terminal' + class ActionsProvider: @staticmethod diff --git a/app/config/routes.py b/app/config/routes.py index 3fcc85b..f1838f9 100644 --- a/app/config/routes.py +++ b/app/config/routes.py @@ -5,6 +5,7 @@ from handlers.actions.main import CancelOperationHandler from handlers.actions.main import LoadSettingsHandler from handlers.actions.main import SaveSettingsHandler +from handlers.actions.main import TerminalHandler # from handlers.actions.main import LogoutHandler from handlers.actions.files import ListFilesHandler from handlers.actions.files import RemoveFilesHandler @@ -62,6 +63,7 @@ (r"/actions/main/cancel_operation", CancelOperationHandler.CancelOperationHandler), (r"/actions/main/save_settings", SaveSettingsHandler.SaveSettingsHandler), (r"/actions/main/logout", LogoutHandler.LogoutHandler), + (r"/actions/main/terminal", TerminalHandler.TerminalHandler), (r"/actions/files/list", ListFilesHandler.ListFilesHandler), (r"/actions/files/remove", RemoveFilesHandler.RemoveFilesHandler), (r"/actions/files/chmod", ChmodFilesHandler.ChmodFilesHandler), diff --git a/app/handlers/actions/main/TerminalHandler.py b/app/handlers/actions/main/TerminalHandler.py new file mode 100644 index 0000000..5e801b6 --- /dev/null +++ b/app/handlers/actions/main/TerminalHandler.py @@ -0,0 +1,27 @@ +from tornado import web +from handlers.BaseHandler import BaseHandler, wrap_async_rpc, wrap_catch + +from core import FM + + +class TerminalHandler(BaseHandler): + @wrap_async_rpc + @wrap_catch + @web.authenticated + def post(self): + + session = self.get_post('session') + + if session is None: + self.json({ + 'error': True, + 'message': 'no session provided' + }) + self.finish() + return + + action = self.get_action(name=FM.Actions.OPEN_TERMINAL, session=session) + answer = action.run() + + self.json(answer) + self.finish() diff --git a/app/modules/home/actions/main/open_terminal.py b/app/modules/home/actions/main/open_terminal.py new file mode 100644 index 0000000..aafdeda --- /dev/null +++ b/app/modules/home/actions/main/open_terminal.py @@ -0,0 +1,16 @@ +from core import FM + + +class OpenTerminal(FM.BaseAction): + def __init__(self, session, **kwargs): + super(OpenTerminal, self).__init__(**kwargs) + + self.session = session + + def run(self): + request = self.get_rpc_request() + result = request.request('main/open_terminal', login=self.request.get_current_user(), + password=self.request.get_current_password(), session=self.session) + answer = self.process_result(result) + + return answer From 14fb70eaeea10e72cc414f6d1e15579998e70935 Mon Sep 17 00:00:00 2001 From: rndviktor Date: Mon, 10 Oct 2016 13:41:49 +0300 Subject: [PATCH 4/7] wetty run with other containers --- Makefile | 2 +- docker-compose.yml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 2b8a2de..cc2fe9a 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ .PHONY: all build push \ build-python build-cron build-bower build-rpc build-app build-nginx build-wetty build-frontend \ - push-python push-cron push-bower push-rpc push-wetty push-app push-nginx push-frontend + push-python push-cron push-bower push-rpc push-app push-nginx push-frontend push-wetty all: build diff --git a/docker-compose.yml b/docker-compose.yml index aa15763..555a545 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -53,5 +53,6 @@ wetty: image: rndviktor/wetty ports: - "3000:3000" + - "9422:9422" # EOF From 9a6078166a17315c342e1abfcbb329b19bbd7268 Mon Sep 17 00:00:00 2001 From: rndviktor Date: Fri, 14 Oct 2016 17:46:57 +0300 Subject: [PATCH 5/7] removed unnecessary port exposing --- docker-compose.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 555a545..aa15763 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -53,6 +53,5 @@ wetty: image: rndviktor/wetty ports: - "3000:3000" - - "9422:9422" # EOF From 1bd208390c09df41ad6e307cb3e8575ec4d99583 Mon Sep 17 00:00:00 2001 From: rndviktor Date: Sat, 15 Oct 2016 00:36:55 +0300 Subject: [PATCH 6/7] wetty container has access to the host network - support login to localhost over ssh --- docker-compose.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index aa15763..94b2ba0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -51,7 +51,6 @@ redis: wetty: image: rndviktor/wetty - ports: - - "3000:3000" + net: "host" # EOF From aa2d3ec841e73ff8236035539b4e80de3ad3aba4 Mon Sep 17 00:00:00 2001 From: rndviktor Date: Sat, 15 Oct 2016 00:44:18 +0300 Subject: [PATCH 7/7] same enabling for dev environment --- docker-compose.dev.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 30cdf2b..c9ff376 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -27,8 +27,7 @@ redis: wetty: build: wetty - ports: - - "3000:3000" + net: "host" bower: build: .