def setUp(self): super(ManagerTest, self).setUp() self.chmod_patch = patch.object(operating_system, 'chmod') self.chmod_mock = self.chmod_patch.start() self.addCleanup(self.chmod_patch.stop) self.manager = MockManager() self.context = TroveContext() self.log_name_sys = 'guest' self.log_name_user = '******' self.prefix = 'log_prefix' self.container = 'log_container' self.size = 1024 self.published = 128 self.guest_log_user = guest_log.GuestLog(self.context, self.log_name_user, guest_log.LogType.USER, None, '/tmp/gen.log', True) self.guest_log_sys = guest_log.GuestLog(self.context, self.log_name_sys, guest_log.LogType.SYS, None, '/tmp/guest.log', True) for gl in [self.guest_log_user, self.guest_log_sys]: gl._container_name = self.container gl._refresh_details = MagicMock() gl._log_rotated = MagicMock(return_value=False) gl._publish_to_container = MagicMock() gl._delete_log_components = MagicMock() gl._object_prefix = MagicMock(return_value=self.prefix) gl._size = self.size gl._published_size = self.published self.manager._guest_log_cache = { self.log_name_user: self.guest_log_user, self.log_name_sys: self.guest_log_sys } self.expected_details_user = { 'status': 'Disabled', 'prefix': self.prefix, 'container': self.container, 'name': self.log_name_user, 'published': self.published, 'metafile': self.prefix + '_metafile', 'type': 'USER', 'pending': self.size - self.published } self.expected_details_sys = dict(self.expected_details_user) self.expected_details_sys['type'] = 'SYS' self.expected_details_sys['status'] = 'Enabled' self.expected_details_sys['name'] = self.log_name_sys self.expected_module_details = { 'name': 'mymod', 'type': 'ping', 'contents': 'e262cfe36134' } self.manager.module_manager = Mock()
def _refresh_guest_log_cache(self): if self._guest_log_cache: # Replace the context if it's changed if self._guest_log_loaded_context != self.guest_log_context: for log_name in self._guest_log_cache.keys(): self._guest_log_cache[log_name].context = ( self.guest_log_context) else: # Load the initial cache self._guest_log_cache = {} if self.guest_log_context: gl_defs = self.guest_log_defs try: exposed_logs = CONF.get( self.manager).get('guest_log_exposed_logs') except oslo_cfg.NoSuchOptError: exposed_logs = '' LOG.debug("Available log defs: %s" % ",".join(gl_defs.keys())) exposed_logs = exposed_logs.lower().replace(',', ' ').split() LOG.debug("Exposing log defs: %s" % ",".join(exposed_logs)) expose_all = 'all' in exposed_logs for log_name in gl_defs.keys(): gl_def = gl_defs[log_name] exposed = expose_all or log_name in exposed_logs LOG.debug("Building guest log '%s' from def: %s " "(exposed: %s)" % (log_name, gl_def, exposed)) self._guest_log_cache[log_name] = guest_log.GuestLog( self.guest_log_context, log_name, gl_def[self.GUEST_LOG_TYPE_LABEL], gl_def[self.GUEST_LOG_USER_LABEL], gl_def[self.GUEST_LOG_FILE_LABEL], exposed) self._guest_log_loaded_context = self.guest_log_context
def _refresh_guest_log_cache(self): if self._guest_log_cache: # Replace the context if it's changed if self._guest_log_loaded_context != self.guest_log_context: for log_name in self._guest_log_cache.keys(): self._guest_log_cache[log_name].context = ( self.guest_log_context) else: # Load the initial cache self._guest_log_cache = {} if self.guest_log_context: gl_defs = self.get_guest_log_defs() try: exposed_logs = CONF.get( self.manager).get('guest_log_exposed_logs') except oslo_cfg.NoSuchOptError: exposed_logs = '' LOG.debug("Available log defs: %s", ",".join(gl_defs.keys())) exposed_logs = exposed_logs.lower().replace(',', ' ').split() LOG.debug("Exposing log defs: %s", ",".join(exposed_logs)) expose_all = 'all' in exposed_logs for log_name in gl_defs.keys(): gl_def = gl_defs[log_name] exposed = expose_all or log_name in exposed_logs guestlog = guest_log.GuestLog( self.guest_log_context, log_name, gl_def[self.GUEST_LOG_TYPE_LABEL], gl_def[self.GUEST_LOG_USER_LABEL], gl_def[self.GUEST_LOG_FILE_LABEL], exposed) if (gl_def[self.GUEST_LOG_TYPE_LABEL] == guest_log.LogType.USER): guestlog.enabled = self.is_log_enabled(log_name) guestlog.status = (guest_log.LogStatus.Enabled if guestlog.enabled else guest_log.LogStatus.Disabled) self._guest_log_cache[log_name] = guestlog self._guest_log_loaded_context = self.guest_log_context