def cutover(self, dmd): db = ZenDB.ZenDB('zep', useAdmin=True) sql_cmd = textwrap.dedent(''' GRANT SELECT ON mysql.proc TO '{zep-user}'@'{zep-host}'; GRANT SELECT ON mysql.proc TO '{zep-user}'@'%'; FLUSH PRIVILEGES; ''') d = GlobalConfig.globalConfToDict() db.executeSql(sql_cmd.format(**d))
def _getPreferedIpVersion(): """ Determine the preferred ip version for DNS resolution. """ PREFERRED_IP_KEY = 'preferredipversion' from Products.ZenUtils import GlobalConfig globalConf = GlobalConfig.getGlobalConfiguration() if PREFERRED_IP_KEY in globalConf: version = globalConf[PREFERRED_IP_KEY] if version.lower() == IPV4_ADDR_TYPE.lower(): return socket.AF_INET elif version.lower() == IPV6_ADDR_TYPE.lower(): return socket.AF_INET6 else: import sys print >> sys.stderr, 'unknown preferredipversion %s in global.conf' % version return None # use the system default, overrideable in /etc/gai.conf
def cutover(self, dmd): conf = GlobalConfig.globalConfToDict() host = conf.get('zodb-host') port = conf.get('zodb-port') user = conf.get('zodb-user') passwd = conf.get('zodb-password') zodb = conf.get('zodb-db', 'zodb') zodb_session = zodb + "_session" def zendb(dbname, sql): env = os.environ.copy() env['MYSQL_PWD'] = passwd cmd = [ 'mysql', '--skip-column-names', '--user=%s' % user, '--host=%s' % host, '--port=%s' % port, '--database=%s' % dbname ] s = Popen(cmd, env=env, stdin=PIPE, stdout=PIPE, stderr=PIPE) try: stdout, stderr = s.communicate(sql) rc = s.wait() if rc: log.error("Error executing mysql: %s %s\n" % (stdout, stderr)) else: return (stdout, stderr) except KeyboardInterrupt: subprocess.call('stty sane', shell=True) s.kill() for db in [zodb, zodb_session]: getEngine = "SELECT count(*) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = '%s' AND table_name = 'connection_info' and engine != 'InnoDB'" % db change_engine = "ALTER TABLE connection_info ENGINE=InnoDB" log.info("Checking engine of the connection_info table in %s." % db) stdout, stderr = zendb(db, getEngine) if stdout and int(stdout) > 0: log.info("Changing engine of connection_info to InnoDB in %s" % db) stdout, stderr = zendb(db, change_engine)
def cutover(self, dmd): conf = GlobalConfig.globalConfToDict() host = conf.get('zodb-host') port = conf.get('zodb-port') user = conf.get('zodb-user') passwd = conf.get('zodb-password') zodb = conf.get('zodb-db','zodb') zodb_session = zodb + "_session" def zendb(dbname, sql): env = os.environ.copy() env['MYSQL_PWD'] = passwd cmd = ['mysql', '--skip-column-names', '--user=%s' % user, '--host=%s' % host, '--port=%s' % port, '--database=%s' % dbname] s = Popen(cmd, env=env, stdin=PIPE, stdout=PIPE, stderr=PIPE) try: stdout, stderr = s.communicate(sql) rc = s.wait() if rc: log.error("Error executing mysql: %s %s\n" % (stdout, stderr)) else: return (stdout, stderr) except KeyboardInterrupt: subprocess.call('stty sane', shell=True) s.kill() for db in [zodb, zodb_session]: getEngine = "SELECT count(*) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = '%s' AND table_name = 'connection_info' and engine != 'InnoDB'" % db change_engine = "ALTER TABLE connection_info ENGINE=InnoDB" log.info("Checking engine of the connection_info table in %s." % db) stdout, stderr = zendb(db, getEngine) if stdout and int(stdout) > 0: log.info("Changing engine of connection_info to InnoDB in %s" % db) stdout, stderr = zendb(db, change_engine)
master_info['diskstats']['diskutil'] = ftemp[len(ftemp) - 1] for info in [ 'name', 'type', 'size', 'used', 'available', 'iowait', 'diskutil' ]: value = master_info['diskstats'][info] out.write(" * " + info.title() + ": " + str(value) + "\n") except Exception as ex: out.write(" Unable to retrieve information for this section: %s\n" % ex.message) out.write("\n\n") # Try to get memcached information out.write("* Memcached Information\n\n") try: master_info['memcached'] = {} gc = GlobalConfig.getGlobalConfiguration() if 'zodb-cacheservers' in gc: # In 4.2.X, config property is zodb-cacheservers cacheserver = gc.get('zodb-cacheservers') else: # In 4.1.X, config property is cacheservers cacheserver = gc.get('cacheservers') cmd = "memcached-tool " + cacheserver + " stats" memcoutput = executeLocalCommand(cmd) memcinfo = processMemcacheInfo(memcoutput) for info in [ 'Maximum Size', 'Current Size', 'Current Connections', 'Evictions' ]: value = memcinfo[info] out.write(" * " + info + ": " + str(value) + "\n") master_info['memcached'][info] = value