from .base_module_info import BaseModuleInfoError, BaseModuleInfo
-__version__ = '1.4.2'
+from .forge import parse_forge_date
+
+__version__ = '1.5.1'
LOG = logging.getLogger(__name__)
self._forge_deprecated_at = None
self._forge_deprecated_for = None
self._forge_superseded_by = None
+ self._forge_updated_at = None
super(ModuleInfo, self).__init__(
appname=appname, verbose=verbose, version=version, base_dir=base_dir,
# -------------------------------------------------------------------------
@property
def forge_superseded_by(self):
- """The reason of deprecation of this forge module."""
+ """The module, which should substituting this forge module."""
return self._forge_superseded_by
@forge_superseded_by.setter
return
self._forge_superseded_by = v
+ # -------------------------------------------------------------------------
+ @property
+ def forge_updated_at(self):
+ """Date of last update of the module on Puppet forge."""
+ return self._forge_updated_at
+
+ @forge_updated_at.setter
+ def forge_updated_at(self, value):
+ if value is None:
+ self._forge_updated_at = None
+ return
+ if isinstance(value, datetime.datetime):
+ self._forge_updated_at = value
+ return
+ v = str(value).strip()
+ if v == '':
+ self._forge_updated_at = None
+ return
+ self._forge_updated_at = parse_forge_date(v)
+
# -------------------------------------------------------------------------
@property
def ts_checked(self):
res['forge_homepage_url'] = self.forge_homepage_url
res['forge_source'] = self.forge_source
res['forge_superseded_by'] = self.forge_superseded_by
+ res['forge_updated_at'] = self.forge_updated_at
res['forge_version'] = self.forge_version
res['ts_checked'] = self.ts_checked
res['forge_homepage_url'] = self.forge_homepage_url
res['forge_source'] = self.forge_source
res['forge_superseded_by'] = self.forge_superseded_by
+ res['forge_updated_at'] = self.forge_updated_at
res['forge_version'] = self.forge_version
res['repo'] = self.repo
res['ts_checked'] = self.ts_checked
if other.forge_releases is not None and self.forge_releases is None:
self.forge_releases = copy.copy(other.forge_releases)
+ if other.forge_updated_at is not None and self.forge_updated_at is None:
+ self.forge_updated_at = other.forge_updated_at
+
if other.repo and not self.repo:
self.repo = other.repo
if 'forge_source' in data:
module_info.forge_source = data['forge_source']
+ if 'forge_updated_at' in data and data['forge_updated_at'] is not None:
+ module_info.forge_updated_at = data['forge_updated_at']
+
if 'repo' in data:
module_info.repo = data['repo']