Create galaxy-job-metrics package to share with Pulsar.

This commit is contained in:
John Chilton
2019-05-16 16:45:41 -04:00
parent 939e7774a8
commit caa3d4243a
30 changed files with 160 additions and 8 deletions
+1 -2
View File
@@ -10,9 +10,8 @@ import galaxy.model.security
import galaxy.queues
import galaxy.quota
import galaxy.security
from galaxy import config, jobs
from galaxy import config, job_metrics, jobs
from galaxy.containers import build_container_interfaces
from galaxy.jobs import metrics as job_metrics
from galaxy.managers.collections import DatasetCollectionManager
from galaxy.managers.folders import FolderManager
from galaxy.managers.histories import HistoryManager
@@ -16,7 +16,7 @@ import os
from galaxy import util
from galaxy.util import plugin_config
from ..metrics import formatting
from ..job_metrics import formatting
log = logging.getLogger(__name__)
@@ -59,8 +59,8 @@ class JobMetrics(object):
return self.job_instrumenters[destination_id].collect_properties(job_id, job_directory)
def __plugins_dict(self):
import galaxy.jobs.metrics.instrumenters
return plugin_config.plugins_dict(galaxy.jobs.metrics.instrumenters, 'plugin_type')
import galaxy.job_metrics.instrumenters
return plugin_config.plugins_dict(galaxy.job_metrics.instrumenters, 'plugin_type')
class NullJobInstrumenter(object):
@@ -10,7 +10,7 @@ from abc import (
import six
from ...metrics import formatting
from .. import formatting
INSTRUMENT_FILE_PREFIX = "__instrument"
+12
View File
@@ -0,0 +1,12 @@
.. :changelog:
History
-------
.. to_doc
---------------------
19.9.0.dev0
---------------------
* Initial import from dev branch of Galaxy during 19.09 release cycle.
+1
View File
@@ -0,0 +1 @@
../../LICENSE.txt
+1
View File
@@ -0,0 +1 @@
include *.rst LICENSE
+14
View File
@@ -0,0 +1,14 @@
.. image:: https://badge.fury.io/py/galaxy-job-metrics.svg
:target: https://pypi.python.org/pypi/galaxy-job-metrics/
Overview
--------
The Galaxy_ job metrics framework and default plugins.
* Free software: Academic Free License version 3.0
* Code: https://github.com/galaxyproject/galaxy
.. _Galaxy: http://galaxyproject.org/
+1
View File
@@ -0,0 +1 @@
__path__ = __import__('pkgutil').extend_path(__path__, __name__)
+1
View File
@@ -0,0 +1 @@
../../../lib/galaxy/job_metrics/
@@ -0,0 +1,12 @@
# -*- coding: utf-8 -*-
__version__ = '19.9.0.dev0'
PROJECT_NAME = "galaxy-job-metrics"
PROJECT_OWNER = PROJECT_USERAME = "galaxyproject"
PROJECT_URL = "https://github.com/galaxyproject/galaxy"
PROJECT_AUTHOR = 'Galaxy Project and Community'
PROJECT_EMAIL = 'jmchilton@gmail.com'
RAW_CONTENT_URL = "https://raw.github.com/%s/%s/master/" % (
PROJECT_USERAME, PROJECT_NAME
)
+1
View File
@@ -0,0 +1 @@
galaxy-util
+1
View File
@@ -0,0 +1 @@
../../setup.cfg
+101
View File
@@ -0,0 +1,101 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import ast
import os
import re
try:
from setuptools import setup
except ImportError:
from distutils.core import setup
SOURCE_DIR = "galaxy"
_version_re = re.compile(r'__version__\s+=\s+(.*)')
with open('%s/project_galaxy_job_metrics.py' % SOURCE_DIR, 'rb') as f:
init_contents = f.read().decode('utf-8')
def get_var(var_name):
pattern = re.compile(r'%s\s+=\s+(.*)' % var_name)
match = pattern.search(init_contents).group(1)
return str(ast.literal_eval(match))
version = get_var("__version__")
PROJECT_NAME = get_var("PROJECT_NAME")
PROJECT_URL = get_var("PROJECT_URL")
PROJECT_AUTHOR = get_var("PROJECT_AUTHOR")
PROJECT_EMAIL = get_var("PROJECT_EMAIL")
TEST_DIR = 'tests'
PROJECT_DESCRIPTION = 'Galaxy Job Metrics'
PACKAGES = [
'galaxy',
'galaxy.job_metrics',
'galaxy.job_metrics.instrumers',
'galaxy.job_metrics.collectl',
]
ENTRY_POINTS = '''
[console_scripts]
'''
PACKAGE_DATA = {
# Be sure to update MANIFEST.in for source dist.
'galaxy': [
],
}
PACKAGE_DIR = {
SOURCE_DIR: SOURCE_DIR,
}
readme = open('README.rst').read()
history = open('HISTORY.rst').read().replace('.. :changelog:', '')
if os.path.exists("requirements.txt"):
requirements = open("requirements.txt").read().split("\n")
else:
# In tox, it will cover them anyway.
requirements = []
test_requirements = [
# TODO: put package test requirements here
]
setup(
name=PROJECT_NAME,
version=version,
description=PROJECT_DESCRIPTION,
long_description=readme + '\n\n' + history,
author=PROJECT_AUTHOR,
author_email=PROJECT_EMAIL,
url=PROJECT_URL,
packages=PACKAGES,
entry_points=ENTRY_POINTS,
package_data=PACKAGE_DATA,
package_dir=PACKAGE_DIR,
include_package_data=True,
install_requires=requirements,
license="AFL",
zip_safe=False,
keywords='galaxy',
classifiers=[
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Developers',
'Environment :: Console',
'License :: OSI Approved :: Academic Free License (AFL)',
'Operating System :: POSIX',
'Topic :: Software Development',
'Topic :: Software Development :: Code Generators',
'Topic :: Software Development :: Testing',
'Natural Language :: English',
"Programming Language :: Python :: 2",
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
],
test_suite=TEST_DIR,
tests_require=test_requirements
)
+1
View File
@@ -0,0 +1 @@
../../../test/unit/jobs/test_job_metrics.py
+7
View File
@@ -0,0 +1,7 @@
from galaxy.job_metrics import JobMetrics
def test_job_metrics_load():
# Just construct the manager to make sure all the plugin classes load fine
# and package is configured properly.
JobMetrics()
+2 -2
View File
@@ -5,8 +5,8 @@ from unittest import TestCase
import psutil
from galaxy import job_metrics
from galaxy import model
from galaxy.jobs import metrics
from galaxy.jobs.runners import local
from galaxy.util import bunch
from ..tools_support import (
@@ -20,7 +20,7 @@ class TestLocalJobRunner(TestCase, UsesApp, UsesTools):
def setUp(self):
self.setup_app()
self._init_tool()
self.app.job_metrics = metrics.JobMetrics()
self.app.job_metrics = job_metrics.JobMetrics()
self.job_wrapper = MockJobWrapper(self.app, self.test_directory, self.tool)
def tearDown(self):