Skip to content

Commit b6ba7f1

Browse files
committed
Get version loading in users backend
1 parent 2f2d321 commit b6ba7f1

File tree

7 files changed

+37
-6
lines changed

7 files changed

+37
-6
lines changed

ch11/microservices/thoughts_backend/ThoughtsBackend/thoughts_backend/app.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import os
12
import logging
23
from flask import Flask, request, has_request_context
34
from flask import current_app, g
@@ -17,6 +18,7 @@
1718
METRIC_REQ_TIME = Histogram('req_time', 'Req time in ms',
1819
['endpoint', 'method', 'status_code'])
1920

21+
VERSION = os.environ['VERSION_NAME']
2022

2123
class RequestFormatter(logging.Formatter):
2224
''' Inject the HTTP_X_REQUEST_ID to format logs '''
@@ -105,7 +107,7 @@ def create_app(script=False):
105107
# Do not propagate to avoid log duplication
106108
application.logger.propagate = False
107109

108-
api = Api(application, version='0.1', title='Thoughts Backend API',
110+
api = Api(application, version=VERSION, title='Thoughts Backend API',
109111
description='A Simple CRUD API')
110112

111113
from thoughts_backend.db import db, db_config

ch11/microservices/users_backend/UsersBackend/users_backend/admin_namespace.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import os
12
import http.client
23
from flask_restplus import Namespace, Resource, fields
34
from datetime import datetime
@@ -43,3 +44,19 @@ def post(self):
4344
result = admin_namespace.marshal(new_user, user_model)
4445

4546
return result, http.client.CREATED
47+
48+
49+
@admin_namespace.route('/version/')
50+
class Version(Resource):
51+
52+
@admin_namespace.doc('get_version')
53+
def get(self):
54+
'''
55+
Return the version of the application
56+
'''
57+
data = {
58+
'commit': os.environ['VERSION_SHA'],
59+
'version': os.environ['VERSION_NAME'],
60+
}
61+
62+
return data

ch11/microservices/users_backend/UsersBackend/users_backend/app.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1+
import os
12
from flask import Flask
23
from flask_restplus import Api
34

45
from prometheus_flask_exporter import PrometheusMetrics
56

67
metrics = PrometheusMetrics(app=None)
78

9+
VERSION = os.environ.get('VERSION_NAME', 'BAD VERSION')
10+
811

912
def create_app():
1013
from users_backend.api_namespace import api_namespace
@@ -15,7 +18,7 @@ def create_app():
1518
# Initialise metrics
1619
metrics.init_app(application)
1720

18-
api = Api(application, version='0.1', title='Users Backend API',
21+
api = Api(application, version=VERSION, title='Users Backend API',
1922
description='A Simple CRUD API')
2023

2124
from users_backend.db import db, db_config
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
VERSION_SHA=8bee3a8b48638c1f184d084dace3015dd9953b5e
2-
VERSION_NAME=v1.5
1+
VERSION_SHA=2f2d3214e35ea13eeb8655c490323a83df22f6d2
2+
VERSION_NAME=v2.3
33
docker-compose build --build-arg VERSION_NAME=${VERSION_NAME} --build-arg VERSION_SHA=${VERSION_SHA}

ch11/microservices/users_backend/docker/app/Dockerfile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,12 @@ COPY --chown=uwsgi:uwsgi --from=compile-image /opt/venv /opt/venv
5050
# Be sure to activate the venv
5151
ENV PATH="/opt/venv/bin:$PATH"
5252

53+
# Prepare the version
54+
ARG VERSION_SHA="BAD VERSION"
55+
ARG VERSION_NAME="BAD VERSION"
56+
ENV VERSION_SHA $VERSION_SHA
57+
ENV VERSION_NAME $VERSION_NAME
58+
5359
# Copy the code
5460
COPY --chown=uwsgi:uwsgi UsersBackend/ /opt/code/
5561

ch11/microservices/users_backend/docker/app/uwsgi.ini

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,7 @@ processes=1
1010
max-requests=5000
1111
# Used to send commands to uWSGI
1212
master-fifo=/tmp/uwsgi-fifo
13-
# Log to the logger container
14-
logger = rsyslog:syslog:5140,users_backend_uwsgi
13+
if-not-env = NO_SYSLOG
14+
# Log to the logger container
15+
logger = rsyslog:syslog:5140,thoughts_backend_uwsgi
16+
end-if

ch11/microservices/users_backend/environment.env

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ POSTGRES_USER=postgres
44
POSTGRES_PASSWORD=somepassword
55
POSTGRES_PORT=5432
66
POSTGRES_HOST=db
7+
NO_SYSLOG=true

0 commit comments

Comments
 (0)