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.1 - 2022-05-27

Bug fixes:

  • RNDGPA-459: Parsing error for policy containing empty comment

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.5.0 - 2021-07-12

Bug fixes:

  • RNDGPA-441: Support audit and alarm ACEs

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.1 - 2020-01-27

Bug fixes:

  • RNDGPA-397: defaultMetaDataReplicas returns wrong value

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.11 - 2019-01-07

Bug fixes:

  • RNDGPA-348: Error when writing policies with encryption rules

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.2 - 2016-08-19

Bug fixes:

  • trac-138: Only enumerate all_local filesystems by default

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