Backwards Incompatible Changes
- Any installed ZenPacks using older versions of zenpacklib.py will continue to function unchanged.
- Using version 2.0 is slightly different. The __init__.py file import statements should now contain the following:
from ZenPacks.zenoss.ZenPackLib import zenpacklib CFG = zenpacklib.load_yaml() schema = CFG.zenpack_module.schema
For better performance, specify the explicit path(s) to your yaml file. e.g. CFG = zenpacklib.load_yaml([os.path.join(os.path.dirname(__file__), “zenpack.yaml”)])
- zProperties will not be updated automatically on existing device classes. These should be handled on a case basis by using migrate scripts.
- Fix version reported by “zenpacklib –version”. (ZPS-1145)
- Template backups use YYYYMMDDHHMM format instead of unix timestamp.
- Fix failure to back up customized templates during upgrade from pre-2.0 ZenPacks. (ZPS-1195)
- Fix failure to back up customized templates during upgrade. (ZPS-1176)
- Fix for missing Dynamic View on some components (ZPS-703)
- Fix for failure to create device classes in uncommon case (ZPS-1012)
- Fix event class mappings with mismatched id and eventClassKey (ZPS-1016)
- Preserve ordering when loading multiple YAML files (ZPS-921)
- Fix setting of zProperty values when loading multiple YAML files. (ZPS-925)
- Only create a monitoring template if it changes or does not exist (ZPS-570)
- Ensure display of ZPL classes such as OSProcess in GUI elements (ZPS-572, ZPS-651)
- Ensure all datapoint attributes export to YAML (ZEN-26593)
- Ensure subsquent installations complete if ZP install fails (ZPS-627)
- zenpacklib is now an installable ZenPack
- Added Event Class definitions (ZEN-24903)
- Support multiple YAML file loading
- Support directory loading for YAML
- Support log verbosity per ZenPack
- Centralized, per-derived ZenPack logging
- Improved template change detection during install
- Improved type handling of yaml loaded/dumped data
- Support centralized use of older monolithic zenpacklib.py
- Added –optimize parameter to zenpacklib
- Dramatically enhanced unit testing
- Support for using enum proprty with datapoint properties (string/int mapping)
- Ability to call /opt/zenoss/bin/zenpacklib
- Added ZPLCommand to handle running zenpacklib with arguments
- Separated zenpacklib.py classes into module files
- Ability to use ZenPack-provided zenpacklib module
- Added support for Process Class definitions
- Deprecated support for python-based “yaml” specifications
- Support for threshold graphpoint legend and color (ZEN-24904)
- Ability to specify an initial sort column on a component grid
- Performance enhancments for grid display of metrics (ZEN-23870)
- Support for Device Link Providers
- Added troubleshooting aid for easily saving function data(writeDataToFile)
- Avoid setting zProperties on existing device class (ZPS-137)
- Fix handling of boolean datasource options (ZEN-25315)
- Merge Detail View groups into ‘Overview’ group (ZEN-24759)
- Ensure that component detail pane honors relation “details_display” (ZEN-24762)
- Update ZenPackLib (ZP) Unit tests (ZEN-24599)
- Ensure that subcomponent nav JS uses relationship label if provided (ZEN-24305)
- Ensure ability to set label or a subclass on an inherited relationship (ZEN-24303)
- Ensure inherited relationship name overrides displayed in details pane (ZEN-24302)
- Ensure extra_paths is working (ZEN-24268)
- Ensure that ‘extra_params’ get applied to template-related objects (ZEN-24083)
- Improved handling of “custom columns exceed 750 pixels” warnings (ZEN-24022)
- Avoid patching _relations on ZPL-derived subclasse (ZEN-24018)
- Incorrect display of nested custom-named relations (ZEN-23995)
- Fix missing relations (ZEN-23968)
- Fix maximum recursion depth exceeded traceback in get_facets (ZEN-23840)
- Allow specifying properties on an inherited relationship (ZEN-23763)
- Zenpacklib logging more helpful and less scary (ZEN-23621)
- Batch buildRelations() commits during ZenPack installs (ZEN-22655)
- Support adding devtypes (ZEN-22366)
- Improve ImportError logging in class files (ZEN-22927)
- Ensure non-cached datapoints return current value (ZEN-22288)
- Fix issue when setting datapoint_cached to False (ZEN-22287)
- Set all component property details to correct Python type (ZEN-22057)
- Honor relationship label containing component overrides in component (ZEN-21966)
- Prevent attempts to process relationships not in class_relationships (ZEN-21927)
- Ensure component display properties honored (ZEN-19798)
- Support setting datapoint alias as string (ZEN-19486)
- Check datapoint consistency in template graph points and thresholds (ZEN-19461)
- Check/warn against reserved keyword use (ZEN-19460)
- getRRDTemplateName can return label of base class (ZEN-19025)
- Ensure catalog creation respects spec property indexes (ZEN-18269)
- Ensure device classes can be removed properly (ZEN-18134)
- Ensure that datapoint alias keys do not exceed 31 chars (ZEN-17950)
- Log obscure error with ill-defined relationships (ZEN-16701)
- Fix handling of !ZenPackSpec tag in yaml definitions
- Add dynamicview_weight class field.
- Add overridable getDynamicViewGroup method to generated classes.
- Class icons beginning with / will be treated as absolute URL paths.
- Improve performance of entity properties in component grids.
- Simplify what device status means to critical event(s) in /Status.
- Improve grid performance with streamlined info adapters
- Add base class proxies for all platform component classes.
- Fix tracebacks caused by property datapoint_cached. (ZEN-22287)
- Fix ‘display’ property to honor initialized values. (ZEN-19798)
- Fix wrong template displayed for subclassed component (ZEN-19025)
- Fix inheritance for displayed relationship properties (ZEN-23763)
- Fix traceback in get_facets (maximum recursion depth exceeded) (ZEN-23840)
- Ensure that ‘extra_params’ get applied to template-related objects (ZEN-24083)
- Fix for lost relationships on ZPL-derived subclasses (ZEN-24018)
- Fix for extra_paths failures (ZEN-24268)
- Fix to gracefully handle unknown relationship properties (ZEN-21927)
- Ensure that inherited relationship names are used (ZEN-24302)
- Ensure that inherited relationship names are displayed consistently (ZEN-24303)
- Ensure that subcomponent nav JS uses relationship label if given (ZEN-24305)
- Fix for setting of zProperty values before zProperty exists
- Fix “unexpected keyword default” message
- Fix support for extending platform component classes. (ZEN-25559)
- Fix YAML reference for dynamicview_group class field.
- Fix documentation of default value for dynamicview_views.
- Document new component class proxies such as IpInterface and FileSystem.
- Honor graph and graphpoint ordering in zenpack.yaml. (ZEN-23590)
- Fix tracebacks due to stale catalog entries. (ZEN-22592)
- Fix hidden zenpacklib errors due to unitialized logging.
- Prevent setting values on undefined zProperties.
- Drastically reduce catalog creation time.
- Add missing types to zProperty documentation.
- Only show Dynamic View for components that support it. (ZEN-22391)
- Fix created __init__.py to work with zenpacklib.TestCase. (ZEN-22387)
- Fix display of nested component container-of-container. (ZEN-21897)
- Fix graphpoint lineType documentation.
- Fix non-containing setters with standard device types. (ZEN-21747)
- Fix filtering of YAML templates in ZenPack export. (ZEN-21697)
- Prevent backups of unchanged monitoring templates. (ZEN-21719)
- Fix various dump_templates issues. (ZEN-18824)
- Fix dynamicview_relations type issue.
- Make YAML-defined JMX datasources work. (ZEN-21467)
- Fix KeyError on install after adding device class. (ZEN-21461)
- TestCase: Automatically load ZenPack’s configure.zcml if it exists.
- Default to checkbox renderer for boolean properties. (ZEN-19585)
- TestCase: Fix transaction error without DynamicView or Impact installed.
- Fix entity grid renderer to make it possible to click links into a new tab. (ZEN-19922)
- Fix enum property type. (ZEN-20769)
- Fix testing of SNMP datasources by converting OIDs to string.
- Fix for inherited relationships and properties not appearing in UI.
- Log YAML errors more concisely instead of full traceback. (ZEN-17681)
- Fix “[Object]” details panel display for custom renderers. (ZEN-17732)
- Fix handling of nested device class remove field.
- Fix KeyError when removing non-existent device class.
- Fix handling of datapoint rrdtype. (ZEN-18188)
- Add Class.extra_paths for controlling object path indexing.
- Add Class.filter_hide_from option.
- Fix handling of class _properties and _relationships.
- Prefix ExtJS components to avoid conflicting zenpacklib versions.
- Fix handling of Class property types.
- Fix py_to_yaml for ZenPacks that subclass ZenPack.
- Remove superfluous YAML type hints from py_to_yaml conversion.
- Fix “Unable to find TEMPLATE_ID” installation error.
- Base component status on events in /Status event class.
- Fix removal of objects when PyYAML isn’t installed.
- Added ability to define ZenPack with YAML.
- Added support for model classes and relationships.
- Added support for zProperties.
- Added support for device classes.
- Added support for monitoring templates.
- Added create command for creating ZenPacks from the command line.
- Added lint command to check YAML for correctness.
- Added class_diagram command to create yUML class diagram from YAML.
- Added dump_templates command to export monitoring templates to YAML.
- Added py_to_yaml command to convert old Python specs to YAML.
- Added version command to print zenpacklib’s version.
- Added first pass at documentation (http://zenpacklib.zenoss.com/).