A seemingly-transient keystone issue caused the nova-fullstack service to die off entirely. Probably this should be caught as an exception unless it happens repeatedly.
Jun 26 15:08:37 cloudcontrol1003 puppet-agent[36948]: (/Stage[main]/Openstack::Nova::Fullstack::Service/Systemd::Service[nova-fullstack]/Service[nova-fullstack]/ensure) ensure changed 'stopped' to 'running' Jun 26 15:08:37 cloudcontrol1003 puppet-agent[36948]: (/Stage[main]/Openstack::Nova::Fullstack::Service/Systemd::Service[nova-fullstack]/Service[nova-fullstack]) Unscheduling refresh on Service[nova-fullstack] Jun 26 15:08:37 cloudcontrol1003 neutron-server[30160]: 2019-06-26 15:08:37.076 30574 INFO neutron.wsgi [req-a501e719-50c5-475e-b7b4-e79fe5e1fb48 novaadmin admin - - -] 10.64.20.28 - - [26/Jun/2019 15:08:37] "GET /v2.0/subnets.json?id=a69bdfad-d7d2-4cfa-8231-3d6d3e0074c9 HTTP/1.1" 200 774 0.264693 Jun 26 15:08:37 cloudcontrol1003 neutron-server[30160]: 2019-06-26 15:08:37.107 30587 INFO neutron.db.agents_db [req-53653daf-9b3e-4509-a2e6-4eb887e1202b - - - - -] Heartbeat received from L3 agent agent on host cloudnet1004, uuid 059d28ed-f858-486b-9fdb-215baa32d3c0 after 0:00:06.107591 Jun 26 15:08:37 cloudcontrol1003 neutron-server[30160]: 2019-06-26 15:08:37.122 30574 INFO neutron.wsgi [req-0d89f06a-bb4a-4ea3-8510-6b9a2ab04e25 novaadmin admin - - -] 10.64.20.28 - - [26/Jun/2019 15:08:37] "GET /v2.0/ports.json?network_id=7425e328-560c-4f00-8e99-706f3fb90bb4&device_owner=network%3Adhcp HTTP/1.1" 200 2682 0.035319 Jun 26 15:08:37 cloudcontrol1003 nova-fullstack[38999]: 2019-06-26 15:08:37,691 INFO Starting new HTTP connection (1): cloudcontrol1003.wikimedia.org Jun 26 15:08:37 cloudcontrol1003 nova-fullstack[38999]: 2019-06-26 15:08:37,901 INFO Starting new HTTP connection (1): cloudcontrol1003.wikimedia.org Jun 26 15:08:37 cloudcontrol1003 nova-fullstack[38999]: Traceback (most recent call last): Jun 26 15:08:37 cloudcontrol1003 nova-fullstack[38999]: File "/usr/local/sbin/nova-fullstack", line 606, in <module> Jun 26 15:08:37 cloudcontrol1003 nova-fullstack[38999]: main() Jun 26 15:08:37 cloudcontrol1003 nova-fullstack[38999]: File "/usr/local/sbin/nova-fullstack", line 495, in main Jun 26 15:08:37 cloudcontrol1003 nova-fullstack[38999]: exist = nova_conn.servers.list() Jun 26 15:08:37 cloudcontrol1003 nova-fullstack[38999]: File "/usr/lib/python2.7/dist-packages/novaclient/v2/servers.py", line 749, in list Jun 26 15:08:37 cloudcontrol1003 nova-fullstack[38999]: "servers") Jun 26 15:08:37 cloudcontrol1003 nova-fullstack[38999]: File "/usr/lib/python2.7/dist-packages/novaclient/base.py", line 242, in _list Jun 26 15:08:37 cloudcontrol1003 nova-fullstack[38999]: resp, body = self.api.client.get(url) Jun 26 15:08:37 cloudcontrol1003 nova-fullstack[38999]: File "/usr/lib/python2.7/dist-packages/keystoneauth1/adapter.py", line 173, in get Jun 26 15:08:37 cloudcontrol1003 nova-fullstack[38999]: return self.request(url, 'GET', **kwargs) Jun 26 15:08:37 cloudcontrol1003 nova-fullstack[38999]: File "/usr/lib/python2.7/dist-packages/novaclient/client.py", line 89, in request Jun 26 15:08:37 cloudcontrol1003 nova-fullstack[38999]: **kwargs) Jun 26 15:08:37 cloudcontrol1003 nova-fullstack[38999]: File "/usr/lib/python2.7/dist-packages/keystoneauth1/adapter.py", line 331, in request Jun 26 15:08:37 cloudcontrol1003 nova-fullstack[38999]: resp = super(LegacyJsonAdapter, self).request(*args, **kwargs) Jun 26 15:08:37 cloudcontrol1003 nova-fullstack[38999]: File "/usr/lib/python2.7/dist-packages/keystoneauth1/adapter.py", line 98, in request Jun 26 15:08:37 cloudcontrol1003 nova-fullstack[38999]: return self.session.request(url, method, **kwargs) Jun 26 15:08:37 cloudcontrol1003 nova-fullstack[38999]: File "/usr/lib/python2.7/dist-packages/positional/__init__.py", line 94, in inner Jun 26 15:08:37 cloudcontrol1003 nova-fullstack[38999]: return func(*args, **kwargs) Jun 26 15:08:37 cloudcontrol1003 nova-fullstack[38999]: File "/usr/lib/python2.7/dist-packages/keystoneclient/session.py", line 405, in request Jun 26 15:08:37 cloudcontrol1003 nova-fullstack[38999]: resp = send(**kwargs) Jun 26 15:08:37 cloudcontrol1003 nova-fullstack[38999]: File "/usr/lib/python2.7/dist-packages/keystoneclient/session.py", line 449, in _send_request Jun 26 15:08:37 cloudcontrol1003 nova-fullstack[38999]: raise exceptions.ConnectionRefused(msg) Jun 26 15:08:37 cloudcontrol1003 nova-fullstack[38999]: keystoneauth1.exceptions.connection.ConnectFailure: Unable to establish connection to http://cloudcontrol1003.wikimedia.org:8774/v2.1/servers/detail Jun 26 15:08:37 cloudcontrol1003 systemd[1]: nova-fullstack.service: Main process exited, code=exited, status=1/FAILURE Jun 26 15:08:37 cloudcontrol1003 systemd[1]: nova-fullstack.service: Unit entered failed state. Jun 26 15:08:37 cloudcontrol1003 systemd[1]: nova-fullstack.service: Failed with result 'exit-code'.