Skip to content

StoreOnce Gen3 native filtering

Ivan Smirnov edited this page Apr 24, 2020 · 1 revision

StoreOnce Gen3 native filtering

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.

Code example

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))

Clone this wiki locally