#!/usr/bin/python # # Copyright 2011, Infoblox, All Rights Reserved # # Open Source, see LICENSE # from util import attr class RequestBase: """ foundation class for request factory """ pass class NewSessionRequest(RequestBase): def __init__(self, max_poll_result=None): self.__max_poll_result = max_poll_result def __str__(self): #import pdb; pdb.set_trace() return ''; class RenewSessionRequest(RequestBase): def __init__(self, session_id): self.__session_id = session_id def __str__(self): return ''; class EndSessionRequest(RequestBase): def __init__(self, session_id): self.__session_id = session_id def __str__(self): return ''; class PublishRequest(RequestBase): __session_id = None def __init__(self, session_id, operations, namespaces=None, validation=None): self.__session_id = session_id self.__namespaces = namespaces self.__validation = validation self.__operations = operations def __str__(self): _attr = attr({'session-id': self.__session_id, 'validation' : self.__validation}) return '' + self.__operations + '' class SearchRequest(RequestBase): """ Search request factory session_id identifier (single, or linked with link_ids()) namespaces validation "None"|"BaseOnly"|"MetadataOnly"|"All" search_parameters - dictionary eg. {'max_depth':'3', 'max_size':'10000'} result_filter => string, #Optional. Rules for extracting specific data from the results match_links => string, #Optional. Filter to match links to be followed, unmatched links will not be followed in the search process max_depth => number, #Optional. Maximum distance of any included identifiers. Start depth is equal to 0 max_size => number, #Optional. Maximum size in bytes of the results terminal_identifier_type => string, #Optional. Terminal identifier type of the search request """ def __init__(self, session_id, identifier, namespaces=None, validation=None, search_parameters={}): self.__session_id = session_id self.__identifier = identifier self.__namespaces = namespaces self.__validation = validation self.__parameters = search_parameters def __str__(self): _params = attr(self.__parameters) _attr = attr({'session-id': self.__session_id, 'validation' : self.__validation}) return '' + self.__identifier + '' class SubscribeRequest(RequestBase): """ Subscribe request factory """ def __init__(self, session_id, validation=None, namespaces=None, operations=None): self.__session_id = session_id self.__namespaces = namespaces self.__validation = validation self.__operations = operations def __str__(self): _attr = attr({'session-id': self.__session_id, 'validation' : self.__validation}) return '' + self.__operations + '' class PollRequest(RequestBase): def __init__(self, session_id, validation=None, namespaces=None): self.__session_id = session_id self.__namespaces = namespaces self.__validation = validation def __str__(self): _attr = attr({'session-id': self.__session_id, 'validation' : self.__validation}) return '' class PurgeRequest(RequestBase): def __init__(self, session_id, publisher_id=None, validation=None): self.__session_id = session_id self.__publisher_id = publisher_id self.__validation = validation def __str__(self): __attr = attr({'session-id':self.__session_id, 'validation':self.__validation,'ifmap-publisher-id':self.__publisher_id}) return '';