示例#1
0
    pass


class NotConfiguredError(BaseException):
    pass


EMBED_SNMPD = True
NET_SNMPD = False

SNMP_RESTART_DELAY = 5  # Seconds
SNMP_POLL_INTERVAL = 10  # Seconds

if linux.os.windows_family:
    from scalarizr.util import reg_value
    INSTALL_DIR = reg_value('InstallDir')
else:
    INSTALL_DIR = '/'

PID_FILE = os.path.join(INSTALL_DIR, 'var', 'run', 'scalarizr.pid')

LOGFILES_BASEPATH = os.path.join(INSTALL_DIR, 'var', 'log')
LOG_PATH = os.path.join(LOGFILES_BASEPATH, 'scalarizr.log')
LOG_DEBUG_PATH = os.path.join(LOGFILES_BASEPATH, 'scalarizr_debug.log')

LOGGING_CONFIG = r'''
[loggers]
keys=root,scalarizr

[handlers]
keys=console,user_log,debug_log
示例#2
0
 def installed_version(self, name):
     ''' Return installed package version '''
     return '{0}-{1}'.format(util.reg_value('DisplayVersion'),
                             util.reg_value('DisplayRelease'))
示例#3
0
 def installed_version(self, name):
     ''' Return installed package version '''
     return '{0}-{1}'.format(util.reg_value('DisplayVersion'), util.reg_value('DisplayRelease'))
示例#4
0
    class WinPackageMgr(object):
        SOURCES_DIR = os.path.join(util.reg_value('InstallDir'), 'etc')

        def __init__(self):
            self.index = None

        def install(self, name, version=None, updatedb=False, **kwds):
            ''' Installs a `version` of package `name` '''
            if not self.index or updatedb:
                self.updatedb()
            packageurl = self.index[
                name]  # simplification. candidate is always the one.

            tmp_dir = tempfile.mkdtemp()
            try:
                packagefile = os.path.join(tmp_dir,
                                           os.path.basename(packageurl))
                LOG.info('Downloading %s', packageurl)
                urlretrieve(packageurl, packagefile)

                LOG.info('Executing installer')
                p = subprocess.Popen('start "Installer" /wait "%s" /S' %
                                     packagefile,
                                     shell=True)
                out, err = p.communicate()
                LOG.debug('out: %s', out)
                LOG.debug('err: %s', err)
                if p.returncode:
                    msg = 'Installation failed. <out>: %s, <err>: %s' % (out,
                                                                         err)
                    raise Exception(msg)
                LOG.info('Done')
            finally:
                shutil.rmtree(tmp_dir)

        def installed_version(self, name):
            ''' Return installed package version '''
            return '{0}-{1}'.format(util.reg_value('DisplayVersion'),
                                    util.reg_value('DisplayRelease'))

        def _join_packages_str(self, sep, name, version, *args):
            packages = [(name, version)]
            if args:
                for i in xrange(0, len(args), 2):
                    packages.append(args[i:i + 2])
            format = '%s' + sep + '%s'
            return ' '.join(format % p for p in packages)

        def updatedb(self, **kwds):
            tmp_dir = tempfile.mkdtemp()

            self.index = {}
            try:
                LOG.debug('Scan package sources dir')
                for sourcesfile in glob.glob(
                        os.path.join(self.SOURCES_DIR, '*.winrepo')):
                    LOG.debug('Process sources file %s', sourcesfile)
                    urls = open(sourcesfile).read().splitlines()
                    urls = map(string.strip, urls)
                    urls = filter(lambda u: u and not u.startswith('#'), urls)
                    for url in urls:
                        if not re.search(r'{0}/?'.format(linux.os['arch']),
                                         url):
                            url = posixpath.join(url, linux.os['arch'])
                        dst = os.path.join(tmp_dir, url.replace('/', '_'))
                        src = posixpath.join(url, 'index')
                        LOG.debug('Fetching index file %s', src)
                        urlretrieve(src, dst)

                        with open(dst) as fp:
                            for line in fp:
                                colums = map(string.strip, line.split(' '))
                                colums = filter(None, colums)
                                package = colums[0]
                                packagefile = colums[1]
                                self.index[package] = posixpath.join(
                                    url, packagefile)
            finally:
                shutil.rmtree(tmp_dir)

        def info(self, name):
            if not self.index:
                self.updatedb()

            try:
                installed = self.installed_version(name)
            except:
                installed = None
            try:
                candidate = os.path.basename(self.index[name])
                candidate = candidate.split('_', 1)[1].rsplit('.', 2)[0]
            except KeyError:
                candidate = None
            if installed and installed == candidate:
                candidate = None

            LOG.debug('Package %s info. installed: %s, candidate: %s', name,
                      installed, candidate)
            return {'installed': installed, 'candidate': candidate}

        def version_cmp(self, name_1, name_2):
            return cmp(distutils.version.LooseVersion(name_1),
                       distutils.version.LooseVersion(name_2))

        def list(self):
            return []
示例#5
0
class ScalarizrError(BaseException):
    pass

class NotConfiguredError(BaseException):
    pass


EMBED_SNMPD = True
NET_SNMPD = False

SNMP_RESTART_DELAY = 5 # Seconds
SNMP_POLL_INTERVAL = 10 # Seconds

if linux.os.windows_family:
    from scalarizr.util import reg_value
    INSTALL_DIR = reg_value('InstallDir')
else:
    INSTALL_DIR = '/'

PID_FILE = os.path.join(INSTALL_DIR, 'var', 'run', 'scalarizr.pid')

LOGFILES_BASEPATH = os.path.join(INSTALL_DIR, 'var', 'log')
LOG_PATH = os.path.join(LOGFILES_BASEPATH, 'scalarizr.log')
LOG_DEBUG_PATH = os.path.join(LOGFILES_BASEPATH, 'scalarizr_debug.log')

LOGGING_CONFIG = r'''
[loggers]
keys=root,scalarizr

[handlers]
keys=console,user_log,debug_log