from .xlate import XLATOR
-__version__ = '0.6.1'
+__version__ = '0.6.2'
LOG = logging.getLogger(__name__)
# -------------------------------------------------------------------------
def as_dict(self, short=True):
- ret = super(ModuleDependency, self).as_dict(self, short=short)
+ ret = super(ModuleDependency, self).as_dict(short=short)
ret['name'] = self.name
ret['requirement'] = self.requirement
return out
# -------------------------------------------------------------------------
- def as_dict(self):
+ def as_dict(self, short=True):
- ret = super(ModuleDependency, self).as_dict(self, short=short)
+ ret = super(ModuleOsSupport, self).as_dict(short=short)
ret['name'] = self.name
ret['releases'] = copy.copy(self.releases)
def author(self):
"""The author of the module."""
if not self._author:
- match = self.re_author_from_name.match(self.name)
- if match:
- return match.group(1)
+ if self.name:
+ match = self.re_author_from_name.match(self.name)
+ if match:
+ return match.group(1)
+ else:
+ return None
return self._author
@author.setter
msg = _("Metadata file {!r} is not a regular file.").format(str(file_path))
raise MetadataFileError(msg)
- if not os.access(str(file_path), os.R_OK)):
+ if not os.access(str(file_path), os.R_OK):
msg = _("Metadata file {!r} is readable.").format(str(file_path))
raise MetadataFileError(msg)
--- /dev/null
+{
+ "name": "pixelpark-pp_mysql",
+ "version": "0.10.4",
+ "author": "Frank Brehm <frank.brehm@pixelpark.com>",
+ "summary": "This is a wrapper module around puppetlabs-mysql and fraenki-galera with standardized default values fitting the Digitas Pixelpark environment.",
+ "license": "LGPL-3.0-or-later",
+ "source": "https://git.pixelpark.com/puppet/pp-mysql.git",
+ "issues_url": "https://jira.powerofone.de/jira/projects/PPPUPPET",
+ "dependencies": [
+ {
+ "name": "fraenki-galera",
+ "version_requirement": ">=2.2.0 <4.0.0"
+ },
+ {
+ "name": "ipcrm-echo",
+ "version_requirement": ">=0.1.7 <2.0.0"
+ },
+ {
+ "name": "pcfens-filebeat",
+ "version_requirement": ">=4.10.0 <6.0.0"
+ },
+ {
+ "name": "puppet-cron",
+ "version_requirement": ">=2.0.0 <4.0.0"
+ },
+ {
+ "name": "puppet-logrotate",
+ "version_requirement": ">=5.0.0 <7.0.0"
+ },
+ {
+ "name": "puppetlabs-mysql",
+ "version_requirement": ">=11.0.0 <13.0.0"
+ },
+ {
+ "name": "puppetlabs-stdlib",
+ "version_requirement": ">=7.0.0 <9.0.0"
+ },
+ {
+ "name": "puppetlabs-yumrepo_core",
+ "version_requirement": ">=1.0.7 <3.0.0"
+ }
+ ],
+ "operatingsystem_support": [
+ {
+ "operatingsystem": "CentOS",
+ "operatingsystemrelease": [
+ "7",
+ "8"
+ ]
+ },
+ {
+ "operatingsystem": "OracleLinux",
+ "operatingsystemrelease": [
+ "7"
+ ]
+ },
+ {
+ "operatingsystem": "SLES",
+ "operatingsystemrelease": [
+ "12",
+ "15"
+ ]
+ }
+ ],
+ "requirements": [
+ {
+ "name": "puppet",
+ "version_requirement": ">= 4.10.0 < 7.0.0"
+ }
+ ],
+ "pdk-version": "2.5.0",
+ "template-url": "pdk-default#2.5.0",
+ "template-ref": "tags/2.5.0-0-g369d483"
+}
--- /dev/null
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+'''
+@author: Frank Brehm
+@contact: frank@brehm-online.com
+@copyright: © 2023 Frank Brehm, Digitas Pixelpark GmbH Berlin
+@license: GNU AGPL3
+@summary: test script (and module) for unit tests on module dpx_puppettools.module_metadata
+'''
+
+import os
+import sys
+import logging
+
+from pathlib import Path
+
+try:
+ import unittest2 as unittest
+except ImportError:
+ import unittest
+
+libdir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'lib'))
+sys.path.insert(0, libdir)
+
+from general import DpxPuppetToolsTestcase, get_arg_verbose, init_root_logger
+
+LOG = logging.getLogger('test_metadata')
+
+# =============================================================================
+class TestMetadata(DpxPuppetToolsTestcase):
+
+ # -------------------------------------------------------------------------
+ def setUp(self):
+ self.test_dir = Path(__file__).parent.resolve()
+ self.base_dir = self.test_dir.parent
+ self.test_cfg_dir = self.test_dir / 'test-config'
+ self.test_metadata = self.test_dir / 'metadata.pp-mysql.json'
+ self._appname = 'test_metadata'
+
+ # -------------------------------------------------------------------------
+ def test_import(self):
+
+ LOG.info("Testing import of dpx_puppettools.module_metadata ...")
+ import dpx_puppettools.module_metadata
+ ver = dpx_puppettools.module_metadata.__version__
+ LOG.debug(
+ "Version of dpx_puppettools.module_metadata: " + ver)
+
+ # -------------------------------------------------------------------------
+ def test_init(self):
+
+ LOG.info("Testing init of a ModuleMetadata object ...")
+ from dpx_puppettools.module_metadata import ModuleMetadata
+ from dpx_puppettools import pp
+
+ metadata = ModuleMetadata(
+ appname=self.appname, verbose=self.verbose)
+
+ LOG.debug("ModuleMetadata %%r: {!r}".format(metadata))
+ if self.verbose > 2:
+ LOG.debug("ModuleMetadata %%s:\n{}".format(pp(metadata.as_dict())))
+
+ # -------------------------------------------------------------------------
+ def test_read(self):
+
+ LOG.info("Test reading of a ModuleMetadata file ...")
+
+ from dpx_puppettools.module_metadata import ModuleMetadata
+ from dpx_puppettools import pp
+
+ metadata = ModuleMetadata.from_file(
+ self.test_metadata, appname=self.appname, verbose=self.verbose)
+
+ LOG.debug("ModuleMetadata %%r: {!r}".format(metadata))
+ if self.verbose > 2:
+ LOG.debug("ModuleMetadata %%s:\n{}".format(pp(metadata.as_dict())))
+
+
+# =============================================================================
+if __name__ == '__main__':
+
+ verbose = get_arg_verbose()
+ if verbose is None:
+ verbose = 0
+ init_root_logger(verbose)
+
+ LOG.info("Starting tests ...")
+
+ suite = unittest.TestSuite()
+
+ suite.addTest(TestMetadata('test_import', verbose))
+ suite.addTest(TestMetadata('test_init', verbose))
+ suite.addTest(TestMetadata('test_read', verbose))
+
+ runner = unittest.TextTestRunner(verbosity=verbose)
+
+ result = runner.run(suite)
+
+# =============================================================================
+
+# vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4