diff options
author | Lingxian Kong <anlin.kong@gmail.com> | 2021-02-10 09:53:06 +1300 |
---|---|---|
committer | Lingxian Kong <anlin.kong@gmail.com> | 2021-02-10 15:51:54 +1300 |
commit | 9c2e0bf3a0f1bc0b35a148174d8a4d2083f2b3c5 (patch) | |
tree | 86a3bf502d2addb21bcfd359c9f437b1e56edf75 /trove/guestagent | |
parent | 6edd3332b68864e69eb6733a71ecb5e827871d8f (diff) | |
download | trove-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.py | 27 |
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 |