|
@@ -31,8 +31,6 @@ import subprocess
|
|
|
from ambari_commons.shell import shellRunner
|
|
|
import time
|
|
|
import uuid
|
|
|
-import json
|
|
|
-import glob
|
|
|
from AmbariConfig import AmbariConfig
|
|
|
from ambari_commons import OSCheck, OSConst
|
|
|
from ambari_commons.os_family_impl import OsFamilyImpl
|
|
@@ -152,47 +150,6 @@ class Facter(object):
|
|
|
def getUptimeDays(self):
|
|
|
return self.getUptimeSeconds() / (60 * 60 * 24)
|
|
|
|
|
|
- def getSystemResourceIfExists(self, systemResources, key, default):
|
|
|
- if key in systemResources:
|
|
|
- return systemResources[key]
|
|
|
- else:
|
|
|
- return default
|
|
|
-
|
|
|
- def replaceFacterInfoWithSystemResources(self, systemResources, facterInfo):
|
|
|
- """
|
|
|
- Replace facter info with fake system resource data (if there are any).
|
|
|
- """
|
|
|
- for key in facterInfo:
|
|
|
- facterInfo[key] = self.getSystemResourceIfExists(systemResources, key, facterInfo[key])
|
|
|
- return facterInfo
|
|
|
-
|
|
|
- def getSystemResourceOverrides(self):
|
|
|
- """
|
|
|
- Read all json files from 'system_resource_overrides' directory, and later these values are used as
|
|
|
- fake system data for hosts. In case of the key-value pairs cannot be loaded use default behaviour.
|
|
|
- """
|
|
|
- systemResources = {}
|
|
|
- if self.config.has_option('agent', 'system_resource_overrides'):
|
|
|
- systemResourceDir = self.config.get('agent', 'system_resource_overrides', '').strip()
|
|
|
- if systemResourceDir:
|
|
|
- if os.path.isdir(systemResourceDir) and os.path.exists(systemResourceDir):
|
|
|
- try:
|
|
|
- for filename in glob.glob('%s/*.json' % systemResourceDir):
|
|
|
- with open(filename) as fp:
|
|
|
- data = json.loads(fp.read())
|
|
|
- for (key, value) in data.items():
|
|
|
- systemResources[key] = data[key]
|
|
|
- except:
|
|
|
- log.warn(
|
|
|
- "Cannot read values from json files in %s. it won't be used for gathering system resources." % systemResourceDir)
|
|
|
- else:
|
|
|
- log.info(
|
|
|
- "Directory: '%s' does not exist - it won't be used for gathering system resources." % systemResourceDir)
|
|
|
- else:
|
|
|
- log.info("'system_resource_dir' is not set - it won't be used for gathering system resources.")
|
|
|
- return systemResources
|
|
|
-
|
|
|
-
|
|
|
def facterInfo(self):
|
|
|
facterInfo = {}
|
|
|
facterInfo['id'] = self.getId()
|
|
@@ -333,12 +290,8 @@ class FacterWindows(Facter):
|
|
|
|
|
|
def facterInfo(self):
|
|
|
facterInfo = super(FacterWindows, self).facterInfo()
|
|
|
- systemResourceOverrides = self.getSystemResourceOverrides()
|
|
|
- facterInfo = self.replaceFacterInfoWithSystemResources(systemResourceOverrides, facterInfo)
|
|
|
- facterInfo['swapsize'] = Facter.convertSizeMbToGb(
|
|
|
- self.getSystemResourceIfExists(systemResourceOverrides, 'swapsize', self.getSwapSize()))
|
|
|
- facterInfo['swapfree'] = Facter.convertSizeMbToGb(
|
|
|
- self.getSystemResourceIfExists(systemResourceOverrides, 'swapfree', self.getSwapFree()))
|
|
|
+ facterInfo['swapsize'] = Facter.convertSizeMbToGb(self.getSwapSize())
|
|
|
+ facterInfo['swapfree'] = Facter.convertSizeMbToGb(self.getSwapFree())
|
|
|
return facterInfo
|
|
|
|
|
|
|
|
@@ -515,14 +468,9 @@ class FacterLinux(Facter):
|
|
|
|
|
|
def facterInfo(self):
|
|
|
facterInfo = super(FacterLinux, self).facterInfo()
|
|
|
- systemResourceOverrides = self.getSystemResourceOverrides()
|
|
|
- facterInfo = self.replaceFacterInfoWithSystemResources(systemResourceOverrides, facterInfo)
|
|
|
-
|
|
|
facterInfo['selinux'] = self.isSeLinux()
|
|
|
- facterInfo['swapsize'] = Facter.convertSizeKbToGb(
|
|
|
- self.getSystemResourceIfExists(systemResourceOverrides, 'swapsize', self.getSwapSize()))
|
|
|
- facterInfo['swapfree'] = Facter.convertSizeKbToGb(
|
|
|
- self.getSystemResourceIfExists(systemResourceOverrides, 'swapfree', self.getSwapFree()))
|
|
|
+ facterInfo['swapsize'] = Facter.convertSizeKbToGb(self.getSwapSize())
|
|
|
+ facterInfo['swapfree'] = Facter.convertSizeKbToGb(self.getSwapFree())
|
|
|
return facterInfo
|
|
|
|
|
|
|