From fe84674a7764c97470881283bc03a817d68916ef Mon Sep 17 00:00:00 2001 From: Martyn Inglis Date: Mon, 4 Jul 2016 17:21:08 +0100 Subject: [PATCH 01/10] Updated start scripts to not look up envrionemnt --- config.py | 17 +++++++++++++++-- config_live.py | 17 ----------------- config_staging.py | 16 ---------------- scripts/aws_change_ownership.sh | 4 ++-- scripts/aws_install_dependencies.sh | 4 ++-- wsgi.py | 12 ------------ 6 files changed, 19 insertions(+), 51 deletions(-) delete mode 100644 config_live.py delete mode 100644 config_staging.py diff --git a/config.py b/config.py index 37df9d749..2a6a220bb 100644 --- a/config.py +++ b/config.py @@ -78,10 +78,23 @@ class Preview(Config): CSV_UPLOAD_BUCKET_NAME = 'preview-notifications-csv-upload' +class Staging(Config): + SHOW_STYLEGUIDE = False + HTTP_PROTOCOL = 'https' + HEADER_COLOUR = '#F47738' # $orange + + +class Live(Config): + SHOW_STYLEGUIDE = False + HEADER_COLOUR = '#B10E1E' # $red + HTTP_PROTOCOL = 'https' + HEADER_COLOUR = '#B10E1E' # $red + + configs = { 'development': 'config.Development', 'test': 'config.Test', 'preview': 'config.Preview', - 'staging': 'config_staging.Staging', - 'live': 'config_live.Live' + 'staging': 'config.Staging', + 'live': 'config.Live' } diff --git a/config_live.py b/config_live.py deleted file mode 100644 index e01535e00..000000000 --- a/config_live.py +++ /dev/null @@ -1,17 +0,0 @@ -import os -from config import Config - - -class Live(Config): - SHOW_STYLEGUIDE = False - HEADER_COLOUR = '#B10E1E' # $red - HTTP_PROTOCOL = 'https' - API_HOST_NAME = os.environ['LIVE_API_HOST_NAME'] - ADMIN_CLIENT_SECRET = os.environ['LIVE_ADMIN_CLIENT_SECRET'] - SECRET_KEY = os.environ['LIVE_SECRET_KEY'] - DANGEROUS_SALT = os.environ['LIVE_DANGEROUS_SALT'] - CSV_UPLOAD_BUCKET_NAME = 'live-notifications-csv-upload' - DESKPRO_API_KEY = os.environ['LIVE_DESKPRO_API_KEY'] - DESKPRO_DEPT_ID = os.environ['LIVE_DESKPRO_DEPT_ID'] - DESKPRO_ASSIGNED_AGENT_TEAM_ID = os.environ['LIVE_DESKPRO_ASSIGNED_AGENT_TEAM_ID'] - HEADER_COLOUR = '#B10E1E' # $red diff --git a/config_staging.py b/config_staging.py deleted file mode 100644 index 775a2d566..000000000 --- a/config_staging.py +++ /dev/null @@ -1,16 +0,0 @@ -import os -from config import Config - - -class Staging(Config): - SHOW_STYLEGUIDE = False - HTTP_PROTOCOL = 'https' - API_HOST_NAME = os.environ['STAGING_API_HOST_NAME'] - ADMIN_CLIENT_SECRET = os.environ['STAGING_ADMIN_CLIENT_SECRET'] - SECRET_KEY = os.environ['STAGING_SECRET_KEY'] - DANGEROUS_SALT = os.environ['STAGING_DANGEROUS_SALT'] - CSV_UPLOAD_BUCKET_NAME = 'staging-notifications-csv-upload' - DESKPRO_API_KEY = os.environ['STAGING_DESKPRO_API_KEY'] - DESKPRO_DEPT_ID = os.environ['STAGING_DESKPRO_DEPT_ID'] - DESKPRO_ASSIGNED_AGENT_TEAM_ID = os.environ['STAGING_DESKPRO_ASSIGNED_AGENT_TEAM_ID'] - HEADER_COLOUR = '#F47738' # $orange diff --git a/scripts/aws_change_ownership.sh b/scripts/aws_change_ownership.sh index a0622593f..e800956d3 100755 --- a/scripts/aws_change_ownership.sh +++ b/scripts/aws_change_ownership.sh @@ -1,5 +1,5 @@ #!/bin/bash echo "Chown application to be owned by ubuntu" -cd /home/ubuntu/; -chown -R ubuntu:ubuntu notifications-admin \ No newline at end of file +cd /home/notify-app/; +chown -R notify-app:govuk-notify-applications notifications-admin \ No newline at end of file diff --git a/scripts/aws_install_dependencies.sh b/scripts/aws_install_dependencies.sh index 474fee8a1..e5988d7b2 100755 --- a/scripts/aws_install_dependencies.sh +++ b/scripts/aws_install_dependencies.sh @@ -1,5 +1,5 @@ #!/bin/bash echo "Install dependencies" -cd /home/ubuntu/notifications-admin; -pip3 install -r /home/ubuntu/notifications-admin/requirements.txt \ No newline at end of file +cd /home/notify-app/notifications-admin; +pip3 install -r /home/notify-app/notifications-admin/requirements.txt \ No newline at end of file diff --git a/wsgi.py b/wsgi.py index 15ff05b38..db71cf075 100644 --- a/wsgi.py +++ b/wsgi.py @@ -1,21 +1,9 @@ from credstash import getAllSecrets import os -default_env_file = '/home/ubuntu/environment' -environment = 'live' - -if os.path.isfile(default_env_file): - with open(default_env_file, 'r') as environment_file: - environment = environment_file.readline().strip() - - # on aws get secrets and export to env os.environ.update(getAllSecrets(region="eu-west-1")) -from config import configs # noqa - -os.environ['NOTIFY_ADMIN_ENVIRONMENT'] = configs[environment] - from app import create_app # noqa application = create_app() From 4222027184084b6812bde54dc99c8d128967e762 Mon Sep 17 00:00:00 2001 From: Martyn Inglis Date: Tue, 5 Jul 2016 14:26:02 +0100 Subject: [PATCH 02/10] Updated config to be string based not class based and removed old style live/staging files. --- app/__init__.py | 7 ++++--- app/version.py | 6 +++--- appspec.yml | 2 +- config.py | 11 +++++------ 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/app/__init__.py b/app/__init__.py index 71bccc12a..a73025f9c 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -13,8 +13,9 @@ from flask import ( current_app, request, g, - url_for -) + url_for) + +from config import configs from flask._compat import string_types from flask.globals import _lookup_req_object from flask_login import LoginManager @@ -69,7 +70,7 @@ current_service = LocalProxy(partial(_lookup_req_object, 'service')) def create_app(): application = Flask(__name__) - application.config.from_object(os.environ['NOTIFY_ADMIN_ENVIRONMENT']) + application.config.from_object(configs[os.environ['NOTIFY_ADMIN_ENVIRONMENT']]) init_app(application) logging.init_app(application) diff --git a/app/version.py b/app/version.py index 1defd614d..f868ea87c 100644 --- a/app/version.py +++ b/app/version.py @@ -1,3 +1,3 @@ -__travis_commit__ = "dev" -__time__ = "dev" -__travis_job_number__ = "dev" +__travis_commit__ = "" +__time__ = "2016-07-04:17:22:35" +__travis_job_number__ = "" diff --git a/appspec.yml b/appspec.yml index cb81bb36f..c663536ab 100644 --- a/appspec.yml +++ b/appspec.yml @@ -1,7 +1,7 @@ --- files: - - destination: /home/ubuntu/notifications-admin + destination: /home/notify-app/notifications-admin source: / hooks: AfterInstall: diff --git a/config.py b/config.py index 2a6a220bb..84b6d9d3b 100644 --- a/config.py +++ b/config.py @@ -3,7 +3,6 @@ from datetime import timedelta class Config(object): - DEBUG = False ADMIN_CLIENT_SECRET = os.environ['ADMIN_CLIENT_SECRET'] ADMIN_CLIENT_USER_NAME = os.environ['ADMIN_CLIENT_USER_NAME'] @@ -92,9 +91,9 @@ class Live(Config): configs = { - 'development': 'config.Development', - 'test': 'config.Test', - 'preview': 'config.Preview', - 'staging': 'config.Staging', - 'live': 'config.Live' + 'development': Development, + 'test': Test, + 'preview': Preview, + 'staging': Staging, + 'live': Live } From 37167473b3a3516bc1b30a7fffa26779b0965592 Mon Sep 17 00:00:00 2001 From: Martyn Inglis Date: Tue, 5 Jul 2016 15:38:05 +0100 Subject: [PATCH 03/10] New property for environment --- app/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/__init__.py b/app/__init__.py index a73025f9c..377a6da9d 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -70,7 +70,7 @@ current_service = LocalProxy(partial(_lookup_req_object, 'service')) def create_app(): application = Flask(__name__) - application.config.from_object(configs[os.environ['NOTIFY_ADMIN_ENVIRONMENT']]) + application.config.from_object(configs[os.environ['NOTIFY_ENVIRONMENT']]) init_app(application) logging.init_app(application) From 47b8955a9a458f1149b7165ccec6429dcf5f540f Mon Sep 17 00:00:00 2001 From: Martyn Inglis Date: Tue, 5 Jul 2016 16:43:05 +0100 Subject: [PATCH 04/10] Fix import order so that configs work --- app/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/__init__.py b/app/__init__.py index 377a6da9d..9463305c3 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -15,7 +15,6 @@ from flask import ( g, url_for) -from config import configs from flask._compat import string_types from flask.globals import _lookup_req_object from flask_login import LoginManager @@ -68,6 +67,8 @@ current_service = LocalProxy(partial(_lookup_req_object, 'service')) def create_app(): + from config import configs + application = Flask(__name__) application.config.from_object(configs[os.environ['NOTIFY_ENVIRONMENT']]) From d6be4dd5aadc990a11c4f7e0651878f4f7b43114 Mon Sep 17 00:00:00 2001 From: Martyn Inglis Date: Tue, 5 Jul 2016 17:00:29 +0100 Subject: [PATCH 05/10] Changed bucket name --- config.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config.py b/config.py index 84b6d9d3b..1819a76f0 100644 --- a/config.py +++ b/config.py @@ -81,13 +81,14 @@ class Staging(Config): SHOW_STYLEGUIDE = False HTTP_PROTOCOL = 'https' HEADER_COLOUR = '#F47738' # $orange + CSV_UPLOAD_BUCKET_NAME = 'staging-notify-csv-upload' class Live(Config): SHOW_STYLEGUIDE = False HEADER_COLOUR = '#B10E1E' # $red HTTP_PROTOCOL = 'https' - HEADER_COLOUR = '#B10E1E' # $red + CSV_UPLOAD_BUCKET_NAME = 'live-notifications-csv-upload' configs = { From 721ed7c6730df7621371a679ecaa9ef5fca32b31 Mon Sep 17 00:00:00 2001 From: Martyn Inglis Date: Tue, 5 Jul 2016 21:21:11 +0100 Subject: [PATCH 06/10] Fixed the test environment / run scripts --- app/version.py | 2 +- environment_test.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/version.py b/app/version.py index f868ea87c..fc30d1fca 100644 --- a/app/version.py +++ b/app/version.py @@ -1,3 +1,3 @@ __travis_commit__ = "" -__time__ = "2016-07-04:17:22:35" +__time__ = "2016-07-05:14:44:52" __travis_job_number__ = "" diff --git a/environment_test.sh b/environment_test.sh index 549aae5f5..a5b46e479 100644 --- a/environment_test.sh +++ b/environment_test.sh @@ -1,4 +1,4 @@ -export NOTIFY_ADMIN_ENVIRONMENT='config.Test' +export NOTIFY_ENVIRONMENT='test' export ADMIN_CLIENT_SECRET='dev-notify-secret-key' export ADMIN_CLIENT_USER_NAME='dev-notify-admin' export API_HOST_NAME='' From bf3bc1f2f7db52716b51bbad358fec320ffa83e8 Mon Sep 17 00:00:00 2001 From: Martyn Inglis Date: Wed, 6 Jul 2016 11:47:51 +0100 Subject: [PATCH 07/10] Increase ELB timeout --- scripts/common_functions.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/common_functions.sh b/scripts/common_functions.sh index 469d22e6c..86b993c2f 100644 --- a/scripts/common_functions.sh +++ b/scripts/common_functions.sh @@ -101,7 +101,7 @@ reset_waiter_timeout() { fi # Base register/deregister action may take up to about 30 seconds - timeout=$((timeout + 30)) + timeout=$((timeout + 60)) WAITER_ATTEMPTS=$((timeout / WAITER_INTERVAL)) } From 19aca03aed21db4bd0df67d3a8e57106bd2ce159 Mon Sep 17 00:00:00 2001 From: Martyn Inglis Date: Fri, 8 Jul 2016 14:36:59 +0100 Subject: [PATCH 08/10] updated python in bootstrap file --- scripts/common_functions.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/common_functions.sh b/scripts/common_functions.sh index 86b993c2f..09cdbe4e0 100644 --- a/scripts/common_functions.sh +++ b/scripts/common_functions.sh @@ -183,7 +183,7 @@ get_instance_health_elb() { ;; *) msg "Instance '$instance_id' not part of ELB '$elb_name'" - return 1 + return 0 esac fi } From 147069a626fae7f12344e4d0c30a9e6fdfe7ee1f Mon Sep 17 00:00:00 2001 From: Martyn Inglis Date: Mon, 11 Jul 2016 16:44:53 +0100 Subject: [PATCH 09/10] Removed unused dir change --- scripts/aws_start_app.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/aws_start_app.sh b/scripts/aws_start_app.sh index 1c3743f2c..b4082672a 100755 --- a/scripts/aws_start_app.sh +++ b/scripts/aws_start_app.sh @@ -1,5 +1,4 @@ #!/bin/bash echo "Starting application" -cd ~/notifications-admin/; sudo service notifications-admin start \ No newline at end of file From 351b9ea410fe573fe467cd38e25e39b2b6cb1a8c Mon Sep 17 00:00:00 2001 From: Martyn Inglis Date: Tue, 2 Aug 2016 14:39:32 +0100 Subject: [PATCH 10/10] Removed deploy block from travis for now --- .travis.yml | 69 ----------------------------------------------------- 1 file changed, 69 deletions(-) diff --git a/.travis.yml b/.travis.yml index 912637125..c009b4d70 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,72 +24,3 @@ notifications: slack: rooms: secure: A6n6Gdz3dsE+KQcOd1nWTvdjOF2YbgItT1E40r25poG6p04WHd8qWtC4T2FuZaxPN/TQdKr/dKa/WCkmiEdxT5O0SOwAnAD3u6Fn2nthoI4M5916UrK1ZrqupvnFPSQc8Ivh51PGkcmB4wrb0ylRhMB94RmLcUZcVuXLDx57GO8bPFyLC3E9bgcVVFWaX45sKs74sBSQWi9EBbzHIuduLdjIpW7wX07dA++HlY14W5WgiurmiYohfP11VdAMmMxJs2WdWk16O/qy0HZXaldNIsSnuDBkhAZOMeSrcvp+62yOiN8jK0nSa1IRr3IoUkITdC9YGys3xFJb8gyIQE9T3hUnTYAKCcgsgpVFS6UzsRN42JUAJ8rFTgK9/J299yTk4lqL8uWzcV1QcKXIPNoG0QfqkmlB9B1fKbXuE/KkPEXPCKAcVQpCzEon09FgTCrlVZqJ6HxQonnLcPlIpVzWHAFokLZVHLAFMKYJnGBcZ6zaRK5pdc1babcOXMIPBC8j028G5bhBaCviDvZlimxOsUK1sJTpjzMU0tBQZa8lI+0O5otvMKiX8jPyaedjVvUmsftF2O5FH5nz2ofJC7BThb76/Tac2pNTCn0pWiVz9wi/YXALOMdIzkYgHnyZdEqAjRlpFwZuOrzR6MuvivBebPxjYaRWzCjOeC1uIwz+48E= -deploy: -- provider: s3 - access_key_id: AKIAJ5MKF6G3P2JQP4QQ - secret_access_key: &1 - secure: xfjg4kNBvU0B9xhRETr14mB0bCpVonlAKqGnKL2AoqpnF19yihqGNA8sv/pOGUFpeWZO3cW2GA3anyL2gGG1X0K3f81649mneVJkSHaZ2fiG/S1eKtS0Ws5XblSqLmKTPC7H9ndUxT8r+r2wLg62netBE5g8tAxw2QwN/gVz2fK/68owiyeD/jl6gw/iQ47F+mmGdAY/eFe8sUuGR4Oxj2xNAYARaDQOmHpQF/IG3M69FO5uOJtck8fUWnpd0rWxsyWBOVwwIRQHL6cWOyodeIK7YvLmzviCi1GojBPKQwQbjJu89LHfMJJTW1625drj5CNounuENTFte0Pip8zp90bg090VA8OlTXNWcyFjBQD1vNIE59vyQ/hCh90NK1nlTXdnNOwL0VZTMxQ/zYulXoMqwDLfDozhQbmnkXmexJl6BF4/dz+XmwDu7st5A/PI6U5zCK86ST/6g3MklGSseFi5Rkt6kmJrdlRIhiLnoaab8YgI0FPWjzHBC6B98ZtgIUiUk7Ng5ZTM8Sjq1HCC7mUDrDL0c7aerZA5bq2hQiKGhvjBXFU17iHZ0eEDZ8kO+jumeMwmpW6NbjlS0PuDx+lHywMSG7r+YVmkjxq5gwrTVl3evRxhHe8H/lU18y2dOKpIyX5UEZpXRq9kAWuQruCDBwoDe3Y3QP+Rg7HVGBU= - local_dir: dpl_cd_upload - skip_cleanup: true - on: &2 - repo: alphagov/notifications-admin - branch: staging - bucket: staging-notifications-admin-codedeploy - region: eu-west-1 -- provider: codedeploy - access_key_id: AKIAJ5MKF6G3P2JQP4QQ - secret_access_key: *1 - bucket: staging-notifications-admin-codedeploy - key: notifications-admin-$TRAVIS_BRANCH-$TRAVIS_BUILD_NUMBER-$TRAVIS_COMMIT.zip - bundle_type: zip - application: notifications-admin - deployment_group: staging_admin_deployment_group - region: eu-west-1 - on: *2 -- provider: s3 - access_key_id: AKIAJ5MKF6G3P2JQP4QQ - secret_access_key: &1 - secure: xfjg4kNBvU0B9xhRETr14mB0bCpVonlAKqGnKL2AoqpnF19yihqGNA8sv/pOGUFpeWZO3cW2GA3anyL2gGG1X0K3f81649mneVJkSHaZ2fiG/S1eKtS0Ws5XblSqLmKTPC7H9ndUxT8r+r2wLg62netBE5g8tAxw2QwN/gVz2fK/68owiyeD/jl6gw/iQ47F+mmGdAY/eFe8sUuGR4Oxj2xNAYARaDQOmHpQF/IG3M69FO5uOJtck8fUWnpd0rWxsyWBOVwwIRQHL6cWOyodeIK7YvLmzviCi1GojBPKQwQbjJu89LHfMJJTW1625drj5CNounuENTFte0Pip8zp90bg090VA8OlTXNWcyFjBQD1vNIE59vyQ/hCh90NK1nlTXdnNOwL0VZTMxQ/zYulXoMqwDLfDozhQbmnkXmexJl6BF4/dz+XmwDu7st5A/PI6U5zCK86ST/6g3MklGSseFi5Rkt6kmJrdlRIhiLnoaab8YgI0FPWjzHBC6B98ZtgIUiUk7Ng5ZTM8Sjq1HCC7mUDrDL0c7aerZA5bq2hQiKGhvjBXFU17iHZ0eEDZ8kO+jumeMwmpW6NbjlS0PuDx+lHywMSG7r+YVmkjxq5gwrTVl3evRxhHe8H/lU18y2dOKpIyX5UEZpXRq9kAWuQruCDBwoDe3Y3QP+Rg7HVGBU= - local_dir: dpl_cd_upload - skip_cleanup: true - on: &2 - repo: alphagov/notifications-admin - branch: live - bucket: live-notifications-admin-codedeploy - region: eu-west-1 -- provider: codedeploy - access_key_id: AKIAJ5MKF6G3P2JQP4QQ - secret_access_key: *1 - bucket: live-notifications-admin-codedeploy - key: notifications-admin-$TRAVIS_BRANCH-$TRAVIS_BUILD_NUMBER-$TRAVIS_COMMIT.zip - bundle_type: zip - application: notifications-admin - deployment_group: live_admin_deployment_group - region: eu-west-1 - on: *2 -- provider: s3 - access_key_id: AKIAJQPPNM6P6V53SWKA - secret_access_key: &1 - secure: 7qVw4gmn7zMCaam9PqIfqwC1z82gXxa+rT/VakoMDY7u62BXA8/fWGFn7yU4qyPSrTWttYdDXmdwrgoEDjGIzLXSpufRqhmXc3xBoRktFSRQAFVom49mWo7WDKgX6gZ3GcuVR8HQ1XpojlkLH/a6cKV9jreDiGHy3sHulBkJRXGIGkTNCiVNVbUsFeiOj/YGaIdZ6ZLjDBSOTwLkLsnzZm7S+xcRd0kxT3VJrV0B3x14igK2Rchv9LteT+fafELURO2asASgLPHy5ny3yGF7vVz6tLBrTpy2N7xxpaDkP/LQi38PRGhZkYPHdqgMfq7fFwN2oJF66zxeQ6kzR9lIwVZnqNYwgAapJAx7TrfX2UaR0zoZgs/TBhFijqJ2CK8fIQ7TKW0wEd84rd5FS8ocHmAsiJSLOSXn665m/nUPrWrUi7mK7/9/85rLiZihw862BhwIn83VQcahK4QEDFkK0PC7JqGvLiH3prjlibsA7ONDbFi8NPtvf3bFaofb6a3NO3qjgSvdftIujw86ZmVBAkQXghyZBlgCPiseOphrxZ4Thl54fo86cbiEqAs8c6DCHtPEiAHZ++sK1aitMtepdGORC1SrLICWO4vFAl6oLptzvY+j9+BhOK28JnRUXpQS7DjkrahqcgE/LbCN55lu1UhWWGY0q20QeKgGnsRuOAU= - local_dir: dpl_cd_upload - skip_cleanup: true - on: &2 - repo: alphagov/notifications-admin - bucket: notifications-admin-codedeploy - region: eu-west-1 -- provider: codedeploy - access_key_id: AKIAJQPPNM6P6V53SWKA - secret_access_key: *1 - bucket: notifications-admin-codedeploy - key: notifications-admin-$TRAVIS_BRANCH-$TRAVIS_BUILD_NUMBER-$TRAVIS_COMMIT.zip - bundle_type: zip - application: notifications-admin - deployment_group: notifications_admin_deployment_group - region: eu-west-1 - on: *2 -before_deploy: -- ./scripts/update_version_file.sh -- rm -rf node_modules bower_components app/assets -- zip -r --exclude=*__pycache__* notifications-admin * -- mkdir -p dpl_cd_upload -- mv notifications-admin.zip dpl_cd_upload/notifications-admin-$TRAVIS_BRANCH-$TRAVIS_BUILD_NUMBER-$TRAVIS_COMMIT.zip