Skip to content

Commit

Permalink
ignore failure db-alembic-version fetch
Browse files Browse the repository at this point in the history
  • Loading branch information
fmigneault committed Mar 28, 2019
1 parent 94b9aa6 commit 6435886
Show file tree
Hide file tree
Showing 9 changed files with 38 additions and 57 deletions.
8 changes: 7 additions & 1 deletion magpie/api/home/home.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,15 @@ def get_version(request):
"""
Version information of the API.
"""
version_db = None
# noinspection PyBroadException
try:
version_db = get_database_revision(request.db)
except Exception:
pass
version = {
u'version': __meta__.__version__,
u'db_version': get_database_revision(request.db)
u'db_version': version_db
}
return ax.valid_http(httpSuccess=HTTPOk, content=version, contentType=JSON_TYPE,
detail=s.Version_GET_OkResponseSchema.description)
2 changes: 1 addition & 1 deletion magpie/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ def main(global_config=None, **settings):
register_default_users(db_session=db_session)

print_log('Register configuration providers...', logger=LOGGER)
push_phoenix = asbool(get_constant('PHOENIX_PUSH', settings=settings, settings_name='magpie.phoenix_push',
push_phoenix = asbool(get_constant('PHOENIX_PUSH', settings, settings_name='magpie.phoenix_push',
raise_missing=False, raise_not_set=False, print_missing=True))
prov_cfg = get_constant('MAGPIE_PROVIDERS_CONFIG_PATH', default_value='',
raise_missing=False, raise_not_set=False, print_missing=True)
Expand Down
11 changes: 9 additions & 2 deletions magpie/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@
import warnings
from magpie.common import raise_log, print_log, get_settings_from_config_ini
from magpie.definitions.pyramid_definitions import asbool
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from magpie.definitions.typedefs import Str, Optional, SettingValue, SettingsContainer

# ===========================
# path variables
Expand Down Expand Up @@ -114,16 +117,17 @@
# ===========================


def get_constant(name, settings=None, settings_name=None, default_value=None,
def get_constant(name, settings_container=None, settings_name=None, default_value=None,
raise_missing=True, print_missing=False, raise_not_set=True):
# type: (Str, Optional[SettingsContainer], Optional[Str], Optional[SettingValue], bool, bool, bool) -> SettingValue
"""
Search in order for matched value of `name` :
1. search in magpie definitions
2. search in environment variables
3. search in settings if specified
:param name: key to search for a value
:param settings: wsgi app settings
:param settings_container: wsgi app settings container
:param settings_name: alternative name for `settings` if specified
:param default_value: default value to be returned if not found anywhere, and exception raises are disabled.
:param raise_missing: raise exception if key is not found anywhere
Expand All @@ -132,9 +136,12 @@ def get_constant(name, settings=None, settings_name=None, default_value=None,
:returns: found value or `default_value`
:raises: according message based on options (by default raise missing/`None` value)
"""
from magpie.utils import get_settings

magpie_globals = globals()
missing = True
magpie_value = None
settings = get_settings(settings_container) if settings_container else None
if name in magpie_globals:
missing = False
magpie_value = magpie_globals.get(name)
Expand Down
4 changes: 2 additions & 2 deletions magpie/db.py
Original file line number Diff line number Diff line change
Expand Up @@ -143,8 +143,8 @@ def run_database_migration_when_ready(settings, db_session=None):
"""

db_ready = False
if asbool(get_constant('MAGPIE_DB_MIGRATION', settings, 'magpie.db_migration', True,
raise_missing=False, raise_not_set=False, print_missing=True)):
if asbool(get_constant('MAGPIE_DB_MIGRATION', settings, 'magpie.db_migration',
default_value=True, raise_missing=False, raise_not_set=False, print_missing=True)):
attempts = int(get_constant('MAGPIE_DB_MIGRATION_ATTEMPTS', settings, 'magpie.db_migration_attempts',
default_value=5, raise_missing=False, raise_not_set=False, print_missing=True))

Expand Down
30 changes: 0 additions & 30 deletions magpie/demo.py

This file was deleted.

8 changes: 4 additions & 4 deletions magpie/security.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@


def auth_config_from_settings(settings):
magpie_secret = get_constant('MAGPIE_SECRET', settings=settings, settings_name='magpie.secret')
magpie_cookie_expire = get_constant('MAGPIE_COOKIE_EXPIRE', settings=settings,
magpie_secret = get_constant('MAGPIE_SECRET', settings, settings_name='magpie.secret')
magpie_cookie_expire = get_constant('MAGPIE_COOKIE_EXPIRE', settings,
settings_name='magpie.cookie_expire', default_value=None,
raise_missing=False, raise_not_set=False, print_missing=True)
magpie_cookie_name = get_constant('MAGPIE_COOKIE_NAME', settings=settings,
magpie_cookie_name = get_constant('MAGPIE_COOKIE_NAME', settings,
settings_name='magpie.cookie_name', default_value='auth_tkt',
raise_missing=False, raise_not_set=False, print_missing=True)
authn_policy = AuthTktAuthenticationPolicy(
Expand All @@ -45,7 +45,7 @@ def auth_config_from_settings(settings):


def authomatic_setup(request):
magpie_secret = get_constant('MAGPIE_SECRET', settings=request.registry.settings, settings_name='magpie.secret')
magpie_secret = get_constant('MAGPIE_SECRET', request, settings_name='magpie.secret')
return Authomatic(
config=authomatic_config(request),
secret=magpie_secret,
Expand Down
2 changes: 1 addition & 1 deletion magpie/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ def patch_magpie_url(container):
get_magpie_url(settings)
except ConfigurationError:
magpie_url_template = 'http://{hostname}:{port}'
port = get_constant('MAGPIE_PORT', settings=settings, settings_name='magpie.port')
port = get_constant('MAGPIE_PORT', settings, settings_name='magpie.port')
if port:
settings['magpie.port'] = port
hostname = get_constant('HOSTNAME')
Expand Down
20 changes: 10 additions & 10 deletions tests/interfaces.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
from magpie.api.api_rest_schemas import SwaggerGenerator
from magpie.common import JSON_TYPE
from magpie.constants import get_constant
from magpie.models import resource_type_dict
from magpie.services import service_type_dict
from magpie.utils import get_twitcher_protected_service_url
from tests import utils, runner
# noinspection PyPackageRequirements
from six.moves.urllib.parse import urlparse
from distutils.version import LooseVersion
import unittest
import warnings
# noinspection PyPackageRequirements
Expand All @@ -7,16 +17,6 @@
import mock
import yaml
import six
# noinspection PyPackageRequirements
from six.moves.urllib.parse import urlparse
from distutils.version import LooseVersion
from magpie.api.api_rest_schemas import SwaggerGenerator
from magpie.common import JSON_TYPE
from magpie.constants import get_constant
from magpie.models import resource_type_dict
from magpie.services import service_type_dict
from magpie.utils import get_twitcher_protected_service_url
from tests import utils, runner


# don't use 'unittest.TestCase' base
Expand Down
10 changes: 4 additions & 6 deletions tests/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
import requests
import warnings
import json
import mock
import six
# noinspection PyPackageRequirements
import pytest
Expand Down Expand Up @@ -131,6 +130,7 @@ def get_test_magpie_app(settings=None):
config.include('ziggurat_foundations.ext.pyramid.sign_in')
config.include('ziggurat_foundations.ext.pyramid.get_user')
config.registry.settings['magpie.url'] = 'http://localhost:80'
config.registry.settings['magpie.db_migration'] = False
if settings:
config.registry.settings.update(settings)
# create the test application
Expand Down Expand Up @@ -605,11 +605,9 @@ class TestSetup(object):
@staticmethod
def get_Version(test_class):
app_or_url = get_app_or_url(test_class)
# use mocked call since migration seem to fail on travis-ci
with mock.patch('magpie.api.home.home.get_database_revision', return_value='mocked-revision'):
resp = test_request(app_or_url, 'GET', '/version',
headers=test_class.json_headers,
cookies=test_class.cookies)
resp = test_request(app_or_url, 'GET', '/version',
headers=test_class.json_headers,
cookies=test_class.cookies)
json_body = check_response_basic_info(resp, 200)
return json_body['version']

Expand Down

0 comments on commit 6435886

Please sign in to comment.