Source code for oneview_redfish_toolkit.api.subscription

# -*- coding: utf-8 -*-

# Copyright (2017) Hewlett Packard Enterprise Development LP
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.

from collections import OrderedDict

from oneview_redfish_toolkit.api.redfish_json_validator \
    import RedfishJsonValidator


[docs]class Subscription(RedfishJsonValidator): """Creates the Subscription class Populates self.redfish with Subscription response. """ SCHEMA_NAME = 'EventDestination' def __init__(self, subscription_id, destination, event_types, context): """Session constructor Populates self.redfish with Subscription response. Args: subscription_id: Uniquely identifies the resource within the collection of like resources. destination: The URI of the destination Event Service. event_types: This property shall contain the types of events that shall be sent to the destination. context: A client-supplied string that is stored with the event destination subscription. """ super().__init__(self.SCHEMA_NAME) self.redfish["@odata.type"] = \ "#EventDestination.v1_2_0.EventDestination" self.redfish["Id"] = subscription_id self.redfish["Name"] = "EventSubscription " + subscription_id self.redfish["Destination"] = destination self.redfish["EventTypes"] = self. \ _remove_duplicated_event_types(event_types) self.redfish["Context"] = context self.redfish["Protocol"] = "Redfish" self.redfish["@odata.context"] = \ "/redfish/v1/$metadata#EventDestination.EventDestination" self.redfish["@odata.id"] = \ "/redfish/v1/EventService/EventSubscriptions/" + subscription_id self._validate()
[docs] def get_id(self): """Gets subscription Id""" return self.redfish["Id"]
[docs] def get_event_types(self): """Gets the list of event types""" return self.redfish["EventTypes"]
def _remove_duplicated_event_types(self, event_types): """Duplicated elements in event_types must be removed. OrderedDict keeps the order of the elements, so it will preserve list definition. """ # One of the fastest and shortest ways to remove # duplicates and keeps the order in Python 3.5 return list(OrderedDict.fromkeys(event_types))