| Collapse |
Failed
|
LinkTests
test_add_link
History
|
< 1 sec |
IndexError: list index out of range
self = <tests.link_tests.LinkTests testMethod=test_add_link>
def test_add_link(self):
> result = self.client.add_link(self.flarecast_ids[0],
self.flarecast_ids[1],
'test link',
'test description')
(3 more lines...)
|
| Collapse |
Failed
|
PropertyGroupTests
test_add_multiple_property_groups
History
|
< 1 sec |
RestException: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? // Werkzeug Debugger</title> <link rel="stylesheet" href="?__debugger__=yes&cmd=resource&f=style.css" type="text/css"> <!-- We need to make sure this has a favicon so that the debugger does not by accident trigger a request to /favicon.ico which might change the application state. --> <link rel="shortcut icon" href="?__debugger__=yes&cmd=resource&f=console.png"> <script src="?__debugger__=yes&cmd=resource&f=jquery.js"></script> <script src="?__debugger__=yes&cmd=resource&f=debugger.js"></script> <script type="text/javascript"> var TRACEBACK = 140441535480656, CONSOLE_MODE = false, EVALEX = true, EVALEX_TRUSTED = false, SECRET = "03528G3v7iTkYaX5wm2v"; </script> </head> <body> <div class="debugger"> <h1>psycopg2.OperationalError</h1> <div class="detail"> <p class="errormsg">OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432?</p> </div> <h2 class="traceback">Traceback <em>(most recent call last)</em></h2> <div class="traceback"> <ul><li><div class="frame" id="frame-140441535480592"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1836</em>, in <code class="function">__call__</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>'Flask.blueprints instead'), stacklevel=2)</pre> <pre class="line before"><span class="ws"> </span>return self.blueprints</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def __call__(self, environ, start_response):</pre> <pre class="line before"><span class="ws"> </span>"""Shortcut for :attr:`wsgi_app`."""</pre> <pre class="line current"><span class="ws"> </span>return self.wsgi_app(environ, start_response)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def __repr__(self):</pre> <pre class="line after"><span class="ws"> </span>return '<%s %r>' % (</pre> <pre class="line after"><span class="ws"> </span>self.__class__.__name__,</pre> <pre class="line after"><span class="ws"> </span>self.name,</pre></div> </div> <li><div class="frame" id="frame-140441535480912"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1820</em>, in <code class="function">wsgi_app</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>response = self.full_dispatch_request()</pre> <pre class="line before"><span class="ws"> </span>except Exception as e:</pre> <pre class="line before"><span class="ws"> </span>error = e</pre> <pre class="line current"><span class="ws"> </span>response = self.make_response(self.handle_exception(e))</pre> <pre class="line after"><span class="ws"> </span>return response(environ, start_response)</pre> <pre class="line after"><span class="ws"> </span>finally:</pre> <pre class="line after"><span class="ws"> </span>if self.should_ignore_error(error):</pre> <pre class="line after"><span class="ws"> </span>error = None</pre> <pre class="line after"><span class="ws"> </span>ctx.auto_pop(error)</pre></div> </div> <li><div class="frame" id="frame-140441535480976"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask_cors/extension.py"</cite>, line <em class="line">188</em>, in <code class="function">wrapped_function</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># Wrap exception handlers with cross_origin</pre> <pre class="line before"><span class="ws"> </span># These error handlers will still respect the behavior of the route</pre> <pre class="line before"><span class="ws"> </span>if options.get('intercept_exceptions', True):</pre> <pre class="line before"><span class="ws"> </span>def _after_request_decorator(f):</pre> <pre class="line before"><span class="ws"> </span>def wrapped_function(*args, **kwargs):</pre> <pre class="line current"><span class="ws"> </span>return cors_after_request(app.make_response(f(*args, **kwargs)))</pre> <pre class="line after"><span class="ws"> </span>return wrapped_function</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>if hasattr(app, 'handle_exception'):</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception = _after_request_decorator(</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception)</pre></div> </div> <li><div class="frame" id="frame-140441535480784"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1403</em>, in <code class="function">handle_exception</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># if we want to repropagate the exception, we can attempt to</pre> <pre class="line before"><span class="ws"> </span># raise it with the whole traceback in case we can do that</pre> <pre class="line before"><span class="ws"> </span># (the function was actually called from the except part)</pre> <pre class="line before"><span class="ws"> </span># otherwise, we just raise the error again</pre> <pre class="line before"><span class="ws"> </span>if exc_value is e:</pre> <pre class="line current"><span class="ws"> </span>reraise(exc_type, exc_value, tb)</pre> <pre class="line after"><span class="ws"> </span>else:</pre> <pre class="line after"><span class="ws"> </span>raise e</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>self.log_exception((exc_type, exc_value, tb))</pre> <pre class="line after"><span class="ws"> </span>if handler is None:</pre></div> </div> <li><div class="frame" id="frame-140441535481104"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1817</em>, in <code class="function">wsgi_app</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>ctx = self.request_context(environ)</pre> <pre class="line before"><span class="ws"> </span>ctx.push()</pre> <pre class="line before"><span class="ws"> </span>error = None</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line current"><span class="ws"> </span>response = self.full_dispatch_request()</pre> <pre class="line after"><span class="ws"> </span>except Exception as e:</pre> <pre class="line after"><span class="ws"> </span>error = e</pre> <pre class="line after"><span class="ws"> </span>response = self.make_response(self.handle_exception(e))</pre> <pre class="line after"><span class="ws"> </span>return response(environ, start_response)</pre> <pre class="line after"><span class="ws"> </span>finally:</pre></div> </div> <li><div class="frame" id="frame-140441535481168"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1477</em>, in <code class="function">full_dispatch_request</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>request_started.send(self)</pre> <pre class="line before"><span class="ws"> </span>rv = self.preprocess_request()</pre> <pre class="line before"><span class="ws"> </span>if rv is None:</pre> <pre class="line before"><span class="ws"> </span>rv = self.dispatch_request()</pre> <pre class="line before"><span class="ws"> </span>except Exception as e:</pre> <pre class="line current"><span class="ws"> </span>rv = self.handle_user_exception(e)</pre> <pre class="line after"><span class="ws"> </span>response = self.make_response(rv)</pre> <pre class="line after"><span class="ws"> </span>response = self.process_response(response)</pre> <pre class="line after"><span class="ws"> </span>request_finished.send(self, response=response)</pre> <pre class="line after"><span class="ws"> </span>return response</pre> <pre class="line after"><span class="ws"></span> </pre></div> </div> <li><div class="frame" id="frame-140441535481232"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask_cors/extension.py"</cite>, line <em class="line">188</em>, in <code class="function">wrapped_function</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># Wrap exception handlers with cross_origin</pre> <pre class="line before"><span class="ws"> </span># These error handlers will still respect the behavior of the route</pre> <pre class="line before"><span class="ws"> </span>if options.get('intercept_exceptions', True):</pre> <pre class="line before"><span class="ws"> </span>def _after_request_decorator(f):</pre> <pre class="line before"><span class="ws"> </span>def wrapped_function(*args, **kwargs):</pre> <pre class="line current"><span class="ws"> </span>return cors_after_request(app.make_response(f(*args, **kwargs)))</pre> <pre class="line after"><span class="ws"> </span>return wrapped_function</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>if hasattr(app, 'handle_exception'):</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception = _after_request_decorator(</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception)</pre></div> </div> <li><div class="frame" id="frame-140441535480848"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1381</em>, in <code class="function">handle_user_exception</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>app_handlers = self.error_handler_spec[None].get(None, ())</pre> <pre class="line before"><span class="ws"> </span>for typecheck, handler in chain(blueprint_handlers, app_handlers):</pre> <pre class="line before"><span class="ws"> </span>if isinstance(e, typecheck):</pre> <pre class="line before"><span class="ws"> </span>return handler(e)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>reraise(exc_type, exc_value, tb)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def handle_exception(self, e):</pre> <pre class="line after"><span class="ws"> </span>"""Default exception handling that kicks in when an exception</pre> <pre class="line after"><span class="ws"> </span>occurs that is not caught. In debug mode the exception will</pre> <pre class="line after"><span class="ws"> </span>be re-raised immediately, otherwise it is logged and the handler</pre></div> </div> <li><div class="frame" id="frame-140441535481360"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1475</em>, in <code class="function">full_dispatch_request</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>self.try_trigger_before_first_request_functions()</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>request_started.send(self)</pre> <pre class="line before"><span class="ws"> </span>rv = self.preprocess_request()</pre> <pre class="line before"><span class="ws"> </span>if rv is None:</pre> <pre class="line current"><span class="ws"> </span>rv = self.dispatch_request()</pre> <pre class="line after"><span class="ws"> </span>except Exception as e:</pre> <pre class="line after"><span class="ws"> </span>rv = self.handle_user_exception(e)</pre> <pre class="line after"><span class="ws"> </span>response = self.make_response(rv)</pre> <pre class="line after"><span class="ws"> </span>response = self.process_response(response)</pre> <pre class="line after"><span class="ws"> </span>request_finished.send(self, response=response)</pre></div> </div> <li><div class="frame" id="frame-140441535481424"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1461</em>, in <code class="function">dispatch_request</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># request came with the OPTIONS method, reply automatically</pre> <pre class="line before"><span class="ws"> </span>if getattr(rule, 'provide_automatic_options', False) \</pre> <pre class="line before"><span class="ws"> </span>and req.method == 'OPTIONS':</pre> <pre class="line before"><span class="ws"> </span>return self.make_default_options_response()</pre> <pre class="line before"><span class="ws"> </span># otherwise dispatch to the handler for that endpoint</pre> <pre class="line current"><span class="ws"> </span>return self.view_functions[rule.endpoint](**req.view_args)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def full_dispatch_request(self):</pre> <pre class="line after"><span class="ws"> </span>"""Dispatches the request and on top of that performs request</pre> <pre class="line after"><span class="ws"> </span>pre and postprocessing as well as HTTP exception catching and</pre> <pre class="line after"><span class="ws"> </span>error handling.</pre></div> </div> <li><div class="frame" id="frame-140441535481488"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py"</cite>, line <em class="line">176</em>, in <code class="function">wrapper</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>logger.debug("%s validating schema...", flask.request.url)</pre> <pre class="line before"><span class="ws"> </span>error = self.validate_schema(data, self.schema)</pre> <pre class="line before"><span class="ws"> </span>if error:</pre> <pre class="line before"><span class="ws"> </span>return error</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>response = function(*args, **kwargs)</pre> <pre class="line after"><span class="ws"> </span>return response</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>return wrapper</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def validate_schema(self, data, schema):</pre></div> </div> <li><div class="frame" id="frame-140441535481296"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py"</cite>, line <em class="line">288</em>, in <code class="function">wrapper</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>for param in self.parameters.get('header', []):</pre> <pre class="line before"><span class="ws"> </span>error = self.validate_header_parameter(param)</pre> <pre class="line before"><span class="ws"> </span>if error:</pre> <pre class="line before"><span class="ws"> </span>return problem(400, 'Bad Request', error)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>response = function(*args, **kwargs)</pre> <pre class="line after"><span class="ws"> </span>return response</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>return wrapper</pre></div> </div> <li><div class="frame" id="frame-140441535481552"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/connexion/decorators/produces.py"</cite>, line <em class="line">116</em>, in <code class="function">wrapper</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>@functools.wraps(function)</pre> <pre class="line before"><span class="ws"> </span>def wrapper(*args, **kwargs):</pre> <pre class="line before"><span class="ws"> </span>url = flask.request.url</pre> <pre class="line before"><span class="ws"> </span>logger.debug('Jsonifing %s', url, extra={'url': url, 'mimetype': self.mimetype})</pre> <pre class="line current"><span class="ws"> </span>data, status_code, headers = self.get_full_response(function(*args, **kwargs))</pre> <pre class="line after"><span class="ws"> </span>if isinstance(data, flask.Response): # if the function returns a Response object don't change it</pre> <pre class="line after"><span class="ws"> </span>logger.debug('Endpoint returned a Flask Response', extra={'url': url, 'mimetype': data.mimetype})</pre> <pre class="line after"><span class="ws"> </span>return data</pre> <pre class="line after"><span class="ws"> </span>elif data is NoContent:</pre> <pre class="line after"><span class="ws"> </span>return '', status_code</pre></div> </div> <li><div class="frame" id="frame-140441535481616"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/connexion/decorators/parameter.py"</cite>, line <em class="line">89</em>, in <code class="function">wrapper</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>logger.debug("Query Parameter '%s' in function arguments", key)</pre> <pre class="line before"><span class="ws"> </span>query_param = query_types[key]</pre> <pre class="line before"><span class="ws"> </span>logger.debug('%s is a %s', key, query_param)</pre> <pre class="line before"><span class="ws"> </span>kwargs[key] = get_val_from_param(value, query_param)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>return function(*args, **kwargs)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>return wrapper</pre></div> </div> <li><div class="frame" id="frame-140441535481680"> <h4>File <cite class="filename">"/property_service/propertyservice/routes/property_group.py"</cite>, line <em class="line">15</em>, in <code class="function">bulk</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>return __insert(provenance, post_data)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"></span>def bulk(provenance):</pre> <pre class="line before"><span class="ws"> </span>post_data = request.json</pre> <pre class="line current"><span class="ws"> </span>return __insert(provenance, post_data)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"></span>def delete(provenance):</pre> <pre class="line after"><span class="ws"> </span>marked_property_groups = query.find(provenance)</pre> <pre class="line after"><span class="ws"> </span>result = []</pre></div> </div> <li><div class="frame" id="frame-140441535481040"> <h4>File <cite class="filename">"/property_service/propertyservice/routes/property_group.py"</cite>, line <em class="line">38</em>, in <code class="function">__insert</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"></span>def __insert(provenance, post_data):</pre> <pre class="line before"><span class="ws"> </span>result = []</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>with PropertyDBDataSource() as ctx:</pre> <pre class="line after"><span class="ws"> </span># resolve provenance and property_group_type</pre> <pre class="line after"><span class="ws"> </span>provenance_id = ctx.get_provenance_by_name(provenance).id</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span># get property-types for caching</pre> <pre class="line after"><span class="ws"> </span>property_types = ctx.get_property_types(provenance_id)</pre></div> </div> <li><div class="frame" id="frame-140441535481744"> <h4>File <cite class="filename">"/property_service/propertyservice/data/property_db_data_source.py"</cite>, line <em class="line">19</em>, in <code class="function">__init__</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>self.__pg = PostgresNoSQLClient(host=flarecast_config.DB_HOST,</pre> <pre class="line before"><span class="ws"> </span>port=flarecast_config.DB_PORT,</pre> <pre class="line before"><span class="ws"> </span>user=flarecast_config.DB_USER,</pre> <pre class="line before"><span class="ws"> </span>password=flarecast_config.DB_PASSWORD)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>self.__db = self.__pg[config.PROPERTY_DATABASE]</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>self.__property_group = self.__db[config.PROPERTY_GROUP_TABLE]</pre> <pre class="line after"><span class="ws"> </span>self.__property = self.__db[config.PROPERTY_TABLE]</pre> <pre class="line after"><span class="ws"> </span>self.__property_type = self.__db[config.PROPERTY_TYPE_TABLE]</pre> <pre class="line after"><span class="ws"> </span>self.__provenance = self.__db[config.PROVENANCE_TABLE]</pre></div> </div> <li><div class="frame" id="frame-140441535481808"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py"</cite>, line <em class="line">96</em>, in <code class="function">__getitem__</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>print(e)</pre> <pre class="line before"><span class="ws"> </span>self.__close()</pre> <pre class="line before"><span class="ws"> </span>return exists</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def __getitem__(self, item):</pre> <pre class="line current"><span class="ws"> </span>return self.get_or_create_database(item)</pre></div> </div> <li><div class="frame" id="frame-140441535481936"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py"</cite>, line <em class="line">64</em>, in <code class="function">get_or_create_database</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>self.__close()</pre> <pre class="line before"><span class="ws"> </span>return db_object</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def get_or_create_database(self, database_name):</pre> <pre class="line current"><span class="ws"> </span>self.__connect()</pre> <pre class="line after"><span class="ws"> </span>db = self.get_database(database_name)</pre> <pre class="line after"><span class="ws"> </span>if not db:</pre> <pre class="line after"><span class="ws"> </span>db = self.create_database(database_name)</pre> <pre class="line after"><span class="ws"> </span>self.__close()</pre> <pre class="line after"><span class="ws"> </span>return db</pre></div> </div> <li><div class="frame" id="frame-140441535482000"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py"</cite>, line <em class="line">36</em>, in <code class="function">__connect</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def __connect(self):</pre> <pre class="line before"><span class="ws"> </span>self.__connect_counter += 1</pre> <pre class="line before"><span class="ws"> </span>if not self.__connection:</pre> <pre class="line before"><span class="ws"> </span>self.__connection = psycopg2.connect(host=self.host, database=self.database, port=self.port,</pre> <pre class="line current"><span class="ws"> </span>user=self.__user, password=self.__password)</pre> <pre class="line after"><span class="ws"> </span>self.__connection.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT)</pre> <pre class="line after"><span class="ws"> </span>self.__cursor = self.__connection.cursor()</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def __close(self):</pre> <pre class="line after"><span class="ws"> </span>self.__connect_counter -= 1</pre></div> </div> <li><div class="frame" id="frame-140441535482064"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/psycopg2/__init__.py"</cite>, line <em class="line">164</em>, in <code class="function">connect</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>raise TypeError('missing dsn and no parameters')</pre> <pre class="line before"><span class="ws"> </span>else:</pre> <pre class="line before"><span class="ws"> </span>dsn = " ".join(["%s=%s" % (k, _param_escape(str(v)))</pre> <pre class="line before"><span class="ws"> </span>for (k, v) in items])</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>conn = _connect(dsn, connection_factory=connection_factory, async=async)</pre> <pre class="line after"><span class="ws"> </span>if cursor_factory is not None:</pre> <pre class="line after"><span class="ws"> </span>conn.cursor_factory = cursor_factory</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>return conn</pre></div> </div> </ul> <blockquote>OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432?</blockquote> </div> <div class="plain"> <form action="/?__debugger__=yes&cmd=paste" method="post"> <p> <input type="hidden" name="language" value="pytb"> This is the Copy/Paste friendly version of the traceback. <span class="pastemessage">You can also paste this traceback into a <a href="https://gist.github.com/">gist</a>: <input type="submit" value="create paste"></span> </p> <textarea cols="50" rows="10" name="code" readonly>Traceback (most recent call last): File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__ return self.wsgi_app(environ, start_response) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app response = self.make_response(self.handle_exception(e)) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app response = self.full_dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request rv = self.handle_user_exception(e) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request rv = self.dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py", line 176, in wrapper response = function(*args, **kwargs) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py", line 288, in wrapper response = function(*args, **kwargs) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/produces.py", line 116, in wrapper data, status_code, headers = self.get_full_response(function(*args, **kwargs)) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/parameter.py", line 89, in wrapper return function(*args, **kwargs) File "/property_service/propertyservice/routes/property_group.py", line 15, in bulk return __insert(provenance, post_data) File "/property_service/propertyservice/routes/property_group.py", line 38, in __insert with PropertyDBDataSource() as ctx: File "/property_service/propertyservice/data/property_db_data_source.py", line 19, in __init__ self.__db = self.__pg[config.PROPERTY_DATABASE] File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 96, in __getitem__ return self.get_or_create_database(item) File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 64, in get_or_create_database self.__connect() File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 36, in __connect user=self.__user, password=self.__password) File "/usr/local/lib/python2.7/site-packages/psycopg2/__init__.py", line 164, in connect conn = _connect(dsn, connection_factory=connection_factory, async=async) OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432?</textarea> </form> </div> <div class="explanation"> The debugger caught an exception in your WSGI application. You can now look at the traceback which led to the error. <span class="nojavascript"> If you enable JavaScript you can also use additional features such as code execution (if the evalex feature is enabled), automatic pasting of the exceptions and much more.</span> </div> <div class="footer"> Brought to you by <strong class="arthur">DON'T PANIC</strong>, your friendly Werkzeug powered traceback interpreter. </div> </div> <div class="pin-prompt"> <div class="inner"> <h3>Console Locked</h3> <p> The console is locked and needs to be unlocked by entering the PIN. You can find the PIN printed out on the standard output of your shell that runs the server. <form> <p>PIN: <input type=text name=pin size=14> <input type=submit name=btn value="Confirm Pin"> </form> </div> </div> </body> </html> <!-- Traceback (most recent call last): File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__ return self.wsgi_app(environ, start_response) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app response = self.make_response(self.handle_exception(e)) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app response = self.full_dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request rv = self.handle_user_exception(e) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request rv = self.dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py", line 176, in wrapper response = function(*args, **kwargs) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py", line 288, in wrapper response = function(*args, **kwargs) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/produces.py", line 116, in wrapper data, status_code, headers = self.get_full_response(function(*args, **kwargs)) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/parameter.py", line 89, in wrapper return function(*args, **kwargs) File "/property_service/propertyservice/routes/property_group.py", line 15, in bulk return __insert(provenance, post_data) File "/property_service/propertyservice/routes/property_group.py", line 38, in __insert with PropertyDBDataSource() as ctx: File "/property_service/propertyservice/data/property_db_data_source.py", line 19, in __init__ self.__db = self.__pg[config.PROPERTY_DATABASE] File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 96, in __getitem__ return self.get_or_create_database(item) File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 64, in get_or_create_database self.__connect() File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 36, in __connect user=self.__user, password=self.__password) File "/usr/local/lib/python2.7/site-packages/psycopg2/__init__.py", line 164, in connect conn = _connect(dsn, connection_factory=connection_factory, async=async) OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? -->
self = <tests.property_group_tests.PropertyGroupTests testMethod=test_add_multiple_property_groups>
def test_add_multiple_property_groups(self):
result = self.client.insert_regions(
TEST_PROVENANCE,
> [TEST_PGT_OBJECT, TEST_PGT_OBJECT_WITH_DATA]
)
(557 more lines...)
|
| Collapse |
Failed
|
PropertyGroupTests
test_add_one_property_group
History
|
< 1 sec |
RestException: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? // Werkzeug Debugger</title> <link rel="stylesheet" href="?__debugger__=yes&cmd=resource&f=style.css" type="text/css"> <!-- We need to make sure this has a favicon so that the debugger does not by accident trigger a request to /favicon.ico which might change the application state. --> <link rel="shortcut icon" href="?__debugger__=yes&cmd=resource&f=console.png"> <script src="?__debugger__=yes&cmd=resource&f=jquery.js"></script> <script src="?__debugger__=yes&cmd=resource&f=debugger.js"></script> <script type="text/javascript"> var TRACEBACK = 140441533115920, CONSOLE_MODE = false, EVALEX = true, EVALEX_TRUSTED = false, SECRET = "03528G3v7iTkYaX5wm2v"; </script> </head> <body> <div class="debugger"> <h1>psycopg2.OperationalError</h1> <div class="detail"> <p class="errormsg">OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432?</p> </div> <h2 class="traceback">Traceback <em>(most recent call last)</em></h2> <div class="traceback"> <ul><li><div class="frame" id="frame-140441533115984"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1836</em>, in <code class="function">__call__</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>'Flask.blueprints instead'), stacklevel=2)</pre> <pre class="line before"><span class="ws"> </span>return self.blueprints</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def __call__(self, environ, start_response):</pre> <pre class="line before"><span class="ws"> </span>"""Shortcut for :attr:`wsgi_app`."""</pre> <pre class="line current"><span class="ws"> </span>return self.wsgi_app(environ, start_response)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def __repr__(self):</pre> <pre class="line after"><span class="ws"> </span>return '<%s %r>' % (</pre> <pre class="line after"><span class="ws"> </span>self.__class__.__name__,</pre> <pre class="line after"><span class="ws"> </span>self.name,</pre></div> </div> <li><div class="frame" id="frame-140441533116176"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1820</em>, in <code class="function">wsgi_app</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>response = self.full_dispatch_request()</pre> <pre class="line before"><span class="ws"> </span>except Exception as e:</pre> <pre class="line before"><span class="ws"> </span>error = e</pre> <pre class="line current"><span class="ws"> </span>response = self.make_response(self.handle_exception(e))</pre> <pre class="line after"><span class="ws"> </span>return response(environ, start_response)</pre> <pre class="line after"><span class="ws"> </span>finally:</pre> <pre class="line after"><span class="ws"> </span>if self.should_ignore_error(error):</pre> <pre class="line after"><span class="ws"> </span>error = None</pre> <pre class="line after"><span class="ws"> </span>ctx.auto_pop(error)</pre></div> </div> <li><div class="frame" id="frame-140441533116240"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask_cors/extension.py"</cite>, line <em class="line">188</em>, in <code class="function">wrapped_function</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># Wrap exception handlers with cross_origin</pre> <pre class="line before"><span class="ws"> </span># These error handlers will still respect the behavior of the route</pre> <pre class="line before"><span class="ws"> </span>if options.get('intercept_exceptions', True):</pre> <pre class="line before"><span class="ws"> </span>def _after_request_decorator(f):</pre> <pre class="line before"><span class="ws"> </span>def wrapped_function(*args, **kwargs):</pre> <pre class="line current"><span class="ws"> </span>return cors_after_request(app.make_response(f(*args, **kwargs)))</pre> <pre class="line after"><span class="ws"> </span>return wrapped_function</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>if hasattr(app, 'handle_exception'):</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception = _after_request_decorator(</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception)</pre></div> </div> <li><div class="frame" id="frame-140441533116048"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1403</em>, in <code class="function">handle_exception</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># if we want to repropagate the exception, we can attempt to</pre> <pre class="line before"><span class="ws"> </span># raise it with the whole traceback in case we can do that</pre> <pre class="line before"><span class="ws"> </span># (the function was actually called from the except part)</pre> <pre class="line before"><span class="ws"> </span># otherwise, we just raise the error again</pre> <pre class="line before"><span class="ws"> </span>if exc_value is e:</pre> <pre class="line current"><span class="ws"> </span>reraise(exc_type, exc_value, tb)</pre> <pre class="line after"><span class="ws"> </span>else:</pre> <pre class="line after"><span class="ws"> </span>raise e</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>self.log_exception((exc_type, exc_value, tb))</pre> <pre class="line after"><span class="ws"> </span>if handler is None:</pre></div> </div> <li><div class="frame" id="frame-140441533116368"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1817</em>, in <code class="function">wsgi_app</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>ctx = self.request_context(environ)</pre> <pre class="line before"><span class="ws"> </span>ctx.push()</pre> <pre class="line before"><span class="ws"> </span>error = None</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line current"><span class="ws"> </span>response = self.full_dispatch_request()</pre> <pre class="line after"><span class="ws"> </span>except Exception as e:</pre> <pre class="line after"><span class="ws"> </span>error = e</pre> <pre class="line after"><span class="ws"> </span>response = self.make_response(self.handle_exception(e))</pre> <pre class="line after"><span class="ws"> </span>return response(environ, start_response)</pre> <pre class="line after"><span class="ws"> </span>finally:</pre></div> </div> <li><div class="frame" id="frame-140441533116112"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1477</em>, in <code class="function">full_dispatch_request</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>request_started.send(self)</pre> <pre class="line before"><span class="ws"> </span>rv = self.preprocess_request()</pre> <pre class="line before"><span class="ws"> </span>if rv is None:</pre> <pre class="line before"><span class="ws"> </span>rv = self.dispatch_request()</pre> <pre class="line before"><span class="ws"> </span>except Exception as e:</pre> <pre class="line current"><span class="ws"> </span>rv = self.handle_user_exception(e)</pre> <pre class="line after"><span class="ws"> </span>response = self.make_response(rv)</pre> <pre class="line after"><span class="ws"> </span>response = self.process_response(response)</pre> <pre class="line after"><span class="ws"> </span>request_finished.send(self, response=response)</pre> <pre class="line after"><span class="ws"> </span>return response</pre> <pre class="line after"><span class="ws"></span> </pre></div> </div> <li><div class="frame" id="frame-140441533116304"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask_cors/extension.py"</cite>, line <em class="line">188</em>, in <code class="function">wrapped_function</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># Wrap exception handlers with cross_origin</pre> <pre class="line before"><span class="ws"> </span># These error handlers will still respect the behavior of the route</pre> <pre class="line before"><span class="ws"> </span>if options.get('intercept_exceptions', True):</pre> <pre class="line before"><span class="ws"> </span>def _after_request_decorator(f):</pre> <pre class="line before"><span class="ws"> </span>def wrapped_function(*args, **kwargs):</pre> <pre class="line current"><span class="ws"> </span>return cors_after_request(app.make_response(f(*args, **kwargs)))</pre> <pre class="line after"><span class="ws"> </span>return wrapped_function</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>if hasattr(app, 'handle_exception'):</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception = _after_request_decorator(</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception)</pre></div> </div> <li><div class="frame" id="frame-140441531756688"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1381</em>, in <code class="function">handle_user_exception</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>app_handlers = self.error_handler_spec[None].get(None, ())</pre> <pre class="line before"><span class="ws"> </span>for typecheck, handler in chain(blueprint_handlers, app_handlers):</pre> <pre class="line before"><span class="ws"> </span>if isinstance(e, typecheck):</pre> <pre class="line before"><span class="ws"> </span>return handler(e)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>reraise(exc_type, exc_value, tb)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def handle_exception(self, e):</pre> <pre class="line after"><span class="ws"> </span>"""Default exception handling that kicks in when an exception</pre> <pre class="line after"><span class="ws"> </span>occurs that is not caught. In debug mode the exception will</pre> <pre class="line after"><span class="ws"> </span>be re-raised immediately, otherwise it is logged and the handler</pre></div> </div> <li><div class="frame" id="frame-140441531756816"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1475</em>, in <code class="function">full_dispatch_request</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>self.try_trigger_before_first_request_functions()</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>request_started.send(self)</pre> <pre class="line before"><span class="ws"> </span>rv = self.preprocess_request()</pre> <pre class="line before"><span class="ws"> </span>if rv is None:</pre> <pre class="line current"><span class="ws"> </span>rv = self.dispatch_request()</pre> <pre class="line after"><span class="ws"> </span>except Exception as e:</pre> <pre class="line after"><span class="ws"> </span>rv = self.handle_user_exception(e)</pre> <pre class="line after"><span class="ws"> </span>response = self.make_response(rv)</pre> <pre class="line after"><span class="ws"> </span>response = self.process_response(response)</pre> <pre class="line after"><span class="ws"> </span>request_finished.send(self, response=response)</pre></div> </div> <li><div class="frame" id="frame-140441531756880"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1461</em>, in <code class="function">dispatch_request</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># request came with the OPTIONS method, reply automatically</pre> <pre class="line before"><span class="ws"> </span>if getattr(rule, 'provide_automatic_options', False) \</pre> <pre class="line before"><span class="ws"> </span>and req.method == 'OPTIONS':</pre> <pre class="line before"><span class="ws"> </span>return self.make_default_options_response()</pre> <pre class="line before"><span class="ws"> </span># otherwise dispatch to the handler for that endpoint</pre> <pre class="line current"><span class="ws"> </span>return self.view_functions[rule.endpoint](**req.view_args)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def full_dispatch_request(self):</pre> <pre class="line after"><span class="ws"> </span>"""Dispatches the request and on top of that performs request</pre> <pre class="line after"><span class="ws"> </span>pre and postprocessing as well as HTTP exception catching and</pre> <pre class="line after"><span class="ws"> </span>error handling.</pre></div> </div> <li><div class="frame" id="frame-140441531756944"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py"</cite>, line <em class="line">176</em>, in <code class="function">wrapper</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>logger.debug("%s validating schema...", flask.request.url)</pre> <pre class="line before"><span class="ws"> </span>error = self.validate_schema(data, self.schema)</pre> <pre class="line before"><span class="ws"> </span>if error:</pre> <pre class="line before"><span class="ws"> </span>return error</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>response = function(*args, **kwargs)</pre> <pre class="line after"><span class="ws"> </span>return response</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>return wrapper</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def validate_schema(self, data, schema):</pre></div> </div> <li><div class="frame" id="frame-140441531756752"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py"</cite>, line <em class="line">288</em>, in <code class="function">wrapper</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>for param in self.parameters.get('header', []):</pre> <pre class="line before"><span class="ws"> </span>error = self.validate_header_parameter(param)</pre> <pre class="line before"><span class="ws"> </span>if error:</pre> <pre class="line before"><span class="ws"> </span>return problem(400, 'Bad Request', error)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>response = function(*args, **kwargs)</pre> <pre class="line after"><span class="ws"> </span>return response</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>return wrapper</pre></div> </div> <li><div class="frame" id="frame-140441531757008"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/connexion/decorators/produces.py"</cite>, line <em class="line">116</em>, in <code class="function">wrapper</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>@functools.wraps(function)</pre> <pre class="line before"><span class="ws"> </span>def wrapper(*args, **kwargs):</pre> <pre class="line before"><span class="ws"> </span>url = flask.request.url</pre> <pre class="line before"><span class="ws"> </span>logger.debug('Jsonifing %s', url, extra={'url': url, 'mimetype': self.mimetype})</pre> <pre class="line current"><span class="ws"> </span>data, status_code, headers = self.get_full_response(function(*args, **kwargs))</pre> <pre class="line after"><span class="ws"> </span>if isinstance(data, flask.Response): # if the function returns a Response object don't change it</pre> <pre class="line after"><span class="ws"> </span>logger.debug('Endpoint returned a Flask Response', extra={'url': url, 'mimetype': data.mimetype})</pre> <pre class="line after"><span class="ws"> </span>return data</pre> <pre class="line after"><span class="ws"> </span>elif data is NoContent:</pre> <pre class="line after"><span class="ws"> </span>return '', status_code</pre></div> </div> <li><div class="frame" id="frame-140441531757072"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/connexion/decorators/parameter.py"</cite>, line <em class="line">89</em>, in <code class="function">wrapper</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>logger.debug("Query Parameter '%s' in function arguments", key)</pre> <pre class="line before"><span class="ws"> </span>query_param = query_types[key]</pre> <pre class="line before"><span class="ws"> </span>logger.debug('%s is a %s', key, query_param)</pre> <pre class="line before"><span class="ws"> </span>kwargs[key] = get_val_from_param(value, query_param)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>return function(*args, **kwargs)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>return wrapper</pre></div> </div> <li><div class="frame" id="frame-140441531757136"> <h4>File <cite class="filename">"/property_service/propertyservice/routes/property_group.py"</cite>, line <em class="line">10</em>, in <code class="function">add</code></h4> <div class="source"><pre class="line before"><span class="ws"></span>from propertyservice.util import format_insert_output</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"></span>def add(provenance):</pre> <pre class="line before"><span class="ws"> </span>post_data = [request.json]</pre> <pre class="line current"><span class="ws"> </span>return __insert(provenance, post_data)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"></span>def bulk(provenance):</pre> <pre class="line after"><span class="ws"> </span>post_data = request.json</pre> <pre class="line after"><span class="ws"> </span>return __insert(provenance, post_data)</pre></div> </div> <li><div class="frame" id="frame-140441531756624"> <h4>File <cite class="filename">"/property_service/propertyservice/routes/property_group.py"</cite>, line <em class="line">38</em>, in <code class="function">__insert</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"></span>def __insert(provenance, post_data):</pre> <pre class="line before"><span class="ws"> </span>result = []</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>with PropertyDBDataSource() as ctx:</pre> <pre class="line after"><span class="ws"> </span># resolve provenance and property_group_type</pre> <pre class="line after"><span class="ws"> </span>provenance_id = ctx.get_provenance_by_name(provenance).id</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span># get property-types for caching</pre> <pre class="line after"><span class="ws"> </span>property_types = ctx.get_property_types(provenance_id)</pre></div> </div> <li><div class="frame" id="frame-140441531757200"> <h4>File <cite class="filename">"/property_service/propertyservice/data/property_db_data_source.py"</cite>, line <em class="line">19</em>, in <code class="function">__init__</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>self.__pg = PostgresNoSQLClient(host=flarecast_config.DB_HOST,</pre> <pre class="line before"><span class="ws"> </span>port=flarecast_config.DB_PORT,</pre> <pre class="line before"><span class="ws"> </span>user=flarecast_config.DB_USER,</pre> <pre class="line before"><span class="ws"> </span>password=flarecast_config.DB_PASSWORD)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>self.__db = self.__pg[config.PROPERTY_DATABASE]</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>self.__property_group = self.__db[config.PROPERTY_GROUP_TABLE]</pre> <pre class="line after"><span class="ws"> </span>self.__property = self.__db[config.PROPERTY_TABLE]</pre> <pre class="line after"><span class="ws"> </span>self.__property_type = self.__db[config.PROPERTY_TYPE_TABLE]</pre> <pre class="line after"><span class="ws"> </span>self.__provenance = self.__db[config.PROVENANCE_TABLE]</pre></div> </div> <li><div class="frame" id="frame-140441531757264"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py"</cite>, line <em class="line">96</em>, in <code class="function">__getitem__</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>print(e)</pre> <pre class="line before"><span class="ws"> </span>self.__close()</pre> <pre class="line before"><span class="ws"> </span>return exists</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def __getitem__(self, item):</pre> <pre class="line current"><span class="ws"> </span>return self.get_or_create_database(item)</pre></div> </div> <li><div class="frame" id="frame-140441531757392"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py"</cite>, line <em class="line">64</em>, in <code class="function">get_or_create_database</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>self.__close()</pre> <pre class="line before"><span class="ws"> </span>return db_object</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def get_or_create_database(self, database_name):</pre> <pre class="line current"><span class="ws"> </span>self.__connect()</pre> <pre class="line after"><span class="ws"> </span>db = self.get_database(database_name)</pre> <pre class="line after"><span class="ws"> </span>if not db:</pre> <pre class="line after"><span class="ws"> </span>db = self.create_database(database_name)</pre> <pre class="line after"><span class="ws"> </span>self.__close()</pre> <pre class="line after"><span class="ws"> </span>return db</pre></div> </div> <li><div class="frame" id="frame-140441531757456"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py"</cite>, line <em class="line">36</em>, in <code class="function">__connect</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def __connect(self):</pre> <pre class="line before"><span class="ws"> </span>self.__connect_counter += 1</pre> <pre class="line before"><span class="ws"> </span>if not self.__connection:</pre> <pre class="line before"><span class="ws"> </span>self.__connection = psycopg2.connect(host=self.host, database=self.database, port=self.port,</pre> <pre class="line current"><span class="ws"> </span>user=self.__user, password=self.__password)</pre> <pre class="line after"><span class="ws"> </span>self.__connection.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT)</pre> <pre class="line after"><span class="ws"> </span>self.__cursor = self.__connection.cursor()</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def __close(self):</pre> <pre class="line after"><span class="ws"> </span>self.__connect_counter -= 1</pre></div> </div> <li><div class="frame" id="frame-140441531757520"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/psycopg2/__init__.py"</cite>, line <em class="line">164</em>, in <code class="function">connect</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>raise TypeError('missing dsn and no parameters')</pre> <pre class="line before"><span class="ws"> </span>else:</pre> <pre class="line before"><span class="ws"> </span>dsn = " ".join(["%s=%s" % (k, _param_escape(str(v)))</pre> <pre class="line before"><span class="ws"> </span>for (k, v) in items])</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>conn = _connect(dsn, connection_factory=connection_factory, async=async)</pre> <pre class="line after"><span class="ws"> </span>if cursor_factory is not None:</pre> <pre class="line after"><span class="ws"> </span>conn.cursor_factory = cursor_factory</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>return conn</pre></div> </div> </ul> <blockquote>OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432?</blockquote> </div> <div class="plain"> <form action="/?__debugger__=yes&cmd=paste" method="post"> <p> <input type="hidden" name="language" value="pytb"> This is the Copy/Paste friendly version of the traceback. <span class="pastemessage">You can also paste this traceback into a <a href="https://gist.github.com/">gist</a>: <input type="submit" value="create paste"></span> </p> <textarea cols="50" rows="10" name="code" readonly>Traceback (most recent call last): File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__ return self.wsgi_app(environ, start_response) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app response = self.make_response(self.handle_exception(e)) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app response = self.full_dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request rv = self.handle_user_exception(e) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request rv = self.dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py", line 176, in wrapper response = function(*args, **kwargs) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py", line 288, in wrapper response = function(*args, **kwargs) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/produces.py", line 116, in wrapper data, status_code, headers = self.get_full_response(function(*args, **kwargs)) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/parameter.py", line 89, in wrapper return function(*args, **kwargs) File "/property_service/propertyservice/routes/property_group.py", line 10, in add return __insert(provenance, post_data) File "/property_service/propertyservice/routes/property_group.py", line 38, in __insert with PropertyDBDataSource() as ctx: File "/property_service/propertyservice/data/property_db_data_source.py", line 19, in __init__ self.__db = self.__pg[config.PROPERTY_DATABASE] File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 96, in __getitem__ return self.get_or_create_database(item) File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 64, in get_or_create_database self.__connect() File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 36, in __connect user=self.__user, password=self.__password) File "/usr/local/lib/python2.7/site-packages/psycopg2/__init__.py", line 164, in connect conn = _connect(dsn, connection_factory=connection_factory, async=async) OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432?</textarea> </form> </div> <div class="explanation"> The debugger caught an exception in your WSGI application. You can now look at the traceback which led to the error. <span class="nojavascript"> If you enable JavaScript you can also use additional features such as code execution (if the evalex feature is enabled), automatic pasting of the exceptions and much more.</span> </div> <div class="footer"> Brought to you by <strong class="arthur">DON'T PANIC</strong>, your friendly Werkzeug powered traceback interpreter. </div> </div> <div class="pin-prompt"> <div class="inner"> <h3>Console Locked</h3> <p> The console is locked and needs to be unlocked by entering the PIN. You can find the PIN printed out on the standard output of your shell that runs the server. <form> <p>PIN: <input type=text name=pin size=14> <input type=submit name=btn value="Confirm Pin"> </form> </div> </div> </body> </html> <!-- Traceback (most recent call last): File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__ return self.wsgi_app(environ, start_response) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app response = self.make_response(self.handle_exception(e)) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app response = self.full_dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request rv = self.handle_user_exception(e) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request rv = self.dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py", line 176, in wrapper response = function(*args, **kwargs) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py", line 288, in wrapper response = function(*args, **kwargs) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/produces.py", line 116, in wrapper data, status_code, headers = self.get_full_response(function(*args, **kwargs)) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/parameter.py", line 89, in wrapper return function(*args, **kwargs) File "/property_service/propertyservice/routes/property_group.py", line 10, in add return __insert(provenance, post_data) File "/property_service/propertyservice/routes/property_group.py", line 38, in __insert with PropertyDBDataSource() as ctx: File "/property_service/propertyservice/data/property_db_data_source.py", line 19, in __init__ self.__db = self.__pg[config.PROPERTY_DATABASE] File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 96, in __getitem__ return self.get_or_create_database(item) File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 64, in get_or_create_database self.__connect() File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 36, in __connect user=self.__user, password=self.__password) File "/usr/local/lib/python2.7/site-packages/psycopg2/__init__.py", line 164, in connect conn = _connect(dsn, connection_factory=connection_factory, async=async) OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? -->
self = <tests.property_group_tests.PropertyGroupTests testMethod=test_add_one_property_group>
def test_add_one_property_group(self):
result = self.client.add_region(
TEST_PROVENANCE,
> time_start=TEST_PGT_TIME_START
)
(557 more lines...)
|
| Collapse |
Failed
|
PropertyTests
test_add_multiple_properties
History
|
< 1 sec |
RestException: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? // Werkzeug Debugger</title> <link rel="stylesheet" href="?__debugger__=yes&cmd=resource&f=style.css" type="text/css"> <!-- We need to make sure this has a favicon so that the debugger does not by accident trigger a request to /favicon.ico which might change the application state. --> <link rel="shortcut icon" href="?__debugger__=yes&cmd=resource&f=console.png"> <script src="?__debugger__=yes&cmd=resource&f=jquery.js"></script> <script src="?__debugger__=yes&cmd=resource&f=debugger.js"></script> <script type="text/javascript"> var TRACEBACK = 140441528289680, CONSOLE_MODE = false, EVALEX = true, EVALEX_TRUSTED = false, SECRET = "03528G3v7iTkYaX5wm2v"; </script> </head> <body> <div class="debugger"> <h1>psycopg2.OperationalError</h1> <div class="detail"> <p class="errormsg">OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432?</p> </div> <h2 class="traceback">Traceback <em>(most recent call last)</em></h2> <div class="traceback"> <ul><li><div class="frame" id="frame-140441528289744"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1836</em>, in <code class="function">__call__</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>'Flask.blueprints instead'), stacklevel=2)</pre> <pre class="line before"><span class="ws"> </span>return self.blueprints</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def __call__(self, environ, start_response):</pre> <pre class="line before"><span class="ws"> </span>"""Shortcut for :attr:`wsgi_app`."""</pre> <pre class="line current"><span class="ws"> </span>return self.wsgi_app(environ, start_response)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def __repr__(self):</pre> <pre class="line after"><span class="ws"> </span>return '<%s %r>' % (</pre> <pre class="line after"><span class="ws"> </span>self.__class__.__name__,</pre> <pre class="line after"><span class="ws"> </span>self.name,</pre></div> </div> <li><div class="frame" id="frame-140441528289936"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1820</em>, in <code class="function">wsgi_app</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>response = self.full_dispatch_request()</pre> <pre class="line before"><span class="ws"> </span>except Exception as e:</pre> <pre class="line before"><span class="ws"> </span>error = e</pre> <pre class="line current"><span class="ws"> </span>response = self.make_response(self.handle_exception(e))</pre> <pre class="line after"><span class="ws"> </span>return response(environ, start_response)</pre> <pre class="line after"><span class="ws"> </span>finally:</pre> <pre class="line after"><span class="ws"> </span>if self.should_ignore_error(error):</pre> <pre class="line after"><span class="ws"> </span>error = None</pre> <pre class="line after"><span class="ws"> </span>ctx.auto_pop(error)</pre></div> </div> <li><div class="frame" id="frame-140441528290000"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask_cors/extension.py"</cite>, line <em class="line">188</em>, in <code class="function">wrapped_function</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># Wrap exception handlers with cross_origin</pre> <pre class="line before"><span class="ws"> </span># These error handlers will still respect the behavior of the route</pre> <pre class="line before"><span class="ws"> </span>if options.get('intercept_exceptions', True):</pre> <pre class="line before"><span class="ws"> </span>def _after_request_decorator(f):</pre> <pre class="line before"><span class="ws"> </span>def wrapped_function(*args, **kwargs):</pre> <pre class="line current"><span class="ws"> </span>return cors_after_request(app.make_response(f(*args, **kwargs)))</pre> <pre class="line after"><span class="ws"> </span>return wrapped_function</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>if hasattr(app, 'handle_exception'):</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception = _after_request_decorator(</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception)</pre></div> </div> <li><div class="frame" id="frame-140441528289808"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1403</em>, in <code class="function">handle_exception</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># if we want to repropagate the exception, we can attempt to</pre> <pre class="line before"><span class="ws"> </span># raise it with the whole traceback in case we can do that</pre> <pre class="line before"><span class="ws"> </span># (the function was actually called from the except part)</pre> <pre class="line before"><span class="ws"> </span># otherwise, we just raise the error again</pre> <pre class="line before"><span class="ws"> </span>if exc_value is e:</pre> <pre class="line current"><span class="ws"> </span>reraise(exc_type, exc_value, tb)</pre> <pre class="line after"><span class="ws"> </span>else:</pre> <pre class="line after"><span class="ws"> </span>raise e</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>self.log_exception((exc_type, exc_value, tb))</pre> <pre class="line after"><span class="ws"> </span>if handler is None:</pre></div> </div> <li><div class="frame" id="frame-140441528290128"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1817</em>, in <code class="function">wsgi_app</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>ctx = self.request_context(environ)</pre> <pre class="line before"><span class="ws"> </span>ctx.push()</pre> <pre class="line before"><span class="ws"> </span>error = None</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line current"><span class="ws"> </span>response = self.full_dispatch_request()</pre> <pre class="line after"><span class="ws"> </span>except Exception as e:</pre> <pre class="line after"><span class="ws"> </span>error = e</pre> <pre class="line after"><span class="ws"> </span>response = self.make_response(self.handle_exception(e))</pre> <pre class="line after"><span class="ws"> </span>return response(environ, start_response)</pre> <pre class="line after"><span class="ws"> </span>finally:</pre></div> </div> <li><div class="frame" id="frame-140441528290192"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1477</em>, in <code class="function">full_dispatch_request</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>request_started.send(self)</pre> <pre class="line before"><span class="ws"> </span>rv = self.preprocess_request()</pre> <pre class="line before"><span class="ws"> </span>if rv is None:</pre> <pre class="line before"><span class="ws"> </span>rv = self.dispatch_request()</pre> <pre class="line before"><span class="ws"> </span>except Exception as e:</pre> <pre class="line current"><span class="ws"> </span>rv = self.handle_user_exception(e)</pre> <pre class="line after"><span class="ws"> </span>response = self.make_response(rv)</pre> <pre class="line after"><span class="ws"> </span>response = self.process_response(response)</pre> <pre class="line after"><span class="ws"> </span>request_finished.send(self, response=response)</pre> <pre class="line after"><span class="ws"> </span>return response</pre> <pre class="line after"><span class="ws"></span> </pre></div> </div> <li><div class="frame" id="frame-140441528290256"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask_cors/extension.py"</cite>, line <em class="line">188</em>, in <code class="function">wrapped_function</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># Wrap exception handlers with cross_origin</pre> <pre class="line before"><span class="ws"> </span># These error handlers will still respect the behavior of the route</pre> <pre class="line before"><span class="ws"> </span>if options.get('intercept_exceptions', True):</pre> <pre class="line before"><span class="ws"> </span>def _after_request_decorator(f):</pre> <pre class="line before"><span class="ws"> </span>def wrapped_function(*args, **kwargs):</pre> <pre class="line current"><span class="ws"> </span>return cors_after_request(app.make_response(f(*args, **kwargs)))</pre> <pre class="line after"><span class="ws"> </span>return wrapped_function</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>if hasattr(app, 'handle_exception'):</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception = _after_request_decorator(</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception)</pre></div> </div> <li><div class="frame" id="frame-140441528289872"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1381</em>, in <code class="function">handle_user_exception</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>app_handlers = self.error_handler_spec[None].get(None, ())</pre> <pre class="line before"><span class="ws"> </span>for typecheck, handler in chain(blueprint_handlers, app_handlers):</pre> <pre class="line before"><span class="ws"> </span>if isinstance(e, typecheck):</pre> <pre class="line before"><span class="ws"> </span>return handler(e)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>reraise(exc_type, exc_value, tb)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def handle_exception(self, e):</pre> <pre class="line after"><span class="ws"> </span>"""Default exception handling that kicks in when an exception</pre> <pre class="line after"><span class="ws"> </span>occurs that is not caught. In debug mode the exception will</pre> <pre class="line after"><span class="ws"> </span>be re-raised immediately, otherwise it is logged and the handler</pre></div> </div> <li><div class="frame" id="frame-140441528290384"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1475</em>, in <code class="function">full_dispatch_request</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>self.try_trigger_before_first_request_functions()</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>request_started.send(self)</pre> <pre class="line before"><span class="ws"> </span>rv = self.preprocess_request()</pre> <pre class="line before"><span class="ws"> </span>if rv is None:</pre> <pre class="line current"><span class="ws"> </span>rv = self.dispatch_request()</pre> <pre class="line after"><span class="ws"> </span>except Exception as e:</pre> <pre class="line after"><span class="ws"> </span>rv = self.handle_user_exception(e)</pre> <pre class="line after"><span class="ws"> </span>response = self.make_response(rv)</pre> <pre class="line after"><span class="ws"> </span>response = self.process_response(response)</pre> <pre class="line after"><span class="ws"> </span>request_finished.send(self, response=response)</pre></div> </div> <li><div class="frame" id="frame-140441528290448"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1461</em>, in <code class="function">dispatch_request</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># request came with the OPTIONS method, reply automatically</pre> <pre class="line before"><span class="ws"> </span>if getattr(rule, 'provide_automatic_options', False) \</pre> <pre class="line before"><span class="ws"> </span>and req.method == 'OPTIONS':</pre> <pre class="line before"><span class="ws"> </span>return self.make_default_options_response()</pre> <pre class="line before"><span class="ws"> </span># otherwise dispatch to the handler for that endpoint</pre> <pre class="line current"><span class="ws"> </span>return self.view_functions[rule.endpoint](**req.view_args)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def full_dispatch_request(self):</pre> <pre class="line after"><span class="ws"> </span>"""Dispatches the request and on top of that performs request</pre> <pre class="line after"><span class="ws"> </span>pre and postprocessing as well as HTTP exception catching and</pre> <pre class="line after"><span class="ws"> </span>error handling.</pre></div> </div> <li><div class="frame" id="frame-140441528290512"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py"</cite>, line <em class="line">288</em>, in <code class="function">wrapper</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>for param in self.parameters.get('header', []):</pre> <pre class="line before"><span class="ws"> </span>error = self.validate_header_parameter(param)</pre> <pre class="line before"><span class="ws"> </span>if error:</pre> <pre class="line before"><span class="ws"> </span>return problem(400, 'Bad Request', error)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>response = function(*args, **kwargs)</pre> <pre class="line after"><span class="ws"> </span>return response</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>return wrapper</pre></div> </div> <li><div class="frame" id="frame-140441528290320"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/connexion/decorators/produces.py"</cite>, line <em class="line">116</em>, in <code class="function">wrapper</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>@functools.wraps(function)</pre> <pre class="line before"><span class="ws"> </span>def wrapper(*args, **kwargs):</pre> <pre class="line before"><span class="ws"> </span>url = flask.request.url</pre> <pre class="line before"><span class="ws"> </span>logger.debug('Jsonifing %s', url, extra={'url': url, 'mimetype': self.mimetype})</pre> <pre class="line current"><span class="ws"> </span>data, status_code, headers = self.get_full_response(function(*args, **kwargs))</pre> <pre class="line after"><span class="ws"> </span>if isinstance(data, flask.Response): # if the function returns a Response object don't change it</pre> <pre class="line after"><span class="ws"> </span>logger.debug('Endpoint returned a Flask Response', extra={'url': url, 'mimetype': data.mimetype})</pre> <pre class="line after"><span class="ws"> </span>return data</pre> <pre class="line after"><span class="ws"> </span>elif data is NoContent:</pre> <pre class="line after"><span class="ws"> </span>return '', status_code</pre></div> </div> <li><div class="frame" id="frame-140441528290576"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/connexion/decorators/parameter.py"</cite>, line <em class="line">89</em>, in <code class="function">wrapper</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>logger.debug("Query Parameter '%s' in function arguments", key)</pre> <pre class="line before"><span class="ws"> </span>query_param = query_types[key]</pre> <pre class="line before"><span class="ws"> </span>logger.debug('%s is a %s', key, query_param)</pre> <pre class="line before"><span class="ws"> </span>kwargs[key] = get_val_from_param(value, query_param)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>return function(*args, **kwargs)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>return wrapper</pre></div> </div> <li><div class="frame" id="frame-140441528290640"> <h4>File <cite class="filename">"/property_service/propertyservice/routes/query.py"</cite>, line <em class="line">43</em>, in <code class="function">find</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"></span>def find(provenance):</pre> <pre class="line before"><span class="ws"> </span>sql_conditions = __get_conditions(provenance)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>with PropertyDBQueryEngine() as ctx:</pre> <pre class="line after"><span class="ws"> </span>return format_query_output(ctx.query_data(sql_conditions))</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"></span>def get_by_date(provenance, obs_date):</pre> <pre class="line after"><span class="ws"> </span>obs_date = iso8601.parse_date(obs_date)</pre></div> </div> <li><div class="frame" id="frame-140441528290064"> <h4>File <cite class="filename">"/property_service/propertyservice/data/property_db_query_engine.py"</cite>, line <em class="line">21</em>, in <code class="function">__init__</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>self.__pg = PostgresNoSQLClient(host=flarecast_config.DB_HOST,</pre> <pre class="line before"><span class="ws"> </span>port=flarecast_config.DB_PORT,</pre> <pre class="line before"><span class="ws"> </span>user=flarecast_config.DB_USER,</pre> <pre class="line before"><span class="ws"> </span>password=flarecast_config.DB_PASSWORD)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>self.__db = self.__pg[config.PROPERTY_DATABASE]</pre> <pre class="line after"><span class="ws"> </span>self.__property_type = self.__db[config.PROPERTY_TYPE_TABLE]</pre> <pre class="line after"><span class="ws"> </span>self.__link_view = self.__db.get_view(LINK_VIEW)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span># load keys</pre> <pre class="line after"><span class="ws"> </span>self.property_types = self.__get_property_types()</pre></div> </div> <li><div class="frame" id="frame-140441528290704"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py"</cite>, line <em class="line">96</em>, in <code class="function">__getitem__</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>print(e)</pre> <pre class="line before"><span class="ws"> </span>self.__close()</pre> <pre class="line before"><span class="ws"> </span>return exists</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def __getitem__(self, item):</pre> <pre class="line current"><span class="ws"> </span>return self.get_or_create_database(item)</pre></div> </div> <li><div class="frame" id="frame-140441528290832"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py"</cite>, line <em class="line">64</em>, in <code class="function">get_or_create_database</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>self.__close()</pre> <pre class="line before"><span class="ws"> </span>return db_object</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def get_or_create_database(self, database_name):</pre> <pre class="line current"><span class="ws"> </span>self.__connect()</pre> <pre class="line after"><span class="ws"> </span>db = self.get_database(database_name)</pre> <pre class="line after"><span class="ws"> </span>if not db:</pre> <pre class="line after"><span class="ws"> </span>db = self.create_database(database_name)</pre> <pre class="line after"><span class="ws"> </span>self.__close()</pre> <pre class="line after"><span class="ws"> </span>return db</pre></div> </div> <li><div class="frame" id="frame-140441528290896"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py"</cite>, line <em class="line">36</em>, in <code class="function">__connect</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def __connect(self):</pre> <pre class="line before"><span class="ws"> </span>self.__connect_counter += 1</pre> <pre class="line before"><span class="ws"> </span>if not self.__connection:</pre> <pre class="line before"><span class="ws"> </span>self.__connection = psycopg2.connect(host=self.host, database=self.database, port=self.port,</pre> <pre class="line current"><span class="ws"> </span>user=self.__user, password=self.__password)</pre> <pre class="line after"><span class="ws"> </span>self.__connection.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT)</pre> <pre class="line after"><span class="ws"> </span>self.__cursor = self.__connection.cursor()</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def __close(self):</pre> <pre class="line after"><span class="ws"> </span>self.__connect_counter -= 1</pre></div> </div> <li><div class="frame" id="frame-140441528290960"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/psycopg2/__init__.py"</cite>, line <em class="line">164</em>, in <code class="function">connect</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>raise TypeError('missing dsn and no parameters')</pre> <pre class="line before"><span class="ws"> </span>else:</pre> <pre class="line before"><span class="ws"> </span>dsn = " ".join(["%s=%s" % (k, _param_escape(str(v)))</pre> <pre class="line before"><span class="ws"> </span>for (k, v) in items])</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>conn = _connect(dsn, connection_factory=connection_factory, async=async)</pre> <pre class="line after"><span class="ws"> </span>if cursor_factory is not None:</pre> <pre class="line after"><span class="ws"> </span>conn.cursor_factory = cursor_factory</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>return conn</pre></div> </div> </ul> <blockquote>OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432?</blockquote> </div> <div class="plain"> <form action="/?__debugger__=yes&cmd=paste" method="post"> <p> <input type="hidden" name="language" value="pytb"> This is the Copy/Paste friendly version of the traceback. <span class="pastemessage">You can also paste this traceback into a <a href="https://gist.github.com/">gist</a>: <input type="submit" value="create paste"></span> </p> <textarea cols="50" rows="10" name="code" readonly>Traceback (most recent call last): File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__ return self.wsgi_app(environ, start_response) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app response = self.make_response(self.handle_exception(e)) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app response = self.full_dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request rv = self.handle_user_exception(e) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request rv = self.dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py", line 288, in wrapper response = function(*args, **kwargs) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/produces.py", line 116, in wrapper data, status_code, headers = self.get_full_response(function(*args, **kwargs)) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/parameter.py", line 89, in wrapper return function(*args, **kwargs) File "/property_service/propertyservice/routes/query.py", line 43, in find with PropertyDBQueryEngine() as ctx: File "/property_service/propertyservice/data/property_db_query_engine.py", line 21, in __init__ self.__db = self.__pg[config.PROPERTY_DATABASE] File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 96, in __getitem__ return self.get_or_create_database(item) File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 64, in get_or_create_database self.__connect() File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 36, in __connect user=self.__user, password=self.__password) File "/usr/local/lib/python2.7/site-packages/psycopg2/__init__.py", line 164, in connect conn = _connect(dsn, connection_factory=connection_factory, async=async) OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432?</textarea> </form> </div> <div class="explanation"> The debugger caught an exception in your WSGI application. You can now look at the traceback which led to the error. <span class="nojavascript"> If you enable JavaScript you can also use additional features such as code execution (if the evalex feature is enabled), automatic pasting of the exceptions and much more.</span> </div> <div class="footer"> Brought to you by <strong class="arthur">DON'T PANIC</strong>, your friendly Werkzeug powered traceback interpreter. </div> </div> <div class="pin-prompt"> <div class="inner"> <h3>Console Locked</h3> <p> The console is locked and needs to be unlocked by entering the PIN. You can find the PIN printed out on the standard output of your shell that runs the server. <form> <p>PIN: <input type=text name=pin size=14> <input type=submit name=btn value="Confirm Pin"> </form> </div> </div> </body> </html> <!-- Traceback (most recent call last): File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__ return self.wsgi_app(environ, start_response) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app response = self.make_response(self.handle_exception(e)) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app response = self.full_dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request rv = self.handle_user_exception(e) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request rv = self.dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py", line 288, in wrapper response = function(*args, **kwargs) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/produces.py", line 116, in wrapper data, status_code, headers = self.get_full_response(function(*args, **kwargs)) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/parameter.py", line 89, in wrapper return function(*args, **kwargs) File "/property_service/propertyservice/routes/query.py", line 43, in find with PropertyDBQueryEngine() as ctx: File "/property_service/propertyservice/data/property_db_query_engine.py", line 21, in __init__ self.__db = self.__pg[config.PROPERTY_DATABASE] File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 96, in __getitem__ return self.get_or_create_database(item) File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 64, in get_or_create_database self.__connect() File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 36, in __connect user=self.__user, password=self.__password) File "/usr/local/lib/python2.7/site-packages/psycopg2/__init__.py", line 164, in connect conn = _connect(dsn, connection_factory=connection_factory, async=async) OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? -->
self = <tests.property_tests.PropertyTests testMethod=test_add_multiple_properties>
def setUp(self):
super(PropertyTests, self).setUp()
> data = self.client.get_properties(TEST_PROVENANCE)
property_tests.py:13:
(511 more lines...)
|
| Collapse |
Failed
|
PropertyTests
test_add_multiple_properties_from_other_provenance
History
|
< 1 sec |
RestException: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>OperationalError: FATAL: the database system is starting up // Werkzeug Debugger</title> <link rel="stylesheet" href="?__debugger__=yes&cmd=resource&f=style.css" type="text/css"> <!-- We need to make sure this has a favicon so that the debugger does not by accident trigger a request to /favicon.ico which might change the application state. --> <link rel="shortcut icon" href="?__debugger__=yes&cmd=resource&f=console.png"> <script src="?__debugger__=yes&cmd=resource&f=jquery.js"></script> <script src="?__debugger__=yes&cmd=resource&f=debugger.js"></script> <script type="text/javascript"> var TRACEBACK = 140441524687376, CONSOLE_MODE = false, EVALEX = true, EVALEX_TRUSTED = false, SECRET = "03528G3v7iTkYaX5wm2v"; </script> </head> <body> <div class="debugger"> <h1>psycopg2.OperationalError</h1> <div class="detail"> <p class="errormsg">OperationalError: FATAL: the database system is starting up</p> </div> <h2 class="traceback">Traceback <em>(most recent call last)</em></h2> <div class="traceback"> <ul><li><div class="frame" id="frame-140441524687440"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1836</em>, in <code class="function">__call__</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>'Flask.blueprints instead'), stacklevel=2)</pre> <pre class="line before"><span class="ws"> </span>return self.blueprints</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def __call__(self, environ, start_response):</pre> <pre class="line before"><span class="ws"> </span>"""Shortcut for :attr:`wsgi_app`."""</pre> <pre class="line current"><span class="ws"> </span>return self.wsgi_app(environ, start_response)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def __repr__(self):</pre> <pre class="line after"><span class="ws"> </span>return '<%s %r>' % (</pre> <pre class="line after"><span class="ws"> </span>self.__class__.__name__,</pre> <pre class="line after"><span class="ws"> </span>self.name,</pre></div> </div> <li><div class="frame" id="frame-140441524687632"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1820</em>, in <code class="function">wsgi_app</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>response = self.full_dispatch_request()</pre> <pre class="line before"><span class="ws"> </span>except Exception as e:</pre> <pre class="line before"><span class="ws"> </span>error = e</pre> <pre class="line current"><span class="ws"> </span>response = self.make_response(self.handle_exception(e))</pre> <pre class="line after"><span class="ws"> </span>return response(environ, start_response)</pre> <pre class="line after"><span class="ws"> </span>finally:</pre> <pre class="line after"><span class="ws"> </span>if self.should_ignore_error(error):</pre> <pre class="line after"><span class="ws"> </span>error = None</pre> <pre class="line after"><span class="ws"> </span>ctx.auto_pop(error)</pre></div> </div> <li><div class="frame" id="frame-140441524687696"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask_cors/extension.py"</cite>, line <em class="line">188</em>, in <code class="function">wrapped_function</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># Wrap exception handlers with cross_origin</pre> <pre class="line before"><span class="ws"> </span># These error handlers will still respect the behavior of the route</pre> <pre class="line before"><span class="ws"> </span>if options.get('intercept_exceptions', True):</pre> <pre class="line before"><span class="ws"> </span>def _after_request_decorator(f):</pre> <pre class="line before"><span class="ws"> </span>def wrapped_function(*args, **kwargs):</pre> <pre class="line current"><span class="ws"> </span>return cors_after_request(app.make_response(f(*args, **kwargs)))</pre> <pre class="line after"><span class="ws"> </span>return wrapped_function</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>if hasattr(app, 'handle_exception'):</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception = _after_request_decorator(</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception)</pre></div> </div> <li><div class="frame" id="frame-140441524687504"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1403</em>, in <code class="function">handle_exception</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># if we want to repropagate the exception, we can attempt to</pre> <pre class="line before"><span class="ws"> </span># raise it with the whole traceback in case we can do that</pre> <pre class="line before"><span class="ws"> </span># (the function was actually called from the except part)</pre> <pre class="line before"><span class="ws"> </span># otherwise, we just raise the error again</pre> <pre class="line before"><span class="ws"> </span>if exc_value is e:</pre> <pre class="line current"><span class="ws"> </span>reraise(exc_type, exc_value, tb)</pre> <pre class="line after"><span class="ws"> </span>else:</pre> <pre class="line after"><span class="ws"> </span>raise e</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>self.log_exception((exc_type, exc_value, tb))</pre> <pre class="line after"><span class="ws"> </span>if handler is None:</pre></div> </div> <li><div class="frame" id="frame-140441524687824"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1817</em>, in <code class="function">wsgi_app</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>ctx = self.request_context(environ)</pre> <pre class="line before"><span class="ws"> </span>ctx.push()</pre> <pre class="line before"><span class="ws"> </span>error = None</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line current"><span class="ws"> </span>response = self.full_dispatch_request()</pre> <pre class="line after"><span class="ws"> </span>except Exception as e:</pre> <pre class="line after"><span class="ws"> </span>error = e</pre> <pre class="line after"><span class="ws"> </span>response = self.make_response(self.handle_exception(e))</pre> <pre class="line after"><span class="ws"> </span>return response(environ, start_response)</pre> <pre class="line after"><span class="ws"> </span>finally:</pre></div> </div> <li><div class="frame" id="frame-140441524687888"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1477</em>, in <code class="function">full_dispatch_request</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>request_started.send(self)</pre> <pre class="line before"><span class="ws"> </span>rv = self.preprocess_request()</pre> <pre class="line before"><span class="ws"> </span>if rv is None:</pre> <pre class="line before"><span class="ws"> </span>rv = self.dispatch_request()</pre> <pre class="line before"><span class="ws"> </span>except Exception as e:</pre> <pre class="line current"><span class="ws"> </span>rv = self.handle_user_exception(e)</pre> <pre class="line after"><span class="ws"> </span>response = self.make_response(rv)</pre> <pre class="line after"><span class="ws"> </span>response = self.process_response(response)</pre> <pre class="line after"><span class="ws"> </span>request_finished.send(self, response=response)</pre> <pre class="line after"><span class="ws"> </span>return response</pre> <pre class="line after"><span class="ws"></span> </pre></div> </div> <li><div class="frame" id="frame-140441524687952"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask_cors/extension.py"</cite>, line <em class="line">188</em>, in <code class="function">wrapped_function</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># Wrap exception handlers with cross_origin</pre> <pre class="line before"><span class="ws"> </span># These error handlers will still respect the behavior of the route</pre> <pre class="line before"><span class="ws"> </span>if options.get('intercept_exceptions', True):</pre> <pre class="line before"><span class="ws"> </span>def _after_request_decorator(f):</pre> <pre class="line before"><span class="ws"> </span>def wrapped_function(*args, **kwargs):</pre> <pre class="line current"><span class="ws"> </span>return cors_after_request(app.make_response(f(*args, **kwargs)))</pre> <pre class="line after"><span class="ws"> </span>return wrapped_function</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>if hasattr(app, 'handle_exception'):</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception = _after_request_decorator(</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception)</pre></div> </div> <li><div class="frame" id="frame-140441524687568"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1381</em>, in <code class="function">handle_user_exception</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>app_handlers = self.error_handler_spec[None].get(None, ())</pre> <pre class="line before"><span class="ws"> </span>for typecheck, handler in chain(blueprint_handlers, app_handlers):</pre> <pre class="line before"><span class="ws"> </span>if isinstance(e, typecheck):</pre> <pre class="line before"><span class="ws"> </span>return handler(e)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>reraise(exc_type, exc_value, tb)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def handle_exception(self, e):</pre> <pre class="line after"><span class="ws"> </span>"""Default exception handling that kicks in when an exception</pre> <pre class="line after"><span class="ws"> </span>occurs that is not caught. In debug mode the exception will</pre> <pre class="line after"><span class="ws"> </span>be re-raised immediately, otherwise it is logged and the handler</pre></div> </div> <li><div class="frame" id="frame-140441524688080"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1475</em>, in <code class="function">full_dispatch_request</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>self.try_trigger_before_first_request_functions()</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>request_started.send(self)</pre> <pre class="line before"><span class="ws"> </span>rv = self.preprocess_request()</pre> <pre class="line before"><span class="ws"> </span>if rv is None:</pre> <pre class="line current"><span class="ws"> </span>rv = self.dispatch_request()</pre> <pre class="line after"><span class="ws"> </span>except Exception as e:</pre> <pre class="line after"><span class="ws"> </span>rv = self.handle_user_exception(e)</pre> <pre class="line after"><span class="ws"> </span>response = self.make_response(rv)</pre> <pre class="line after"><span class="ws"> </span>response = self.process_response(response)</pre> <pre class="line after"><span class="ws"> </span>request_finished.send(self, response=response)</pre></div> </div> <li><div class="frame" id="frame-140441524688144"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1461</em>, in <code class="function">dispatch_request</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># request came with the OPTIONS method, reply automatically</pre> <pre class="line before"><span class="ws"> </span>if getattr(rule, 'provide_automatic_options', False) \</pre> <pre class="line before"><span class="ws"> </span>and req.method == 'OPTIONS':</pre> <pre class="line before"><span class="ws"> </span>return self.make_default_options_response()</pre> <pre class="line before"><span class="ws"> </span># otherwise dispatch to the handler for that endpoint</pre> <pre class="line current"><span class="ws"> </span>return self.view_functions[rule.endpoint](**req.view_args)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def full_dispatch_request(self):</pre> <pre class="line after"><span class="ws"> </span>"""Dispatches the request and on top of that performs request</pre> <pre class="line after"><span class="ws"> </span>pre and postprocessing as well as HTTP exception catching and</pre> <pre class="line after"><span class="ws"> </span>error handling.</pre></div> </div> <li><div class="frame" id="frame-140441524688208"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py"</cite>, line <em class="line">288</em>, in <code class="function">wrapper</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>for param in self.parameters.get('header', []):</pre> <pre class="line before"><span class="ws"> </span>error = self.validate_header_parameter(param)</pre> <pre class="line before"><span class="ws"> </span>if error:</pre> <pre class="line before"><span class="ws"> </span>return problem(400, 'Bad Request', error)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>response = function(*args, **kwargs)</pre> <pre class="line after"><span class="ws"> </span>return response</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>return wrapper</pre></div> </div> <li><div class="frame" id="frame-140441524688016"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/connexion/decorators/produces.py"</cite>, line <em class="line">116</em>, in <code class="function">wrapper</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>@functools.wraps(function)</pre> <pre class="line before"><span class="ws"> </span>def wrapper(*args, **kwargs):</pre> <pre class="line before"><span class="ws"> </span>url = flask.request.url</pre> <pre class="line before"><span class="ws"> </span>logger.debug('Jsonifing %s', url, extra={'url': url, 'mimetype': self.mimetype})</pre> <pre class="line current"><span class="ws"> </span>data, status_code, headers = self.get_full_response(function(*args, **kwargs))</pre> <pre class="line after"><span class="ws"> </span>if isinstance(data, flask.Response): # if the function returns a Response object don't change it</pre> <pre class="line after"><span class="ws"> </span>logger.debug('Endpoint returned a Flask Response', extra={'url': url, 'mimetype': data.mimetype})</pre> <pre class="line after"><span class="ws"> </span>return data</pre> <pre class="line after"><span class="ws"> </span>elif data is NoContent:</pre> <pre class="line after"><span class="ws"> </span>return '', status_code</pre></div> </div> <li><div class="frame" id="frame-140441524688272"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/connexion/decorators/parameter.py"</cite>, line <em class="line">89</em>, in <code class="function">wrapper</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>logger.debug("Query Parameter '%s' in function arguments", key)</pre> <pre class="line before"><span class="ws"> </span>query_param = query_types[key]</pre> <pre class="line before"><span class="ws"> </span>logger.debug('%s is a %s', key, query_param)</pre> <pre class="line before"><span class="ws"> </span>kwargs[key] = get_val_from_param(value, query_param)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>return function(*args, **kwargs)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>return wrapper</pre></div> </div> <li><div class="frame" id="frame-140441524688336"> <h4>File <cite class="filename">"/property_service/propertyservice/routes/query.py"</cite>, line <em class="line">43</em>, in <code class="function">find</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"></span>def find(provenance):</pre> <pre class="line before"><span class="ws"> </span>sql_conditions = __get_conditions(provenance)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>with PropertyDBQueryEngine() as ctx:</pre> <pre class="line after"><span class="ws"> </span>return format_query_output(ctx.query_data(sql_conditions))</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"></span>def get_by_date(provenance, obs_date):</pre> <pre class="line after"><span class="ws"> </span>obs_date = iso8601.parse_date(obs_date)</pre></div> </div> <li><div class="frame" id="frame-140441524687760"> <h4>File <cite class="filename">"/property_service/propertyservice/data/property_db_query_engine.py"</cite>, line <em class="line">21</em>, in <code class="function">__init__</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>self.__pg = PostgresNoSQLClient(host=flarecast_config.DB_HOST,</pre> <pre class="line before"><span class="ws"> </span>port=flarecast_config.DB_PORT,</pre> <pre class="line before"><span class="ws"> </span>user=flarecast_config.DB_USER,</pre> <pre class="line before"><span class="ws"> </span>password=flarecast_config.DB_PASSWORD)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>self.__db = self.__pg[config.PROPERTY_DATABASE]</pre> <pre class="line after"><span class="ws"> </span>self.__property_type = self.__db[config.PROPERTY_TYPE_TABLE]</pre> <pre class="line after"><span class="ws"> </span>self.__link_view = self.__db.get_view(LINK_VIEW)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span># load keys</pre> <pre class="line after"><span class="ws"> </span>self.property_types = self.__get_property_types()</pre></div> </div> <li><div class="frame" id="frame-140441524688400"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py"</cite>, line <em class="line">96</em>, in <code class="function">__getitem__</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>print(e)</pre> <pre class="line before"><span class="ws"> </span>self.__close()</pre> <pre class="line before"><span class="ws"> </span>return exists</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def __getitem__(self, item):</pre> <pre class="line current"><span class="ws"> </span>return self.get_or_create_database(item)</pre></div> </div> <li><div class="frame" id="frame-140441524688528"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py"</cite>, line <em class="line">64</em>, in <code class="function">get_or_create_database</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>self.__close()</pre> <pre class="line before"><span class="ws"> </span>return db_object</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def get_or_create_database(self, database_name):</pre> <pre class="line current"><span class="ws"> </span>self.__connect()</pre> <pre class="line after"><span class="ws"> </span>db = self.get_database(database_name)</pre> <pre class="line after"><span class="ws"> </span>if not db:</pre> <pre class="line after"><span class="ws"> </span>db = self.create_database(database_name)</pre> <pre class="line after"><span class="ws"> </span>self.__close()</pre> <pre class="line after"><span class="ws"> </span>return db</pre></div> </div> <li><div class="frame" id="frame-140441524688592"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py"</cite>, line <em class="line">36</em>, in <code class="function">__connect</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def __connect(self):</pre> <pre class="line before"><span class="ws"> </span>self.__connect_counter += 1</pre> <pre class="line before"><span class="ws"> </span>if not self.__connection:</pre> <pre class="line before"><span class="ws"> </span>self.__connection = psycopg2.connect(host=self.host, database=self.database, port=self.port,</pre> <pre class="line current"><span class="ws"> </span>user=self.__user, password=self.__password)</pre> <pre class="line after"><span class="ws"> </span>self.__connection.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT)</pre> <pre class="line after"><span class="ws"> </span>self.__cursor = self.__connection.cursor()</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def __close(self):</pre> <pre class="line after"><span class="ws"> </span>self.__connect_counter -= 1</pre></div> </div> <li><div class="frame" id="frame-140441524688656"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/psycopg2/__init__.py"</cite>, line <em class="line">164</em>, in <code class="function">connect</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>raise TypeError('missing dsn and no parameters')</pre> <pre class="line before"><span class="ws"> </span>else:</pre> <pre class="line before"><span class="ws"> </span>dsn = " ".join(["%s=%s" % (k, _param_escape(str(v)))</pre> <pre class="line before"><span class="ws"> </span>for (k, v) in items])</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>conn = _connect(dsn, connection_factory=connection_factory, async=async)</pre> <pre class="line after"><span class="ws"> </span>if cursor_factory is not None:</pre> <pre class="line after"><span class="ws"> </span>conn.cursor_factory = cursor_factory</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>return conn</pre></div> </div> </ul> <blockquote>OperationalError: FATAL: the database system is starting up</blockquote> </div> <div class="plain"> <form action="/?__debugger__=yes&cmd=paste" method="post"> <p> <input type="hidden" name="language" value="pytb"> This is the Copy/Paste friendly version of the traceback. <span class="pastemessage">You can also paste this traceback into a <a href="https://gist.github.com/">gist</a>: <input type="submit" value="create paste"></span> </p> <textarea cols="50" rows="10" name="code" readonly>Traceback (most recent call last): File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__ return self.wsgi_app(environ, start_response) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app response = self.make_response(self.handle_exception(e)) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app response = self.full_dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request rv = self.handle_user_exception(e) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request rv = self.dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py", line 288, in wrapper response = function(*args, **kwargs) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/produces.py", line 116, in wrapper data, status_code, headers = self.get_full_response(function(*args, **kwargs)) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/parameter.py", line 89, in wrapper return function(*args, **kwargs) File "/property_service/propertyservice/routes/query.py", line 43, in find with PropertyDBQueryEngine() as ctx: File "/property_service/propertyservice/data/property_db_query_engine.py", line 21, in __init__ self.__db = self.__pg[config.PROPERTY_DATABASE] File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 96, in __getitem__ return self.get_or_create_database(item) File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 64, in get_or_create_database self.__connect() File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 36, in __connect user=self.__user, password=self.__password) File "/usr/local/lib/python2.7/site-packages/psycopg2/__init__.py", line 164, in connect conn = _connect(dsn, connection_factory=connection_factory, async=async) OperationalError: FATAL: the database system is starting up</textarea> </form> </div> <div class="explanation"> The debugger caught an exception in your WSGI application. You can now look at the traceback which led to the error. <span class="nojavascript"> If you enable JavaScript you can also use additional features such as code execution (if the evalex feature is enabled), automatic pasting of the exceptions and much more.</span> </div> <div class="footer"> Brought to you by <strong class="arthur">DON'T PANIC</strong>, your friendly Werkzeug powered traceback interpreter. </div> </div> <div class="pin-prompt"> <div class="inner"> <h3>Console Locked</h3> <p> The console is locked and needs to be unlocked by entering the PIN. You can find the PIN printed out on the standard output of your shell that runs the server. <form> <p>PIN: <input type=text name=pin size=14> <input type=submit name=btn value="Confirm Pin"> </form> </div> </div> </body> </html> <!-- Traceback (most recent call last): File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__ return self.wsgi_app(environ, start_response) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app response = self.make_response(self.handle_exception(e)) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app response = self.full_dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request rv = self.handle_user_exception(e) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request rv = self.dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py", line 288, in wrapper response = function(*args, **kwargs) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/produces.py", line 116, in wrapper data, status_code, headers = self.get_full_response(function(*args, **kwargs)) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/parameter.py", line 89, in wrapper return function(*args, **kwargs) File "/property_service/propertyservice/routes/query.py", line 43, in find with PropertyDBQueryEngine() as ctx: File "/property_service/propertyservice/data/property_db_query_engine.py", line 21, in __init__ self.__db = self.__pg[config.PROPERTY_DATABASE] File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 96, in __getitem__ return self.get_or_create_database(item) File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 64, in get_or_create_database self.__connect() File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 36, in __connect user=self.__user, password=self.__password) File "/usr/local/lib/python2.7/site-packages/psycopg2/__init__.py", line 164, in connect conn = _connect(dsn, connection_factory=connection_factory, async=async) OperationalError: FATAL: the database system is starting up -->
self = <tests.property_tests.PropertyTests testMethod=test_add_multiple_properties_from_other_provenance>
def setUp(self):
super(PropertyTests, self).setUp()
> data = self.client.get_properties(TEST_PROVENANCE)
property_tests.py:13:
(486 more lines...)
|
| Collapse |
Failed
|
PropertyTests
test_add_one_property
History
|
< 1 sec |
IndexError: list index out of range
self = <tests.property_tests.PropertyTests testMethod=test_add_one_property>
def setUp(self):
super(PropertyTests, self).setUp()
data = self.client.get_properties(TEST_PROVENANCE)
> self.flarecast_id = data[0]['fc_id']
E IndexError: list index out of range
(2 more lines...)
|
| Collapse |
Failed
|
ProvenanceTests
test_add_multiple_provenances
History
|
< 1 sec |
RestException: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? // Werkzeug Debugger</title> <link rel="stylesheet" href="?__debugger__=yes&cmd=resource&f=style.css" type="text/css"> <!-- We need to make sure this has a favicon so that the debugger does not by accident trigger a request to /favicon.ico which might change the application state. --> <link rel="shortcut icon" href="?__debugger__=yes&cmd=resource&f=console.png"> <script src="?__debugger__=yes&cmd=resource&f=jquery.js"></script> <script src="?__debugger__=yes&cmd=resource&f=debugger.js"></script> <script type="text/javascript"> var TRACEBACK = 140441601518864, CONSOLE_MODE = false, EVALEX = true, EVALEX_TRUSTED = false, SECRET = "03528G3v7iTkYaX5wm2v"; </script> </head> <body> <div class="debugger"> <h1>psycopg2.OperationalError</h1> <div class="detail"> <p class="errormsg">OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432?</p> </div> <h2 class="traceback">Traceback <em>(most recent call last)</em></h2> <div class="traceback"> <ul><li><div class="frame" id="frame-140441601518928"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1836</em>, in <code class="function">__call__</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>'Flask.blueprints instead'), stacklevel=2)</pre> <pre class="line before"><span class="ws"> </span>return self.blueprints</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def __call__(self, environ, start_response):</pre> <pre class="line before"><span class="ws"> </span>"""Shortcut for :attr:`wsgi_app`."""</pre> <pre class="line current"><span class="ws"> </span>return self.wsgi_app(environ, start_response)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def __repr__(self):</pre> <pre class="line after"><span class="ws"> </span>return '<%s %r>' % (</pre> <pre class="line after"><span class="ws"> </span>self.__class__.__name__,</pre> <pre class="line after"><span class="ws"> </span>self.name,</pre></div> </div> <li><div class="frame" id="frame-140441601519120"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1820</em>, in <code class="function">wsgi_app</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>response = self.full_dispatch_request()</pre> <pre class="line before"><span class="ws"> </span>except Exception as e:</pre> <pre class="line before"><span class="ws"> </span>error = e</pre> <pre class="line current"><span class="ws"> </span>response = self.make_response(self.handle_exception(e))</pre> <pre class="line after"><span class="ws"> </span>return response(environ, start_response)</pre> <pre class="line after"><span class="ws"> </span>finally:</pre> <pre class="line after"><span class="ws"> </span>if self.should_ignore_error(error):</pre> <pre class="line after"><span class="ws"> </span>error = None</pre> <pre class="line after"><span class="ws"> </span>ctx.auto_pop(error)</pre></div> </div> <li><div class="frame" id="frame-140441601519184"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask_cors/extension.py"</cite>, line <em class="line">188</em>, in <code class="function">wrapped_function</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># Wrap exception handlers with cross_origin</pre> <pre class="line before"><span class="ws"> </span># These error handlers will still respect the behavior of the route</pre> <pre class="line before"><span class="ws"> </span>if options.get('intercept_exceptions', True):</pre> <pre class="line before"><span class="ws"> </span>def _after_request_decorator(f):</pre> <pre class="line before"><span class="ws"> </span>def wrapped_function(*args, **kwargs):</pre> <pre class="line current"><span class="ws"> </span>return cors_after_request(app.make_response(f(*args, **kwargs)))</pre> <pre class="line after"><span class="ws"> </span>return wrapped_function</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>if hasattr(app, 'handle_exception'):</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception = _after_request_decorator(</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception)</pre></div> </div> <li><div class="frame" id="frame-140441601518992"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1403</em>, in <code class="function">handle_exception</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># if we want to repropagate the exception, we can attempt to</pre> <pre class="line before"><span class="ws"> </span># raise it with the whole traceback in case we can do that</pre> <pre class="line before"><span class="ws"> </span># (the function was actually called from the except part)</pre> <pre class="line before"><span class="ws"> </span># otherwise, we just raise the error again</pre> <pre class="line before"><span class="ws"> </span>if exc_value is e:</pre> <pre class="line current"><span class="ws"> </span>reraise(exc_type, exc_value, tb)</pre> <pre class="line after"><span class="ws"> </span>else:</pre> <pre class="line after"><span class="ws"> </span>raise e</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>self.log_exception((exc_type, exc_value, tb))</pre> <pre class="line after"><span class="ws"> </span>if handler is None:</pre></div> </div> <li><div class="frame" id="frame-140441601519312"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1817</em>, in <code class="function">wsgi_app</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>ctx = self.request_context(environ)</pre> <pre class="line before"><span class="ws"> </span>ctx.push()</pre> <pre class="line before"><span class="ws"> </span>error = None</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line current"><span class="ws"> </span>response = self.full_dispatch_request()</pre> <pre class="line after"><span class="ws"> </span>except Exception as e:</pre> <pre class="line after"><span class="ws"> </span>error = e</pre> <pre class="line after"><span class="ws"> </span>response = self.make_response(self.handle_exception(e))</pre> <pre class="line after"><span class="ws"> </span>return response(environ, start_response)</pre> <pre class="line after"><span class="ws"> </span>finally:</pre></div> </div> <li><div class="frame" id="frame-140441601519376"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1477</em>, in <code class="function">full_dispatch_request</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>request_started.send(self)</pre> <pre class="line before"><span class="ws"> </span>rv = self.preprocess_request()</pre> <pre class="line before"><span class="ws"> </span>if rv is None:</pre> <pre class="line before"><span class="ws"> </span>rv = self.dispatch_request()</pre> <pre class="line before"><span class="ws"> </span>except Exception as e:</pre> <pre class="line current"><span class="ws"> </span>rv = self.handle_user_exception(e)</pre> <pre class="line after"><span class="ws"> </span>response = self.make_response(rv)</pre> <pre class="line after"><span class="ws"> </span>response = self.process_response(response)</pre> <pre class="line after"><span class="ws"> </span>request_finished.send(self, response=response)</pre> <pre class="line after"><span class="ws"> </span>return response</pre> <pre class="line after"><span class="ws"></span> </pre></div> </div> <li><div class="frame" id="frame-140441601519440"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask_cors/extension.py"</cite>, line <em class="line">188</em>, in <code class="function">wrapped_function</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># Wrap exception handlers with cross_origin</pre> <pre class="line before"><span class="ws"> </span># These error handlers will still respect the behavior of the route</pre> <pre class="line before"><span class="ws"> </span>if options.get('intercept_exceptions', True):</pre> <pre class="line before"><span class="ws"> </span>def _after_request_decorator(f):</pre> <pre class="line before"><span class="ws"> </span>def wrapped_function(*args, **kwargs):</pre> <pre class="line current"><span class="ws"> </span>return cors_after_request(app.make_response(f(*args, **kwargs)))</pre> <pre class="line after"><span class="ws"> </span>return wrapped_function</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>if hasattr(app, 'handle_exception'):</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception = _after_request_decorator(</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception)</pre></div> </div> <li><div class="frame" id="frame-140441601519056"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1381</em>, in <code class="function">handle_user_exception</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>app_handlers = self.error_handler_spec[None].get(None, ())</pre> <pre class="line before"><span class="ws"> </span>for typecheck, handler in chain(blueprint_handlers, app_handlers):</pre> <pre class="line before"><span class="ws"> </span>if isinstance(e, typecheck):</pre> <pre class="line before"><span class="ws"> </span>return handler(e)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>reraise(exc_type, exc_value, tb)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def handle_exception(self, e):</pre> <pre class="line after"><span class="ws"> </span>"""Default exception handling that kicks in when an exception</pre> <pre class="line after"><span class="ws"> </span>occurs that is not caught. In debug mode the exception will</pre> <pre class="line after"><span class="ws"> </span>be re-raised immediately, otherwise it is logged and the handler</pre></div> </div> <li><div class="frame" id="frame-140441601519568"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1475</em>, in <code class="function">full_dispatch_request</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>self.try_trigger_before_first_request_functions()</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>request_started.send(self)</pre> <pre class="line before"><span class="ws"> </span>rv = self.preprocess_request()</pre> <pre class="line before"><span class="ws"> </span>if rv is None:</pre> <pre class="line current"><span class="ws"> </span>rv = self.dispatch_request()</pre> <pre class="line after"><span class="ws"> </span>except Exception as e:</pre> <pre class="line after"><span class="ws"> </span>rv = self.handle_user_exception(e)</pre> <pre class="line after"><span class="ws"> </span>response = self.make_response(rv)</pre> <pre class="line after"><span class="ws"> </span>response = self.process_response(response)</pre> <pre class="line after"><span class="ws"> </span>request_finished.send(self, response=response)</pre></div> </div> <li><div class="frame" id="frame-140441601519248"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1461</em>, in <code class="function">dispatch_request</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># request came with the OPTIONS method, reply automatically</pre> <pre class="line before"><span class="ws"> </span>if getattr(rule, 'provide_automatic_options', False) \</pre> <pre class="line before"><span class="ws"> </span>and req.method == 'OPTIONS':</pre> <pre class="line before"><span class="ws"> </span>return self.make_default_options_response()</pre> <pre class="line before"><span class="ws"> </span># otherwise dispatch to the handler for that endpoint</pre> <pre class="line current"><span class="ws"> </span>return self.view_functions[rule.endpoint](**req.view_args)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def full_dispatch_request(self):</pre> <pre class="line after"><span class="ws"> </span>"""Dispatches the request and on top of that performs request</pre> <pre class="line after"><span class="ws"> </span>pre and postprocessing as well as HTTP exception catching and</pre> <pre class="line after"><span class="ws"> </span>error handling.</pre></div> </div> <li><div class="frame" id="frame-140441601519504"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py"</cite>, line <em class="line">176</em>, in <code class="function">wrapper</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>logger.debug("%s validating schema...", flask.request.url)</pre> <pre class="line before"><span class="ws"> </span>error = self.validate_schema(data, self.schema)</pre> <pre class="line before"><span class="ws"> </span>if error:</pre> <pre class="line before"><span class="ws"> </span>return error</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>response = function(*args, **kwargs)</pre> <pre class="line after"><span class="ws"> </span>return response</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>return wrapper</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def validate_schema(self, data, schema):</pre></div> </div> <li><div class="frame" id="frame-140441601618064"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py"</cite>, line <em class="line">288</em>, in <code class="function">wrapper</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>for param in self.parameters.get('header', []):</pre> <pre class="line before"><span class="ws"> </span>error = self.validate_header_parameter(param)</pre> <pre class="line before"><span class="ws"> </span>if error:</pre> <pre class="line before"><span class="ws"> </span>return problem(400, 'Bad Request', error)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>response = function(*args, **kwargs)</pre> <pre class="line after"><span class="ws"> </span>return response</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>return wrapper</pre></div> </div> <li><div class="frame" id="frame-140441601618128"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/connexion/decorators/produces.py"</cite>, line <em class="line">116</em>, in <code class="function">wrapper</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>@functools.wraps(function)</pre> <pre class="line before"><span class="ws"> </span>def wrapper(*args, **kwargs):</pre> <pre class="line before"><span class="ws"> </span>url = flask.request.url</pre> <pre class="line before"><span class="ws"> </span>logger.debug('Jsonifing %s', url, extra={'url': url, 'mimetype': self.mimetype})</pre> <pre class="line current"><span class="ws"> </span>data, status_code, headers = self.get_full_response(function(*args, **kwargs))</pre> <pre class="line after"><span class="ws"> </span>if isinstance(data, flask.Response): # if the function returns a Response object don't change it</pre> <pre class="line after"><span class="ws"> </span>logger.debug('Endpoint returned a Flask Response', extra={'url': url, 'mimetype': data.mimetype})</pre> <pre class="line after"><span class="ws"> </span>return data</pre> <pre class="line after"><span class="ws"> </span>elif data is NoContent:</pre> <pre class="line after"><span class="ws"> </span>return '', status_code</pre></div> </div> <li><div class="frame" id="frame-140441601618192"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/connexion/decorators/parameter.py"</cite>, line <em class="line">89</em>, in <code class="function">wrapper</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>logger.debug("Query Parameter '%s' in function arguments", key)</pre> <pre class="line before"><span class="ws"> </span>query_param = query_types[key]</pre> <pre class="line before"><span class="ws"> </span>logger.debug('%s is a %s', key, query_param)</pre> <pre class="line before"><span class="ws"> </span>kwargs[key] = get_val_from_param(value, query_param)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>return function(*args, **kwargs)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>return wrapper</pre></div> </div> <li><div class="frame" id="frame-140441601618256"> <h4>File <cite class="filename">"/property_service/propertyservice/routes/provenance.py"</cite>, line <em class="line">17</em>, in <code class="function">bulk</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>return __insert(post_data)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"></span>def bulk():</pre> <pre class="line before"><span class="ws"> </span>post_data = request.json</pre> <pre class="line current"><span class="ws"> </span>return __insert(post_data)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"></span>def list():</pre> <pre class="line after"><span class="ws"> </span>with PropertyDBDataSource() as ctx:</pre> <pre class="line after"><span class="ws"> </span>provs = format_get_output(ctx.get_provenances())</pre></div> </div> <li><div class="frame" id="frame-140441601618000"> <h4>File <cite class="filename">"/property_service/propertyservice/routes/provenance.py"</cite>, line <em class="line">35</em>, in <code class="function">__insert</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"></span>def __insert(post_data):</pre> <pre class="line before"><span class="ws"> </span>result = []</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>with PropertyDBDataSource() as ctx:</pre> <pre class="line after"><span class="ws"> </span>for provenance in post_data:</pre> <pre class="line after"><span class="ws"> </span># if property exists do nothing</pre> <pre class="line after"><span class="ws"> </span>prov = ctx.get_provenance_by_name(provenance)</pre> <pre class="line after"><span class="ws"> </span>if prov is not None:</pre> <pre class="line after"><span class="ws"> </span>result.append(prov.id)</pre></div> </div> <li><div class="frame" id="frame-140441601618320"> <h4>File <cite class="filename">"/property_service/propertyservice/data/property_db_data_source.py"</cite>, line <em class="line">19</em>, in <code class="function">__init__</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>self.__pg = PostgresNoSQLClient(host=flarecast_config.DB_HOST,</pre> <pre class="line before"><span class="ws"> </span>port=flarecast_config.DB_PORT,</pre> <pre class="line before"><span class="ws"> </span>user=flarecast_config.DB_USER,</pre> <pre class="line before"><span class="ws"> </span>password=flarecast_config.DB_PASSWORD)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>self.__db = self.__pg[config.PROPERTY_DATABASE]</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>self.__property_group = self.__db[config.PROPERTY_GROUP_TABLE]</pre> <pre class="line after"><span class="ws"> </span>self.__property = self.__db[config.PROPERTY_TABLE]</pre> <pre class="line after"><span class="ws"> </span>self.__property_type = self.__db[config.PROPERTY_TYPE_TABLE]</pre> <pre class="line after"><span class="ws"> </span>self.__provenance = self.__db[config.PROVENANCE_TABLE]</pre></div> </div> <li><div class="frame" id="frame-140441601618384"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py"</cite>, line <em class="line">96</em>, in <code class="function">__getitem__</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>print(e)</pre> <pre class="line before"><span class="ws"> </span>self.__close()</pre> <pre class="line before"><span class="ws"> </span>return exists</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def __getitem__(self, item):</pre> <pre class="line current"><span class="ws"> </span>return self.get_or_create_database(item)</pre></div> </div> <li><div class="frame" id="frame-140441601618512"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py"</cite>, line <em class="line">64</em>, in <code class="function">get_or_create_database</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>self.__close()</pre> <pre class="line before"><span class="ws"> </span>return db_object</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def get_or_create_database(self, database_name):</pre> <pre class="line current"><span class="ws"> </span>self.__connect()</pre> <pre class="line after"><span class="ws"> </span>db = self.get_database(database_name)</pre> <pre class="line after"><span class="ws"> </span>if not db:</pre> <pre class="line after"><span class="ws"> </span>db = self.create_database(database_name)</pre> <pre class="line after"><span class="ws"> </span>self.__close()</pre> <pre class="line after"><span class="ws"> </span>return db</pre></div> </div> <li><div class="frame" id="frame-140441601618576"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py"</cite>, line <em class="line">36</em>, in <code class="function">__connect</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def __connect(self):</pre> <pre class="line before"><span class="ws"> </span>self.__connect_counter += 1</pre> <pre class="line before"><span class="ws"> </span>if not self.__connection:</pre> <pre class="line before"><span class="ws"> </span>self.__connection = psycopg2.connect(host=self.host, database=self.database, port=self.port,</pre> <pre class="line current"><span class="ws"> </span>user=self.__user, password=self.__password)</pre> <pre class="line after"><span class="ws"> </span>self.__connection.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT)</pre> <pre class="line after"><span class="ws"> </span>self.__cursor = self.__connection.cursor()</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def __close(self):</pre> <pre class="line after"><span class="ws"> </span>self.__connect_counter -= 1</pre></div> </div> <li><div class="frame" id="frame-140441601618640"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/psycopg2/__init__.py"</cite>, line <em class="line">164</em>, in <code class="function">connect</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>raise TypeError('missing dsn and no parameters')</pre> <pre class="line before"><span class="ws"> </span>else:</pre> <pre class="line before"><span class="ws"> </span>dsn = " ".join(["%s=%s" % (k, _param_escape(str(v)))</pre> <pre class="line before"><span class="ws"> </span>for (k, v) in items])</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>conn = _connect(dsn, connection_factory=connection_factory, async=async)</pre> <pre class="line after"><span class="ws"> </span>if cursor_factory is not None:</pre> <pre class="line after"><span class="ws"> </span>conn.cursor_factory = cursor_factory</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>return conn</pre></div> </div> </ul> <blockquote>OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432?</blockquote> </div> <div class="plain"> <form action="/?__debugger__=yes&cmd=paste" method="post"> <p> <input type="hidden" name="language" value="pytb"> This is the Copy/Paste friendly version of the traceback. <span class="pastemessage">You can also paste this traceback into a <a href="https://gist.github.com/">gist</a>: <input type="submit" value="create paste"></span> </p> <textarea cols="50" rows="10" name="code" readonly>Traceback (most recent call last): File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__ return self.wsgi_app(environ, start_response) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app response = self.make_response(self.handle_exception(e)) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app response = self.full_dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request rv = self.handle_user_exception(e) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request rv = self.dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py", line 176, in wrapper response = function(*args, **kwargs) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py", line 288, in wrapper response = function(*args, **kwargs) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/produces.py", line 116, in wrapper data, status_code, headers = self.get_full_response(function(*args, **kwargs)) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/parameter.py", line 89, in wrapper return function(*args, **kwargs) File "/property_service/propertyservice/routes/provenance.py", line 17, in bulk return __insert(post_data) File "/property_service/propertyservice/routes/provenance.py", line 35, in __insert with PropertyDBDataSource() as ctx: File "/property_service/propertyservice/data/property_db_data_source.py", line 19, in __init__ self.__db = self.__pg[config.PROPERTY_DATABASE] File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 96, in __getitem__ return self.get_or_create_database(item) File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 64, in get_or_create_database self.__connect() File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 36, in __connect user=self.__user, password=self.__password) File "/usr/local/lib/python2.7/site-packages/psycopg2/__init__.py", line 164, in connect conn = _connect(dsn, connection_factory=connection_factory, async=async) OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432?</textarea> </form> </div> <div class="explanation"> The debugger caught an exception in your WSGI application. You can now look at the traceback which led to the error. <span class="nojavascript"> If you enable JavaScript you can also use additional features such as code execution (if the evalex feature is enabled), automatic pasting of the exceptions and much more.</span> </div> <div class="footer"> Brought to you by <strong class="arthur">DON'T PANIC</strong>, your friendly Werkzeug powered traceback interpreter. </div> </div> <div class="pin-prompt"> <div class="inner"> <h3>Console Locked</h3> <p> The console is locked and needs to be unlocked by entering the PIN. You can find the PIN printed out on the standard output of your shell that runs the server. <form> <p>PIN: <input type=text name=pin size=14> <input type=submit name=btn value="Confirm Pin"> </form> </div> </div> </body> </html> <!-- Traceback (most recent call last): File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__ return self.wsgi_app(environ, start_response) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app response = self.make_response(self.handle_exception(e)) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app response = self.full_dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request rv = self.handle_user_exception(e) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request rv = self.dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py", line 176, in wrapper response = function(*args, **kwargs) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py", line 288, in wrapper response = function(*args, **kwargs) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/produces.py", line 116, in wrapper data, status_code, headers = self.get_full_response(function(*args, **kwargs)) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/parameter.py", line 89, in wrapper return function(*args, **kwargs) File "/property_service/propertyservice/routes/provenance.py", line 17, in bulk return __insert(post_data) File "/property_service/propertyservice/routes/provenance.py", line 35, in __insert with PropertyDBDataSource() as ctx: File "/property_service/propertyservice/data/property_db_data_source.py", line 19, in __init__ self.__db = self.__pg[config.PROPERTY_DATABASE] File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 96, in __getitem__ return self.get_or_create_database(item) File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 64, in get_or_create_database self.__connect() File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 36, in __connect user=self.__user, password=self.__password) File "/usr/local/lib/python2.7/site-packages/psycopg2/__init__.py", line 164, in connect conn = _connect(dsn, connection_factory=connection_factory, async=async) OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? -->
self = <tests.provenance_tests.ProvenanceTests testMethod=test_add_multiple_provenances>
def test_add_multiple_provenances(self):
> result = self.client.insert_provenances(TEST_PROVENANCES)
provenance_tests.py:14:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
(554 more lines...)
|
| Collapse |
Failed
|
ProvenanceTests
test_add_one_provenance
History
|
< 1 sec |
RestException: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? // Werkzeug Debugger</title> <link rel="stylesheet" href="?__debugger__=yes&cmd=resource&f=style.css" type="text/css"> <!-- We need to make sure this has a favicon so that the debugger does not by accident trigger a request to /favicon.ico which might change the application state. --> <link rel="shortcut icon" href="?__debugger__=yes&cmd=resource&f=console.png"> <script src="?__debugger__=yes&cmd=resource&f=jquery.js"></script> <script src="?__debugger__=yes&cmd=resource&f=debugger.js"></script> <script type="text/javascript"> var TRACEBACK = 140441546168272, CONSOLE_MODE = false, EVALEX = true, EVALEX_TRUSTED = false, SECRET = "03528G3v7iTkYaX5wm2v"; </script> </head> <body> <div class="debugger"> <h1>psycopg2.OperationalError</h1> <div class="detail"> <p class="errormsg">OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432?</p> </div> <h2 class="traceback">Traceback <em>(most recent call last)</em></h2> <div class="traceback"> <ul><li><div class="frame" id="frame-140441546168336"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1836</em>, in <code class="function">__call__</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>'Flask.blueprints instead'), stacklevel=2)</pre> <pre class="line before"><span class="ws"> </span>return self.blueprints</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def __call__(self, environ, start_response):</pre> <pre class="line before"><span class="ws"> </span>"""Shortcut for :attr:`wsgi_app`."""</pre> <pre class="line current"><span class="ws"> </span>return self.wsgi_app(environ, start_response)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def __repr__(self):</pre> <pre class="line after"><span class="ws"> </span>return '<%s %r>' % (</pre> <pre class="line after"><span class="ws"> </span>self.__class__.__name__,</pre> <pre class="line after"><span class="ws"> </span>self.name,</pre></div> </div> <li><div class="frame" id="frame-140441546168528"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1820</em>, in <code class="function">wsgi_app</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>response = self.full_dispatch_request()</pre> <pre class="line before"><span class="ws"> </span>except Exception as e:</pre> <pre class="line before"><span class="ws"> </span>error = e</pre> <pre class="line current"><span class="ws"> </span>response = self.make_response(self.handle_exception(e))</pre> <pre class="line after"><span class="ws"> </span>return response(environ, start_response)</pre> <pre class="line after"><span class="ws"> </span>finally:</pre> <pre class="line after"><span class="ws"> </span>if self.should_ignore_error(error):</pre> <pre class="line after"><span class="ws"> </span>error = None</pre> <pre class="line after"><span class="ws"> </span>ctx.auto_pop(error)</pre></div> </div> <li><div class="frame" id="frame-140441546168592"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask_cors/extension.py"</cite>, line <em class="line">188</em>, in <code class="function">wrapped_function</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># Wrap exception handlers with cross_origin</pre> <pre class="line before"><span class="ws"> </span># These error handlers will still respect the behavior of the route</pre> <pre class="line before"><span class="ws"> </span>if options.get('intercept_exceptions', True):</pre> <pre class="line before"><span class="ws"> </span>def _after_request_decorator(f):</pre> <pre class="line before"><span class="ws"> </span>def wrapped_function(*args, **kwargs):</pre> <pre class="line current"><span class="ws"> </span>return cors_after_request(app.make_response(f(*args, **kwargs)))</pre> <pre class="line after"><span class="ws"> </span>return wrapped_function</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>if hasattr(app, 'handle_exception'):</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception = _after_request_decorator(</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception)</pre></div> </div> <li><div class="frame" id="frame-140441546168400"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1403</em>, in <code class="function">handle_exception</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># if we want to repropagate the exception, we can attempt to</pre> <pre class="line before"><span class="ws"> </span># raise it with the whole traceback in case we can do that</pre> <pre class="line before"><span class="ws"> </span># (the function was actually called from the except part)</pre> <pre class="line before"><span class="ws"> </span># otherwise, we just raise the error again</pre> <pre class="line before"><span class="ws"> </span>if exc_value is e:</pre> <pre class="line current"><span class="ws"> </span>reraise(exc_type, exc_value, tb)</pre> <pre class="line after"><span class="ws"> </span>else:</pre> <pre class="line after"><span class="ws"> </span>raise e</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>self.log_exception((exc_type, exc_value, tb))</pre> <pre class="line after"><span class="ws"> </span>if handler is None:</pre></div> </div> <li><div class="frame" id="frame-140441546168720"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1817</em>, in <code class="function">wsgi_app</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>ctx = self.request_context(environ)</pre> <pre class="line before"><span class="ws"> </span>ctx.push()</pre> <pre class="line before"><span class="ws"> </span>error = None</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line current"><span class="ws"> </span>response = self.full_dispatch_request()</pre> <pre class="line after"><span class="ws"> </span>except Exception as e:</pre> <pre class="line after"><span class="ws"> </span>error = e</pre> <pre class="line after"><span class="ws"> </span>response = self.make_response(self.handle_exception(e))</pre> <pre class="line after"><span class="ws"> </span>return response(environ, start_response)</pre> <pre class="line after"><span class="ws"> </span>finally:</pre></div> </div> <li><div class="frame" id="frame-140441546168784"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1477</em>, in <code class="function">full_dispatch_request</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>request_started.send(self)</pre> <pre class="line before"><span class="ws"> </span>rv = self.preprocess_request()</pre> <pre class="line before"><span class="ws"> </span>if rv is None:</pre> <pre class="line before"><span class="ws"> </span>rv = self.dispatch_request()</pre> <pre class="line before"><span class="ws"> </span>except Exception as e:</pre> <pre class="line current"><span class="ws"> </span>rv = self.handle_user_exception(e)</pre> <pre class="line after"><span class="ws"> </span>response = self.make_response(rv)</pre> <pre class="line after"><span class="ws"> </span>response = self.process_response(response)</pre> <pre class="line after"><span class="ws"> </span>request_finished.send(self, response=response)</pre> <pre class="line after"><span class="ws"> </span>return response</pre> <pre class="line after"><span class="ws"></span> </pre></div> </div> <li><div class="frame" id="frame-140441546168848"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask_cors/extension.py"</cite>, line <em class="line">188</em>, in <code class="function">wrapped_function</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># Wrap exception handlers with cross_origin</pre> <pre class="line before"><span class="ws"> </span># These error handlers will still respect the behavior of the route</pre> <pre class="line before"><span class="ws"> </span>if options.get('intercept_exceptions', True):</pre> <pre class="line before"><span class="ws"> </span>def _after_request_decorator(f):</pre> <pre class="line before"><span class="ws"> </span>def wrapped_function(*args, **kwargs):</pre> <pre class="line current"><span class="ws"> </span>return cors_after_request(app.make_response(f(*args, **kwargs)))</pre> <pre class="line after"><span class="ws"> </span>return wrapped_function</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>if hasattr(app, 'handle_exception'):</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception = _after_request_decorator(</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception)</pre></div> </div> <li><div class="frame" id="frame-140441546168464"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1381</em>, in <code class="function">handle_user_exception</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>app_handlers = self.error_handler_spec[None].get(None, ())</pre> <pre class="line before"><span class="ws"> </span>for typecheck, handler in chain(blueprint_handlers, app_handlers):</pre> <pre class="line before"><span class="ws"> </span>if isinstance(e, typecheck):</pre> <pre class="line before"><span class="ws"> </span>return handler(e)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>reraise(exc_type, exc_value, tb)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def handle_exception(self, e):</pre> <pre class="line after"><span class="ws"> </span>"""Default exception handling that kicks in when an exception</pre> <pre class="line after"><span class="ws"> </span>occurs that is not caught. In debug mode the exception will</pre> <pre class="line after"><span class="ws"> </span>be re-raised immediately, otherwise it is logged and the handler</pre></div> </div> <li><div class="frame" id="frame-140441546168976"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1475</em>, in <code class="function">full_dispatch_request</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>self.try_trigger_before_first_request_functions()</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>request_started.send(self)</pre> <pre class="line before"><span class="ws"> </span>rv = self.preprocess_request()</pre> <pre class="line before"><span class="ws"> </span>if rv is None:</pre> <pre class="line current"><span class="ws"> </span>rv = self.dispatch_request()</pre> <pre class="line after"><span class="ws"> </span>except Exception as e:</pre> <pre class="line after"><span class="ws"> </span>rv = self.handle_user_exception(e)</pre> <pre class="line after"><span class="ws"> </span>response = self.make_response(rv)</pre> <pre class="line after"><span class="ws"> </span>response = self.process_response(response)</pre> <pre class="line after"><span class="ws"> </span>request_finished.send(self, response=response)</pre></div> </div> <li><div class="frame" id="frame-140441546169040"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1461</em>, in <code class="function">dispatch_request</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># request came with the OPTIONS method, reply automatically</pre> <pre class="line before"><span class="ws"> </span>if getattr(rule, 'provide_automatic_options', False) \</pre> <pre class="line before"><span class="ws"> </span>and req.method == 'OPTIONS':</pre> <pre class="line before"><span class="ws"> </span>return self.make_default_options_response()</pre> <pre class="line before"><span class="ws"> </span># otherwise dispatch to the handler for that endpoint</pre> <pre class="line current"><span class="ws"> </span>return self.view_functions[rule.endpoint](**req.view_args)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def full_dispatch_request(self):</pre> <pre class="line after"><span class="ws"> </span>"""Dispatches the request and on top of that performs request</pre> <pre class="line after"><span class="ws"> </span>pre and postprocessing as well as HTTP exception catching and</pre> <pre class="line after"><span class="ws"> </span>error handling.</pre></div> </div> <li><div class="frame" id="frame-140441546169104"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py"</cite>, line <em class="line">176</em>, in <code class="function">wrapper</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>logger.debug("%s validating schema...", flask.request.url)</pre> <pre class="line before"><span class="ws"> </span>error = self.validate_schema(data, self.schema)</pre> <pre class="line before"><span class="ws"> </span>if error:</pre> <pre class="line before"><span class="ws"> </span>return error</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>response = function(*args, **kwargs)</pre> <pre class="line after"><span class="ws"> </span>return response</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>return wrapper</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def validate_schema(self, data, schema):</pre></div> </div> <li><div class="frame" id="frame-140441546168912"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py"</cite>, line <em class="line">288</em>, in <code class="function">wrapper</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>for param in self.parameters.get('header', []):</pre> <pre class="line before"><span class="ws"> </span>error = self.validate_header_parameter(param)</pre> <pre class="line before"><span class="ws"> </span>if error:</pre> <pre class="line before"><span class="ws"> </span>return problem(400, 'Bad Request', error)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>response = function(*args, **kwargs)</pre> <pre class="line after"><span class="ws"> </span>return response</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>return wrapper</pre></div> </div> <li><div class="frame" id="frame-140441546169168"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/connexion/decorators/produces.py"</cite>, line <em class="line">116</em>, in <code class="function">wrapper</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>@functools.wraps(function)</pre> <pre class="line before"><span class="ws"> </span>def wrapper(*args, **kwargs):</pre> <pre class="line before"><span class="ws"> </span>url = flask.request.url</pre> <pre class="line before"><span class="ws"> </span>logger.debug('Jsonifing %s', url, extra={'url': url, 'mimetype': self.mimetype})</pre> <pre class="line current"><span class="ws"> </span>data, status_code, headers = self.get_full_response(function(*args, **kwargs))</pre> <pre class="line after"><span class="ws"> </span>if isinstance(data, flask.Response): # if the function returns a Response object don't change it</pre> <pre class="line after"><span class="ws"> </span>logger.debug('Endpoint returned a Flask Response', extra={'url': url, 'mimetype': data.mimetype})</pre> <pre class="line after"><span class="ws"> </span>return data</pre> <pre class="line after"><span class="ws"> </span>elif data is NoContent:</pre> <pre class="line after"><span class="ws"> </span>return '', status_code</pre></div> </div> <li><div class="frame" id="frame-140441546169232"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/connexion/decorators/parameter.py"</cite>, line <em class="line">89</em>, in <code class="function">wrapper</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>logger.debug("Query Parameter '%s' in function arguments", key)</pre> <pre class="line before"><span class="ws"> </span>query_param = query_types[key]</pre> <pre class="line before"><span class="ws"> </span>logger.debug('%s is a %s', key, query_param)</pre> <pre class="line before"><span class="ws"> </span>kwargs[key] = get_val_from_param(value, query_param)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>return function(*args, **kwargs)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>return wrapper</pre></div> </div> <li><div class="frame" id="frame-140441546169296"> <h4>File <cite class="filename">"/property_service/propertyservice/routes/provenance.py"</cite>, line <em class="line">12</em>, in <code class="function">add</code></h4> <div class="source"><pre class="line before"><span class="ws"></span>__author__ = 'cansik'</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"></span>def add():</pre> <pre class="line before"><span class="ws"> </span>post_data = [request.json]</pre> <pre class="line current"><span class="ws"> </span>return __insert(post_data)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"></span>def bulk():</pre> <pre class="line after"><span class="ws"> </span>post_data = request.json</pre> <pre class="line after"><span class="ws"> </span>return __insert(post_data)</pre></div> </div> <li><div class="frame" id="frame-140441546168656"> <h4>File <cite class="filename">"/property_service/propertyservice/routes/provenance.py"</cite>, line <em class="line">35</em>, in <code class="function">__insert</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"></span>def __insert(post_data):</pre> <pre class="line before"><span class="ws"> </span>result = []</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>with PropertyDBDataSource() as ctx:</pre> <pre class="line after"><span class="ws"> </span>for provenance in post_data:</pre> <pre class="line after"><span class="ws"> </span># if property exists do nothing</pre> <pre class="line after"><span class="ws"> </span>prov = ctx.get_provenance_by_name(provenance)</pre> <pre class="line after"><span class="ws"> </span>if prov is not None:</pre> <pre class="line after"><span class="ws"> </span>result.append(prov.id)</pre></div> </div> <li><div class="frame" id="frame-140441546169360"> <h4>File <cite class="filename">"/property_service/propertyservice/data/property_db_data_source.py"</cite>, line <em class="line">19</em>, in <code class="function">__init__</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>self.__pg = PostgresNoSQLClient(host=flarecast_config.DB_HOST,</pre> <pre class="line before"><span class="ws"> </span>port=flarecast_config.DB_PORT,</pre> <pre class="line before"><span class="ws"> </span>user=flarecast_config.DB_USER,</pre> <pre class="line before"><span class="ws"> </span>password=flarecast_config.DB_PASSWORD)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>self.__db = self.__pg[config.PROPERTY_DATABASE]</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>self.__property_group = self.__db[config.PROPERTY_GROUP_TABLE]</pre> <pre class="line after"><span class="ws"> </span>self.__property = self.__db[config.PROPERTY_TABLE]</pre> <pre class="line after"><span class="ws"> </span>self.__property_type = self.__db[config.PROPERTY_TYPE_TABLE]</pre> <pre class="line after"><span class="ws"> </span>self.__provenance = self.__db[config.PROVENANCE_TABLE]</pre></div> </div> <li><div class="frame" id="frame-140441546169424"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py"</cite>, line <em class="line">96</em>, in <code class="function">__getitem__</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>print(e)</pre> <pre class="line before"><span class="ws"> </span>self.__close()</pre> <pre class="line before"><span class="ws"> </span>return exists</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def __getitem__(self, item):</pre> <pre class="line current"><span class="ws"> </span>return self.get_or_create_database(item)</pre></div> </div> <li><div class="frame" id="frame-140441546169552"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py"</cite>, line <em class="line">64</em>, in <code class="function">get_or_create_database</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>self.__close()</pre> <pre class="line before"><span class="ws"> </span>return db_object</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def get_or_create_database(self, database_name):</pre> <pre class="line current"><span class="ws"> </span>self.__connect()</pre> <pre class="line after"><span class="ws"> </span>db = self.get_database(database_name)</pre> <pre class="line after"><span class="ws"> </span>if not db:</pre> <pre class="line after"><span class="ws"> </span>db = self.create_database(database_name)</pre> <pre class="line after"><span class="ws"> </span>self.__close()</pre> <pre class="line after"><span class="ws"> </span>return db</pre></div> </div> <li><div class="frame" id="frame-140441546169616"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py"</cite>, line <em class="line">36</em>, in <code class="function">__connect</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def __connect(self):</pre> <pre class="line before"><span class="ws"> </span>self.__connect_counter += 1</pre> <pre class="line before"><span class="ws"> </span>if not self.__connection:</pre> <pre class="line before"><span class="ws"> </span>self.__connection = psycopg2.connect(host=self.host, database=self.database, port=self.port,</pre> <pre class="line current"><span class="ws"> </span>user=self.__user, password=self.__password)</pre> <pre class="line after"><span class="ws"> </span>self.__connection.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT)</pre> <pre class="line after"><span class="ws"> </span>self.__cursor = self.__connection.cursor()</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def __close(self):</pre> <pre class="line after"><span class="ws"> </span>self.__connect_counter -= 1</pre></div> </div> <li><div class="frame" id="frame-140441546169680"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/psycopg2/__init__.py"</cite>, line <em class="line">164</em>, in <code class="function">connect</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>raise TypeError('missing dsn and no parameters')</pre> <pre class="line before"><span class="ws"> </span>else:</pre> <pre class="line before"><span class="ws"> </span>dsn = " ".join(["%s=%s" % (k, _param_escape(str(v)))</pre> <pre class="line before"><span class="ws"> </span>for (k, v) in items])</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>conn = _connect(dsn, connection_factory=connection_factory, async=async)</pre> <pre class="line after"><span class="ws"> </span>if cursor_factory is not None:</pre> <pre class="line after"><span class="ws"> </span>conn.cursor_factory = cursor_factory</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>return conn</pre></div> </div> </ul> <blockquote>OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432?</blockquote> </div> <div class="plain"> <form action="/?__debugger__=yes&cmd=paste" method="post"> <p> <input type="hidden" name="language" value="pytb"> This is the Copy/Paste friendly version of the traceback. <span class="pastemessage">You can also paste this traceback into a <a href="https://gist.github.com/">gist</a>: <input type="submit" value="create paste"></span> </p> <textarea cols="50" rows="10" name="code" readonly>Traceback (most recent call last): File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__ return self.wsgi_app(environ, start_response) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app response = self.make_response(self.handle_exception(e)) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app response = self.full_dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request rv = self.handle_user_exception(e) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request rv = self.dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py", line 176, in wrapper response = function(*args, **kwargs) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py", line 288, in wrapper response = function(*args, **kwargs) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/produces.py", line 116, in wrapper data, status_code, headers = self.get_full_response(function(*args, **kwargs)) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/parameter.py", line 89, in wrapper return function(*args, **kwargs) File "/property_service/propertyservice/routes/provenance.py", line 12, in add return __insert(post_data) File "/property_service/propertyservice/routes/provenance.py", line 35, in __insert with PropertyDBDataSource() as ctx: File "/property_service/propertyservice/data/property_db_data_source.py", line 19, in __init__ self.__db = self.__pg[config.PROPERTY_DATABASE] File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 96, in __getitem__ return self.get_or_create_database(item) File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 64, in get_or_create_database self.__connect() File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 36, in __connect user=self.__user, password=self.__password) File "/usr/local/lib/python2.7/site-packages/psycopg2/__init__.py", line 164, in connect conn = _connect(dsn, connection_factory=connection_factory, async=async) OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432?</textarea> </form> </div> <div class="explanation"> The debugger caught an exception in your WSGI application. You can now look at the traceback which led to the error. <span class="nojavascript"> If you enable JavaScript you can also use additional features such as code execution (if the evalex feature is enabled), automatic pasting of the exceptions and much more.</span> </div> <div class="footer"> Brought to you by <strong class="arthur">DON'T PANIC</strong>, your friendly Werkzeug powered traceback interpreter. </div> </div> <div class="pin-prompt"> <div class="inner"> <h3>Console Locked</h3> <p> The console is locked and needs to be unlocked by entering the PIN. You can find the PIN printed out on the standard output of your shell that runs the server. <form> <p>PIN: <input type=text name=pin size=14> <input type=submit name=btn value="Confirm Pin"> </form> </div> </div> </body> </html> <!-- Traceback (most recent call last): File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__ return self.wsgi_app(environ, start_response) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app response = self.make_response(self.handle_exception(e)) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app response = self.full_dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request rv = self.handle_user_exception(e) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request rv = self.dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py", line 176, in wrapper response = function(*args, **kwargs) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py", line 288, in wrapper response = function(*args, **kwargs) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/produces.py", line 116, in wrapper data, status_code, headers = self.get_full_response(function(*args, **kwargs)) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/parameter.py", line 89, in wrapper return function(*args, **kwargs) File "/property_service/propertyservice/routes/provenance.py", line 12, in add return __insert(post_data) File "/property_service/propertyservice/routes/provenance.py", line 35, in __insert with PropertyDBDataSource() as ctx: File "/property_service/propertyservice/data/property_db_data_source.py", line 19, in __init__ self.__db = self.__pg[config.PROPERTY_DATABASE] File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 96, in __getitem__ return self.get_or_create_database(item) File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 64, in get_or_create_database self.__connect() File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 36, in __connect user=self.__user, password=self.__password) File "/usr/local/lib/python2.7/site-packages/psycopg2/__init__.py", line 164, in connect conn = _connect(dsn, connection_factory=connection_factory, async=async) OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? -->
self = <tests.provenance_tests.ProvenanceTests testMethod=test_add_one_provenance>
def test_add_one_provenance(self):
> result = self.client.add_provenance(TEST_PROVENANCE)
provenance_tests.py:10:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
(553 more lines...)
|
| Collapse |
Failed
|
ProvenanceTests
test_add_provenance_twice
History
|
< 1 sec |
RestException: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? // Werkzeug Debugger</title> <link rel="stylesheet" href="?__debugger__=yes&cmd=resource&f=style.css" type="text/css"> <!-- We need to make sure this has a favicon so that the debugger does not by accident trigger a request to /favicon.ico which might change the application state. --> <link rel="shortcut icon" href="?__debugger__=yes&cmd=resource&f=console.png"> <script src="?__debugger__=yes&cmd=resource&f=jquery.js"></script> <script src="?__debugger__=yes&cmd=resource&f=debugger.js"></script> <script type="text/javascript"> var TRACEBACK = 140441542070928, CONSOLE_MODE = false, EVALEX = true, EVALEX_TRUSTED = false, SECRET = "03528G3v7iTkYaX5wm2v"; </script> </head> <body> <div class="debugger"> <h1>psycopg2.OperationalError</h1> <div class="detail"> <p class="errormsg">OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432?</p> </div> <h2 class="traceback">Traceback <em>(most recent call last)</em></h2> <div class="traceback"> <ul><li><div class="frame" id="frame-140441542070992"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1836</em>, in <code class="function">__call__</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>'Flask.blueprints instead'), stacklevel=2)</pre> <pre class="line before"><span class="ws"> </span>return self.blueprints</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def __call__(self, environ, start_response):</pre> <pre class="line before"><span class="ws"> </span>"""Shortcut for :attr:`wsgi_app`."""</pre> <pre class="line current"><span class="ws"> </span>return self.wsgi_app(environ, start_response)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def __repr__(self):</pre> <pre class="line after"><span class="ws"> </span>return '<%s %r>' % (</pre> <pre class="line after"><span class="ws"> </span>self.__class__.__name__,</pre> <pre class="line after"><span class="ws"> </span>self.name,</pre></div> </div> <li><div class="frame" id="frame-140441542071184"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1820</em>, in <code class="function">wsgi_app</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>response = self.full_dispatch_request()</pre> <pre class="line before"><span class="ws"> </span>except Exception as e:</pre> <pre class="line before"><span class="ws"> </span>error = e</pre> <pre class="line current"><span class="ws"> </span>response = self.make_response(self.handle_exception(e))</pre> <pre class="line after"><span class="ws"> </span>return response(environ, start_response)</pre> <pre class="line after"><span class="ws"> </span>finally:</pre> <pre class="line after"><span class="ws"> </span>if self.should_ignore_error(error):</pre> <pre class="line after"><span class="ws"> </span>error = None</pre> <pre class="line after"><span class="ws"> </span>ctx.auto_pop(error)</pre></div> </div> <li><div class="frame" id="frame-140441542071248"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask_cors/extension.py"</cite>, line <em class="line">188</em>, in <code class="function">wrapped_function</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># Wrap exception handlers with cross_origin</pre> <pre class="line before"><span class="ws"> </span># These error handlers will still respect the behavior of the route</pre> <pre class="line before"><span class="ws"> </span>if options.get('intercept_exceptions', True):</pre> <pre class="line before"><span class="ws"> </span>def _after_request_decorator(f):</pre> <pre class="line before"><span class="ws"> </span>def wrapped_function(*args, **kwargs):</pre> <pre class="line current"><span class="ws"> </span>return cors_after_request(app.make_response(f(*args, **kwargs)))</pre> <pre class="line after"><span class="ws"> </span>return wrapped_function</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>if hasattr(app, 'handle_exception'):</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception = _after_request_decorator(</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception)</pre></div> </div> <li><div class="frame" id="frame-140441542071056"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1403</em>, in <code class="function">handle_exception</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># if we want to repropagate the exception, we can attempt to</pre> <pre class="line before"><span class="ws"> </span># raise it with the whole traceback in case we can do that</pre> <pre class="line before"><span class="ws"> </span># (the function was actually called from the except part)</pre> <pre class="line before"><span class="ws"> </span># otherwise, we just raise the error again</pre> <pre class="line before"><span class="ws"> </span>if exc_value is e:</pre> <pre class="line current"><span class="ws"> </span>reraise(exc_type, exc_value, tb)</pre> <pre class="line after"><span class="ws"> </span>else:</pre> <pre class="line after"><span class="ws"> </span>raise e</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>self.log_exception((exc_type, exc_value, tb))</pre> <pre class="line after"><span class="ws"> </span>if handler is None:</pre></div> </div> <li><div class="frame" id="frame-140441542071376"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1817</em>, in <code class="function">wsgi_app</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>ctx = self.request_context(environ)</pre> <pre class="line before"><span class="ws"> </span>ctx.push()</pre> <pre class="line before"><span class="ws"> </span>error = None</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line current"><span class="ws"> </span>response = self.full_dispatch_request()</pre> <pre class="line after"><span class="ws"> </span>except Exception as e:</pre> <pre class="line after"><span class="ws"> </span>error = e</pre> <pre class="line after"><span class="ws"> </span>response = self.make_response(self.handle_exception(e))</pre> <pre class="line after"><span class="ws"> </span>return response(environ, start_response)</pre> <pre class="line after"><span class="ws"> </span>finally:</pre></div> </div> <li><div class="frame" id="frame-140441542071440"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1477</em>, in <code class="function">full_dispatch_request</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>request_started.send(self)</pre> <pre class="line before"><span class="ws"> </span>rv = self.preprocess_request()</pre> <pre class="line before"><span class="ws"> </span>if rv is None:</pre> <pre class="line before"><span class="ws"> </span>rv = self.dispatch_request()</pre> <pre class="line before"><span class="ws"> </span>except Exception as e:</pre> <pre class="line current"><span class="ws"> </span>rv = self.handle_user_exception(e)</pre> <pre class="line after"><span class="ws"> </span>response = self.make_response(rv)</pre> <pre class="line after"><span class="ws"> </span>response = self.process_response(response)</pre> <pre class="line after"><span class="ws"> </span>request_finished.send(self, response=response)</pre> <pre class="line after"><span class="ws"> </span>return response</pre> <pre class="line after"><span class="ws"></span> </pre></div> </div> <li><div class="frame" id="frame-140441542071504"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask_cors/extension.py"</cite>, line <em class="line">188</em>, in <code class="function">wrapped_function</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># Wrap exception handlers with cross_origin</pre> <pre class="line before"><span class="ws"> </span># These error handlers will still respect the behavior of the route</pre> <pre class="line before"><span class="ws"> </span>if options.get('intercept_exceptions', True):</pre> <pre class="line before"><span class="ws"> </span>def _after_request_decorator(f):</pre> <pre class="line before"><span class="ws"> </span>def wrapped_function(*args, **kwargs):</pre> <pre class="line current"><span class="ws"> </span>return cors_after_request(app.make_response(f(*args, **kwargs)))</pre> <pre class="line after"><span class="ws"> </span>return wrapped_function</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>if hasattr(app, 'handle_exception'):</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception = _after_request_decorator(</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception)</pre></div> </div> <li><div class="frame" id="frame-140441542071120"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1381</em>, in <code class="function">handle_user_exception</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>app_handlers = self.error_handler_spec[None].get(None, ())</pre> <pre class="line before"><span class="ws"> </span>for typecheck, handler in chain(blueprint_handlers, app_handlers):</pre> <pre class="line before"><span class="ws"> </span>if isinstance(e, typecheck):</pre> <pre class="line before"><span class="ws"> </span>return handler(e)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>reraise(exc_type, exc_value, tb)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def handle_exception(self, e):</pre> <pre class="line after"><span class="ws"> </span>"""Default exception handling that kicks in when an exception</pre> <pre class="line after"><span class="ws"> </span>occurs that is not caught. In debug mode the exception will</pre> <pre class="line after"><span class="ws"> </span>be re-raised immediately, otherwise it is logged and the handler</pre></div> </div> <li><div class="frame" id="frame-140441542071632"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1475</em>, in <code class="function">full_dispatch_request</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>self.try_trigger_before_first_request_functions()</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>request_started.send(self)</pre> <pre class="line before"><span class="ws"> </span>rv = self.preprocess_request()</pre> <pre class="line before"><span class="ws"> </span>if rv is None:</pre> <pre class="line current"><span class="ws"> </span>rv = self.dispatch_request()</pre> <pre class="line after"><span class="ws"> </span>except Exception as e:</pre> <pre class="line after"><span class="ws"> </span>rv = self.handle_user_exception(e)</pre> <pre class="line after"><span class="ws"> </span>response = self.make_response(rv)</pre> <pre class="line after"><span class="ws"> </span>response = self.process_response(response)</pre> <pre class="line after"><span class="ws"> </span>request_finished.send(self, response=response)</pre></div> </div> <li><div class="frame" id="frame-140441542071696"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1461</em>, in <code class="function">dispatch_request</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># request came with the OPTIONS method, reply automatically</pre> <pre class="line before"><span class="ws"> </span>if getattr(rule, 'provide_automatic_options', False) \</pre> <pre class="line before"><span class="ws"> </span>and req.method == 'OPTIONS':</pre> <pre class="line before"><span class="ws"> </span>return self.make_default_options_response()</pre> <pre class="line before"><span class="ws"> </span># otherwise dispatch to the handler for that endpoint</pre> <pre class="line current"><span class="ws"> </span>return self.view_functions[rule.endpoint](**req.view_args)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def full_dispatch_request(self):</pre> <pre class="line after"><span class="ws"> </span>"""Dispatches the request and on top of that performs request</pre> <pre class="line after"><span class="ws"> </span>pre and postprocessing as well as HTTP exception catching and</pre> <pre class="line after"><span class="ws"> </span>error handling.</pre></div> </div> <li><div class="frame" id="frame-140441542071760"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py"</cite>, line <em class="line">176</em>, in <code class="function">wrapper</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>logger.debug("%s validating schema...", flask.request.url)</pre> <pre class="line before"><span class="ws"> </span>error = self.validate_schema(data, self.schema)</pre> <pre class="line before"><span class="ws"> </span>if error:</pre> <pre class="line before"><span class="ws"> </span>return error</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>response = function(*args, **kwargs)</pre> <pre class="line after"><span class="ws"> </span>return response</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>return wrapper</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def validate_schema(self, data, schema):</pre></div> </div> <li><div class="frame" id="frame-140441542071568"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py"</cite>, line <em class="line">288</em>, in <code class="function">wrapper</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>for param in self.parameters.get('header', []):</pre> <pre class="line before"><span class="ws"> </span>error = self.validate_header_parameter(param)</pre> <pre class="line before"><span class="ws"> </span>if error:</pre> <pre class="line before"><span class="ws"> </span>return problem(400, 'Bad Request', error)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>response = function(*args, **kwargs)</pre> <pre class="line after"><span class="ws"> </span>return response</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>return wrapper</pre></div> </div> <li><div class="frame" id="frame-140441542071824"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/connexion/decorators/produces.py"</cite>, line <em class="line">116</em>, in <code class="function">wrapper</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>@functools.wraps(function)</pre> <pre class="line before"><span class="ws"> </span>def wrapper(*args, **kwargs):</pre> <pre class="line before"><span class="ws"> </span>url = flask.request.url</pre> <pre class="line before"><span class="ws"> </span>logger.debug('Jsonifing %s', url, extra={'url': url, 'mimetype': self.mimetype})</pre> <pre class="line current"><span class="ws"> </span>data, status_code, headers = self.get_full_response(function(*args, **kwargs))</pre> <pre class="line after"><span class="ws"> </span>if isinstance(data, flask.Response): # if the function returns a Response object don't change it</pre> <pre class="line after"><span class="ws"> </span>logger.debug('Endpoint returned a Flask Response', extra={'url': url, 'mimetype': data.mimetype})</pre> <pre class="line after"><span class="ws"> </span>return data</pre> <pre class="line after"><span class="ws"> </span>elif data is NoContent:</pre> <pre class="line after"><span class="ws"> </span>return '', status_code</pre></div> </div> <li><div class="frame" id="frame-140441542071888"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/connexion/decorators/parameter.py"</cite>, line <em class="line">89</em>, in <code class="function">wrapper</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>logger.debug("Query Parameter '%s' in function arguments", key)</pre> <pre class="line before"><span class="ws"> </span>query_param = query_types[key]</pre> <pre class="line before"><span class="ws"> </span>logger.debug('%s is a %s', key, query_param)</pre> <pre class="line before"><span class="ws"> </span>kwargs[key] = get_val_from_param(value, query_param)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>return function(*args, **kwargs)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>return wrapper</pre></div> </div> <li><div class="frame" id="frame-140441542071952"> <h4>File <cite class="filename">"/property_service/propertyservice/routes/provenance.py"</cite>, line <em class="line">12</em>, in <code class="function">add</code></h4> <div class="source"><pre class="line before"><span class="ws"></span>__author__ = 'cansik'</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"></span>def add():</pre> <pre class="line before"><span class="ws"> </span>post_data = [request.json]</pre> <pre class="line current"><span class="ws"> </span>return __insert(post_data)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"></span>def bulk():</pre> <pre class="line after"><span class="ws"> </span>post_data = request.json</pre> <pre class="line after"><span class="ws"> </span>return __insert(post_data)</pre></div> </div> <li><div class="frame" id="frame-140441542071312"> <h4>File <cite class="filename">"/property_service/propertyservice/routes/provenance.py"</cite>, line <em class="line">35</em>, in <code class="function">__insert</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"></span>def __insert(post_data):</pre> <pre class="line before"><span class="ws"> </span>result = []</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>with PropertyDBDataSource() as ctx:</pre> <pre class="line after"><span class="ws"> </span>for provenance in post_data:</pre> <pre class="line after"><span class="ws"> </span># if property exists do nothing</pre> <pre class="line after"><span class="ws"> </span>prov = ctx.get_provenance_by_name(provenance)</pre> <pre class="line after"><span class="ws"> </span>if prov is not None:</pre> <pre class="line after"><span class="ws"> </span>result.append(prov.id)</pre></div> </div> <li><div class="frame" id="frame-140441542072016"> <h4>File <cite class="filename">"/property_service/propertyservice/data/property_db_data_source.py"</cite>, line <em class="line">19</em>, in <code class="function">__init__</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>self.__pg = PostgresNoSQLClient(host=flarecast_config.DB_HOST,</pre> <pre class="line before"><span class="ws"> </span>port=flarecast_config.DB_PORT,</pre> <pre class="line before"><span class="ws"> </span>user=flarecast_config.DB_USER,</pre> <pre class="line before"><span class="ws"> </span>password=flarecast_config.DB_PASSWORD)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>self.__db = self.__pg[config.PROPERTY_DATABASE]</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>self.__property_group = self.__db[config.PROPERTY_GROUP_TABLE]</pre> <pre class="line after"><span class="ws"> </span>self.__property = self.__db[config.PROPERTY_TABLE]</pre> <pre class="line after"><span class="ws"> </span>self.__property_type = self.__db[config.PROPERTY_TYPE_TABLE]</pre> <pre class="line after"><span class="ws"> </span>self.__provenance = self.__db[config.PROVENANCE_TABLE]</pre></div> </div> <li><div class="frame" id="frame-140441542072080"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py"</cite>, line <em class="line">96</em>, in <code class="function">__getitem__</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>print(e)</pre> <pre class="line before"><span class="ws"> </span>self.__close()</pre> <pre class="line before"><span class="ws"> </span>return exists</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def __getitem__(self, item):</pre> <pre class="line current"><span class="ws"> </span>return self.get_or_create_database(item)</pre></div> </div> <li><div class="frame" id="frame-140441542072208"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py"</cite>, line <em class="line">64</em>, in <code class="function">get_or_create_database</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>self.__close()</pre> <pre class="line before"><span class="ws"> </span>return db_object</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def get_or_create_database(self, database_name):</pre> <pre class="line current"><span class="ws"> </span>self.__connect()</pre> <pre class="line after"><span class="ws"> </span>db = self.get_database(database_name)</pre> <pre class="line after"><span class="ws"> </span>if not db:</pre> <pre class="line after"><span class="ws"> </span>db = self.create_database(database_name)</pre> <pre class="line after"><span class="ws"> </span>self.__close()</pre> <pre class="line after"><span class="ws"> </span>return db</pre></div> </div> <li><div class="frame" id="frame-140441542072272"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py"</cite>, line <em class="line">36</em>, in <code class="function">__connect</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def __connect(self):</pre> <pre class="line before"><span class="ws"> </span>self.__connect_counter += 1</pre> <pre class="line before"><span class="ws"> </span>if not self.__connection:</pre> <pre class="line before"><span class="ws"> </span>self.__connection = psycopg2.connect(host=self.host, database=self.database, port=self.port,</pre> <pre class="line current"><span class="ws"> </span>user=self.__user, password=self.__password)</pre> <pre class="line after"><span class="ws"> </span>self.__connection.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT)</pre> <pre class="line after"><span class="ws"> </span>self.__cursor = self.__connection.cursor()</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def __close(self):</pre> <pre class="line after"><span class="ws"> </span>self.__connect_counter -= 1</pre></div> </div> <li><div class="frame" id="frame-140441542072336"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/psycopg2/__init__.py"</cite>, line <em class="line">164</em>, in <code class="function">connect</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>raise TypeError('missing dsn and no parameters')</pre> <pre class="line before"><span class="ws"> </span>else:</pre> <pre class="line before"><span class="ws"> </span>dsn = " ".join(["%s=%s" % (k, _param_escape(str(v)))</pre> <pre class="line before"><span class="ws"> </span>for (k, v) in items])</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>conn = _connect(dsn, connection_factory=connection_factory, async=async)</pre> <pre class="line after"><span class="ws"> </span>if cursor_factory is not None:</pre> <pre class="line after"><span class="ws"> </span>conn.cursor_factory = cursor_factory</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>return conn</pre></div> </div> </ul> <blockquote>OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432?</blockquote> </div> <div class="plain"> <form action="/?__debugger__=yes&cmd=paste" method="post"> <p> <input type="hidden" name="language" value="pytb"> This is the Copy/Paste friendly version of the traceback. <span class="pastemessage">You can also paste this traceback into a <a href="https://gist.github.com/">gist</a>: <input type="submit" value="create paste"></span> </p> <textarea cols="50" rows="10" name="code" readonly>Traceback (most recent call last): File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__ return self.wsgi_app(environ, start_response) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app response = self.make_response(self.handle_exception(e)) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app response = self.full_dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request rv = self.handle_user_exception(e) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request rv = self.dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py", line 176, in wrapper response = function(*args, **kwargs) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py", line 288, in wrapper response = function(*args, **kwargs) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/produces.py", line 116, in wrapper data, status_code, headers = self.get_full_response(function(*args, **kwargs)) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/parameter.py", line 89, in wrapper return function(*args, **kwargs) File "/property_service/propertyservice/routes/provenance.py", line 12, in add return __insert(post_data) File "/property_service/propertyservice/routes/provenance.py", line 35, in __insert with PropertyDBDataSource() as ctx: File "/property_service/propertyservice/data/property_db_data_source.py", line 19, in __init__ self.__db = self.__pg[config.PROPERTY_DATABASE] File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 96, in __getitem__ return self.get_or_create_database(item) File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 64, in get_or_create_database self.__connect() File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 36, in __connect user=self.__user, password=self.__password) File "/usr/local/lib/python2.7/site-packages/psycopg2/__init__.py", line 164, in connect conn = _connect(dsn, connection_factory=connection_factory, async=async) OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432?</textarea> </form> </div> <div class="explanation"> The debugger caught an exception in your WSGI application. You can now look at the traceback which led to the error. <span class="nojavascript"> If you enable JavaScript you can also use additional features such as code execution (if the evalex feature is enabled), automatic pasting of the exceptions and much more.</span> </div> <div class="footer"> Brought to you by <strong class="arthur">DON'T PANIC</strong>, your friendly Werkzeug powered traceback interpreter. </div> </div> <div class="pin-prompt"> <div class="inner"> <h3>Console Locked</h3> <p> The console is locked and needs to be unlocked by entering the PIN. You can find the PIN printed out on the standard output of your shell that runs the server. <form> <p>PIN: <input type=text name=pin size=14> <input type=submit name=btn value="Confirm Pin"> </form> </div> </div> </body> </html> <!-- Traceback (most recent call last): File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__ return self.wsgi_app(environ, start_response) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app response = self.make_response(self.handle_exception(e)) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app response = self.full_dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request rv = self.handle_user_exception(e) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request rv = self.dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py", line 176, in wrapper response = function(*args, **kwargs) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/validation.py", line 288, in wrapper response = function(*args, **kwargs) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/produces.py", line 116, in wrapper data, status_code, headers = self.get_full_response(function(*args, **kwargs)) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/parameter.py", line 89, in wrapper return function(*args, **kwargs) File "/property_service/propertyservice/routes/provenance.py", line 12, in add return __insert(post_data) File "/property_service/propertyservice/routes/provenance.py", line 35, in __insert with PropertyDBDataSource() as ctx: File "/property_service/propertyservice/data/property_db_data_source.py", line 19, in __init__ self.__db = self.__pg[config.PROPERTY_DATABASE] File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 96, in __getitem__ return self.get_or_create_database(item) File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 64, in get_or_create_database self.__connect() File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 36, in __connect user=self.__user, password=self.__password) File "/usr/local/lib/python2.7/site-packages/psycopg2/__init__.py", line 164, in connect conn = _connect(dsn, connection_factory=connection_factory, async=async) OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? -->
self = <tests.provenance_tests.ProvenanceTests testMethod=test_add_provenance_twice>
def test_add_provenance_twice(self):
> result = self.client.add_provenance(TEST_PROVENANCE)
provenance_tests.py:18:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
(553 more lines...)
|
| Collapse |
Failed
|
ProvenanceTests
test_get_provenance
History
|
< 1 sec |
RestException: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? // Werkzeug Debugger</title> <link rel="stylesheet" href="?__debugger__=yes&cmd=resource&f=style.css" type="text/css"> <!-- We need to make sure this has a favicon so that the debugger does not by accident trigger a request to /favicon.ico which might change the application state. --> <link rel="shortcut icon" href="?__debugger__=yes&cmd=resource&f=console.png"> <script src="?__debugger__=yes&cmd=resource&f=jquery.js"></script> <script src="?__debugger__=yes&cmd=resource&f=debugger.js"></script> <script type="text/javascript"> var TRACEBACK = 140441539865680, CONSOLE_MODE = false, EVALEX = true, EVALEX_TRUSTED = false, SECRET = "03528G3v7iTkYaX5wm2v"; </script> </head> <body> <div class="debugger"> <h1>psycopg2.OperationalError</h1> <div class="detail"> <p class="errormsg">OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432?</p> </div> <h2 class="traceback">Traceback <em>(most recent call last)</em></h2> <div class="traceback"> <ul><li><div class="frame" id="frame-140441539865744"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1836</em>, in <code class="function">__call__</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>'Flask.blueprints instead'), stacklevel=2)</pre> <pre class="line before"><span class="ws"> </span>return self.blueprints</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def __call__(self, environ, start_response):</pre> <pre class="line before"><span class="ws"> </span>"""Shortcut for :attr:`wsgi_app`."""</pre> <pre class="line current"><span class="ws"> </span>return self.wsgi_app(environ, start_response)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def __repr__(self):</pre> <pre class="line after"><span class="ws"> </span>return '<%s %r>' % (</pre> <pre class="line after"><span class="ws"> </span>self.__class__.__name__,</pre> <pre class="line after"><span class="ws"> </span>self.name,</pre></div> </div> <li><div class="frame" id="frame-140441539865936"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1820</em>, in <code class="function">wsgi_app</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>response = self.full_dispatch_request()</pre> <pre class="line before"><span class="ws"> </span>except Exception as e:</pre> <pre class="line before"><span class="ws"> </span>error = e</pre> <pre class="line current"><span class="ws"> </span>response = self.make_response(self.handle_exception(e))</pre> <pre class="line after"><span class="ws"> </span>return response(environ, start_response)</pre> <pre class="line after"><span class="ws"> </span>finally:</pre> <pre class="line after"><span class="ws"> </span>if self.should_ignore_error(error):</pre> <pre class="line after"><span class="ws"> </span>error = None</pre> <pre class="line after"><span class="ws"> </span>ctx.auto_pop(error)</pre></div> </div> <li><div class="frame" id="frame-140441539866000"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask_cors/extension.py"</cite>, line <em class="line">188</em>, in <code class="function">wrapped_function</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># Wrap exception handlers with cross_origin</pre> <pre class="line before"><span class="ws"> </span># These error handlers will still respect the behavior of the route</pre> <pre class="line before"><span class="ws"> </span>if options.get('intercept_exceptions', True):</pre> <pre class="line before"><span class="ws"> </span>def _after_request_decorator(f):</pre> <pre class="line before"><span class="ws"> </span>def wrapped_function(*args, **kwargs):</pre> <pre class="line current"><span class="ws"> </span>return cors_after_request(app.make_response(f(*args, **kwargs)))</pre> <pre class="line after"><span class="ws"> </span>return wrapped_function</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>if hasattr(app, 'handle_exception'):</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception = _after_request_decorator(</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception)</pre></div> </div> <li><div class="frame" id="frame-140441539865808"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1403</em>, in <code class="function">handle_exception</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># if we want to repropagate the exception, we can attempt to</pre> <pre class="line before"><span class="ws"> </span># raise it with the whole traceback in case we can do that</pre> <pre class="line before"><span class="ws"> </span># (the function was actually called from the except part)</pre> <pre class="line before"><span class="ws"> </span># otherwise, we just raise the error again</pre> <pre class="line before"><span class="ws"> </span>if exc_value is e:</pre> <pre class="line current"><span class="ws"> </span>reraise(exc_type, exc_value, tb)</pre> <pre class="line after"><span class="ws"> </span>else:</pre> <pre class="line after"><span class="ws"> </span>raise e</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>self.log_exception((exc_type, exc_value, tb))</pre> <pre class="line after"><span class="ws"> </span>if handler is None:</pre></div> </div> <li><div class="frame" id="frame-140441539866128"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1817</em>, in <code class="function">wsgi_app</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>ctx = self.request_context(environ)</pre> <pre class="line before"><span class="ws"> </span>ctx.push()</pre> <pre class="line before"><span class="ws"> </span>error = None</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line current"><span class="ws"> </span>response = self.full_dispatch_request()</pre> <pre class="line after"><span class="ws"> </span>except Exception as e:</pre> <pre class="line after"><span class="ws"> </span>error = e</pre> <pre class="line after"><span class="ws"> </span>response = self.make_response(self.handle_exception(e))</pre> <pre class="line after"><span class="ws"> </span>return response(environ, start_response)</pre> <pre class="line after"><span class="ws"> </span>finally:</pre></div> </div> <li><div class="frame" id="frame-140441539866192"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1477</em>, in <code class="function">full_dispatch_request</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>request_started.send(self)</pre> <pre class="line before"><span class="ws"> </span>rv = self.preprocess_request()</pre> <pre class="line before"><span class="ws"> </span>if rv is None:</pre> <pre class="line before"><span class="ws"> </span>rv = self.dispatch_request()</pre> <pre class="line before"><span class="ws"> </span>except Exception as e:</pre> <pre class="line current"><span class="ws"> </span>rv = self.handle_user_exception(e)</pre> <pre class="line after"><span class="ws"> </span>response = self.make_response(rv)</pre> <pre class="line after"><span class="ws"> </span>response = self.process_response(response)</pre> <pre class="line after"><span class="ws"> </span>request_finished.send(self, response=response)</pre> <pre class="line after"><span class="ws"> </span>return response</pre> <pre class="line after"><span class="ws"></span> </pre></div> </div> <li><div class="frame" id="frame-140441539866256"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask_cors/extension.py"</cite>, line <em class="line">188</em>, in <code class="function">wrapped_function</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># Wrap exception handlers with cross_origin</pre> <pre class="line before"><span class="ws"> </span># These error handlers will still respect the behavior of the route</pre> <pre class="line before"><span class="ws"> </span>if options.get('intercept_exceptions', True):</pre> <pre class="line before"><span class="ws"> </span>def _after_request_decorator(f):</pre> <pre class="line before"><span class="ws"> </span>def wrapped_function(*args, **kwargs):</pre> <pre class="line current"><span class="ws"> </span>return cors_after_request(app.make_response(f(*args, **kwargs)))</pre> <pre class="line after"><span class="ws"> </span>return wrapped_function</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>if hasattr(app, 'handle_exception'):</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception = _after_request_decorator(</pre> <pre class="line after"><span class="ws"> </span>app.handle_exception)</pre></div> </div> <li><div class="frame" id="frame-140441539865872"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1381</em>, in <code class="function">handle_user_exception</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>app_handlers = self.error_handler_spec[None].get(None, ())</pre> <pre class="line before"><span class="ws"> </span>for typecheck, handler in chain(blueprint_handlers, app_handlers):</pre> <pre class="line before"><span class="ws"> </span>if isinstance(e, typecheck):</pre> <pre class="line before"><span class="ws"> </span>return handler(e)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>reraise(exc_type, exc_value, tb)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def handle_exception(self, e):</pre> <pre class="line after"><span class="ws"> </span>"""Default exception handling that kicks in when an exception</pre> <pre class="line after"><span class="ws"> </span>occurs that is not caught. In debug mode the exception will</pre> <pre class="line after"><span class="ws"> </span>be re-raised immediately, otherwise it is logged and the handler</pre></div> </div> <li><div class="frame" id="frame-140441539866384"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1475</em>, in <code class="function">full_dispatch_request</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>self.try_trigger_before_first_request_functions()</pre> <pre class="line before"><span class="ws"> </span>try:</pre> <pre class="line before"><span class="ws"> </span>request_started.send(self)</pre> <pre class="line before"><span class="ws"> </span>rv = self.preprocess_request()</pre> <pre class="line before"><span class="ws"> </span>if rv is None:</pre> <pre class="line current"><span class="ws"> </span>rv = self.dispatch_request()</pre> <pre class="line after"><span class="ws"> </span>except Exception as e:</pre> <pre class="line after"><span class="ws"> </span>rv = self.handle_user_exception(e)</pre> <pre class="line after"><span class="ws"> </span>response = self.make_response(rv)</pre> <pre class="line after"><span class="ws"> </span>response = self.process_response(response)</pre> <pre class="line after"><span class="ws"> </span>request_finished.send(self, response=response)</pre></div> </div> <li><div class="frame" id="frame-140441539866448"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/flask/app.py"</cite>, line <em class="line">1461</em>, in <code class="function">dispatch_request</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span># request came with the OPTIONS method, reply automatically</pre> <pre class="line before"><span class="ws"> </span>if getattr(rule, 'provide_automatic_options', False) \</pre> <pre class="line before"><span class="ws"> </span>and req.method == 'OPTIONS':</pre> <pre class="line before"><span class="ws"> </span>return self.make_default_options_response()</pre> <pre class="line before"><span class="ws"> </span># otherwise dispatch to the handler for that endpoint</pre> <pre class="line current"><span class="ws"> </span>return self.view_functions[rule.endpoint](**req.view_args)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def full_dispatch_request(self):</pre> <pre class="line after"><span class="ws"> </span>"""Dispatches the request and on top of that performs request</pre> <pre class="line after"><span class="ws"> </span>pre and postprocessing as well as HTTP exception catching and</pre> <pre class="line after"><span class="ws"> </span>error handling.</pre></div> </div> <li><div class="frame" id="frame-140441539866512"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/connexion/decorators/produces.py"</cite>, line <em class="line">116</em>, in <code class="function">wrapper</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>@functools.wraps(function)</pre> <pre class="line before"><span class="ws"> </span>def wrapper(*args, **kwargs):</pre> <pre class="line before"><span class="ws"> </span>url = flask.request.url</pre> <pre class="line before"><span class="ws"> </span>logger.debug('Jsonifing %s', url, extra={'url': url, 'mimetype': self.mimetype})</pre> <pre class="line current"><span class="ws"> </span>data, status_code, headers = self.get_full_response(function(*args, **kwargs))</pre> <pre class="line after"><span class="ws"> </span>if isinstance(data, flask.Response): # if the function returns a Response object don't change it</pre> <pre class="line after"><span class="ws"> </span>logger.debug('Endpoint returned a Flask Response', extra={'url': url, 'mimetype': data.mimetype})</pre> <pre class="line after"><span class="ws"> </span>return data</pre> <pre class="line after"><span class="ws"> </span>elif data is NoContent:</pre> <pre class="line after"><span class="ws"> </span>return '', status_code</pre></div> </div> <li><div class="frame" id="frame-140441539866320"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/connexion/decorators/parameter.py"</cite>, line <em class="line">89</em>, in <code class="function">wrapper</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>logger.debug("Query Parameter '%s' in function arguments", key)</pre> <pre class="line before"><span class="ws"> </span>query_param = query_types[key]</pre> <pre class="line before"><span class="ws"> </span>logger.debug('%s is a %s', key, query_param)</pre> <pre class="line before"><span class="ws"> </span>kwargs[key] = get_val_from_param(value, query_param)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>return function(*args, **kwargs)</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>return wrapper</pre></div> </div> <li><div class="frame" id="frame-140441539866576"> <h4>File <cite class="filename">"/property_service/propertyservice/routes/provenance.py"</cite>, line <em class="line">21</em>, in <code class="function">list</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>post_data = request.json</pre> <pre class="line before"><span class="ws"> </span>return __insert(post_data)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"></span>def list():</pre> <pre class="line current"><span class="ws"> </span>with PropertyDBDataSource() as ctx:</pre> <pre class="line after"><span class="ws"> </span>provs = format_get_output(ctx.get_provenances())</pre> <pre class="line after"><span class="ws"> </span>return provs</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"></span>def get(provenance):</pre></div> </div> <li><div class="frame" id="frame-140441539866064"> <h4>File <cite class="filename">"/property_service/propertyservice/data/property_db_data_source.py"</cite>, line <em class="line">19</em>, in <code class="function">__init__</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>self.__pg = PostgresNoSQLClient(host=flarecast_config.DB_HOST,</pre> <pre class="line before"><span class="ws"> </span>port=flarecast_config.DB_PORT,</pre> <pre class="line before"><span class="ws"> </span>user=flarecast_config.DB_USER,</pre> <pre class="line before"><span class="ws"> </span>password=flarecast_config.DB_PASSWORD)</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>self.__db = self.__pg[config.PROPERTY_DATABASE]</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>self.__property_group = self.__db[config.PROPERTY_GROUP_TABLE]</pre> <pre class="line after"><span class="ws"> </span>self.__property = self.__db[config.PROPERTY_TABLE]</pre> <pre class="line after"><span class="ws"> </span>self.__property_type = self.__db[config.PROPERTY_TYPE_TABLE]</pre> <pre class="line after"><span class="ws"> </span>self.__provenance = self.__db[config.PROVENANCE_TABLE]</pre></div> </div> <li><div class="frame" id="frame-140441538875472"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py"</cite>, line <em class="line">96</em>, in <code class="function">__getitem__</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>print(e)</pre> <pre class="line before"><span class="ws"> </span>self.__close()</pre> <pre class="line before"><span class="ws"> </span>return exists</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def __getitem__(self, item):</pre> <pre class="line current"><span class="ws"> </span>return self.get_or_create_database(item)</pre></div> </div> <li><div class="frame" id="frame-140441538875600"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py"</cite>, line <em class="line">64</em>, in <code class="function">get_or_create_database</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>self.__close()</pre> <pre class="line before"><span class="ws"> </span>return db_object</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def get_or_create_database(self, database_name):</pre> <pre class="line current"><span class="ws"> </span>self.__connect()</pre> <pre class="line after"><span class="ws"> </span>db = self.get_database(database_name)</pre> <pre class="line after"><span class="ws"> </span>if not db:</pre> <pre class="line after"><span class="ws"> </span>db = self.create_database(database_name)</pre> <pre class="line after"><span class="ws"> </span>self.__close()</pre> <pre class="line after"><span class="ws"> </span>return db</pre></div> </div> <li><div class="frame" id="frame-140441538875664"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py"</cite>, line <em class="line">36</em>, in <code class="function">__connect</code></h4> <div class="source"><pre class="line before"><span class="ws"></span> </pre> <pre class="line before"><span class="ws"> </span>def __connect(self):</pre> <pre class="line before"><span class="ws"> </span>self.__connect_counter += 1</pre> <pre class="line before"><span class="ws"> </span>if not self.__connection:</pre> <pre class="line before"><span class="ws"> </span>self.__connection = psycopg2.connect(host=self.host, database=self.database, port=self.port,</pre> <pre class="line current"><span class="ws"> </span>user=self.__user, password=self.__password)</pre> <pre class="line after"><span class="ws"> </span>self.__connection.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT)</pre> <pre class="line after"><span class="ws"> </span>self.__cursor = self.__connection.cursor()</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>def __close(self):</pre> <pre class="line after"><span class="ws"> </span>self.__connect_counter -= 1</pre></div> </div> <li><div class="frame" id="frame-140441538875728"> <h4>File <cite class="filename">"/usr/local/lib/python2.7/site-packages/psycopg2/__init__.py"</cite>, line <em class="line">164</em>, in <code class="function">connect</code></h4> <div class="source"><pre class="line before"><span class="ws"> </span>raise TypeError('missing dsn and no parameters')</pre> <pre class="line before"><span class="ws"> </span>else:</pre> <pre class="line before"><span class="ws"> </span>dsn = " ".join(["%s=%s" % (k, _param_escape(str(v)))</pre> <pre class="line before"><span class="ws"> </span>for (k, v) in items])</pre> <pre class="line before"><span class="ws"></span> </pre> <pre class="line current"><span class="ws"> </span>conn = _connect(dsn, connection_factory=connection_factory, async=async)</pre> <pre class="line after"><span class="ws"> </span>if cursor_factory is not None:</pre> <pre class="line after"><span class="ws"> </span>conn.cursor_factory = cursor_factory</pre> <pre class="line after"><span class="ws"></span> </pre> <pre class="line after"><span class="ws"> </span>return conn</pre></div> </div> </ul> <blockquote>OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432?</blockquote> </div> <div class="plain"> <form action="/?__debugger__=yes&cmd=paste" method="post"> <p> <input type="hidden" name="language" value="pytb"> This is the Copy/Paste friendly version of the traceback. <span class="pastemessage">You can also paste this traceback into a <a href="https://gist.github.com/">gist</a>: <input type="submit" value="create paste"></span> </p> <textarea cols="50" rows="10" name="code" readonly>Traceback (most recent call last): File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__ return self.wsgi_app(environ, start_response) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app response = self.make_response(self.handle_exception(e)) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app response = self.full_dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request rv = self.handle_user_exception(e) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request rv = self.dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/produces.py", line 116, in wrapper data, status_code, headers = self.get_full_response(function(*args, **kwargs)) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/parameter.py", line 89, in wrapper return function(*args, **kwargs) File "/property_service/propertyservice/routes/provenance.py", line 21, in list with PropertyDBDataSource() as ctx: File "/property_service/propertyservice/data/property_db_data_source.py", line 19, in __init__ self.__db = self.__pg[config.PROPERTY_DATABASE] File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 96, in __getitem__ return self.get_or_create_database(item) File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 64, in get_or_create_database self.__connect() File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 36, in __connect user=self.__user, password=self.__password) File "/usr/local/lib/python2.7/site-packages/psycopg2/__init__.py", line 164, in connect conn = _connect(dsn, connection_factory=connection_factory, async=async) OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432?</textarea> </form> </div> <div class="explanation"> The debugger caught an exception in your WSGI application. You can now look at the traceback which led to the error. <span class="nojavascript"> If you enable JavaScript you can also use additional features such as code execution (if the evalex feature is enabled), automatic pasting of the exceptions and much more.</span> </div> <div class="footer"> Brought to you by <strong class="arthur">DON'T PANIC</strong>, your friendly Werkzeug powered traceback interpreter. </div> </div> <div class="pin-prompt"> <div class="inner"> <h3>Console Locked</h3> <p> The console is locked and needs to be unlocked by entering the PIN. You can find the PIN printed out on the standard output of your shell that runs the server. <form> <p>PIN: <input type=text name=pin size=14> <input type=submit name=btn value="Confirm Pin"> </form> </div> </div> </body> </html> <!-- Traceback (most recent call last): File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__ return self.wsgi_app(environ, start_response) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app response = self.make_response(self.handle_exception(e)) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app response = self.full_dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request rv = self.handle_user_exception(e) File "/usr/local/lib/python2.7/site-packages/flask_cors/extension.py", line 188, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request rv = self.dispatch_request() File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/produces.py", line 116, in wrapper data, status_code, headers = self.get_full_response(function(*args, **kwargs)) File "/usr/local/lib/python2.7/site-packages/connexion/decorators/parameter.py", line 89, in wrapper return function(*args, **kwargs) File "/property_service/propertyservice/routes/provenance.py", line 21, in list with PropertyDBDataSource() as ctx: File "/property_service/propertyservice/data/property_db_data_source.py", line 19, in __init__ self.__db = self.__pg[config.PROPERTY_DATABASE] File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 96, in __getitem__ return self.get_or_create_database(item) File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 64, in get_or_create_database self.__connect() File "/usr/local/lib/python2.7/site-packages/pg4nosql/PostgresNoSQLClient.py", line 36, in __connect user=self.__user, password=self.__password) File "/usr/local/lib/python2.7/site-packages/psycopg2/__init__.py", line 164, in connect conn = _connect(dsn, connection_factory=connection_factory, async=async) OperationalError: could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "db" (172.17.0.163) and accepting TCP/IP connections on port 5432? -->
self = <tests.provenance_tests.ProvenanceTests testMethod=test_get_provenance>
def test_get_provenance(self):
> result = self.client.get_provenances()
provenance_tests.py:22:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
(491 more lines...)
|