ChangeLog¶
1.9.0 - 2023-09-01¶
Bug fixes:
- RNDGPA-463: Error parsing xattr with ‘max’ in value
- RNDGPA-469: Error when including comment in policy criteria
- DYNAMOENG-1042: Fix buffering warning
Feature enhancements:
- RNDGPA-470: Support for filesystem auto inode limit
1.8.0 - 2022-05-26¶
Bug fixes:
- RNDGPA-451: Remove redundant external list rule validation warning
- RNDGPA-452: Handle blank lines in mmlsattr output
- RNDGPA-456: Policy generation may remove underscores inappropriately
- RNDGPA-457: Handle invalid UTF-8 bytes when decoding GPFS command output
- RNDNXSREST-570: Better handle changing fileset inodes to null values
- DYNAMOHUB-419: Remove redundant policydriver executable validation error
Feature enhancements:
- RNDGPA-236: Support for root fileset snapshots with
setRootFilesetSnapshots
- RNDGPA-450: Support for GPFS 5.1.2
- RNDGPA-455: Improved handling for m4 macros in policies
- RNDGPA-458: Support for GPFS 5.1.3
1.7.0 - 2021-09-02¶
Bug fixes:
- RNDGPA-329: Handle escaped single quotes in policies
- RNDGPA-412: File attribute parsing error for paths with carriage return
- RNDGPA-413: Escape single quotes in LIKE criteria
- RNDGPA-429: Replace use of deprecated
inspect.getargspec
in Python 3- RNDGPA-448: Negative default iscanbucket setting in snapdiff
- RNDGPA-449: AttributeError when applying placement policies
Feature enhancements:
- RNDGPA-450: Support for GPFS 5.1.1
1.6.0 - 2021-07-26¶
Feature enhancements:
- RNDGPA-447: Centos 8 Build
Bug fixes:
- RNDGPA-444: Invalid escape sequence deprecation warning
1.4.0 - 2021-06-18¶
Updated EULA
Bug fixes:
- RNDGPA-426: Bytes error in policy output processing (Python 3)
- RNDGPA-428: Correctly handled empty exclude list in snapDiff
- RNDGPA-431: Policy error for paths containing quotes
Feature enhancements:
- RNDGPA-199: Support for quotas on dependent and cache filesets
- RNDGPA-410: Support for retaining list processing policy work lists
- RNDGPA-421: Support for processing output from policy processes
- RNDGPA-424: Additional criteria support for SnapDiff
- RNDGPA-433: Support for not updating ctime on xattr changes
Refactoring:
- RNDGPA-434: Don’t sudo commands when running as root
1.3.0 - 2020-11-19¶
Bug fixes:
- RNDGPA-194: Filesystem.mounted fails when nodeName!=gethostbyname
- RNDGPA-194: Filesystem.mount() times out erroneously when nodeName!=gethostbyname
- RNDGPA-415: NSD serverNames returns dict_keys on ECE
Feature enhancements:
- RNDGPA-106: Support for new and missing callbacks
- RNDGPA-319: Support for ACLs (inc. filters)
- RNDGPA-376: Support for policy output stream processing
- Remove file existence check for File objects
1.2.0 - 2020-06-18¶
Bug fixes:
- Remove spurious version checks in Cluster object
- RNDGPA-408: File errors for paths containing single-quotes
- RNDAPSYNC-161: Snapdiff excludes unintentionally matching common sub-path
Feature enhancements:
- RNDEAS-1095: Policy options parsing flag for keeping policy files
- RNDGPA-401: Support ECE Vdisk server lists in 5.0+
1.1.0 - 2020-04-28¶
Bug fixes:
- RNDGPA-399: File errors for non-ascii paths
- RNDGPA-401: Interim ECE-safe NSD processing - in BETA ONLY
- RNDGPA-402: Hash character (#) causes policy parsing errors
1.0.0 - 2020-02-10¶
Feature enhancements:
- Python 3 Support
- RNDGPA-396: Support for node-specific NSD device info
Bug fixes:
- RNDGPA-398: Nsd parse error in GPFS 5.0.4-2
0.17.0 - 2019-12-06¶
Feature enhancements:
- RNDGPA-153: Support for fast fileset inode lookup via mmrepquota
- RNDGPA-380: Support for filesystem force unmount
- RNDGPA-383: Support for ‘includes’ in policies
- RNDGPA-384: Support for lazy-importing clib
- RNDGPA-388: Support for limiting snaprestore to fileset
- RNDGPA-390: Document ManagementPolicy.run options
- RNDAPSYNC-113: Check for old snapdiff cache files
- Make snaprestore more mature, add manpage, interactive mode
Bug fixes:
- RNDGPA-382: Errors from clib when filesystem is unmounted
- RNDGPA-385: Support for returning AttrDict from list processing
- RNDGPA-393: Better handling for nodes, asTime, and substitution policy options
0.16.0 - 2019-10-22¶
Feature enhancements:
- RNDGPA-264: Compatibility with Python 3
- RNDGPA-342: Improved wildcard handling in criteria
- RNDGPA-372: Support for profiling list processing policies
- RNDGPA-374: Support for missing mmapplypolicy options
Bug fixes:
- RNDGPA-365: Don’t log erroneous error on snapshot create
- RNDGPA-370: Remove flawed fileset pre-link check
- RNDGPA-377: Nodes.localNode returns None if FQDN doesn’t match
0.15 - 2019-05-07¶
Feature enhancements:
- RNDGPA-367: Support for GPFS 5.0.3
- New configs in GPFS 5.0.3
- Support for setting node license on create
- Support for setting and reporting file compression
0.14 - 2019-04-25¶
Bug fixes:
- RNDGPA-361: Don’t trigger mmgetstate when loading licenses
- RNDGPA-364: Remove ListProcessingRule processor function validation
0.13 - 2019-02-28¶
Bug fixes:
- RNDGPA-357: mountedOn lists nodes not in the local cluster
- RNDGPA-359: send command execute output to logging
0.12 - 2019-02-04¶
Feature enhancements:
- RNDGPA-347: Support for enabling maintenance mode (GPFS 5.0.2+)
Bug fixes:
- RNDGPA-343: Can’t create xattr values containing spaces
- RNDGPA-344: Policy driver imports wrong versions of packages
- RNDGPA-346: ValueError when reading non-null grace period
- RNDGPA-353: Correctly report quorum count when local node is down
Refactoring:
- RNDGPA-346: Quota fileGracePeriod and blockGracePeriod now return type datetime.timedelta
- RNDGPA-351: Improve performance of Nodes() collection for iteration
0.10 - 2018-11-22¶
Bug fixes:
- RNDGPA-336: Get version leaks file handles
- RNDGPA-338: Directly attached NSDs are missing from the Nsds collection
- RNDGPA-339: ValueError for afmNeedsResync and afmNeedsRecovery on AFM filesets
- RNDGPA-341: AttrDict doesn’t support keys containing digits
Feature enhancements:
- RNDGPA-333: Support for GPFS 5.0.2
- RNDGPA-340: Handling for local cache nsds
- RNDGPA-342: Improved wildcard handling in criteria
0.9 - 2018-08-28¶
Bug fixes:
- RNDGPA-283: Incorrect default allocInodes in Fileset.create
- RNDGPA-284: DependentFileset incorrectly accepts an inodeSpace paramter (now removed)
- RNDGPA-295: APDupes: error for some combinations of target paths
- RNDGPA-298: Error writing policies with target pool named “<x>_pool”
- RNDGPA-323: File follows directory symlinks for some attributes
- RNDGPA-324: Fileset parentId isn’t updated on link/unlink
- RNDGPA-325: XAttr membership testing doesn’t behaviour as expected
- RNDGPA-327: Snapshot.created accuracy
Feature Enhancement:
- Support for GPFS 5.0.1
- Add snapDir property to IndependentFileset
- APStats: support for specifying policy options
- RNDGPA-152 + RNDGPA-222: Improve logging of errors during policy execution
- RNDGPA-182: Support for snmp_collector and perfmon node designations
- RNDGPA-259: Report snapdir-related setting
- RNDGPA-261: Support for config settings on Nodeclass
- RNDGPA-265: Support for size limit and threshold class in list processing rules
- RNDGPA-277: Support for mmlspool, including faster pools size lookup (in place of mmdf, where possible)
- RNDGPA-285: Support for light-weight events added since GPFS 4.2.3
- RNDGPA-296: APDupes: support for specifying policy options
- RNDGPA-301: Support for per-file evict on CacheFileset
- RNDGPA-304: Ability to delete snapshots on designated nodes
- RNDGPA-307: Support for filesystem attributes added since GPFS 4.2.1
- RNDGPA-311: Support for restripe options added since GPFS 4.2.1
- RNDGPA-318: Support for new configs added since GPFS 4.2.1
Refactoring:
- RNDGPA-279: Optimised filesystems lookup
- RNDGPA-313: Use GPFSCLib for speed-ups (where available; may need to run as root to see the speed-ups)
- RNDGPA-316: SnapDiff: get used inodes from quota (where possible; used to optimise iscanBuckets)
- RNDGPA-320: Fast lookup of file ‘policy’ properties without policy scan
Incompatible changes:
- RNDGPA-290: APStats: complete rewrite for better speed and memory use. Some commandline options have changed.
- RNDGPA-291: APStats: add fileset and kb_allocated fields. May require changes to logstash config.
0.8.7 - 2018-03-19¶
Bug fixes:
- Compatibility fixes for ArcaPix CLib API
- RNDGPA-276: Snapdiff requires quota management enabled
- RNDGPA-280: policy list parse error
- RNDGPA-282: xattr key containing dot
Feature Enhancement:
- RNDGPA-163: DMAPI XAttr support
0.8.6 - 2017-11-29¶
Feature enhancements:
- Optimised C code for snapdiff (all platforms)
- Support for GPFS v5
- Support for concurrent install with other ArcaPix API’s
Incompatible changes:
- RNDGPA-249: filesystem.suppressAtime now returns string instead of boolean
0.8.5 - 2017-11-01 (x86 only)¶
Bug fixes:
- RNDGPA-234: Fixed UID/GID lookup for SSSD with APStats
- RNDGPA-235: Free disks aren’t picked up by Nsds collection
- RNDGPA-239: Error for parentId of deleted fileset
- RNDGPA-240: Missing policy work files
Feature enhancements:
- RNDGPA-229: Support for snapshot size info
- RNDAPSYNC-68: Replace namedtuples with standard tuples for faster snapdiff
- RNDAPSYNC-71: Optimised policy defaults for snapdiff
- Cached snapdiff for faster diff when used with snapshot rotation
- Optimised C code for snapdiff (x86)
0.8.4 - 2017-07-07¶
Bug fixes:
- RNDGPA-221: Fixed an issue whereby PolicyDriver incorrectly dropping privileges caused permission issues
Feature enhancements:
- RNDGPA-217: Enumeration of Cluster() etc. can now occur when the node is in state ‘down’
- RNDGPA-218: Improved performance when loading large numbers of NSDs
0.8.3 - 2017-03-23¶
Bug fixes:
- Error when using snapdiff exclude with filesets
- apsync-50: Directory names ending with spaces are missed by snapdiff
- trac-206: XAttr error for filenames containing spaces
- trac-208: Policy summary parsing when comma is used as decimal separator
Feature enhancements:
- trac-150: manpage for snapdiff prog
- trac-206: Improved support thoughout API for filenames containing spaces
- trac-210: Support for –exclude flag in snapdiff prog
0.8.2 - 2017-03-06¶
Bug fixes:
- trac-184: Prevent non-independent filesets in SnapDiff
- trac-188: Improve SnapDiff memory usage
- trac-193: Cluster manager FQDN issues
- trac-195: Nodeclasses with missing allMembers field
- trac-201: Quota error for blockUsage property
- Callback IP resolution issue
- Nodeclass system member classes issue
Feature enhancements:
- SnapDiff enhancements for APSync 4.0.2
- Support for GPFS 4.2.2 and 4.2.3
- trac-198: Inode and space reporting of Filesystem, Pool and Nsd
Incompatible changes:
- apsync issue 37: fileset.path now returns string instead of unicode
0.8.1 - 2016-12-19¶
Bug fixes:
- trac-164: Prevent repr from triggering lazyload cascade
- trac-171: Saving empty placement policy raises confusing error
- trac-173: ManagementPolicy destination path issue
- trac-174: cloudpickle import error in setup.py
- trac-175: Error in getVersion for GPFS efix versions
- trac-179: Get node IP from mmlscluster rather than socket
0.8.0.4 - 2016-11-28¶
Bug fixes:
- trac-165: Issue with fully qualified domain names not recognised by GPFS
0.8.0.2 - 2016-11-10¶
Bug fixes:
- trac-154: Snapshots not listed on root fileset object
- trac-158: Issue resolving local node hostname on some systems
- trac-162: Issue with fully qualified domain names in nodeclasses
Feature enhancements:
- trac-155: Support for ESCAPE clause with list processing
- trac-160: GPFS Express returns an empty Filesets collection rather than erroring
- trac-161: Convenience methods for looking up types of disks in a pool
0.8.0 - 2016-10-04¶
Bug fixes:
- trac-122: Quotas not listed on root fileset object
- trac-137: Quorum reporting when a node is down
- trac-142: Error in File when path contains spaces
Feature enhancements:
- Support for AFM Control
- More AFM attributes on CacheFileset
- Support for Cluster and Node Configuration
- Support for Add / Delete Nodes
- trac-140: Improve Rule documentation
Refactoring:
- Lazyloading
Incompatible changes:
- Node __init__() args updated
- Changes to Node init signature
- trac-146: Change type of Snapshot.id to int
0.7.0.1 - 2016-08-04¶
Bug fixes:
- trac-102: Fileset maxInode and allocInode return long, rather than str
- trac-66: Filesystem mount/unmount inconsistent between GPFS and API
Feature enhancements:
- Support for Disks and NSDs (read-only)
- Support for File Attributes
- Support for Quality of Service (QoS) (GPFS 4.2+ only)
- Support for Filesystem and Disk suspend/resume
- Support for Filesystem, Pool, and File restriping
- Support for system callback look-up
- Support for snapshot directory look-up and modification
- Adds Snapshot.location property, to find the path to where a snapshot resides
- Adds ‘dry run’ functionality
Refactoring:
- trac-110: List Processing and Callbacks no longer run as root for non-root users
Incompatible changes:
Changed Attribute names:
- Fileset.filesetID > filesetId
- Node.admin_interface > adminInterface
- Node.quorum_candidate > quorumCandidate
- Node.node_number > nodeNumber
- Nodeclass.nodeClassType > nodeclassType
- Nodes.tieBreakDisks > tiebreakerDisks
Changed return type:
- Filesystem.mountedOn() > dict of Node
- Nodeclass.memberNodes > dict of Node
- Nodeclass.allMemberNodes > dict of Node
- Nodeclass.memberClasses > dict of Nodeclass
- Rules.macros > dict of Rule
- Rules.comments > dict of Rule
0.6.2 - 2016-05-05¶
Bug fixes:
- trac-94: list processing does not return full PATH_NAME if it contains whitespace
- trac-95: node load fails when a node is unavailable
Refactoring:
- List processing optimisations
- trac-90: Replace ‘cloud’ library with ‘cloudpickle’
0.6.1 - 2016-04-13¶
Bug fixes:
- Improved list processing performance
Feature enhancements:
- Support for basic and advanced Callbacks
- Support for basic AFM
- Support for Manager Node manipulation
- Added API usage example scripts
Refactoring:
- Dependent Filesets can be created in the inode space of an Independent Fileset
0.5 - 2016-02-09¶
Bug fixes:
- No noteable fixes
Feature enhancements:
- Support for Advanced Policies including Map Reduce methods and Group Pools
- Light Weight Events
0.4 - 2016-01-22¶
Bug fixes:
- The API now loads representations of clusters with nodes in an unknown state
Feature enhancements:
- Support for Licenses
- Support for Nodeclasses
- Support for Policies
Incompatible changes:
- Removed CNFS support temporarily from node()
0.3 - 2015-11-18¶
Bug fixes:
- Bug fix in snapshot creation
Feature Enhancements:
- Support for Quotas (excluding default Quota)
- CCR support
- Support for all 4.x versions up to 4.2
Refactoring:
- Moved from Node to Nodes.minQuorumNodes and Nodes.tieBreakDisks which are not per-node attributes
- Return values now typed appropriately for all properties i.e. values which are numeric are returned as 0 rather than “0”
- Various internal restructuring to improve resiliency.
Incompatible changes:
- Deprecated access to specific convenience method on filesets collection filesets.valuesActive() in favour of filesets.active().values(). Added similar methods for independent and dependent filesets.
0.2 - 2015-07-01¶
- Initial BETA release