diff --git a/lib/galaxy/app.py b/lib/galaxy/app.py index 6e66f5b26b8..e771ce70ba8 100644 --- a/lib/galaxy/app.py +++ b/lib/galaxy/app.py @@ -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 diff --git a/lib/galaxy/jobs/metrics/__init__.py b/lib/galaxy/job_metrics/__init__.py similarity index 96% rename from lib/galaxy/jobs/metrics/__init__.py rename to lib/galaxy/job_metrics/__init__.py index 14413a8ab1d..d99f4e06693 100644 --- a/lib/galaxy/jobs/metrics/__init__.py +++ b/lib/galaxy/job_metrics/__init__.py @@ -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): diff --git a/lib/galaxy/jobs/metrics/collectl/__init__.py b/lib/galaxy/job_metrics/collectl/__init__.py similarity index 100% rename from lib/galaxy/jobs/metrics/collectl/__init__.py rename to lib/galaxy/job_metrics/collectl/__init__.py diff --git a/lib/galaxy/jobs/metrics/collectl/cli.py b/lib/galaxy/job_metrics/collectl/cli.py similarity index 100% rename from lib/galaxy/jobs/metrics/collectl/cli.py rename to lib/galaxy/job_metrics/collectl/cli.py diff --git a/lib/galaxy/jobs/metrics/collectl/processes.py b/lib/galaxy/job_metrics/collectl/processes.py similarity index 100% rename from lib/galaxy/jobs/metrics/collectl/processes.py rename to lib/galaxy/job_metrics/collectl/processes.py diff --git a/lib/galaxy/jobs/metrics/collectl/stats.py b/lib/galaxy/job_metrics/collectl/stats.py similarity index 100% rename from lib/galaxy/jobs/metrics/collectl/stats.py rename to lib/galaxy/job_metrics/collectl/stats.py diff --git a/lib/galaxy/jobs/metrics/collectl/subsystems.py b/lib/galaxy/job_metrics/collectl/subsystems.py similarity index 100% rename from lib/galaxy/jobs/metrics/collectl/subsystems.py rename to lib/galaxy/job_metrics/collectl/subsystems.py diff --git a/lib/galaxy/jobs/metrics/formatting.py b/lib/galaxy/job_metrics/formatting.py similarity index 100% rename from lib/galaxy/jobs/metrics/formatting.py rename to lib/galaxy/job_metrics/formatting.py diff --git a/lib/galaxy/jobs/metrics/instrumenters/__init__.py b/lib/galaxy/job_metrics/instrumenters/__init__.py similarity index 98% rename from lib/galaxy/jobs/metrics/instrumenters/__init__.py rename to lib/galaxy/job_metrics/instrumenters/__init__.py index 952ec6f4b55..9137ffc9020 100644 --- a/lib/galaxy/jobs/metrics/instrumenters/__init__.py +++ b/lib/galaxy/job_metrics/instrumenters/__init__.py @@ -10,7 +10,7 @@ from abc import ( import six -from ...metrics import formatting +from .. import formatting INSTRUMENT_FILE_PREFIX = "__instrument" diff --git a/lib/galaxy/jobs/metrics/instrumenters/cgroup.py b/lib/galaxy/job_metrics/instrumenters/cgroup.py similarity index 100% rename from lib/galaxy/jobs/metrics/instrumenters/cgroup.py rename to lib/galaxy/job_metrics/instrumenters/cgroup.py diff --git a/lib/galaxy/jobs/metrics/instrumenters/collectl.py b/lib/galaxy/job_metrics/instrumenters/collectl.py similarity index 100% rename from lib/galaxy/jobs/metrics/instrumenters/collectl.py rename to lib/galaxy/job_metrics/instrumenters/collectl.py diff --git a/lib/galaxy/jobs/metrics/instrumenters/core.py b/lib/galaxy/job_metrics/instrumenters/core.py similarity index 100% rename from lib/galaxy/jobs/metrics/instrumenters/core.py rename to lib/galaxy/job_metrics/instrumenters/core.py diff --git a/lib/galaxy/jobs/metrics/instrumenters/cpuinfo.py b/lib/galaxy/job_metrics/instrumenters/cpuinfo.py similarity index 100% rename from lib/galaxy/jobs/metrics/instrumenters/cpuinfo.py rename to lib/galaxy/job_metrics/instrumenters/cpuinfo.py diff --git a/lib/galaxy/jobs/metrics/instrumenters/env.py b/lib/galaxy/job_metrics/instrumenters/env.py similarity index 100% rename from lib/galaxy/jobs/metrics/instrumenters/env.py rename to lib/galaxy/job_metrics/instrumenters/env.py diff --git a/lib/galaxy/jobs/metrics/instrumenters/hostname.py b/lib/galaxy/job_metrics/instrumenters/hostname.py similarity index 100% rename from lib/galaxy/jobs/metrics/instrumenters/hostname.py rename to lib/galaxy/job_metrics/instrumenters/hostname.py diff --git a/lib/galaxy/jobs/metrics/instrumenters/meminfo.py b/lib/galaxy/job_metrics/instrumenters/meminfo.py similarity index 100% rename from lib/galaxy/jobs/metrics/instrumenters/meminfo.py rename to lib/galaxy/job_metrics/instrumenters/meminfo.py diff --git a/lib/galaxy/jobs/metrics/instrumenters/uname.py b/lib/galaxy/job_metrics/instrumenters/uname.py similarity index 100% rename from lib/galaxy/jobs/metrics/instrumenters/uname.py rename to lib/galaxy/job_metrics/instrumenters/uname.py diff --git a/packages/job_metrics/HISTORY.rst b/packages/job_metrics/HISTORY.rst new file mode 100644 index 00000000000..470356353e5 --- /dev/null +++ b/packages/job_metrics/HISTORY.rst @@ -0,0 +1,12 @@ +.. :changelog: + +History +------- + +.. to_doc + +--------------------- +19.9.0.dev0 +--------------------- + +* Initial import from dev branch of Galaxy during 19.09 release cycle. diff --git a/packages/job_metrics/LICENSE b/packages/job_metrics/LICENSE new file mode 120000 index 00000000000..1ef648f64b3 --- /dev/null +++ b/packages/job_metrics/LICENSE @@ -0,0 +1 @@ +../../LICENSE.txt \ No newline at end of file diff --git a/packages/job_metrics/MANIFEST.in b/packages/job_metrics/MANIFEST.in new file mode 100644 index 00000000000..c74cefe0942 --- /dev/null +++ b/packages/job_metrics/MANIFEST.in @@ -0,0 +1 @@ +include *.rst LICENSE diff --git a/packages/job_metrics/README.rst b/packages/job_metrics/README.rst new file mode 100644 index 00000000000..65a810c4c24 --- /dev/null +++ b/packages/job_metrics/README.rst @@ -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/ diff --git a/packages/job_metrics/galaxy/__init__.py b/packages/job_metrics/galaxy/__init__.py new file mode 100644 index 00000000000..69e3be50dac --- /dev/null +++ b/packages/job_metrics/galaxy/__init__.py @@ -0,0 +1 @@ +__path__ = __import__('pkgutil').extend_path(__path__, __name__) diff --git a/packages/job_metrics/galaxy/job_metrics b/packages/job_metrics/galaxy/job_metrics new file mode 120000 index 00000000000..a3831d64328 --- /dev/null +++ b/packages/job_metrics/galaxy/job_metrics @@ -0,0 +1 @@ +../../../lib/galaxy/job_metrics/ \ No newline at end of file diff --git a/packages/job_metrics/galaxy/project_galaxy_job_metrics.py b/packages/job_metrics/galaxy/project_galaxy_job_metrics.py new file mode 100644 index 00000000000..36ca5348e51 --- /dev/null +++ b/packages/job_metrics/galaxy/project_galaxy_job_metrics.py @@ -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 +) diff --git a/packages/job_metrics/requirements.txt b/packages/job_metrics/requirements.txt new file mode 100644 index 00000000000..623c4906bb2 --- /dev/null +++ b/packages/job_metrics/requirements.txt @@ -0,0 +1 @@ +galaxy-util diff --git a/packages/job_metrics/setup.cfg b/packages/job_metrics/setup.cfg new file mode 120000 index 00000000000..eb7cf09393f --- /dev/null +++ b/packages/job_metrics/setup.cfg @@ -0,0 +1 @@ +../../setup.cfg \ No newline at end of file diff --git a/packages/job_metrics/setup.py b/packages/job_metrics/setup.py new file mode 100644 index 00000000000..19aa3645b3f --- /dev/null +++ b/packages/job_metrics/setup.py @@ -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 +) diff --git a/packages/job_metrics/tests/test_job_metrics.py b/packages/job_metrics/tests/test_job_metrics.py new file mode 120000 index 00000000000..b3b70cbbe69 --- /dev/null +++ b/packages/job_metrics/tests/test_job_metrics.py @@ -0,0 +1 @@ +../../../test/unit/jobs/test_job_metrics.py \ No newline at end of file diff --git a/test/unit/jobs/test_job_metrics.py b/test/unit/jobs/test_job_metrics.py new file mode 100644 index 00000000000..1450cb1a68c --- /dev/null +++ b/test/unit/jobs/test_job_metrics.py @@ -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() diff --git a/test/unit/jobs/test_runner_local.py b/test/unit/jobs/test_runner_local.py index acaafbc5557..610da86a66f 100644 --- a/test/unit/jobs/test_runner_local.py +++ b/test/unit/jobs/test_runner_local.py @@ -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):