Andrew Bogott has submitted this change and it was merged. Change subject: toolschecker: Add tests for starting/stopping web services ......................................................................
toolschecker: Add tests for starting/stopping web services Change-Id: If42fd5b999fb4a90e18ef8a358bad7e662af539b --- A modules/toollabs/files/toolschecker-generic-service.py A modules/toollabs/files/toolschecker-lighttpd-service.php M modules/toollabs/files/toolschecker.py M modules/toollabs/manifests/checker.pp 4 files changed, 82 insertions(+), 1 deletion(-) Approvals: Andrew Bogott: Looks good to me, approved jenkins-bot: Verified diff --git a/modules/toollabs/files/toolschecker-generic-service.py b/modules/toollabs/files/toolschecker-generic-service.py new file mode 100644 index 0000000..170969c --- /dev/null +++ b/modules/toollabs/files/toolschecker-generic-service.py @@ -0,0 +1,9 @@ +import flask + + +app = flask.Flask(__name__) + + [email protected]('/') +def index(): + return 'Python works!' diff --git a/modules/toollabs/files/toolschecker-lighttpd-service.php b/modules/toollabs/files/toolschecker-lighttpd-service.php new file mode 100644 index 0000000..18220ce --- /dev/null +++ b/modules/toollabs/files/toolschecker-lighttpd-service.php @@ -0,0 +1,2 @@ +<?php +echo "Lighttpd works"; diff --git a/modules/toollabs/files/toolschecker.py b/modules/toollabs/files/toolschecker.py index ea02a23..a69951b 100644 --- a/modules/toollabs/files/toolschecker.py +++ b/modules/toollabs/files/toolschecker.py @@ -293,6 +293,58 @@ return False +@check('/service/start') +def service_start_test(): + ''' Start a couple of simple web services, verify that they can serve a page + within 10 seconds.''' + success = False + url = "https://tools.wmflabs.org/toolschecker/" + with open(os.devnull, 'w') as devnull: + subprocess.check_call(['/usr/local/bin/webservice', 'start'], + stderr=devnull, stdout=devnull) + + for i in range(0, 10): + request = requests.get(url) + if request.status_code == 200: + success = True + break + + with open(os.devnull, 'w') as devnull: + subprocess.check_call(['/usr/local/bin/webservice', 'stop'], + stderr=devnull, stdout=devnull) + + # Make sure it really stopped + request = requests.get(url) + if request.status_code == 200: + success = False + + if not success: + return False + + # So far so good -- now, test wsgi + success = False + with open(os.devnull, 'w') as devnull: + subprocess.check_call(['/usr/local/bin/webservice2', 'uwsgi-python', 'start'], + stderr=devnull, stdout=devnull) + + for i in range(0, 10): + request = requests.get(url) + if request.status_code == 200: + success = True + break + + with open(os.devnull, 'w') as devnull: + subprocess.check_call(['/usr/local/bin/webservice2', 'uwsgi-python', 'stop'], + stderr=devnull, stdout=devnull) + + # Make sure it really stopped + request = requests.get(url) + if request.status_code == 200: + success = False + + return success + + @check('/self') def self_check(): return True diff --git a/modules/toollabs/manifests/checker.pp b/modules/toollabs/manifests/checker.pp index 9141261..5afb828 100644 --- a/modules/toollabs/manifests/checker.pp +++ b/modules/toollabs/manifests/checker.pp @@ -8,7 +8,7 @@ # idmapd related issues. class toollabs::checker inherits toollabs { include toollabs::infrastructure - include gridengine::submit_host + include toollabs::submit require_package('python-flask', 'python-redis', 'uwsgi', 'uwsgi-plugin-python', @@ -23,6 +23,24 @@ notify => Service['toolschecker'], } + file { '/data/project/toolschecker/www/python/src/app.py': + ensure => file, + owner => 'root', + group => 'root', + mode => '0555', + source => 'puppet:///modules/toollabs/toolschecker_generic_service.py', + notify => Service['toolschecker'], + } + + file { '/data/project/toolschecker/public_html/index.php': + ensure => file, + owner => 'root', + group => 'root', + mode => '0555', + source => 'puppet:///modules/toollabs/toolschecker_lighttpd_service.php', + notify => Service['toolschecker'], + } + file { ['/run/toolschecker', '/var/lib/toolschecker', '/var/lib/toolschecker/puppetcerts']: ensure => directory, owner => "${::labsproject}.toolschecker", -- To view, visit https://gerrit.wikimedia.org/r/239504 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: If42fd5b999fb4a90e18ef8a358bad7e662af539b Gerrit-PatchSet: 10 Gerrit-Project: operations/puppet Gerrit-Branch: production Gerrit-Owner: Andrew Bogott <[email protected]> Gerrit-Reviewer: Andrew Bogott <[email protected]> Gerrit-Reviewer: Merlijn van Deen <[email protected]> Gerrit-Reviewer: Yuvipanda <[email protected]> Gerrit-Reviewer: coren <[email protected]> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
