Skip to content

Commit 8a422c6

Browse files
authored
add compliance info to portal resource (#347)
1 parent 0419933 commit 8a422c6

1 file changed

Lines changed: 23 additions & 3 deletions

File tree

cterasdk/cio/core/types.py

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -397,6 +397,22 @@ def __str__(self):
397397
)
398398

399399

400+
class ComplianceSettings(Object):
401+
"""
402+
Class Representing Compliance Retention Settings
403+
404+
:ivar bool enabled: Current
405+
:ivar str mode: Current
406+
:ivar datetime.datetime expires_at: Retention Expiration Date
407+
"""
408+
def __init__(self, server_object):
409+
super().__init__(
410+
enabled=server_object.worm,
411+
mode=server_object.retentionMode.lower(),
412+
expires_at=datetime.fromisoformat(server_object.retainUntil)
413+
)
414+
415+
400416
class PortalResource(BaseResource):
401417
"""
402418
Class for a Portal Filesystem Resource.
@@ -410,9 +426,11 @@ class PortalResource(BaseResource):
410426
:ivar datetime.datetime last_modified: Last Modified
411427
:ivar str extension: Extension
412428
:ivar str permalink: Permalink
413-
:ivar cterasdk.core.types.Volume,optional volume: Volume information.
429+
:ivar cterasdk.cio.core.types.PortalVolume,optional volume: Volume information.
430+
:ivar cterasdk.cio.core.types.ComplianceSettings,optional worm: Compliance Retention Settings.
414431
"""
415-
def __init__(self, i, name, path, is_dir, deleted, size, permalink, last_modified, volume):
432+
def __init__(self, i, name, path, is_dir, deleted, # pylint: disable=too-many-arguments
433+
size, permalink, last_modified, volume, worm):
416434
super().__init__(
417435
name, path, is_dir, size,
418436
None if last_modified is None else datetime.fromisoformat(last_modified),
@@ -421,6 +439,7 @@ def __init__(self, i, name, path, is_dir, deleted, size, permalink, last_modifie
421439
self.deleted = deleted
422440
self.permalink = permalink
423441
self.volume = PortalVolume.from_server_object(volume) if volume else None
442+
self.worm = ComplianceSettings(worm) if worm else None
424443

425444
@staticmethod
426445
def from_server_object(server_object):
@@ -433,7 +452,8 @@ def from_server_object(server_object):
433452
server_object.size,
434453
server_object.permalink,
435454
server_object.lastmodified,
436-
server_object.cloudFolderInfo
455+
server_object.cloudFolderInfo,
456+
getattr(server_object, 'complianceInfo', None)
437457
)
438458

439459
@property

0 commit comments

Comments
 (0)