Fab files format changed
This commit is contained in:
parent
e07cd1462e
commit
408c033338
|
@ -15,9 +15,9 @@ from fabvenv import virtualenv
|
|||
|
||||
|
||||
FABRIC_ROOT = os.path.dirname(__file__)
|
||||
PROJECT_ROOT = os.path.dirname(FABRIC_ROOT)
|
||||
project_root = os.path.dirname(FABRIC_ROOT)
|
||||
VENV_ROOT = os.path.expanduser(os.path.join('~', '.virtualenvs', 'pybitmessage-devops'))
|
||||
PYTHONPATH = os.path.join(PROJECT_ROOT, 'src',)
|
||||
PYTHONPATH = os.path.join(project_root, 'src', )
|
||||
|
||||
|
||||
def coerce_list(value):
|
||||
|
@ -72,7 +72,7 @@ def filelist_from_git(rev=None):
|
|||
else:
|
||||
cmd += ' -r {}'.format(rev)
|
||||
|
||||
with cd(PROJECT_ROOT):
|
||||
with cd(project_root):
|
||||
with hide('running', 'stdout'):
|
||||
results = []
|
||||
ansi_escape = re.compile(r'\x1B\[[0-?]*[ -/]*[@-~]')
|
||||
|
@ -92,7 +92,7 @@ def pycodestyle(path_to_file):
|
|||
return run(
|
||||
'pycodestyle --config={0} {1}'.format(
|
||||
os.path.join(
|
||||
PROJECT_ROOT,
|
||||
project_root,
|
||||
'setup.cfg',
|
||||
),
|
||||
path_to_file,
|
||||
|
@ -108,7 +108,7 @@ def flake8(path_to_file):
|
|||
return run(
|
||||
'flake8 --config={0} {1}'.format(
|
||||
os.path.join(
|
||||
PROJECT_ROOT,
|
||||
project_root,
|
||||
'setup.cfg',
|
||||
),
|
||||
path_to_file,
|
||||
|
@ -125,7 +125,7 @@ def pylint(path_to_file):
|
|||
return run(
|
||||
'pylint --rcfile={0} {1}'.format(
|
||||
os.path.join(
|
||||
PROJECT_ROOT,
|
||||
project_root,
|
||||
'setup.cfg',
|
||||
),
|
||||
path_to_file,
|
||||
|
|
|
@ -15,7 +15,7 @@ from fabric.contrib.project import rsync_project
|
|||
from fabvenv import virtualenv
|
||||
|
||||
from fabfile.lib import (
|
||||
autopep8, PROJECT_ROOT, VENV_ROOT, coerce_bool, flatten, filelist_from_git, default_hosts,
|
||||
autopep8, project_root, VENV_ROOT, coerce_bool, flatten, filelist_from_git, default_hosts,
|
||||
get_filtered_pycodestyle_output, get_filtered_flake8_output, get_filtered_pylint_output,
|
||||
)
|
||||
|
||||
|
@ -28,16 +28,17 @@ def get_tool_results(file_list):
|
|||
|
||||
results = []
|
||||
for path_to_file in file_list:
|
||||
result = {}
|
||||
result['pycodestyle_violations'] = get_filtered_pycodestyle_output(path_to_file)
|
||||
result['flake8_violations'] = get_filtered_flake8_output(path_to_file)
|
||||
result['pylint_violations'] = get_filtered_pylint_output(path_to_file)
|
||||
result['path_to_file'] = path_to_file
|
||||
result['total_violations'] = sum([
|
||||
len(result['pycodestyle_violations']),
|
||||
len(result['flake8_violations']),
|
||||
len(result['pylint_violations']),
|
||||
])
|
||||
result = {
|
||||
'pycodestyle_violations': get_filtered_pycodestyle_output(path_to_file),
|
||||
'flake8_violations': get_filtered_flake8_output(path_to_file),
|
||||
'pylint_violations': get_filtered_pylint_output(path_to_file),
|
||||
'path_to_file': path_to_file,
|
||||
'total_violations': sum([
|
||||
len(result['pycodestyle_violations']),
|
||||
len(result['flake8_violations']),
|
||||
len(result['pylint_violations']),
|
||||
])
|
||||
}
|
||||
results.append(result)
|
||||
return results
|
||||
|
||||
|
@ -46,13 +47,13 @@ def print_results(results, top, verbose, details):
|
|||
"""Print an item with the appropriate verbosity / detail"""
|
||||
|
||||
if verbose and results:
|
||||
print ''.join(
|
||||
print(''.join(
|
||||
[
|
||||
os.linesep,
|
||||
'total pycodestyle flake8 pylint path_to_file',
|
||||
os.linesep,
|
||||
]
|
||||
)
|
||||
))
|
||||
|
||||
for item in sort_and_slice(results, top):
|
||||
|
||||
|
@ -66,22 +67,22 @@ def print_results(results, top, verbose, details):
|
|||
)
|
||||
else:
|
||||
line = item['path_to_file']
|
||||
print line
|
||||
print(line)
|
||||
|
||||
if details:
|
||||
print "pycodestyle:"
|
||||
print("pycodestyle:")
|
||||
for detail in flatten(item['pycodestyle_violations']):
|
||||
print detail
|
||||
print(detail)
|
||||
print
|
||||
|
||||
print "flake8:"
|
||||
print("flake8:")
|
||||
for detail in flatten(item['flake8_violations']):
|
||||
print detail
|
||||
print(detail)
|
||||
print
|
||||
|
||||
print "pylint:"
|
||||
print("pylint:")
|
||||
for detail in flatten(item['pylint_violations']):
|
||||
print detail
|
||||
print(detail)
|
||||
print
|
||||
|
||||
|
||||
|
@ -107,13 +108,13 @@ def generate_file_list(filename):
|
|||
if filename:
|
||||
filename = os.path.abspath(filename)
|
||||
if not os.path.exists(filename):
|
||||
print "Bad filename, specify a Python file"
|
||||
print("Bad filename, specify a Python file")
|
||||
sys.exit(1)
|
||||
else:
|
||||
file_list = [filename]
|
||||
|
||||
else:
|
||||
with cd(PROJECT_ROOT):
|
||||
with cd(project_root):
|
||||
file_list = [
|
||||
os.path.abspath(i.rstrip('\r'))
|
||||
for i in run('find . -name "*.py"').split(os.linesep)
|
||||
|
@ -137,15 +138,15 @@ def create_dependency_graphs():
|
|||
with hide('running', 'stdout'):
|
||||
|
||||
# .. todo:: consider a better place to put this, use a particular commit
|
||||
with cd(PROJECT_ROOT):
|
||||
with cd(project_root):
|
||||
with settings(warn_only=True):
|
||||
if run('stat pyan').return_code:
|
||||
run('git clone https://github.com/davidfraser/pyan.git')
|
||||
with cd(os.path.join(PROJECT_ROOT, 'pyan')):
|
||||
with cd(os.path.join(project_root, 'pyan')):
|
||||
run('git checkout pre-python3')
|
||||
|
||||
# .. todo:: Use better settings. This is MVP to make a diagram
|
||||
with cd(PROJECT_ROOT):
|
||||
with cd(project_root):
|
||||
file_list = run("find . -type f -name '*.py' ! -path './src/.eggs/*'").split('\r\n')
|
||||
for cmd in [
|
||||
'neato -Goverlap=false -Tpng > deps-neato.png',
|
||||
|
@ -215,7 +216,7 @@ def code_quality(verbose=True, details=False, fix=False, filename=None, top=10,
|
|||
def test():
|
||||
"""Run tests on the code"""
|
||||
|
||||
with cd(PROJECT_ROOT):
|
||||
with cd(project_root):
|
||||
with virtualenv(VENV_ROOT):
|
||||
|
||||
run('pip uninstall -y pybitmessage')
|
||||
|
@ -264,14 +265,14 @@ def build_docs(dep_graph=False, apidoc=True):
|
|||
|
||||
apidoc_result = 0
|
||||
if apidoc:
|
||||
run('mkdir -p {}'.format(os.path.join(PROJECT_ROOT, 'docs', 'autodoc')))
|
||||
with cd(os.path.join(PROJECT_ROOT, 'docs', 'autodoc')):
|
||||
run('mkdir -p {}'.format(os.path.join(project_root, 'docs', 'autodoc')))
|
||||
with cd(os.path.join(project_root, 'docs', 'autodoc')):
|
||||
with settings(warn_only=True):
|
||||
run('rm *.rst')
|
||||
with cd(os.path.join(PROJECT_ROOT, 'docs')):
|
||||
with cd(os.path.join(project_root, 'docs')):
|
||||
apidoc_result = run('sphinx-apidoc -o autodoc ..').return_code
|
||||
|
||||
with cd(os.path.join(PROJECT_ROOT, 'docs')):
|
||||
with cd(os.path.join(project_root, 'docs')):
|
||||
make_result = run('make html').return_code
|
||||
return_code = apidoc_result + make_result
|
||||
|
||||
|
@ -294,16 +295,16 @@ def push_docs(path=None):
|
|||
"""
|
||||
|
||||
# Making assumptions
|
||||
WEB_ROOT = path if path is not None else os.path.join('var', 'www', 'html', 'pybitmessage', 'en', 'latest')
|
||||
VERSION_ROOT = os.path.join(os.path.dirname(WEB_ROOT), softwareVersion)
|
||||
web_root = path if path is not None else os.path.join('var', 'www', 'html', 'pybitmessage', 'en', 'latest')
|
||||
version_root = os.path.join(os.path.dirname(web_root), softwareVersion)
|
||||
|
||||
rsync_project(
|
||||
remote_dir=VERSION_ROOT,
|
||||
local_dir=os.path.join(PROJECT_ROOT, 'docs', '_build', 'html')
|
||||
remote_dir=version_root,
|
||||
local_dir=os.path.join(project_root, 'docs', '_build', 'html')
|
||||
)
|
||||
result = run('ln -sf {0} {1}'.format(WEB_ROOT, VERSION_ROOT))
|
||||
result = run('ln -sf {0} {1}'.format(web_root, version_root))
|
||||
if result.return_code:
|
||||
print 'Linking the new release failed'
|
||||
print('Linking the new release failed')
|
||||
|
||||
# More assumptions
|
||||
sudo('systemctl restart apache2')
|
||||
|
@ -314,5 +315,5 @@ def push_docs(path=None):
|
|||
def clean():
|
||||
"""Clean up files generated by fabric commands."""
|
||||
with hide('running', 'stdout'):
|
||||
with cd(PROJECT_ROOT):
|
||||
with cd(project_root):
|
||||
run(r"find . -name '*.pyc' -exec rm '{}' \;")
|
||||
|
|
|
@ -7,18 +7,20 @@ import xmlrpclib
|
|||
pybmurl = ""
|
||||
api = ""
|
||||
|
||||
|
||||
def init_callback():
|
||||
global api
|
||||
api = xmlrpclib.ServerProxy(pybmurl)
|
||||
collectd.info('pybitmessagestatus.py init done')
|
||||
|
||||
def config_callback(ObjConfiguration):
|
||||
|
||||
def config_callback(obj_configuration):
|
||||
global pybmurl
|
||||
apiUsername = ""
|
||||
apiPassword = ""
|
||||
apiInterface = "127.0.0.1"
|
||||
apiPort = 8445
|
||||
for node in ObjConfiguration.children:
|
||||
for node in obj_configuration.children:
|
||||
key = node.key.lower()
|
||||
if key.lower() == "apiusername" and node.values:
|
||||
apiUsername = node.values[0]
|
||||
|
@ -31,14 +33,17 @@ def config_callback(ObjConfiguration):
|
|||
pybmurl = "http://" + apiUsername + ":" + apiPassword + "@" + apiInterface+ ":" + str(int(apiPort)) + "/"
|
||||
collectd.info('pybitmessagestatus.py config done')
|
||||
|
||||
|
||||
def read_callback():
|
||||
try:
|
||||
clientStatus = json.loads(api.clientStatus())
|
||||
client_status = json.loads(api.clientStatus())
|
||||
except:
|
||||
collectd.info("Exception loading or parsing JSON")
|
||||
return
|
||||
|
||||
for i in ["networkConnections", "numberOfPubkeysProcessed", "numberOfMessagesProcessed", "numberOfBroadcastsProcessed"]:
|
||||
con_data = ["networkConnections", "numberOfPubkeysProcessed",
|
||||
"numberOfMessagesProcessed", "numberOfBroadcastsProcessed"]
|
||||
for i in con_data:
|
||||
metric = collectd.Values()
|
||||
metric.plugin = "pybitmessagestatus"
|
||||
if i[0:6] == "number":
|
||||
|
@ -47,11 +52,12 @@ def read_callback():
|
|||
metric.type = 'gauge'
|
||||
metric.type_instance = i.lower()
|
||||
try:
|
||||
metric.values = [clientStatus[i]]
|
||||
metric.values = [client_status[i]]
|
||||
except:
|
||||
collectd.info("Value for %s missing" % (i))
|
||||
metric.dispatch()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
else:
|
||||
|
|
Loading…
Reference in New Issue
Block a user