StoreOnce Gen3 native filtering - HewlettPackard/python-storage-clients GitHub Wiki
Class StoreOnceG3 in planned version v0.10.1 (unstable) has a filtering feature support. Be careful - this version is under development. Use this version only for testing and development.
import logging
from datetime import datetime, timedelta
from xml.etree.ElementTree import fromstring
from hpestorapi import StoreOnceG3
from hpestorapi.storeonce3 import Iterator
logging.basicConfig(level=logging.CRITICAL)
with StoreOnceG3('10.0.0.1', 'Login', 'password') as so:
try:
so.open()
except Exception as error:
print('Cannot connect to StoreOnce: ', error)
raise error
# ServiceSet and Catalyst Store id's
ssid = 1
storeid = 0
# Generate filter for object created in last 24 hours (1 day)
time_start = datetime.today() - timedelta(days=1)
time_end = datetime.today()
query = {'createdTimeStart': time_start.strftime('%Y-%m-%dT%H:%M:%SZ'),
'createdTimeEnd': time_end.strftime('%Y-%m-%dT%H:%M:%SZ')
}
filter = so.filter(
f'/cluster/servicesets/{ssid}/services/cat/stores/{storeid}/items-filter/',
query)
print('{:^30s} {:^30s} {:^30s} {:^30s}'.format('Item Name',
'Creation name',
'Modification date',
'Metadata modification date'))
for item_xml in Iterator(so,
f'/cluster/servicesets/{ssid}/services/cat/stores/{storeid}/items/',
'./items/item',
filter):
item = fromstring(item_xml)
name = item.find('./properties/name').text
created = item.find('./properties/created').text
data_modified = item.find('./properties/dataModified').text
meta_modified = item.find('./properties/metaModified').text
print('{:^30s} {:^30s} {:^30s} {:^30s}'.format(name, created,
data_modified,
meta_modified))