import sys, os, glob, select, importlib, re
from fabric.api import *
from fabric.contrib import files
from datetime import datetime
#======================================================
# SSH User
#======================================================
hostname = os.uname()[1]
if hostname == "fasthandle-1":
env.user = 'fasthandle'
env.password = 'fastpass'
elif hostname == "stg-fasthandle-1":
env.user = 'fasthandle'
env.password = 'fastpass'
elif hostname == "dev-fasthandle-1":
env.user = 'fasthandle'
env.key_filename = '$FHHOME/key/id_rsa.fasthandle.dev-fasthandle-1'
#env.password = 'passphrase-for-key'
#======================================================
# Variable
#======================================================
FHHOME=os.environ["FHHOME"]
env.warn_only = True
env.port = 22
env.eagerly_disconnect = True
#don't create *.pyc without __init__.pyc
sys.dont_write_bytecode = True
#======================================================
#======================================================
# standard in for example echo x.x.x.x
if select.select([sys.stdin,],[],[],0.0)[0]:
lines = sys.stdin.read().splitlines()
env.hosts = filter(bool, lines)
#FastHandle Operation History to log file
TIME = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
yymm = datetime.now().strftime('%Y%m')
f=open("%s/log/fab.%s.log" % (FHHOME,yymm) ,"a")
if env.hosts == []:
f.write("%s stdin-null " % TIME)
f.write(' '.join(str(p) for p in sys.argv))
f.write("\n")
for p in env.hosts:
f.write("%s %s " % (TIME,p))
f.write(' '.join(str(p) for p in sys.argv))
f.write("\n")
f.close()
# auto import *.py
# Ref. https://gist.github.com/fereria/3331554f4c480679716b#file-__init__-py
pathThisFile = os.path.dirname(os.path.abspath(__file__))
def loadModule():
myself = sys.modules[__name__]
#print __name__
mod_paths = glob.glob(os.path.join(pathThisFile, '*.py'))
for py_file in mod_paths:
mod_name = os.path.splitext(os.path.basename(py_file))[0]
if re.search(".*__init__.*",mod_name) is None:
mod = importlib.import_module(__name__+ "." + mod_name)
#for m in mod.__dict__.keys():
#if not m in ['__builtins__', '__doc__', '__file__', '__name__', '__package__']:
#myself.__dict__[m] = mod.__dict__[m]
loadModule()