Bug 1328237 - rm /var/lib/ironic-inspector/inspector.sqlite; systemctl restart openstack-ironic-inspector fails to recreate sqlite db schema
Summary: rm /var/lib/ironic-inspector/inspector.sqlite; systemctl restart openstack-ir...
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: documentation
Version: 8.0 (Liberty)
Hardware: All
OS: Linux
unspecified
high
Target Milestone: ---
: ---
Assignee: RHOS Documentation Team
QA Contact: RHOS Documentation Team
URL:
Whiteboard:
: 1330590 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-04-18 19:21 UTC by Dan Yocum
Modified: 2018-07-11 20:34 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-07-11 20:34:22 UTC
Target Upstream Version:


Attachments (Terms of Use)

Description Dan Yocum 2016-04-18 19:21:43 UTC
Description of problem:

Per the GA Director Installation and Configuration guide, executing section 10.3 - https://access.redhat.com/documentation/en/red-hat-openstack-platform/8/director-installation-and-usage/102-troubleshooting-hardware-introspection - fails to re-create the sqlite database.

Version-Release number of selected component (if applicable):


How reproducible:

100%

Steps to Reproduce:
1. Follow procedure 10.3 in the guide:

Procedure 10.3. Stopping the Discovery Process

Change the power state of each node to off:
$ ironic node-set-power-state [NODE UUID] off

Remove ironic-inspector cache and restart it:
$ rm /var/lib/ironic-inspector/inspector.sqlite
$ sudo systemctl restart openstack-ironic-inspector


Actual results:

