summaryrefslogtreecommitdiff
path: root/trove/guestagent
diff options
context:
space:
mode:
authorLingxian Kong <anlin.kong@gmail.com>2021-02-10 09:53:06 +1300
committerLingxian Kong <anlin.kong@gmail.com>2021-02-10 15:51:54 +1300
commit9c2e0bf3a0f1bc0b35a148174d8a4d2083f2b3c5 (patch)
tree86a3bf502d2addb21bcfd359c9f437b1e56edf75 /trove/guestagent
parent6edd3332b68864e69eb6733a71ecb5e827871d8f (diff)
downloadtrove-9c2e0bf3a0f1bc0b35a148174d8a4d2083f2b3c5.tar.gz
Do not override RESTART_REQUIRED service status
The RESTART_REQUIRED service status set by guest agent should not be overridden by the health heartbeat mechanism. The RESTART_REQUIRED can only be changed when the instance is restarted or rebooted. Story: 2008612 Task: 41795 Change-Id: I98baf252452353237bc8fb14357df4e7bcb2867a
Diffstat (limited to 'trove/guestagent')
-rw-r--r--trove/guestagent/guest_log.py27
1 files changed, 15 insertions, 12 deletions
diff --git a/trove/guestagent/guest_log.py b/trove/guestagent/guest_log.py
index 1b7c85d6..570a08ed 100644
--- a/trove/guestagent/guest_log.py
+++ b/trove/guestagent/guest_log.py
@@ -15,6 +15,7 @@
import enum
import hashlib
import os
+from pathlib import Path
from requests.exceptions import ConnectionError
from oslo_log import log as logging
@@ -245,34 +246,36 @@ class GuestLog(object):
'published': self._published_size})
def _update_details(self):
- # Make sure we can read the file
- if not self._file_readable or not os.access(self._file, os.R_OK):
+ if operating_system.exists(self._file, as_root=True):
+ file_path = Path(self._file)
+
+ # Make sure guest agent can read the log file.
if not os.access(self._file, os.R_OK):
- if operating_system.exists(self._file, as_root=True):
- operating_system.chmod(
- self._file, FileMode.ADD_ALL_R, as_root=True)
- self._file_readable = True
-
- if os.path.isfile(self._file):
- logstat = os.stat(self._file)
- self._size = logstat.st_size
+ operating_system.chmod(self._file, FileMode.ADD_ALL_R,
+ as_root=True)
+ operating_system.chmod(str(file_path.parent),
+ FileMode.ADD_GRP_RX_OTH_RX,
+ as_root=True)
+
+ self._size = file_path.stat().st_size
self._update_log_header_digest(self._file)
if self.status != LogStatus.Disabled:
if self._log_rotated():
self.status = LogStatus.Rotated
# See if we have stuff to publish
- elif logstat.st_size > self._published_size:
+ elif self._size > self._published_size:
self._set_status(self._published_size,
LogStatus.Partial, LogStatus.Ready)
# We've published everything so far
- elif logstat.st_size == self._published_size:
+ elif self._size == self._published_size:
self._set_status(self._published_size,
LogStatus.Published, LogStatus.Enabled)
# We've already handled this case (log rotated) so what gives?
else:
raise Exception(_("Bug in _log_rotated ?"))
else:
+ LOG.warning(f"File {self._file} does not exist")
self._published_size = 0
self._size = 0