[17301]: 2016-04-18 16:14:21.815 17301 DEBUG ironic_inspector.main [-] Running periodic update of filters periodic_update /usr/lib/python2.7/site-packages/ironic_inspector/main.py:270
[17301]: 2016-04-18 16:14:21.815 17301 DEBUG keystoneclient.auth.identity.v2 [-] Making authentication request to http://10.3.3.1:5000/v2.0/tokens get_auth_ref /usr/lib/python2.7/site-packages/keystoneclient/auth/identity/v2.py:86
[17301]: 2016-04-18 16:14:21.946 17301 DEBUG iso8601.iso8601 [-] Parsed 2016-04-19T00:14:21Z into {'tz_sign': None, 'second_fraction': None, 'hour': u'00', 'daydash': u'19', 'tz_hour': None, 'month': None, 'timezone': u'Z', 'second': u'21', 'tz_minute': None, 'year': u'2016', 'separator': u'T', 'monthdash': u'04', 'day': None, 'minute': u'14'} with default timezone <iso8601.iso8601.Utc object at 0x2088ad0> parse_date /usr/lib/python2.7/site-packages/iso8601/iso8601.py:184
[17301]: 2016-04-18 16:14:21.946 17301 DEBUG iso8601.iso8601 [-] Got u'2016' for 'year' with default None to_int /usr/lib/python2.7/site-packages/iso8601/iso8601.py:140
[17301]: 2016-04-18 16:14:21.947 17301 DEBUG iso8601.iso8601 [-] Got u'04' for 'monthdash' with default 1 to_int /usr/lib/python2.7/site-packages/iso8601/iso8601.py:140
[17301]: 2016-04-18 16:14:21.947 17301 DEBUG iso8601.iso8601 [-] Got 4 for 'month' with default 4 to_int /usr/lib/python2.7/site-packages/iso8601/iso8601.py:140
[17301]: 2016-04-18 16:14:21.947 17301 DEBUG iso8601.iso8601 [-] Got u'19' for 'daydash' with default 1 to_int /usr/lib/python2.7/site-packages/iso8601/iso8601.py:140
[17301]: 2016-04-18 16:14:21.947 17301 DEBUG iso8601.iso8601 [-] Got 19 for 'day' with default 19 to_int /usr/lib/python2.7/site-packages/iso8601/iso8601.py:140
[17301]: 2016-04-18 16:14:21.947 17301 DEBUG iso8601.iso8601 [-] Got u'00' for 'hour' with default None to_int /usr/lib/python2.7/site-packages/iso8601/iso8601.py:140
[17301]: 2016-04-18 16:14:21.947 17301 DEBUG iso8601.iso8601 [-] Got u'14' for 'minute' with default None to_int /usr/lib/python2.7/site-packages/iso8601/iso8601.py:140
[17301]: 2016-04-18 16:14:21.947 17301 DEBUG iso8601.iso8601 [-] Got u'21' for 'second' with default None to_int /usr/lib/python2.7/site-packages/iso8601/iso8601.py:140
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main [-] Periodic update failed
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main Traceback (most recent call last):
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main   File "/usr/lib/python2.7/site-packages/ironic_inspector/main.py", line 272, in periodic_update
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main     firewall.update_filters()
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main   File "/usr/lib/python2.7/site-packages/ironic_inspector/firewall.py", line 179, in update_filters
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main     if not _should_enable_dhcp():
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main   File "/usr/lib/python2.7/site-packages/ironic_inspector/firewall.py", line 111, in _should_enable_dhcp
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main     return (node_cache.introspection_active() or
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main   File "/usr/lib/python2.7/site-packages/ironic_inspector/node_cache.py", line 351, in introspection_active
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main     return (db.model_query(db.Node.uuid).filter_by(finished_at=None).first()
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main   File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/query.py", line 2445, in first
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main     ret = list(self[0:1])
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main   File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/query.py", line 2281, in __getitem__
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main     return list(res)
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main   File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/query.py", line 2516, in __iter__
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main     return self._execute_and_instances(context)
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main   File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/query.py", line 2531, in _execute_and_instances
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main     result = conn.execute(querycontext.statement, self._params)
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main   File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 914, in execute
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main     return meth(self, multiparams, params)
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main   File "/usr/lib64/python2.7/site-packages/sqlalchemy/sql/elements.py", line 323, in _execute_on_connection
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main     return connection._execute_clauseelement(self, multiparams, params)
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main   File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1010, in _execute_clauseelement
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main     compiled_sql, distilled_params
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main   File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1146, in _execute_context
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main     context)
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main   File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1337, in _handle_dbapi_exception
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main     util.raise_from_cause(newraise, exc_info)
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main   File "/usr/lib64/python2.7/site-packages/sqlalchemy/util/compat.py", line 199, in raise_from_cause
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main     reraise(type(exception), exception, tb=exc_tb)
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main   File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1139, in _execute_context
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main     context)
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main   File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/default.py", line 450, in do_execute
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main     cursor.execute(statement, parameters)
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main OperationalError: (sqlite3.OperationalError) no such table: nodes [SQL: u'SELECT nodes.uuid AS nodes_uuid \nFROM nodes \nWHERE nodes.finished_at IS NULL\n LIMIT ? OFFSET ?'] [parameters: (1, 0)]
[17301]: 2016-04-18 16:14:21.950 17301 ERROR ironic_inspector.main


Expected results:

inspector.sqlite db is re-created.

Additional info:

This worked in v7.3

Comment 2 Dan Yocum 2016-04-18 23:45:55 UTC
Changing this to documentation and adding dmacpher.

The sol'n is to run the following command, so it needs to be added to the introspection troubleshooting section, mentioned above:

sudo ironic-inspector-dbsync --config-file /etc/ironic-inspector/inspector.conf upgrade

I gleened this from http://docs.openstack.org/developer/ironic-inspector/install.html#managing-the-ironic-inspector-database

Comment 3 Dmitry Tantsur 2016-04-19 07:02:45 UTC
Upstream documentation update: https://review.openstack.org/307596

Comment 4 David Juran 2016-04-27 15:02:04 UTC
*** Bug 1330590 has been marked as a duplicate of this bug. ***

Comment 5 Dmitry Tantsur 2016-09-30 09:55:47 UTC
Note: this procedure is for OSPd8 *only*. Please do not recommend removing the database for OSPd9 and newer, we should use the "openstack baremetal introspection abort" command instead.


Note You need to log in before you can comment on or make changes to this bug.