diff options
Diffstat (limited to 'Testcases/cfgm_common')
178 files changed, 10871 insertions, 0 deletions
diff --git a/Testcases/cfgm_common/__init__.py b/Testcases/cfgm_common/__init__.py new file mode 100644 index 0000000..feaf215 --- /dev/null +++ b/Testcases/cfgm_common/__init__.py @@ -0,0 +1,50 @@ +# +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +import sys +import re + +IP_FABRIC_VN_FQ_NAME = ['default-domain', 'default-project', 'ip-fabric'] +IP_FABRIC_RI_FQ_NAME = IP_FABRIC_VN_FQ_NAME + ['__default__'] +LINK_LOCAL_VN_FQ_NAME = ['default-domain', 'default-project', '__link_local__'] +LINK_LOCAL_RI_FQ_NAME = LINK_LOCAL_VN_FQ_NAME + ['__link_local__'] +SG_NO_RULE_NAME = "__no_rule__" +SG_NO_RULE_FQ_NAME = ['default-domain', 'default-project', SG_NO_RULE_NAME] + +BGP_RTGT_MIN_ID = 8000000 +SGID_MIN_ALLOC = 8000000 + +def obj_to_json(obj): + return dict((k, v) for k, v in obj.__dict__.iteritems()) +#end obj_to_json + +def json_to_obj(obj): + pass +#end json_to_obj + +def ignore_exceptions(func): + def wrapper(*args, **kwargs): + try: + return func(*args, **kwargs) + except Exception as e: + return None + return wrapper +# end ignore_exceptions + +_illegal_unichrs = [(0x00, 0x08), (0x0B, 0x0C), (0x0E, 0x1F), + (0x7F, 0x84), (0x86, 0x9F), + (0xFDD0, 0xFDDF), (0xFFFE, 0xFFFF)] +if sys.maxunicode >= 0x10000: # not narrow build + _illegal_unichrs.extend([(0x1FFFE, 0x1FFFF), (0x2FFFE, 0x2FFFF), + (0x3FFFE, 0x3FFFF), (0x4FFFE, 0x4FFFF), + (0x5FFFE, 0x5FFFF), (0x6FFFE, 0x6FFFF), + (0x7FFFE, 0x7FFFF), (0x8FFFE, 0x8FFFF), + (0x9FFFE, 0x9FFFF), (0xAFFFE, 0xAFFFF), + (0xBFFFE, 0xBFFFF), (0xCFFFE, 0xCFFFF), + (0xDFFFE, 0xDFFFF), (0xEFFFE, 0xEFFFF), + (0xFFFFE, 0xFFFFF), (0x10FFFE, 0x10FFFF)]) + +_illegal_ranges = ["%s-%s" % (unichr(low), unichr(high)) + for (low, high) in _illegal_unichrs] +illegal_xml_chars_RE = re.compile(u'[%s]' % u''.join(_illegal_ranges)) diff --git a/Testcases/cfgm_common/__init__.pyc b/Testcases/cfgm_common/__init__.pyc Binary files differnew file mode 100644 index 0000000..d5479c4 --- /dev/null +++ b/Testcases/cfgm_common/__init__.pyc diff --git a/Testcases/cfgm_common/analytics_client.py b/Testcases/cfgm_common/analytics_client.py new file mode 100644 index 0000000..c5d14a0 --- /dev/null +++ b/Testcases/cfgm_common/analytics_client.py @@ -0,0 +1,63 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Copyright (c) 2014 Cloudwatt +# All Rights Reserved. +# +# 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. +# +# @author: Sylvain Afchain, eNovance. + +import requests +import six +from six.moves.urllib import parse as urlparse + + +class OpenContrailAPIFailed(Exception): + pass + + +class Client(object): + """Opencontrail Base Statistics REST API Client.""" + #TODO: use a pool of servers + + def __init__(self, endpoint, data={}): + self.endpoint = endpoint + self.data = data + + def request(self, path, fqdn_uuid, data=None): + req_data = dict(self.data) + if data: + req_data.update(data) + + req_params = self._get_req_params(data=req_data) + + url = urlparse.urljoin(self.endpoint, path + fqdn_uuid) + resp = requests.get(url, **req_params) + + if resp.status_code != 200: + raise OpenContrailAPIFailed( + ('Opencontrail API returned %(status)s %(reason)s') % + {'status': resp.status_code, 'reason': resp.reason}) + + return resp.json() + + def _get_req_params(self, data=None): + req_params = { + 'headers': { + 'Accept': 'application/json' + }, + 'data': data, + 'allow_redirects': False, + } + + return req_params diff --git a/Testcases/cfgm_common/analytics_client.pyc b/Testcases/cfgm_common/analytics_client.pyc Binary files differnew file mode 100644 index 0000000..0e70438 --- /dev/null +++ b/Testcases/cfgm_common/analytics_client.pyc diff --git a/Testcases/cfgm_common/buildinfo.py b/Testcases/cfgm_common/buildinfo.py new file mode 100644 index 0000000..478b1c1 --- /dev/null +++ b/Testcases/cfgm_common/buildinfo.py @@ -0,0 +1 @@ +build_info = "{\"build-info\" : [{\"build-version\" : \"2.20\", \"build-time\" : \"2015-06-25 07:52:54.221985\", \"build-user\" : \"mganley\", \"build-hostname\" : \"contrail-ec-build16\", \"build-git-ver\" : \"c6744e5\", "; diff --git a/Testcases/cfgm_common/buildinfo.pyc b/Testcases/cfgm_common/buildinfo.pyc Binary files differnew file mode 100644 index 0000000..50c9be7 --- /dev/null +++ b/Testcases/cfgm_common/buildinfo.pyc diff --git a/Testcases/cfgm_common/dependency_tracker.py b/Testcases/cfgm_common/dependency_tracker.py new file mode 100644 index 0000000..dafc4f9 --- /dev/null +++ b/Testcases/cfgm_common/dependency_tracker.py @@ -0,0 +1,50 @@ +# +# Copyright (c) 2014 Juniper Networks, Inc. All rights reserved. +# + +""" +This file contains implementation of dependency tracker +for physical router configuration manager +""" + + +class DependencyTracker(object): + + def __init__(self, object_class_map, reaction_map): + self._reaction_map = reaction_map + self._object_class_map = object_class_map + self.resources = {} + # end __init__ + + def _add_resource(self, obj_type, obj_uuid): + if obj_type in self.resources: + if obj_uuid in self.resources[obj_type]: + # already visited + return False + self.resources[obj_type].append(obj_uuid) + else: + self.resources[obj_type] = [obj_uuid] + return True + # end _add_resource + + def evaluate(self, obj_type, obj, from_type='self'): + if obj_type not in self._reaction_map: + return + if not self._add_resource(obj_type, obj.uuid): + return + + for ref_type in self._reaction_map[obj_type][from_type]: + ref = getattr(obj, ref_type, None) + if ref is None: + refs = getattr(obj, ref_type+'s', []) + else: + refs = [ref] + + ref_class = self._object_class_map[ref_type] + for ref in refs: + ref_obj = ref_class.get(ref) + if ref_obj is None: + return + self.evaluate(ref_type, ref_obj, obj_type) + # end evaluate +# end DependencyTracker diff --git a/Testcases/cfgm_common/dependency_tracker.pyc b/Testcases/cfgm_common/dependency_tracker.pyc Binary files differnew file mode 100644 index 0000000..259b394 --- /dev/null +++ b/Testcases/cfgm_common/dependency_tracker.pyc diff --git a/Testcases/cfgm_common/exceptions.py b/Testcases/cfgm_common/exceptions.py new file mode 100644 index 0000000..d9723a4 --- /dev/null +++ b/Testcases/cfgm_common/exceptions.py @@ -0,0 +1,133 @@ +# +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# +# Base class of all exceptions in VNC + + +class VncError(Exception): + pass +# end class VncError + +class ServiceUnavailableError(VncError): + def __init__(self, code): + self._reason_code = code + # end __init__ + + def __str__(self): + return 'Service unavailable time out due to: %s' % (str(self._reason_code)) + # end __str__ +# end class ServiceUnavailableError + +class TimeOutError(VncError): + def __init__(self, code): + self._reason_code = code + # end __init__ + + def __str__(self): + return 'Timed out due to: %s' % (str(self._reason_code)) + # end __str__ +# end class TimeOutError + + +class BadRequest(Exception): + def __init__(self, status_code, content): + self.status_code = status_code + self.content = content + # end __init__ + + def __str__(self): + return 'HTTP Status: %s Content: %s' % (self.status_code, self.content) + # end __str__ +# end class BadRequest + + +class NoIdError(VncError): + + def __init__(self, unknown_id): + self._unknown_id = unknown_id + # end __init__ + + def __str__(self): + return 'Unknown id: %s' % (self._unknown_id) + # end __str__ +# end class NoIdError + + +class MaxRabbitPendingError(VncError): + + def __init__(self, npending): + self._npending = npending + # end __init__ + + def __str__(self): + return 'Too many pending updates to RabbitMQ: %s' % (self._npending) + # end __str__ +# end class MaxRabbitPendingError + +class ResourceExistsError(VncError): + def __init__(self, eexists_fq_name, eexists_id): + self._eexists_fq_name = eexists_fq_name + self._eexists_id = eexists_id + # end __init__ + + def __str__(self): + return 'FQ Name: %s exists already with ID: %s' \ + % (self._eexists_fq_name, self._eexists_id) + # end __str__ +# end class ResourceExistsError + +class ResourceTypeUnknownError(VncError): + def __init__(self, obj_type): + self._unknown_type = obj_type + # end __init__ + + def __str__(self): + return 'Unknown object type: %s' %(self._unknown_type) + # end __str__ +# end class ResourceTypeUnknownError + +class PermissionDenied(VncError): + pass +# end class PermissionDenied + + +class RefsExistError(VncError): + pass +# end class RefsExistError + + +class ResourceExhaustionError(VncError): + pass +# end class ResourceExhaustionError + + +class NoUserAgentKey(VncError): + pass +# end class NoUserAgentKey + + +class UnknownAuthMethod(VncError): + pass +# end class UnknownAuthMethod + + +class HttpError(VncError): + + def __init__(self, status_code, content): + self.status_code = status_code + self.content = content + # end __init__ + + def __str__(self): + return 'HTTP Status: %s Content: %s' % (self.status_code, self.content) + # end __str__ +# end class HttpError + + +class AmbiguousParentError(VncError): + pass + + +class InvalidSessionID(VncError): + pass +# end InvalidSessionID diff --git a/Testcases/cfgm_common/exceptions.pyc b/Testcases/cfgm_common/exceptions.pyc Binary files differnew file mode 100644 index 0000000..57f9545 --- /dev/null +++ b/Testcases/cfgm_common/exceptions.pyc diff --git a/Testcases/cfgm_common/ifmap/__init__.py b/Testcases/cfgm_common/ifmap/__init__.py new file mode 100644 index 0000000..189d225 --- /dev/null +++ b/Testcases/cfgm_common/ifmap/__init__.py @@ -0,0 +1,29 @@ +#!/usr/bin/python +# +# Copyright 2011, Infoblox, All Rights Reserved +# +# Open Source, see LICENSE +# + +""" +ifmap-python client is an implementation of the TCG IF-MAP 2.0 protocol as a client library. +""" + +import sys + +# +# Project properties +# + +__version__ = '0.1' +__build__="" + +# +# Exceptions +# +class Error(Exception): + """ + Base class for exception handling + """ + def __init__(self, msg): + Exception.__init__(self, "Error: '%s'" % msg) diff --git a/Testcases/cfgm_common/ifmap/__init__.pyc b/Testcases/cfgm_common/ifmap/__init__.pyc Binary files differnew file mode 100644 index 0000000..263aa50 --- /dev/null +++ b/Testcases/cfgm_common/ifmap/__init__.pyc diff --git a/Testcases/cfgm_common/ifmap/client.py b/Testcases/cfgm_common/ifmap/client.py new file mode 100644 index 0000000..d4d4df8 --- /dev/null +++ b/Testcases/cfgm_common/ifmap/client.py @@ -0,0 +1,263 @@ +#!/usr/bin/python +# +# Copyright 2011, Infoblox, All Rights Reserved +# +# Open Source, see LICENSE +# + +from _ssl import PROTOCOL_SSLv3, PROTOCOL_SSLv23, PROTOCOL_TLSv1 +import gevent +import geventhttpclient +from geventhttpclient import HTTPClient + +import urllib + +import base64 +import cStringIO +import sys + + +from logging import getLogger + +log = getLogger(__name__) # when imported, the logger will be named "ifmap.client" + +# Import either httplib2 or urllib2 and map to same name +try: + import httplib2 as http_client_lib + Http = http_client_lib.Http + HttpException = http_client_lib.HttpLib2Error +except ImportError: + import urllib2 as http_client_lib + HttpException = (http_client_lib.URLError, http_client_lib.HTTPError) + class Http(): # wrapper to use when httplib2 not available + def request(self, url, method, body, headers): + f = http_client_lib.urlopen(http_client_lib.Request(url, body, headers)) + return f.info(), f.read() + +#import urllib2 as http_client_lib +#class Http(): # wrapper to use when httplib2 not available +# def request(self, url, method, body, headers): +# f = http_client_lib.urlopen(http_client_lib.Request(url, body, headers)) +# return f.info(), f.read() + +namespaces = { + 'env' : "http://www.w3.org/2003/05/soap-envelope", + 'ifmap' : "http://www.trustedcomputinggroup.org/2010/IFMAP/2", + 'meta' : "http://www.trustedcomputinggroup.org/2010/IFMAP-METADATA/2" +} + +# NOTE(sahid): It seems that the geventhttpclient uses gevent.queue.LifoQueue +# to maintain a pool of connections and according to the doc it is possible +# to configure the maxsize of the queue with None or a value less than 0 to +# set the number of connections ulimited otherwise It is actually not possible +# to set it to None or less than 0 since lock.BoundedSemaphore will return an +# exception. https://github.com/gwik/geventhttpclient/blob/master/src/geventhttpclient/connectionpool.py#L37 +concurrency = 1 # arbitrary value since it is not possible to use ulimited. + +class AsyncReadWrapper(object): + """ Perform the socket read in a separate greenlet """ + def __init__(self, request): + self._greenlet = gevent.spawn(self.AsyncRead, request) + self._content = None + + def AsyncRead(self, request): + self._content = request.read() + + def __str__(self, *args, **kwargs): + self._greenlet.join() + return self._content + + def __repr__(self, *args, **kwargs): + self._greenlet.join() + return self._content + +class client: + """ + IF-MAP client + """ + + __url = None + __session_id = None + __publisher_id = None + __last_sent = None + __last_received = None + __namespaces = None + __ssl_options = { + 'cert_reqs' : gevent.ssl.CERT_NONE, + 'ssl_version' : PROTOCOL_SSLv23, + } + if sys.version_info >= (2,7): + __ssl_options['ciphers'] = "RC4-SHA" + + __envelope ="""<?xml version="1.0" encoding="UTF-8"?> +<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" %(ns)s> + <env:Body> + %(body)s + </env:Body> +</env:Envelope> +""" + + def __init__(self, url, user=None, password=None, namespaces={}, ssl_opts=None): + if user and password: +# self.__password_mgr=http_client_lib.HTTPPasswordMgrWithDefaultRealm() +# self.__password_mgr.add_password(None, url, user, password) +# handler = http_client_lib.HTTPBasicAuthHandler(self.__password_mgr) +# opener = http_client_lib.build_opener(handler) +# http_client_lib.install_opener(opener) + + #pycurl.global_init(pycurl.GLOBAL_SSL) + + pass + + #if namespaces: + self.__namespaces = namespaces + if ssl_opts: + self.__ssl_options.update(ssl_opts) + + self.__url = url + self.__username = user + self.__password = password + try: + self._http = HTTPClient(*self.__url, ssl = True, + connection_timeout = None, + network_timeout = None, + ssl_options = self.__ssl_options, + insecure = True, + concurrency = concurrency) + except TypeError: + self._http = HTTPClient(*self.__url, ssl = True, + connection_timeout = None, + network_timeout = None, + ssl_options = self.__ssl_options, + concurrency = concurrency) + + + def last_sent(self): + return self.__last_sent + + def last_received(self): + return self.__last_received + + def envelope(self, body) : + _ns = "" + for ns_prefix, ns_uri in self.__namespaces.items(): + #if ns_prefix == "env": break # don't add the envelope namespace again + if ns_prefix == "env": continue # don't add the envelope namespace again + _ns += "xmlns:"+ns_prefix+'="'+ns_uri+'" ' + return str(self.__envelope % {'body':body, 'ns': _ns}) + + def call(self, method, body): + xml = self.envelope(body) + #headers={ + # 'Content-type': 'text/xml; charset="UTF-8"', + # 'Content-length': str(len(xml)), + # "SOAPAction": '"%s"' % (method), + #} + + base64string = base64.encodestring('%s:%s' % (self.__username, self.__password)).replace('\n', '') + # pycurl + #headers=[ + # 'Content-type: text/xml; charset="UTF-8"', + # 'Content-length: %s' %(str(len(xml))), + # 'Authorization : Basic %s' %(base64string), + # 'SOAPAction: %s' % (method), + #] + + # geventhttp + headers={ + 'Content-type': 'text/xml; charset="UTF-8"', + 'Content-length': '%s' %(str(len(xml))), + 'Authorization': 'Basic %s' %(base64string), + 'SOAPAction': '%s' % (method), + } + + try: + log.info("sending IF-MAP message to server") + log.debug("======== sending IF-MAP message ========") + log.debug("\n%s\n", xml) + log.debug("======== /sending IF-MAP message ========") + + #response, content = self.http.request(self.__url,"POST", body=xml, headers=headers ) + + #self.http = pycurl.Curl() + #self.http.setopt(pycurl.URL, self.__url) + #self.http.setopt(pycurl.HTTPHEADER, headers) + #self.http.setopt(pycurl.POSTFIELDS, xml) + #self.http.setopt(pycurl.VERBOSE, True) + #self.http.setopt(pycurl.SSL_VERIFYPEER, 0) + #self.http.setopt(pycurl.SSL_VERIFYHOST, 0) + #content = cStringIO.StringIO() + #self.http.setopt(pycurl.WRITEFUNCTION, + # content.write) + #self.http.perform() + + #self.http = HTTPClient(*self.__url, ssl = True, + # ssl_options = {'cert_reqs': gevent.ssl.CERT_NONE, + # 'ssl_version': PROTOCOL_SSLv3}) + #response = self.http.post('/', body = xml, headers = headers) + response = self._http.post('/', body = xml, headers = headers) + content = response.read() + + self.__last_sent = xml + + #self.__last_received = content + #pycurl self.__last_received = content.getvalue() + self.__last_received = content + + log.debug("======== received IF-MAP response ========") + #log.debug("\n%s\n", content) + #pycurl log.debug("\n%s\n", content.getvalue()) + log.debug("\n%s\n", content) + log.debug("======== /receive IF-MAP response ========") + + #return content + #pycurl return content.getvalue() + return content + + except HttpException, e: + log.error("HTTP Connection error in IF-MAP client: %s", e.reason) + except Exception as e: + log.error("Uknown error sending IF-MAP message to server %s", str(e)) + raise + + def call_async_result(self, method, body): + xml = self.envelope(body) + base64string = base64.encodestring('%s:%s' % (self.__username, self.__password)).replace('\n', '') + + # geventhttp + headers={ + 'Content-type': 'text/xml; charset="UTF-8"', + 'Content-length': '%s' %(str(len(xml))), + 'Authorization': 'Basic %s' %(base64string), + 'SOAPAction': '%s' % (method), + } + + try: + response = self._http.post('/', body = xml, headers = headers) + content = AsyncReadWrapper(response) + + return content + + except HttpException, e: + log.error("HTTP Connection error in IF-MAP client: %s", e.reason) + except: + log.error("Uknown error sending IF-MAP message to server") + raise + + def set_session_id(self, session_id): + self.__session_id = session_id + + def set_publisher_id(self, publisher_id): + self.__publisher_id = publisher_id + + def get_session_id(self): + return self.__session_id + + def get_publisher_id(self): + return self.__publisher_id + + +if __name__ == "__main__": + print """The ifmap client library is not meant to be run from the command line or python interpreter +- you should use it by including it in your python software. See testmap.py for an example. +Hint: add this line to use the library - 'from ifmap import ifmapClient' """ diff --git a/Testcases/cfgm_common/ifmap/client.pyc b/Testcases/cfgm_common/ifmap/client.pyc Binary files differnew file mode 100644 index 0000000..3670f20 --- /dev/null +++ b/Testcases/cfgm_common/ifmap/client.pyc diff --git a/Testcases/cfgm_common/ifmap/id.py b/Testcases/cfgm_common/ifmap/id.py new file mode 100644 index 0000000..7a71d51 --- /dev/null +++ b/Testcases/cfgm_common/ifmap/id.py @@ -0,0 +1,191 @@ +# +# Copyright 2011, Infoblox, All Rights Reserved +# +# Open Source, see LICENSE + +# Module with ID factories for creating IF-MAP Identifiers. +# Identifiers are used, for example, when publishing to an IF-MAP server, to represent an IP address. +# The XML for such the IP address identifier would be generated by ifmap.id.IPAddress +# example: +# >>> print ifmap.id.IPAdress('10.0.0.1') + +from util import attr + +class ifmapIDFactory: + pass + + +class IPAddress(ifmapIDFactory): + """ + XML Factory for an IP Address IF-MAP Identifier + """ + def __init__(self, ip_address, type=None, administrative_domain=None): + self.__ip_address = ip_address + self.__type = type + self.__administrative_domain = administrative_domain + + def administrative_domain(self): + return self.__administrative_domain + + def ip_address(self): + return self.__ip_address + + def type(self): + return self.__type + + def __str__(self): + _attr = attr({'value':self.__ip_address,'type':self.__type,'administrative-domain':self.__administrative_domain}) + return '<ip-address %s' % _attr + '/>' + +class MACAddress(ifmapIDFactory): + """ + XML Factory for a MAC Address IF-MAP Identifier + """ + + def __init__(self, mac_address, administrative_domain=None): + self.__mac_address = mac_address + self.__administrative_domain = administrative_domain + return None; + + def administrative_domain(self): + return self.__administrative_domain + + def mac_address(self): + return self.__mac_address + + def __str__(self): + _attr = attr({'value':self.__mac_address,'administrative-domain':self.__administrative_domain}) + return '<mac-address %s' % _attr + '/>' + + +class Device(ifmapIDFactory): + """ + XML Factory for a Device IF-MAP Identifier + """ + + def __init__(self, name, aik_name=None): + self.__name = name + self.__aik_name = aik_name + return None; + + def aik_name(self): + return self.__aik_name + + def name(self): + return self.__name + + def __str__(self): + self.__XML = "<device>" + self.__XML += '<name>'+self.__name+'</name>' + # aik_name is optional + if self.__aik_name: + self.__XML += '<aik-name>'+self.__aik_name+'<aik-name>' + self.__XML += "</device>" + return self.__XML + +class AccessRequest(ifmapIDFactory): + """ + XML Factory for an Access Request IF-MAP Identifier + """ + + def __init__(self, name, administrative_domain=None): + self.__name = name + self.__administrative_domain = administrative_domain + return None; + + def administrative_domain(self): + return self.__administrative_domain + + def name(self): + return self.__name + + def __str__(self): + self.__XML = "<access-request" + self.__XML += ' name="'+self.__name+'"' + # administrative_domain is optional + if self.__administrative_domain: + self.__XML += ' administrative-domain="'+self.__administrative_domain+'"' + self.__XML += " />" + return self.__XML + +class Identity(ifmapIDFactory): + """ + XML Factory for an IF-MAP Identifier + """ + + def __init__(self, name, type=None, other_type=None, administrative_domain=None): + self.__name = name # required + self.__type = type # "aik_name"|"distinguished_name"|"dns_name"|"email_address"|"kerberos_principal"|"username"|"sip_uri"|"tel_uri"|"hip_hit"|"other" + self.__other_type = other_type # vendor-specific type + self.__administrative_domain = administrative_domain + return None; + + def administrative_domain(self): + return self.__administrative_domain + + def name(self): + return self.__name + + def type(self): + return self.__type + + def other_type(self): + return self.__other_type + + def __str__(self): + self.__XML = "<identity" + self.__XML += ' name="'+self.__name+'"' + # type and administrative_domain are optional + if self.__type: + self.__XML +=' type="'+self.__type+'"' + if self.__other_type: + self.__XML +=' other-type-definition="'+self.__other_type+'"' + if self.__administrative_domain: + self.__XML += ' administrative-domain="'+self.__administrative_domain+'"' + self.__XML += " />" + return self.__XML + + +class CustomIdentity(ifmapIDFactory): + """ + XML Factory for an Custom IF-MAP Identifier with namespace prefix or URL + """ + + def __init__(self, name, ns_prefix="", namespace="", attributes=None): + self.__name = name # required + self.__ns_prefix = ns_prefix # see ifmap.namespaces + self.__namespace = namespace # a namespace IRI/URI + self.__attributes = attributes # additional attributes in a dictionary (eg. {key1: value1, key2: value2}) + return None; + + def attributes(self): + return self.__attributes + + def name(self): + return self.__name + + def ns_prefix(self): + return self.__ns_prefix + + def namespace(self): + return self.__namespace + + def __str__(self): + self.__XML = "<custom-identifier>" + + + if self.__ns_prefix: + self.__ns_prefix = self.__ns_prefix +':' + + self.__XML += '<'+self.__ns_prefix+self.__name + + if self.__namespace: + self.__namespace=' xlmns='+self.__ns_prefix+self.__namespace + + self.__XML += self.__namespace + + if self.__attributes and (type(self.__attributes) == type({})) and self.__attributes.items(): + for key, attribute in self.__attributes.items(): + self.__XML += ' '+key+'="'+attribute+'"' + self.__XML += " /></custom-identifier>" + return self.__XML diff --git a/Testcases/cfgm_common/ifmap/id.pyc b/Testcases/cfgm_common/ifmap/id.pyc Binary files differnew file mode 100644 index 0000000..ed8e87f --- /dev/null +++ b/Testcases/cfgm_common/ifmap/id.pyc diff --git a/Testcases/cfgm_common/ifmap/metadata.py b/Testcases/cfgm_common/ifmap/metadata.py new file mode 100644 index 0000000..17f4515 --- /dev/null +++ b/Testcases/cfgm_common/ifmap/metadata.py @@ -0,0 +1,36 @@ +# Copyright 2011, Infoblox, All Rights Reserved +# +# Open Source, see LICENSE +# +from util import attr, link_ids + +class MetadataBase: + """ foundation class for metadata factory """ + pass + +class Metadata(MetadataBase): + """ + Metadata factory + """ + __ns_uri = '' + + def __init__(self, name, value=None, attributes=None, ns_prefix=None, ns_uri=None, elements=''): + self.__value = value + self.__attributes = attributes + self.__elements = elements + + if ns_prefix: + self.__name = ns_prefix + ':' + name + elif not ns_uri: + self.__name = 'meta:' + name + + if ns_uri: + if ns_prefix: + self.__ns_uri = ' xmlns:' + ns_prefix + '="' + ns_uri + '"' + else: + self.__ns_uri = ' xmlns="' + ns_uri + '"' + + def __str__(self): + __attr = ' '+ attr(self.__attributes) + return '<metadata><' + self.__name + self.__ns_uri + __attr + '>' + self.__value + self.__elements + '</' + self.__name + '></metadata>' + diff --git a/Testcases/cfgm_common/ifmap/metadata.pyc b/Testcases/cfgm_common/ifmap/metadata.pyc Binary files differnew file mode 100644 index 0000000..7c4ec60 --- /dev/null +++ b/Testcases/cfgm_common/ifmap/metadata.pyc diff --git a/Testcases/cfgm_common/ifmap/operations.py b/Testcases/cfgm_common/ifmap/operations.py new file mode 100644 index 0000000..c4c2055 --- /dev/null +++ b/Testcases/cfgm_common/ifmap/operations.py @@ -0,0 +1,75 @@ +# Copyright 2011, Infoblox, All Rights Reserved +# +# Open Source, see LICENSE +# +from util import attr, link_ids + +class OperationBase: + """ foundation class for operation factory """ + pass + +class PublishUpdateOperation(OperationBase): + def __init__(self, id1, metadata, id2=None, lifetime=None): + self.__id = link_ids(id1, id2) + self.__metadata = metadata + self.__lifetime = lifetime + + def __str__(self): + if self.__lifetime: + _attr = attr({'lifetime':self.__lifetime}) + return '<update %s>' % _attr + self.__id + self.__metadata + '</update>' + else: + return '<update>' + self.__id + self.__metadata + '</update>' + +class PublishDeleteOperation(OperationBase): + def __init__(self, id1, id2=None, filter=None): + self.__id = link_ids(id1, id2) + self.__filter = filter + + def __str__(self): + if self.__filter: + _attr = attr({'filter':self.__filter}) + return '<delete %s>' % _attr + self.__id + '</delete>' + else: + return '<delete>' + self.__id + '</delete>' + +class PublishNotifyOperation(OperationBase): + def __init__(self, id1, metadata, id2=None): + self.__id = link_ids(id1, id2) + self.__metadata = metadata + + def __str__(self): + return '<notify>' + self.__id + self.__metadata + '</notify>' + +class SubscribeUpdateOperation(OperationBase): + """ + SubscribeUpdate factory + name + identifier (single, or linked with link_ids()) + 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, name, identifier, search_parameters={}): + self.__name = name + self.__identifier = identifier + self.__parameters = search_parameters + + def __str__(self): + __attr = attr(self.__parameters) + return '<update name="'+ self.__name + '" ' + __attr + '>' + self.__identifier +'</update>' + +class SubscribeDeleteOperation(OperationBase): + def __init__(self, name): + self.__name = name + + def __str__(self): + return '<delete name="'+ self.__name + '" />' + + + + +
\ No newline at end of file diff --git a/Testcases/cfgm_common/ifmap/operations.pyc b/Testcases/cfgm_common/ifmap/operations.pyc Binary files differnew file mode 100644 index 0000000..d07368a --- /dev/null +++ b/Testcases/cfgm_common/ifmap/operations.pyc diff --git a/Testcases/cfgm_common/ifmap/request.py b/Testcases/cfgm_common/ifmap/request.py new file mode 100644 index 0000000..47bc1f6 --- /dev/null +++ b/Testcases/cfgm_common/ifmap/request.py @@ -0,0 +1,106 @@ +#!/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 '<ifmap:newSession %s' % (attr({'max-poll-result-size':self.__max_poll_result})) + '/>'; + +class RenewSessionRequest(RequestBase): + def __init__(self, session_id): + self.__session_id = session_id + + def __str__(self): + return '<ifmap:renewSession %s' % (attr({'session-id':self.__session_id})) + '/>'; + +class EndSessionRequest(RequestBase): + def __init__(self, session_id): + self.__session_id = session_id + + def __str__(self): + return '<ifmap:endSession %s' % (attr({'session-id':self.__session_id})) + '/>'; + +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 '<ifmap:publish %s' % _attr + '>' + self.__operations + '</ifmap:publish>' + +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 '<ifmap:search ' + _attr + _params + '>' + self.__identifier + '</ifmap:search>' + +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 '<ifmap:subscribe %s' % _attr + '>' + self.__operations + '</ifmap:subscribe>' + +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 '<ifmap:poll %s' % _attr + '/>' + +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 '<ifmap:purgePublisher %s' % __attr + '/>'; diff --git a/Testcases/cfgm_common/ifmap/request.pyc b/Testcases/cfgm_common/ifmap/request.pyc Binary files differnew file mode 100644 index 0000000..94537b5 --- /dev/null +++ b/Testcases/cfgm_common/ifmap/request.pyc diff --git a/Testcases/cfgm_common/ifmap/response.py b/Testcases/cfgm_common/ifmap/response.py new file mode 100644 index 0000000..179fd01 --- /dev/null +++ b/Testcases/cfgm_common/ifmap/response.py @@ -0,0 +1,55 @@ +# Copyright 2011, Infoblox, All Rights Reserved +# +# Open Source, see LICENSE +# + +from xml.etree import ElementTree + +class Response(): + """ + Base class to handle and parse IF-MAP responses + """ + __xml = "" + + def __init__(self, result): + """ + Take a result string and process it + """ + if result: + env = ElementTree.fromstring(result) + body = env.find('{http://www.w3.org/2003/05/soap-envelope}Body') + response = body.find('{http://www.trustedcomputinggroup.org/2010/IFMAP/2}response') + # xml.etree.ElementTree find is broken in python 2.6 + children = response.findall('*') + if len(children): + self.__xml = children[0] + + def element(self): + """ + Returns the raw Element object + """ + return self.__xml + + def __str__(self): + """ + Print the XML tree as a string + """ + return ElementTree.tostring(self.__xml) + +class newSessionResult(Response): + """ + newSessionResult + """ + def __init__(self, result): + #import pdb; pdb.set_trace() + self.__newSession = Response(result).element() + + def get_session_id(self): + return self.__newSession.attrib['session-id'] + + def get_publisher_id(self): + return self.__newSession.attrib['ifmap-publisher-id'] + + + + diff --git a/Testcases/cfgm_common/ifmap/response.pyc b/Testcases/cfgm_common/ifmap/response.pyc Binary files differnew file mode 100644 index 0000000..93710a8 --- /dev/null +++ b/Testcases/cfgm_common/ifmap/response.pyc diff --git a/Testcases/cfgm_common/ifmap/util.py b/Testcases/cfgm_common/ifmap/util.py new file mode 100644 index 0000000..e4d06dd --- /dev/null +++ b/Testcases/cfgm_common/ifmap/util.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# +# Copyright 2011, Infoblox, All Rights Reserved +# +# Open Source, see LICENSE +# + +def attr(attributes): + """ + attr creates an XML string for any attribute that has a value + attr({'session-id': '2345', 'validation':'metadata'}) + """ + if attributes and (type(attributes) == type({})): # check if it is a dictionary + __xml = "" + for label, value in attributes.items(): + if value != None: + __xml += label + '="' + value + '" ' + return __xml + else: + return '' + +def link_ids(id1, id2): + """ + Takes two id arguments. + Returns XML for id1 or links id1 and id2 together + """ + if id1 and id2: # Both exist, so link them + #return '<link>' + id1 + id2 + '</link>' + return id1 + id2 + else: + return id1 + + + diff --git a/Testcases/cfgm_common/ifmap/util.pyc b/Testcases/cfgm_common/ifmap/util.pyc Binary files differnew file mode 100644 index 0000000..bb357e3 --- /dev/null +++ b/Testcases/cfgm_common/ifmap/util.pyc diff --git a/Testcases/cfgm_common/imid.py b/Testcases/cfgm_common/imid.py new file mode 100644 index 0000000..432674d --- /dev/null +++ b/Testcases/cfgm_common/imid.py @@ -0,0 +1,344 @@ +# +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# +# This file deals with the ifmap id handling for both vnc-user-visible entities +# and bgp-visible entities + +import uuid +import re +import StringIO +from lxml import etree +from cfgm_common import exceptions +from cfgm_common.ifmap.client import client +from ifmap.request import NewSessionRequest, RenewSessionRequest, \ + EndSessionRequest, PublishRequest, SearchRequest, \ + SubscribeRequest, PurgeRequest, PollRequest +from ifmap.id import IPAddress, MACAddress, Device, AccessRequest, Identity, \ + CustomIdentity +from ifmap.operations import PublishUpdateOperation, PublishNotifyOperation, \ + PublishDeleteOperation, SubscribeUpdateOperation,\ + SubscribeDeleteOperation +from ifmap.util import attr, link_ids +from ifmap.response import Response, newSessionResult +from ifmap.metadata import Metadata +from xml.sax.saxutils import escape as s_esc, unescape as s_unesc + + +_TENANT_GRP = "(?P<tenant_uuid>.*)" +_VPC_GRP = "(?P<vpc_name>.*)" +_VN_GRP = "(?P<vn_name>.*)" +_SG_GRP = "(?P<sg_name>.*)" +_POL_GRP = "(?P<pol_name>.*)" +_INST_GRP = "(?P<instance_uuid>.*)" +_PORT_GRP = "(?P<port_id>.*)" + +_TENANT_ID_RE = "contrail:tenant:%s" % (_TENANT_GRP) +_VPC_NAME_RE = "contrail:network-group:%s:%s" % (_TENANT_GRP, _VPC_GRP) +_VN_NAME_RE = "contrail:virtual-network:%s:%s:%s" % ( + _TENANT_GRP, _VPC_GRP, _VN_GRP) +_SG_NAME_RE = "contrail:security-group:%s:%s:%s" % ( + _TENANT_GRP, _VPC_GRP, _SG_GRP) +_POL_NAME_RE = "contrail:policy:%s:%s:%s" % (_TENANT_GRP, _VPC_GRP, _POL_GRP) +_INST_ID_RE = "contrail:instance:%s:%s:%s:%s" \ + % (_TENANT_GRP, _VPC_GRP, _VN_GRP, _INST_GRP) +_PORT_ID_RE = "contrail:port:%s:%s:%s:%s:%s" \ + % (_TENANT_GRP, _VPC_GRP, _VN_GRP, _INST_GRP, _PORT_GRP) + +_CT_NS = "contrail" +_ROOT_IMID = _CT_NS + ":config-root:root" + +_SOAP_XSD = "http://www.w3.org/2003/05/soap-envelope" +_IFMAP_XSD = "http://www.trustedcomputinggroup.org/2010/IFMAP/2" +_IFMAP_META_XSD = "http://www.trustedcomputinggroup.org/2010/IFMAP-METADATA/2" +_CONTRAIL_XSD = "http://www.contrailsystems.com/vnc_cfg.xsd" + +# Parse ifmap-server returned search results and create list of tuples +# of (ident-1, ident-2, link-attribs) + + +def parse_result_items(result_items, my_imid=None): + all_result_list = [] + for r_item in result_items: + children = r_item.getchildren() + num_children = len(children) + if num_children == 1: # ignore ident-only result-items + continue + elif num_children == 2: + result_info = [children[0], None, children[1]] + elif num_children == 3: + result_info = [children[0], children[1], children[2]] + else: + raise Exception('Result item of length %s not handled!' + % (num_children)) + all_result_list.append(result_info) + + if not my_imid: + return all_result_list + + # strip ones that don't originate from or to my_imid + filtered_result_list = [] + for (ident_1, ident_2, meta) in all_result_list: + if (((ident_2 is not None) and (ident_2.attrib['name'] == my_imid)) or + (ident_1.attrib['name'] == my_imid)): + if meta is None: + filtered_result_list.append((ident_1, ident_2, None)) + else: + # search gives all props under one metadata. expand it. + for m_elem in meta: + filtered_result_list.append((ident_1, ident_2, m_elem)) + + return filtered_result_list +# end parse_result_items + + +def get_ifmap_id_from_fq_name(type, fq_name): + my_fqn = ':' + ':'.join(fq_name) + my_imid = 'contrail:' + type + escape(my_fqn) + + return my_imid +# end get_ifmap_id_from_fq_name + + +def get_type_from_ifmap_id(ifmap_id): + type = ifmap_id.split(':')[1] + return type +# end get_type_from_ifmap_id + + +def get_fq_name_str_from_ifmap_id(ifmap_id): + return re.sub(r'contrail:.*?:', '', unescape(ifmap_id)) +# end get_fq_name_str_from_ifmap_id + + +def get_fq_name_from_ifmap_id(ifmap_id): + type = get_type_from_ifmap_id(ifmap_id) + # route-target has ':' in the name, so handle it as a special case + if type=='route-target': + return [':'.join(unescape(ifmap_id).split(':')[2:])] + return unescape(ifmap_id).split(':')[2:] +# end get_fq_name_from_ifmap_id + +def get_vm_id_from_interface(vmi_obj): + if vmi_obj.parent_type=='virtual-machine': + return vmi_obj.parent_uuid + else: + vm_refs = vmi_obj.get_virtual_machine_refs() + return vm_refs[0]['uuid'] if vm_refs else None +# end get_vmi_id_from_interface + +def subscribe_root(ssrc_mapc): + #self._ident_type_subscribe(_CLOUD_IMID, "ct:member-of") + ident = str(Identity(name=_ROOT_IMID, type="other", + other_type="extended")) + subreq = SubscribeRequest( + ssrc_mapc.get_session_id(), + operations=str(SubscribeUpdateOperation("root", ident, + {"max-depth": "255", }))) + + result = ssrc_mapc.call('subscribe', subreq) +# end _subscribe_root + + +def ssrc_initialize(args): + ssrc_mapc = ifmap_server_connect(args) + result = ssrc_mapc.call('newSession', NewSessionRequest()) + ssrc_mapc.set_session_id(newSessionResult(result).get_session_id()) + ssrc_mapc.set_publisher_id(newSessionResult(result).get_publisher_id()) + subscribe_root(ssrc_mapc) + return ssrc_mapc +# end ssrc_initialize + + +def arc_initialize(args, ssrc_mapc): + # + # Poll requests go on ARC channel which don't do newSession but + # share session-id with ssrc channel. so 2 connections to server but 1 + # session/session-id in ifmap-server (mamma mia!) + # + arc_mapc = ifmap_server_connect(args) + arc_mapc.set_session_id(ssrc_mapc.get_session_id()) + arc_mapc.set_publisher_id(ssrc_mapc.get_publisher_id()) + + return arc_mapc +# end arc_initialize + + +def ifmap_server_connect(args): + _CLIENT_NAMESPACES = { + 'env': _SOAP_XSD, + 'ifmap': _IFMAP_XSD, + 'meta': _IFMAP_META_XSD, + _CT_NS: _CONTRAIL_XSD + } + + ssl_options = None + if args.use_certs: + ssl_options = { + 'keyfile': args.keyfile, + 'certfile': args.certfile, + 'ca_certs': args.ca_certs, + 'cert_reqs': ssl.CERT_REQUIRED, + 'ciphers': 'ALL' + } + return client(("%s" % (args.ifmap_server_ip), + "%s" % (args.ifmap_server_port)), + args.ifmap_username, args.ifmap_password, + _CLIENT_NAMESPACES, ssl_options) +# end ifmap_server_connect + + +def parse_poll_result(poll_result_str): + _XPATH_NAMESPACES = { + 'a': _SOAP_XSD, + 'b': _IFMAP_XSD, + 'c': _CONTRAIL_XSD + } + + soap_doc = etree.parse(StringIO.StringIO(poll_result_str)) + #soap_doc.write(sys.stdout, pretty_print=True) + + xpath_error = '/a:Envelope/a:Body/b:response/errorResult' + error_results = soap_doc.xpath(xpath_error, + namespaces=_XPATH_NAMESPACES) + + if error_results: + if error_results[0].get('errorCode') == 'InvalidSessionID': + raise exceptions.InvalidSessionID(etree.tostring(error_results[0])) + raise Exception(etree.tostring(error_results[0])) + + xpath_expr = '/a:Envelope/a:Body/b:response/pollResult' + poll_results = soap_doc.xpath(xpath_expr, + namespaces=_XPATH_NAMESPACES) + + result_list = [] + for result in poll_results: + children = result.getchildren() + for child in children: + result_type = child.tag + if result_type == 'errorResult': + raise Exception(etree.tostring(child)) + + result_items = child.getchildren() + item_list = parse_result_items(result_items) + for item in item_list: + ident1 = item[0] + ident2 = item[1] + meta = item[2] + idents = {} + ident1_imid = ident1.attrib['name'] + ident1_type = get_type_from_ifmap_id(ident1_imid) + idents[ident1_type] = get_fq_name_str_from_ifmap_id( + ident1_imid) + if ident2 is not None: + ident2_imid = ident2.attrib['name'] + ident2_type = get_type_from_ifmap_id(ident2_imid) + if ident1_type == ident2_type: + idents[ident1_type] = [ + idents[ident1_type], + get_fq_name_str_from_ifmap_id(ident2_imid)] + else: + idents[ident2_type] = get_fq_name_str_from_ifmap_id( + ident2_imid) + result_list.append((result_type, idents, meta)) + return result_list +# end parse_poll_result + +def parse_search_result(search_result_str): + _XPATH_NAMESPACES = { + 'a': _SOAP_XSD, + 'b': _IFMAP_XSD, + 'c': _CONTRAIL_XSD + } + + soap_doc = etree.parse(StringIO.StringIO(search_result_str)) + #soap_doc.write(sys.stdout, pretty_print=True) + + xpath_error = '/a:Envelope/a:Body/b:response/errorResult' + error_results = soap_doc.xpath(xpath_error, + namespaces=_XPATH_NAMESPACES) + + if error_results: + if error_results[0].get('errorCode') == 'InvalidSessionID': + raise exceptions.InvalidSessionID(etree.tostring(error_results[0])) + raise Exception(etree.tostring(error_results[0])) + + xpath_expr = '/a:Envelope/a:Body/b:response/searchResult' + search_results = soap_doc.xpath(xpath_expr, + namespaces=_XPATH_NAMESPACES) + + result_list = [] + for result in search_results: + result_items = result.getchildren() + item_list = parse_result_items(result_items) + for item in item_list: + ident1 = item[0] + ident2 = item[1] + meta = item[2] + idents = {} + ident1_imid = ident1.attrib['name'] + ident1_type = get_type_from_ifmap_id(ident1_imid) + idents[ident1_type] = get_fq_name_str_from_ifmap_id( + ident1_imid) + if ident2 is not None: + ident2_imid = ident2.attrib['name'] + ident2_type = get_type_from_ifmap_id(ident2_imid) + if ident1_type == ident2_type: + idents[ident1_type] = [ + idents[ident1_type], + get_fq_name_str_from_ifmap_id(ident2_imid)] + else: + idents[ident2_type] = get_fq_name_str_from_ifmap_id( + ident2_imid) + result_list.append((idents, meta)) + return result_list +# end parse_search_result + +def ifmap_read(mapclient, ifmap_id, srch_meta, result_meta, field_names=None): + start_id = str( + Identity(name=ifmap_id, type='other', other_type='extended')) + + def _search(start_id, match_meta=None, result_meta=None, + max_depth=1): + # set ifmap search parmeters + srch_params = {} + srch_params['max-depth'] = str(max_depth) + srch_params['max-size'] = '50000000' + + if match_meta is not None: + srch_params['match-links'] = match_meta + + if result_meta is not None: + # all => don't set result-filter, so server returns all id + meta + if result_meta == "all": + pass + else: + srch_params['result-filter'] = result_meta + else: + # default to return match_meta metadata types only + srch_params['result-filter'] = match_meta + + srch_req = SearchRequest(mapclient.get_session_id(), start_id, + search_parameters=srch_params + ) + result = mapclient.call('search', srch_req) + + return result + # end _search + + return _search(start_id, srch_meta, result_meta, max_depth=10) +# end ifmap_read + +def ifmap_read_all(mapclient): + srch_meta = None + result_meta = 'all' + return ifmap_read(mapclient, 'contrail:config-root:root', + srch_meta, result_meta) +# end ifmap_read_all + +def escape(string): + return s_esc(string, entities={'"':'"', "'": "'"}) +# end escape + +def unescape(string): + return s_unesc(string, entities={'"':'"', "'": "'"}) +# end unescape diff --git a/Testcases/cfgm_common/imid.pyc b/Testcases/cfgm_common/imid.pyc Binary files differnew file mode 100644 index 0000000..8975407 --- /dev/null +++ b/Testcases/cfgm_common/imid.pyc diff --git a/Testcases/cfgm_common/importutils.py b/Testcases/cfgm_common/importutils.py new file mode 100644 index 0000000..0ae7ffe --- /dev/null +++ b/Testcases/cfgm_common/importutils.py @@ -0,0 +1,66 @@ +# Copyright 2011 OpenStack Foundation. +# All Rights Reserved. +# +# 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. + +""" +Import related utilities and helper functions. +""" + +import sys +import traceback + + +def import_class(import_str): + """Returns a class from a string including module and class.""" + mod_str, _sep, class_str = import_str.rpartition('.') + __import__(mod_str) + try: + return getattr(sys.modules[mod_str], class_str) + except AttributeError: + raise ImportError('Class %s cannot be found (%s)' % + (class_str, + traceback.format_exception(*sys.exc_info()))) + + +def import_object(import_str, *args, **kwargs): + """Import a class and return an instance of it.""" + return import_class(import_str)(*args, **kwargs) + + +def import_object_ns(name_space, import_str, *args, **kwargs): + """Tries to import object from default namespace. + + Imports a class and return an instance of it, first by trying + to find the class in a default namespace, then failing back to + a full path if not found in the default namespace. + """ + import_value = "%s.%s" % (name_space, import_str) + try: + return import_class(import_value)(*args, **kwargs) + except ImportError: + return import_class(import_str)(*args, **kwargs) + + +def import_module(import_str): + """Import a module.""" + __import__(import_str) + return sys.modules[import_str] + + +def try_import(import_str, default=None): + """Try to import a module and if it fails return default.""" + try: + return import_module(import_str) + except ImportError: + return default diff --git a/Testcases/cfgm_common/importutils.pyc b/Testcases/cfgm_common/importutils.pyc Binary files differnew file mode 100644 index 0000000..bbbcb95 --- /dev/null +++ b/Testcases/cfgm_common/importutils.pyc diff --git a/Testcases/cfgm_common/rest.py b/Testcases/cfgm_common/rest.py new file mode 100644 index 0000000..7287f8d --- /dev/null +++ b/Testcases/cfgm_common/rest.py @@ -0,0 +1,41 @@ +# +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# +OP_POST = 1 +OP_GET = 2 +OP_PUT = 3 +OP_DELETE = 4 + + +def hdr_client_tenant(): + return 'X-Tenant-Name' +# end hdr_tenant_client + +# TODO transform from client value + + +def hdr_server_tenant(): + return 'HTTP_X_TENANT_NAME' +# end hdr_tenant_server + + +class LinkObject(object): + + def __init__(self, rel, base_url, uri, name): + self.rel = rel + self.base_url = base_url + self.uri = uri + self.name = name + # end __init__ + + def to_dict(self, with_url=None): + if not with_url: + url = self.base_url + else: + url = with_url + return {'rel': self.rel, + 'href': url + self.uri, + 'name': self.name} + # end to_dict + +# end class LinkObject diff --git a/Testcases/cfgm_common/rest.pyc b/Testcases/cfgm_common/rest.pyc Binary files differnew file mode 100644 index 0000000..33218d3 --- /dev/null +++ b/Testcases/cfgm_common/rest.pyc diff --git a/Testcases/cfgm_common/svc_info.py b/Testcases/cfgm_common/svc_info.py new file mode 100644 index 0000000..9f9eba9 --- /dev/null +++ b/Testcases/cfgm_common/svc_info.py @@ -0,0 +1,99 @@ +# +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +_MGMT_STR = "management" +_LEFT_STR = "left" +_RIGHT_STR = "right" + +_SVC_VN_MGMT = "svc-vn-mgmt" +_SVC_VN_LEFT = "svc-vn-left" +_SVC_VN_RIGHT = "svc-vn-right" +_VN_MGMT_SUBNET_CIDR = '10.250.1.0/24' +_VN_LEFT_SUBNET_CIDR = '10.250.2.0/24' +_VN_RIGHT_SUBNET_CIDR = '10.250.3.0/24' + +_VN_SNAT_PREFIX_NAME = 'snat-si-left' +_VN_SNAT_SUBNET_CIDR = '100.64.0.0/29' + +_CHECK_SVC_VM_HEALTH_INTERVAL = 30 + +_VM_INSTANCE_TYPE = 'virtual-machine' +_NETNS_INSTANCE_TYPE = 'network-namespace' + +_SNAT_SVC_TYPE = 'source-nat' +_LB_SVC_TYPE = 'loadbalancer' + +_ACTIVE_LOCAL_PREFERENCE = 200 +_STANDBY_LOCAL_PREFERENCE = 100 + +# Version from the vrouter agent can manage service instances +_VROUTER_NETNS_SUPPORTED_VERSION = '1.10' + +def get_management_if_str(): + return _MGMT_STR + +def get_left_if_str(): + return _LEFT_STR + +def get_right_if_str(): + return _RIGHT_STR + +def get_if_str_list(): + if_str_list = [] + if_str_list.append(get_management_if_str()) + if_str_list.append(get_left_if_str()) + if_str_list.append(get_right_if_str()) + return if_str_list + +def get_management_vn_name(): + return _SVC_VN_MGMT + +def get_left_vn_name(): + return _SVC_VN_LEFT + +def get_right_vn_name(): + return _SVC_VN_RIGHT + +def get_shared_vn_list(): + shared_vn_list = [] + shared_vn_list.append(get_management_vn_name()) + shared_vn_list.append(get_left_vn_name()) + shared_vn_list.append(get_right_vn_name()) + return shared_vn_list + +def get_management_vn_subnet(): + return _VN_MGMT_SUBNET_CIDR + +def get_left_vn_subnet(): + return _VN_LEFT_SUBNET_CIDR + +def get_right_vn_subnet(): + return _VN_RIGHT_SUBNET_CIDR + +def get_snat_left_vn_prefix(): + return _VN_SNAT_PREFIX_NAME + +def get_snat_left_subnet(): + return _VN_SNAT_SUBNET_CIDR + +def get_vm_instance_type(): + return _VM_INSTANCE_TYPE + +def get_netns_instance_type(): + return _NETNS_INSTANCE_TYPE + +def get_snat_service_type(): + return _SNAT_SVC_TYPE + +def get_lb_service_type(): + return _LB_SVC_TYPE + +def get_vm_health_interval(): + return _CHECK_SVC_VM_HEALTH_INTERVAL + +def get_active_preference(): + return _ACTIVE_LOCAL_PREFERENCE + +def get_standby_preference(): + return _STANDBY_LOCAL_PREFERENCE diff --git a/Testcases/cfgm_common/svc_info.pyc b/Testcases/cfgm_common/svc_info.pyc Binary files differnew file mode 100644 index 0000000..e298b95 --- /dev/null +++ b/Testcases/cfgm_common/svc_info.pyc diff --git a/Testcases/cfgm_common/utils.py b/Testcases/cfgm_common/utils.py new file mode 100644 index 0000000..a023912 --- /dev/null +++ b/Testcases/cfgm_common/utils.py @@ -0,0 +1,110 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Copyright (c) 2015 Juniper Networks +# All Rights Reserved. +# +# 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. +# +# @author: Numan Siddique, eNovance. + + +import urllib +from collections import OrderedDict +import sys +import cgitb +import cStringIO + +def detailed_traceback(): + buf = cStringIO.StringIO() + cgitb.Hook(format="text", file=buf).handle(sys.exc_info()) + tb_txt = buf.getvalue() + buf.close() + return tb_txt +# end detailed_traceback + +def encode_string(enc_str, encoding='utf-8'): + """Encode the string using urllib.quote_plus + + Eg. @input: + enc_str = 'neté + type - 'unicode' or 'str' + @retval + enc_str = 'net%C3%A9%C3%B9' + type - str + """ + try: + enc_str.encode() + except (UnicodeDecodeError, UnicodeEncodeError): + if type(enc_str) is unicode: + enc_str = enc_str.encode(encoding) + enc_str = urllib.quote_plus(enc_str) + except Exception: + pass + return enc_str + + +def decode_string(dec_str, encoding='utf-8'): + """Decode the string previously encoded using urllib.quote_plus. + + Eg. If dec_str = 'net%C3%A9%C3%B9' + type - 'unicode' or 'str' + @retval + ret_dec_str = 'neté + type - unicode + """ + ret_dec_str = dec_str + try: + if type(ret_dec_str) is unicode: + ret_dec_str = str(ret_dec_str) + ret_dec_str = urllib.unquote_plus(ret_dec_str) + return ret_dec_str.decode(encoding) + except Exception: + return dec_str + + +class CacheContainer(object): + def __init__(self, size): + self.container_size = size + self.dictionary = OrderedDict() + + def __getitem__(self, key, default=None): + value = self.dictionary[key] + # item accessed - put it in the front + del self.dictionary[key] + self.dictionary[key] = value + + return value + + def __setitem__(self, key, value): + self.dictionary[key] = value + if len(self.dictionary.keys()) > self.container_size: + # container is full, loose the least used item + self.dictionary.popitem(last=False) + + def __contains__(self, key): + return key in self.dictionary + + def __repr__(self): + return str(self.dictionary) + + +def CamelCase(input): + words = input.replace('_', '-').split('-') + name = '' + for w in words: + name += w.capitalize() + return name +#end CamelCase diff --git a/Testcases/cfgm_common/utils.pyc b/Testcases/cfgm_common/utils.pyc Binary files differnew file mode 100644 index 0000000..fdc525e --- /dev/null +++ b/Testcases/cfgm_common/utils.pyc diff --git a/Testcases/cfgm_common/uve/__init__.py b/Testcases/cfgm_common/uve/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/Testcases/cfgm_common/uve/__init__.py diff --git a/Testcases/cfgm_common/uve/__init__.pyc b/Testcases/cfgm_common/uve/__init__.pyc Binary files differnew file mode 100644 index 0000000..1c66ce2 --- /dev/null +++ b/Testcases/cfgm_common/uve/__init__.pyc diff --git a/Testcases/cfgm_common/uve/acl/__init__.py b/Testcases/cfgm_common/uve/acl/__init__.py new file mode 100644 index 0000000..adefd8e --- /dev/null +++ b/Testcases/cfgm_common/uve/acl/__init__.py @@ -0,0 +1 @@ +__all__ = ['ttypes', 'constants'] diff --git a/Testcases/cfgm_common/uve/acl/__init__.pyc b/Testcases/cfgm_common/uve/acl/__init__.pyc Binary files differnew file mode 100644 index 0000000..dedeeb1 --- /dev/null +++ b/Testcases/cfgm_common/uve/acl/__init__.pyc diff --git a/Testcases/cfgm_common/uve/acl/acl.html b/Testcases/cfgm_common/uve/acl/acl.html new file mode 100644 index 0000000..b942438 --- /dev/null +++ b/Testcases/cfgm_common/uve/acl/acl.html @@ -0,0 +1,14 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> +<link href="style.css" rel="stylesheet" type="text/css"/> +<title>Module: acl</title></head><body> +<h1>Module: acl</h1> +<table><tr><th>Module</th><th>Sandeshs</th></tr> +<tr> +<td>acl</td><td></td></tr> +</table> +<hr/><h2 id="Sandeshs"></h2> +</body></html>
diff --git a/Testcases/cfgm_common/uve/acl/acl.xml b/Testcases/cfgm_common/uve/acl/acl.xml new file mode 100644 index 0000000..8fbac67 --- /dev/null +++ b/Testcases/cfgm_common/uve/acl/acl.xml @@ -0,0 +1,3 @@ +<?xml-stylesheet type="text/xsl" href="/universal_parse.xsl"?> +<acl type="rlist"> +</acl> diff --git a/Testcases/cfgm_common/uve/acl/constants.py b/Testcases/cfgm_common/uve/acl/constants.py new file mode 100644 index 0000000..aadd78e --- /dev/null +++ b/Testcases/cfgm_common/uve/acl/constants.py @@ -0,0 +1,12 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +from pysandesh.Thrift import TType, TMessageType, TException +from ttypes import * + diff --git a/Testcases/cfgm_common/uve/acl/constants.pyc b/Testcases/cfgm_common/uve/acl/constants.pyc Binary files differnew file mode 100644 index 0000000..4ee591b --- /dev/null +++ b/Testcases/cfgm_common/uve/acl/constants.pyc diff --git a/Testcases/cfgm_common/uve/acl/http_request.py b/Testcases/cfgm_common/uve/acl/http_request.py new file mode 100644 index 0000000..8baea4f --- /dev/null +++ b/Testcases/cfgm_common/uve/acl/http_request.py @@ -0,0 +1,14 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +import ttypes + +_HTTP_REQUEST_LIST = [ +] + diff --git a/Testcases/cfgm_common/uve/acl/http_request.pyc b/Testcases/cfgm_common/uve/acl/http_request.pyc Binary files differnew file mode 100644 index 0000000..73a314c --- /dev/null +++ b/Testcases/cfgm_common/uve/acl/http_request.pyc diff --git a/Testcases/cfgm_common/uve/acl/index.html b/Testcases/cfgm_common/uve/acl/index.html new file mode 100644 index 0000000..0f31e1b --- /dev/null +++ b/Testcases/cfgm_common/uve/acl/index.html @@ -0,0 +1,9 @@ +<html><head> +<link href="style.css" rel="stylesheet" type="text/css"/> +<title>All Thrift declarations</title></head><body> +<h1>All Thrift declarations</h1> +<table><tr><th>Module</th><th>Services</th><th>Sandeshs</th><th>Data types</th><th>Constants</th></tr> +<tr> +<td>acl</td><td></td></tr> +</table> +</body></html> diff --git a/Testcases/cfgm_common/uve/acl/request_skeleton.py b/Testcases/cfgm_common/uve/acl/request_skeleton.py new file mode 100644 index 0000000..99c1196 --- /dev/null +++ b/Testcases/cfgm_common/uve/acl/request_skeleton.py @@ -0,0 +1,13 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + + +# This autogenerated skeleton file illustrates the implementation of +# derived class to handle the sandesh request. + diff --git a/Testcases/cfgm_common/uve/acl/request_skeleton.pyc b/Testcases/cfgm_common/uve/acl/request_skeleton.pyc Binary files differnew file mode 100644 index 0000000..7fbba89 --- /dev/null +++ b/Testcases/cfgm_common/uve/acl/request_skeleton.pyc diff --git a/Testcases/cfgm_common/uve/acl/style.css b/Testcases/cfgm_common/uve/acl/style.css new file mode 100644 index 0000000..6dc2f22 --- /dev/null +++ b/Testcases/cfgm_common/uve/acl/style.css @@ -0,0 +1,10 @@ +/* Auto-generated CSS for generated Thrift docs */ +body { font-family: Tahoma, sans-serif; } +pre { background-color: #dddddd; padding: 6px; } +h3,h4 { padding-top: 0px; margin-top: 0px; } +div.definition { border: 1px solid gray; margin: 10px; padding: 10px; } +div.extends { margin: -0.5em 0 1em 5em } +table { border: 1px solid grey; border-collapse: collapse; } +td { border: 1px solid grey; padding: 1px 6px; vertical-align: top; } +th { border: 1px solid black; background-color: #bbbbbb; + text-align: left; padding: 1px 6px; } diff --git a/Testcases/cfgm_common/uve/acl/ttypes.py b/Testcases/cfgm_common/uve/acl/ttypes.py new file mode 100644 index 0000000..6575253 --- /dev/null +++ b/Testcases/cfgm_common/uve/acl/ttypes.py @@ -0,0 +1,837 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +from pysandesh.Thrift import TType, TMessageType, TException + +from pysandesh.transport import TTransport +from pysandesh.protocol import TBinaryProtocol, TProtocol +try: + from pysandesh.protocol import fastbinary +except: + fastbinary = None + +import cStringIO +import uuid +import bottle +from pysandesh import sandesh_base +from pysandesh.sandesh_http import SandeshHttp +from pysandesh.sandesh_uve import SandeshUVETypeMaps +from pysandesh.util import UTCTimestampUsec, UTCTimestampUsecToString +from pysandesh.gen_py.sandesh.constants import * + + + +class AclRuleToVnPolicyRule(object): + """ + Attributes: + - acl_major + - acl_minor + - policy_or_group_name + - policy_major + - policy_minor + """ + + thrift_spec = ( + None, # 0 + (1, TType.I32, 'acl_major', None, None, ), # 1 + (2, TType.I32, 'acl_minor', None, None, ), # 2 + (3, TType.STRING, 'policy_or_group_name', None, None, ), # 3 + (4, TType.I32, 'policy_major', None, None, ), # 4 + (5, TType.I32, 'policy_minor', None, None, ), # 5 + ) + + def __init__(self, acl_major=None, acl_minor=None, policy_or_group_name=None, policy_major=None, policy_minor=None,): + self.acl_major = acl_major + self.acl_minor = acl_minor + self.policy_or_group_name = policy_or_group_name + self.policy_major = policy_major + self.policy_minor = policy_minor + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return 0 + read_cnt = 0 + length = iprot.readStructBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + (length, self.acl_major) = iprot.readI32(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.I32: + (length, self.acl_minor) = iprot.readI32(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRING: + (length, self.policy_or_group_name) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.I32: + (length, self.policy_major) = iprot.readI32(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.I32: + (length, self.policy_minor) = iprot.readI32(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readStructEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeStructBegin('AclRuleToVnPolicyRule') < 0: return -1 + if self.acl_major is not None: + annotations = {} + if oprot.writeFieldBegin('acl_major', TType.I32, 1, annotations) < 0: return -1 + if oprot.writeI32(self.acl_major) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.acl_minor is not None: + annotations = {} + if oprot.writeFieldBegin('acl_minor', TType.I32, 2, annotations) < 0: return -1 + if oprot.writeI32(self.acl_minor) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.policy_or_group_name is not None: + annotations = {} + if oprot.writeFieldBegin('policy_or_group_name', TType.STRING, 3, annotations) < 0: return -1 + if oprot.writeString(self.policy_or_group_name) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.policy_major is not None: + annotations = {} + if oprot.writeFieldBegin('policy_major', TType.I32, 4, annotations) < 0: return -1 + if oprot.writeI32(self.policy_major) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.policy_minor is not None: + annotations = {} + if oprot.writeFieldBegin('policy_minor', TType.I32, 5, annotations) < 0: return -1 + if oprot.writeI32(self.policy_minor) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeStructEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def log(self): + log_str = cStringIO.StringIO() + if self.acl_major is not None: + log_str.write('acl_major = ') + log_str.write(str(self.acl_major)) + log_str.write(' ') + if self.acl_minor is not None: + log_str.write('acl_minor = ') + log_str.write(str(self.acl_minor)) + log_str.write(' ') + if self.policy_or_group_name is not None: + log_str.write('policy_or_group_name = ') + log_str.write(self.policy_or_group_name) + log_str.write(' ') + if self.policy_major is not None: + log_str.write('policy_major = ') + log_str.write(str(self.policy_major)) + log_str.write(' ') + if self.policy_minor is not None: + log_str.write('policy_minor = ') + log_str.write(str(self.policy_minor)) + log_str.write(' ') + return log_str.getvalue() + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class UveAclConfig(object): + """ + Attributes: + - virtual_network + - attached_policies + - acl_rule_to_policy + """ + + thrift_spec = ( + None, # 0 + (1, TType.STRING, 'virtual_network', None, None, ), # 1 + (2, TType.LIST, 'attached_policies', (TType.STRING,None), None, ), # 2 + (3, TType.LIST, 'acl_rule_to_policy', (TType.STRUCT,(AclRuleToVnPolicyRule, AclRuleToVnPolicyRule.thrift_spec)), None, ), # 3 + ) + + def __init__(self, virtual_network=None, attached_policies=None, acl_rule_to_policy=None,): + self.virtual_network = virtual_network + self.attached_policies = attached_policies + self.acl_rule_to_policy = acl_rule_to_policy + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return 0 + read_cnt = 0 + length = iprot.readStructBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRING: + (length, self.virtual_network) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.LIST: + self.attached_policies = [] + (length, _etype3, _size0) = iprot.readListBegin() + read_cnt += length + for _i4 in xrange(_size0): + read_cnt += iprot.readContainerElementBegin() + (length, _elem5) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + self.attached_policies.append(_elem5) + read_cnt += iprot.readContainerElementEnd() + read_cnt += iprot.readListEnd() + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.LIST: + self.acl_rule_to_policy = [] + (length, _etype9, _size6) = iprot.readListBegin() + read_cnt += length + for _i10 in xrange(_size6): + _elem11 = AclRuleToVnPolicyRule() + read_cnt += _elem11.read(iprot) + self.acl_rule_to_policy.append(_elem11) + read_cnt += iprot.readListEnd() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readStructEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeStructBegin('UveAclConfig') < 0: return -1 + if self.virtual_network is not None: + annotations = {} + if oprot.writeFieldBegin('virtual_network', TType.STRING, 1, annotations) < 0: return -1 + if oprot.writeString(self.virtual_network) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.attached_policies is not None: + annotations = {} + if oprot.writeFieldBegin('attached_policies', TType.LIST, 2, annotations) < 0: return -1 + if oprot.writeListBegin(TType.STRING, len(self.attached_policies)) < 0: return -1 + for iter12 in self.attached_policies: + if oprot.writeContainerElementBegin() < 0: return -1 + if oprot.writeString(iter12) < 0: return -1 + if oprot.writeContainerElementEnd() < 0: return -1 + if oprot.writeListEnd() < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.acl_rule_to_policy is not None: + annotations = {} + if oprot.writeFieldBegin('acl_rule_to_policy', TType.LIST, 3, annotations) < 0: return -1 + if oprot.writeListBegin(TType.STRUCT, len(self.acl_rule_to_policy)) < 0: return -1 + for iter13 in self.acl_rule_to_policy: + if iter13.write(oprot) < 0: return -1 + if oprot.writeListEnd() < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeStructEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def log(self): + log_str = cStringIO.StringIO() + if self.virtual_network is not None: + log_str.write('virtual_network = ') + log_str.write(self.virtual_network) + log_str.write(' ') + if self.attached_policies is not None: + log_str.write('attached_policies = ') + log_str.write('[ ') + for iter14 in self.attached_policies: + log_str.write(iter14) + log_str.write(', ') + log_str.write(' ]') + log_str.write(' ') + if self.acl_rule_to_policy is not None: + log_str.write('acl_rule_to_policy = ') + log_str.write('[ ') + for iter15 in self.acl_rule_to_policy: + log_str.write('<< ') + log_str.write(iter15.log()) + log_str.write('>>') + log_str.write(', ') + log_str.write(' ]') + log_str.write(' ') + return log_str.getvalue() + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class UveAclVirtualNetworkConfig(object): + """ + Attributes: + - name + - deleted + - config + """ + + thrift_spec = ( + None, # 0 + (1, TType.STRING, 'name', None, None, ), # 1 + (2, TType.BOOL, 'deleted', None, None, ), # 2 + (3, TType.STRUCT, 'config', (UveAclConfig, UveAclConfig.thrift_spec), None, ), # 3 + ) + + def __init__(self, name=None, deleted=None, config=None,): + self.name = name + self.deleted = deleted + self.config = config + self._table = 'ObjectVNTable' + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return 0 + read_cnt = 0 + length = iprot.readStructBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRING: + (length, self.name) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.BOOL: + (length, self.deleted) = iprot.readBool(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRUCT: + self.config = UveAclConfig() + read_cnt += self.config.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readStructEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeStructBegin('UveAclVirtualNetworkConfig') < 0: return -1 + if self.name is not None: + annotations = {} + if self._table is None or self._table is '': return -1 + annotations['key'] = self._table + if oprot.writeFieldBegin('name', TType.STRING, 1, annotations) < 0: return -1 + if oprot.writeString(self.name) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.deleted is not None: + annotations = {} + if oprot.writeFieldBegin('deleted', TType.BOOL, 2, annotations) < 0: return -1 + if oprot.writeBool(self.deleted) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.config is not None: + annotations = {} + if oprot.writeFieldBegin('config', TType.STRUCT, 3, annotations) < 0: return -1 + if self.config.write(oprot) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeStructEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def log(self): + log_str = cStringIO.StringIO() + if self.name is not None: + log_str.write('name = ') + log_str.write(self.name) + log_str.write(' ') + if self.deleted is not None: + log_str.write('deleted = ') + if self.deleted: + log_str.write('True') + else: + log_str.write('False') + log_str.write(' ') + if self.config is not None: + log_str.write('config = ') + log_str.write('<< ') + log_str.write(self.config.log()) + log_str.write('>>') + log_str.write(' ') + return log_str.getvalue() + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class UveAclVirtualMachineConfig(object): + """ + Attributes: + - name + - deleted + - config + """ + + thrift_spec = ( + None, # 0 + (1, TType.STRING, 'name', None, None, ), # 1 + (2, TType.BOOL, 'deleted', None, None, ), # 2 + (3, TType.STRUCT, 'config', (UveAclConfig, UveAclConfig.thrift_spec), None, ), # 3 + ) + + def __init__(self, name=None, deleted=None, config=None,): + self.name = name + self.deleted = deleted + self.config = config + self._table = 'ObjectVMTable' + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return 0 + read_cnt = 0 + length = iprot.readStructBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRING: + (length, self.name) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.BOOL: + (length, self.deleted) = iprot.readBool(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRUCT: + self.config = UveAclConfig() + read_cnt += self.config.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readStructEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeStructBegin('UveAclVirtualMachineConfig') < 0: return -1 + if self.name is not None: + annotations = {} + if self._table is None or self._table is '': return -1 + annotations['key'] = self._table + if oprot.writeFieldBegin('name', TType.STRING, 1, annotations) < 0: return -1 + if oprot.writeString(self.name) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.deleted is not None: + annotations = {} + if oprot.writeFieldBegin('deleted', TType.BOOL, 2, annotations) < 0: return -1 + if oprot.writeBool(self.deleted) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.config is not None: + annotations = {} + if oprot.writeFieldBegin('config', TType.STRUCT, 3, annotations) < 0: return -1 + if self.config.write(oprot) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeStructEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def log(self): + log_str = cStringIO.StringIO() + if self.name is not None: + log_str.write('name = ') + log_str.write(self.name) + log_str.write(' ') + if self.deleted is not None: + log_str.write('deleted = ') + if self.deleted: + log_str.write('True') + else: + log_str.write('False') + log_str.write(' ') + if self.config is not None: + log_str.write('config = ') + log_str.write('<< ') + log_str.write(self.config.log()) + log_str.write('>>') + log_str.write(' ') + return log_str.getvalue() + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class UveAclVirtualNetworkConfigTrace(sandesh_base.SandeshUVE): + + thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'data', (UveAclVirtualNetworkConfig, UveAclVirtualNetworkConfig.thrift_spec), None, ), # 1 + ) + + def __init__(self, data=None, table=None, sandesh=sandesh_base.sandesh_global): + sandesh_base.SandeshUVE.__init__(self) + self.data = data + self._scope = sandesh.scope() + self._module = sandesh.module() + self._source = sandesh.source_id() + self._node_type = sandesh.node_type() + self._instance_id = sandesh.instance_id() + self._seqnum = 0 + self._timestamp = UTCTimestampUsec() + self._versionsig = 1124326490 + self._hints = 0 | SANDESH_KEY_HINT + if table is not None: + self.data._table = table + + def update_uve(self, tdata): + if self.data.name is not None: + tdata.name = self.data.name + if self.data.deleted is not None: + tdata.deleted = self.data.deleted + if self.data.config is not None: + tdata.config = self.data.config + return tdata + + def log(self, trace=False): + log_str = cStringIO.StringIO() + if trace: + log_str.write(str(self._timestamp)) + log_str.write(' ') + log_str.write('UveAclVirtualNetworkConfigTrace: ') + if self.data is not None: + log_str.write('data = ') + log_str.write('<< ') + log_str.write(self.data.log()) + log_str.write('>>') + log_str.write(' ') + return log_str.getvalue() + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return -1 + read_cnt = 0 + (length, sandesh_name) = iprot.readSandeshBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.data = UveAclVirtualNetworkConfig() + read_cnt += self.data.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readSandeshEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeSandeshBegin('UveAclVirtualNetworkConfigTrace') < 0: return -1 + if self.data is not None: + annotations = {} + if oprot.writeFieldBegin('data', TType.STRUCT, 1, annotations) < 0: return -1 + if self.data.write(oprot) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeSandeshEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def compare(self, other): + if not isinstance(other, self.__class__): + return False + if self.data != other.data: + return False + return True + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class UveAclVirtualMachineConfigTrace(sandesh_base.SandeshUVE): + + thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'data', (UveAclVirtualMachineConfig, UveAclVirtualMachineConfig.thrift_spec), None, ), # 1 + ) + + def __init__(self, data=None, table=None, sandesh=sandesh_base.sandesh_global): + sandesh_base.SandeshUVE.__init__(self) + self.data = data + self._scope = sandesh.scope() + self._module = sandesh.module() + self._source = sandesh.source_id() + self._node_type = sandesh.node_type() + self._instance_id = sandesh.instance_id() + self._seqnum = 0 + self._timestamp = UTCTimestampUsec() + self._versionsig = 1124326490 + self._hints = 0 | SANDESH_KEY_HINT + if table is not None: + self.data._table = table + + def update_uve(self, tdata): + if self.data.name is not None: + tdata.name = self.data.name + if self.data.deleted is not None: + tdata.deleted = self.data.deleted + if self.data.config is not None: + tdata.config = self.data.config + return tdata + + def log(self, trace=False): + log_str = cStringIO.StringIO() + if trace: + log_str.write(str(self._timestamp)) + log_str.write(' ') + log_str.write('UveAclVirtualMachineConfigTrace: ') + if self.data is not None: + log_str.write('data = ') + log_str.write('<< ') + log_str.write(self.data.log()) + log_str.write('>>') + log_str.write(' ') + return log_str.getvalue() + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return -1 + read_cnt = 0 + (length, sandesh_name) = iprot.readSandeshBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.data = UveAclVirtualMachineConfig() + read_cnt += self.data.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readSandeshEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeSandeshBegin('UveAclVirtualMachineConfigTrace') < 0: return -1 + if self.data is not None: + annotations = {} + if oprot.writeFieldBegin('data', TType.STRUCT, 1, annotations) < 0: return -1 + if self.data.write(oprot) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeSandeshEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def compare(self, other): + if not isinstance(other, self.__class__): + return False + if self.data != other.data: + return False + return True + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +_SANDESH_REQUEST_LIST = [ +] + + +_SANDESH_UVE_LIST = [ +'UveAclVirtualNetworkConfigTrace', +'UveAclVirtualMachineConfigTrace', +] + + +_SANDESH_UVE_DATA_LIST = [ +'UveAclVirtualNetworkConfig', +'UveAclVirtualMachineConfig', +] + + +_SANDESH_ALARM_LIST = [ +] + + +_SANDESH_ALARM_DATA_LIST = [ +] diff --git a/Testcases/cfgm_common/uve/acl/ttypes.pyc b/Testcases/cfgm_common/uve/acl/ttypes.pyc Binary files differnew file mode 100644 index 0000000..eafdd71 --- /dev/null +++ b/Testcases/cfgm_common/uve/acl/ttypes.pyc diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/__init__.py b/Testcases/cfgm_common/uve/cfgm_cpuinfo/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/__init__.py diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/__init__.pyc b/Testcases/cfgm_common/uve/cfgm_cpuinfo/__init__.pyc Binary files differnew file mode 100644 index 0000000..8d74650 --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/__init__.pyc diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/cfgm_cpuinfo.html b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cfgm_cpuinfo.html new file mode 100644 index 0000000..166887a --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cfgm_cpuinfo.html @@ -0,0 +1,14 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> +<link href="style.css" rel="stylesheet" type="text/css"/> +<title>Module: cfgm_cpuinfo</title></head><body> +<h1>Module: cfgm_cpuinfo</h1> +<table><tr><th>Module</th><th>Sandeshs</th></tr> +<tr> +<td>cfgm_cpuinfo</td><td></td></tr> +</table> +<hr/><h2 id="Sandeshs"></h2> +</body></html>
diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/cfgm_cpuinfo.xml b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cfgm_cpuinfo.xml new file mode 100644 index 0000000..da831a3 --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cfgm_cpuinfo.xml @@ -0,0 +1,3 @@ +<?xml-stylesheet type="text/xsl" href="/universal_parse.xsl"?> +<cfgm_cpuinfo type="rlist"> +</cfgm_cpuinfo> diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/constants.py b/Testcases/cfgm_common/uve/cfgm_cpuinfo/constants.py new file mode 100644 index 0000000..aadd78e --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/constants.py @@ -0,0 +1,12 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +from pysandesh.Thrift import TType, TMessageType, TException +from ttypes import * + diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/constants.pyc b/Testcases/cfgm_common/uve/cfgm_cpuinfo/constants.pyc Binary files differnew file mode 100644 index 0000000..9d1a5e5 --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/constants.pyc diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/__init__.py b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/__init__.py new file mode 100644 index 0000000..adefd8e --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/__init__.py @@ -0,0 +1 @@ +__all__ = ['ttypes', 'constants'] diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/__init__.pyc b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/__init__.pyc Binary files differnew file mode 100644 index 0000000..1446e7d --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/__init__.pyc diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/constants.py b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/constants.py new file mode 100644 index 0000000..aadd78e --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/constants.py @@ -0,0 +1,12 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +from pysandesh.Thrift import TType, TMessageType, TException +from ttypes import * + diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/constants.pyc b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/constants.pyc Binary files differnew file mode 100644 index 0000000..453ec8d --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/constants.pyc diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/cpuinfo.html b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/cpuinfo.html new file mode 100644 index 0000000..f2fb672 --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/cpuinfo.html @@ -0,0 +1,18 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> +<link href="style.css" rel="stylesheet" type="text/css"/> +<title>Module: cpuinfo</title></head><body> +<h1>Module: cpuinfo</h1> +<table><tr><th>Module</th><th>Sandeshs</th></tr> +<tr> +<td>cpuinfo</td><td><a href="cpuinfo.html#Snh_CpuLoadInfoReq">CpuLoadInfoReq</a><br/> +</td></tr> +</table> +<hr/><h2 id="Sandeshs"></h2> +<div class="definition"><h3 id="Snh_CpuLoadInfoReq">CpuLoadInfoReq</h3> +<form action="Snh_CpuLoadInfoReq" method="get"> +<table><tr><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Value</th></tr> +</table><button type="submit">Send</button></form><br/></div></body></html>
diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/cpuinfo.xml b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/cpuinfo.xml new file mode 100644 index 0000000..d3a129b --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/cpuinfo.xml @@ -0,0 +1,5 @@ +<?xml-stylesheet type="text/xsl" href="/universal_parse.xsl"?> +<cpuinfo type="rlist"> +<CpuLoadInfoReq type="sandesh"> +</CpuLoadInfoReq> +</cpuinfo> diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/http_request.py b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/http_request.py new file mode 100644 index 0000000..e48bba8 --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/http_request.py @@ -0,0 +1,15 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +import ttypes + +_HTTP_REQUEST_LIST = [ +{ 'uri':'/Snh_CpuLoadInfoReq', 'method':ttypes.CpuLoadInfoReq.handle_http_request }, +] + diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/http_request.pyc b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/http_request.pyc Binary files differnew file mode 100644 index 0000000..c013398 --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/http_request.pyc diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/index.html b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/index.html new file mode 100644 index 0000000..a338214 --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/index.html @@ -0,0 +1,10 @@ +<html><head> +<link href="style.css" rel="stylesheet" type="text/css"/> +<title>All Thrift declarations</title></head><body> +<h1>All Thrift declarations</h1> +<table><tr><th>Module</th><th>Services</th><th>Sandeshs</th><th>Data types</th><th>Constants</th></tr> +<tr> +<td>cpuinfo</td><td><a href="cpuinfo.html#Snh_CpuLoadInfoReq">CpuLoadInfoReq</a><br/> +</td></tr> +</table> +</body></html> diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/request_skeleton.py b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/request_skeleton.py new file mode 100644 index 0000000..22463de --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/request_skeleton.py @@ -0,0 +1,25 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + + +# This autogenerated skeleton file illustrates the implementation of +# derived class to handle the sandesh request. + + +# Create a derived class from "CpuLoadInfoReq" to handle +# the sandesh request. Add this derived class "CpuLoadInfoReq_derived" +# in module CpuLoadInfoReq_derived.py and add it in your package + +class CpuLoadInfoReq_derived(CpuLoadInfoReq): + + + def handle_request(self): + # Add your code to handle the "CpuLoadInfoReq" request + pass + diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/request_skeleton.pyc b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/request_skeleton.pyc Binary files differnew file mode 100644 index 0000000..d8eb2c1 --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/request_skeleton.pyc diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/style.css b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/style.css new file mode 100644 index 0000000..6dc2f22 --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/style.css @@ -0,0 +1,10 @@ +/* Auto-generated CSS for generated Thrift docs */ +body { font-family: Tahoma, sans-serif; } +pre { background-color: #dddddd; padding: 6px; } +h3,h4 { padding-top: 0px; margin-top: 0px; } +div.definition { border: 1px solid gray; margin: 10px; padding: 10px; } +div.extends { margin: -0.5em 0 1em 5em } +table { border: 1px solid grey; border-collapse: collapse; } +td { border: 1px solid grey; padding: 1px 6px; vertical-align: top; } +th { border: 1px solid black; background-color: #bbbbbb; + text-align: left; padding: 1px 6px; } diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/ttypes.py b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/ttypes.py new file mode 100644 index 0000000..fa6ed17 --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/ttypes.py @@ -0,0 +1,960 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +from pysandesh.Thrift import TType, TMessageType, TException + +from pysandesh.transport import TTransport +from pysandesh.protocol import TBinaryProtocol, TProtocol +try: + from pysandesh.protocol import fastbinary +except: + fastbinary = None + +import cStringIO +import uuid +import bottle +from pysandesh import sandesh_base +from pysandesh.sandesh_http import SandeshHttp +from pysandesh.sandesh_uve import SandeshUVETypeMaps +from pysandesh.util import UTCTimestampUsec, UTCTimestampUsecToString +from pysandesh.gen_py.sandesh.constants import * + + + +class CpuLoadAvg(object): + """ + Attributes: + - one_min_avg + - five_min_avg + - fifteen_min_avg + """ + + thrift_spec = ( + None, # 0 + (1, TType.DOUBLE, 'one_min_avg', None, None, ), # 1 + (2, TType.DOUBLE, 'five_min_avg', None, None, ), # 2 + (3, TType.DOUBLE, 'fifteen_min_avg', None, None, ), # 3 + ) + + def __init__(self, one_min_avg=None, five_min_avg=None, fifteen_min_avg=None,): + self.one_min_avg = one_min_avg + self.five_min_avg = five_min_avg + self.fifteen_min_avg = fifteen_min_avg + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return 0 + read_cnt = 0 + length = iprot.readStructBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.DOUBLE: + (length, self.one_min_avg) = iprot.readDouble(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.DOUBLE: + (length, self.five_min_avg) = iprot.readDouble(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.DOUBLE: + (length, self.fifteen_min_avg) = iprot.readDouble(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readStructEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeStructBegin('CpuLoadAvg') < 0: return -1 + if self.one_min_avg is not None: + annotations = {} + if oprot.writeFieldBegin('one_min_avg', TType.DOUBLE, 1, annotations) < 0: return -1 + if oprot.writeDouble(self.one_min_avg) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.five_min_avg is not None: + annotations = {} + if oprot.writeFieldBegin('five_min_avg', TType.DOUBLE, 2, annotations) < 0: return -1 + if oprot.writeDouble(self.five_min_avg) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.fifteen_min_avg is not None: + annotations = {} + if oprot.writeFieldBegin('fifteen_min_avg', TType.DOUBLE, 3, annotations) < 0: return -1 + if oprot.writeDouble(self.fifteen_min_avg) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeStructEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def log(self): + log_str = cStringIO.StringIO() + if self.one_min_avg is not None: + log_str.write('one_min_avg = ') + log_str.write(str(self.one_min_avg)) + log_str.write(' ') + if self.five_min_avg is not None: + log_str.write('five_min_avg = ') + log_str.write(str(self.five_min_avg)) + log_str.write(' ') + if self.fifteen_min_avg is not None: + log_str.write('fifteen_min_avg = ') + log_str.write(str(self.fifteen_min_avg)) + log_str.write(' ') + return log_str.getvalue() + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class MemInfo(object): + """ + Attributes: + - virt + - peakvirt + - res + """ + + thrift_spec = ( + None, # 0 + (1, TType.U32, 'virt', None, None, ), # 1 + (2, TType.U32, 'peakvirt', None, None, ), # 2 + (3, TType.U32, 'res', None, None, ), # 3 + ) + + def __init__(self, virt=None, peakvirt=None, res=None,): + self.virt = virt + self.peakvirt = peakvirt + self.res = res + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return 0 + read_cnt = 0 + length = iprot.readStructBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.U32: + (length, self.virt) = iprot.readU32(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.U32: + (length, self.peakvirt) = iprot.readU32(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.U32: + (length, self.res) = iprot.readU32(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readStructEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeStructBegin('MemInfo') < 0: return -1 + if self.virt is not None: + annotations = {} + if oprot.writeFieldBegin('virt', TType.U32, 1, annotations) < 0: return -1 + if oprot.writeU32(self.virt) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.peakvirt is not None: + annotations = {} + if oprot.writeFieldBegin('peakvirt', TType.U32, 2, annotations) < 0: return -1 + if oprot.writeU32(self.peakvirt) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.res is not None: + annotations = {} + if oprot.writeFieldBegin('res', TType.U32, 3, annotations) < 0: return -1 + if oprot.writeU32(self.res) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeStructEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def log(self): + log_str = cStringIO.StringIO() + if self.virt is not None: + log_str.write('virt = ') + log_str.write(str(self.virt)) + log_str.write(' ') + if self.peakvirt is not None: + log_str.write('peakvirt = ') + log_str.write(str(self.peakvirt)) + log_str.write(' ') + if self.res is not None: + log_str.write('res = ') + log_str.write(str(self.res)) + log_str.write(' ') + return log_str.getvalue() + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class SysMemInfo(object): + """ + Attributes: + - total + - used + - free + - buffers + """ + + thrift_spec = ( + None, # 0 + (1, TType.U32, 'total', None, None, ), # 1 + (2, TType.U32, 'used', None, None, ), # 2 + (3, TType.U32, 'free', None, None, ), # 3 + (4, TType.U32, 'buffers', None, None, ), # 4 + ) + + def __init__(self, total=None, used=None, free=None, buffers=None,): + self.total = total + self.used = used + self.free = free + self.buffers = buffers + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return 0 + read_cnt = 0 + length = iprot.readStructBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.U32: + (length, self.total) = iprot.readU32(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.U32: + (length, self.used) = iprot.readU32(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.U32: + (length, self.free) = iprot.readU32(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.U32: + (length, self.buffers) = iprot.readU32(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readStructEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeStructBegin('SysMemInfo') < 0: return -1 + if self.total is not None: + annotations = {} + if oprot.writeFieldBegin('total', TType.U32, 1, annotations) < 0: return -1 + if oprot.writeU32(self.total) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.used is not None: + annotations = {} + if oprot.writeFieldBegin('used', TType.U32, 2, annotations) < 0: return -1 + if oprot.writeU32(self.used) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.free is not None: + annotations = {} + if oprot.writeFieldBegin('free', TType.U32, 3, annotations) < 0: return -1 + if oprot.writeU32(self.free) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.buffers is not None: + annotations = {} + if oprot.writeFieldBegin('buffers', TType.U32, 4, annotations) < 0: return -1 + if oprot.writeU32(self.buffers) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeStructEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def log(self): + log_str = cStringIO.StringIO() + if self.total is not None: + log_str.write('total = ') + log_str.write(str(self.total)) + log_str.write(' ') + if self.used is not None: + log_str.write('used = ') + log_str.write(str(self.used)) + log_str.write(' ') + if self.free is not None: + log_str.write('free = ') + log_str.write(str(self.free)) + log_str.write(' ') + if self.buffers is not None: + log_str.write('buffers = ') + log_str.write(str(self.buffers)) + log_str.write(' ') + return log_str.getvalue() + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class CpuLoadInfo(object): + """ + Attributes: + - num_cpu + - sys_mem_info + - meminfo + - cpuload + - cpu_share + """ + + thrift_spec = ( + None, # 0 + (1, TType.U32, 'num_cpu', None, None, ), # 1 + (2, TType.STRUCT, 'meminfo', (MemInfo, MemInfo.thrift_spec), None, ), # 2 + (3, TType.STRUCT, 'cpuload', (CpuLoadAvg, CpuLoadAvg.thrift_spec), None, ), # 3 + (4, TType.DOUBLE, 'cpu_share', None, None, ), # 4 + (5, TType.STRUCT, 'sys_mem_info', (SysMemInfo, SysMemInfo.thrift_spec), None, ), # 5 + ) + + def __init__(self, num_cpu=None, sys_mem_info=None, meminfo=None, cpuload=None, cpu_share=None,): + self.num_cpu = num_cpu + self.sys_mem_info = sys_mem_info + self.meminfo = meminfo + self.cpuload = cpuload + self.cpu_share = cpu_share + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return 0 + read_cnt = 0 + length = iprot.readStructBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.U32: + (length, self.num_cpu) = iprot.readU32(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.STRUCT: + self.sys_mem_info = SysMemInfo() + read_cnt += self.sys_mem_info.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.meminfo = MemInfo() + read_cnt += self.meminfo.read(iprot) + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRUCT: + self.cpuload = CpuLoadAvg() + read_cnt += self.cpuload.read(iprot) + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.DOUBLE: + (length, self.cpu_share) = iprot.readDouble(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readStructEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeStructBegin('CpuLoadInfo') < 0: return -1 + if self.num_cpu is not None: + annotations = {} + if oprot.writeFieldBegin('num_cpu', TType.U32, 1, annotations) < 0: return -1 + if oprot.writeU32(self.num_cpu) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.meminfo is not None: + annotations = {} + if oprot.writeFieldBegin('meminfo', TType.STRUCT, 2, annotations) < 0: return -1 + if self.meminfo.write(oprot) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.cpuload is not None: + annotations = {} + if oprot.writeFieldBegin('cpuload', TType.STRUCT, 3, annotations) < 0: return -1 + if self.cpuload.write(oprot) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.cpu_share is not None: + annotations = {} + if oprot.writeFieldBegin('cpu_share', TType.DOUBLE, 4, annotations) < 0: return -1 + if oprot.writeDouble(self.cpu_share) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.sys_mem_info is not None: + annotations = {} + if oprot.writeFieldBegin('sys_mem_info', TType.STRUCT, 5, annotations) < 0: return -1 + if self.sys_mem_info.write(oprot) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeStructEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def log(self): + log_str = cStringIO.StringIO() + if self.num_cpu is not None: + log_str.write('num_cpu = ') + log_str.write(str(self.num_cpu)) + log_str.write(' ') + if self.sys_mem_info is not None: + log_str.write('sys_mem_info = ') + log_str.write('<< ') + log_str.write(self.sys_mem_info.log()) + log_str.write('>>') + log_str.write(' ') + if self.meminfo is not None: + log_str.write('meminfo = ') + log_str.write('<< ') + log_str.write(self.meminfo.log()) + log_str.write('>>') + log_str.write(' ') + if self.cpuload is not None: + log_str.write('cpuload = ') + log_str.write('<< ') + log_str.write(self.cpuload.log()) + log_str.write('>>') + log_str.write(' ') + if self.cpu_share is not None: + log_str.write('cpu_share = ') + log_str.write(str(self.cpu_share)) + log_str.write(' ') + return log_str.getvalue() + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class ProcessCpuInfo(object): + """ + Attributes: + - module_id + - inst_id + - mem_virt + - cpu_share + - mem_res + """ + + thrift_spec = ( + None, # 0 + (1, TType.STRING, 'module_id', None, None, ), # 1 + (2, TType.STRING, 'inst_id', None, None, ), # 2 + (3, TType.U32, 'mem_virt', None, None, ), # 3 + (4, TType.DOUBLE, 'cpu_share', None, None, ), # 4 + (5, TType.U32, 'mem_res', None, None, ), # 5 + ) + + def __init__(self, module_id=None, inst_id=None, mem_virt=None, cpu_share=None, mem_res=None,): + self.module_id = module_id + self.inst_id = inst_id + self.mem_virt = mem_virt + self.cpu_share = cpu_share + self.mem_res = mem_res + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return 0 + read_cnt = 0 + length = iprot.readStructBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRING: + (length, self.module_id) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRING: + (length, self.inst_id) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.U32: + (length, self.mem_virt) = iprot.readU32(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.DOUBLE: + (length, self.cpu_share) = iprot.readDouble(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.U32: + (length, self.mem_res) = iprot.readU32(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readStructEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeStructBegin('ProcessCpuInfo') < 0: return -1 + if self.module_id is not None: + annotations = {} + if oprot.writeFieldBegin('module_id', TType.STRING, 1, annotations) < 0: return -1 + if oprot.writeString(self.module_id) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.inst_id is not None: + annotations = {} + if oprot.writeFieldBegin('inst_id', TType.STRING, 2, annotations) < 0: return -1 + if oprot.writeString(self.inst_id) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.mem_virt is not None: + annotations = {} + if oprot.writeFieldBegin('mem_virt', TType.U32, 3, annotations) < 0: return -1 + if oprot.writeU32(self.mem_virt) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.cpu_share is not None: + annotations = {} + if oprot.writeFieldBegin('cpu_share', TType.DOUBLE, 4, annotations) < 0: return -1 + if oprot.writeDouble(self.cpu_share) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.mem_res is not None: + annotations = {} + if oprot.writeFieldBegin('mem_res', TType.U32, 5, annotations) < 0: return -1 + if oprot.writeU32(self.mem_res) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeStructEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def log(self): + log_str = cStringIO.StringIO() + if self.module_id is not None: + log_str.write('module_id = ') + log_str.write(self.module_id) + log_str.write(' ') + if self.inst_id is not None: + log_str.write('inst_id = ') + log_str.write(self.inst_id) + log_str.write(' ') + if self.mem_virt is not None: + log_str.write('mem_virt = ') + log_str.write(str(self.mem_virt)) + log_str.write(' ') + if self.cpu_share is not None: + log_str.write('cpu_share = ') + log_str.write(str(self.cpu_share)) + log_str.write(' ') + if self.mem_res is not None: + log_str.write('mem_res = ') + log_str.write(str(self.mem_res)) + log_str.write(' ') + return log_str.getvalue() + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class CpuLoadInfoReq(sandesh_base.SandeshRequest): + + thrift_spec = ( + ) + + def __init__(self, sandesh=sandesh_base.sandesh_global): + sandesh_base.SandeshRequest.__init__(self) + self._scope = sandesh.scope() + self._module = sandesh.module() + self._source = sandesh.source_id() + self._node_type = sandesh.node_type() + self._instance_id = sandesh.instance_id() + self._seqnum = 0 + self._timestamp = UTCTimestampUsec() + self._versionsig = 2471203225 + self._hints = 0 + + @staticmethod + def handle_http_request(sandesh=sandesh_base.sandesh_global): + sandesh_req = CpuLoadInfoReq() + if not sandesh_req: + return SandeshHttp.http_error('Sandesh Request "CpuLoadInfoReq" not implemented') + sandesh_req._context = bottle.request.url + handle_req_fn = getattr(sandesh_req, "handle_request", None) + if callable(handle_req_fn): + handle_req_fn(sandesh_req) + else: + return SandeshHttp.http_error('Sandesh Request "CpuLoadInfoReq" not implemented') + resp = SandeshHttp.get_http_response() + if resp: + return resp + else: + return SandeshHttp.http_error('No Response for Sandesh Request "CpuLoadInfoReq"') + + def log(self, trace=False): + log_str = cStringIO.StringIO() + return log_str.getvalue() + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return -1 + read_cnt = 0 + (length, sandesh_name) = iprot.readSandeshBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readSandeshEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeSandeshBegin('CpuLoadInfoReq') < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeSandeshEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def compare(self, other): + if not isinstance(other, self.__class__): + return False + return True + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class CpuLoadInfoResp(sandesh_base.SandeshResponse): + + thrift_spec = ( + (0, TType.BOOL, 'more', None, None, ), # 0 + (1, TType.STRUCT, 'cpu_info', (CpuLoadInfo, CpuLoadInfo.thrift_spec), None, ), # 1 + ) + + def __init__(self, cpu_info=None, more=None, sandesh=sandesh_base.sandesh_global): + sandesh_base.SandeshResponse.__init__(self) + self.cpu_info = cpu_info + self.more = more + self._scope = sandesh.scope() + self._module = sandesh.module() + self._source = sandesh.source_id() + self._node_type = sandesh.node_type() + self._instance_id = sandesh.instance_id() + self._seqnum = 0 + self._timestamp = UTCTimestampUsec() + self._versionsig = 4227955829 + self._hints = 0 + + def log(self, trace=False): + log_str = cStringIO.StringIO() + if trace: + log_str.write(str(self._timestamp)) + log_str.write(' ') + log_str.write('CpuLoadInfoResp: ') + if self.cpu_info is not None: + log_str.write('cpu_info = ') + log_str.write('<< ') + log_str.write(self.cpu_info.log()) + log_str.write('>>') + log_str.write(' ') + if self.more is not None: + log_str.write('more = ') + if self.more: + log_str.write('True') + else: + log_str.write('False') + log_str.write(' ') + return log_str.getvalue() + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return -1 + read_cnt = 0 + (length, sandesh_name) = iprot.readSandeshBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.cpu_info = CpuLoadInfo() + read_cnt += self.cpu_info.read(iprot) + else: + iprot.skip(ftype) + elif fid == 0: + if ftype == TType.BOOL: + (length, self.more) = iprot.readBool(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readSandeshEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeSandeshBegin('CpuLoadInfoResp') < 0: return -1 + if self.more is not None: + annotations = {} + if oprot.writeFieldBegin('more', TType.BOOL, 0, annotations) < 0: return -1 + if oprot.writeBool(self.more) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.cpu_info is not None: + annotations = {} + if oprot.writeFieldBegin('cpu_info', TType.STRUCT, 1, annotations) < 0: return -1 + if self.cpu_info.write(oprot) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeSandeshEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def compare(self, other): + if not isinstance(other, self.__class__): + return False + if self.more != other.more: + return False + if self.cpu_info != other.cpu_info: + return False + return True + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +_SANDESH_REQUEST_LIST = [ +'CpuLoadInfoReq', +] + + +_SANDESH_UVE_LIST = [ +] + + +_SANDESH_UVE_DATA_LIST = [ +] + + +_SANDESH_ALARM_LIST = [ +] + + +_SANDESH_ALARM_DATA_LIST = [ +] diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/ttypes.pyc b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/ttypes.pyc Binary files differnew file mode 100644 index 0000000..5cffc67 --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/cpuinfo/ttypes.pyc diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/http_request.py b/Testcases/cfgm_common/uve/cfgm_cpuinfo/http_request.py new file mode 100644 index 0000000..8baea4f --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/http_request.py @@ -0,0 +1,14 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +import ttypes + +_HTTP_REQUEST_LIST = [ +] + diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/http_request.pyc b/Testcases/cfgm_common/uve/cfgm_cpuinfo/http_request.pyc Binary files differnew file mode 100644 index 0000000..8dec371 --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/http_request.pyc diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/index.html b/Testcases/cfgm_common/uve/cfgm_cpuinfo/index.html new file mode 100644 index 0000000..d9836a6 --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/index.html @@ -0,0 +1,14 @@ +<html><head> +<link href="style.css" rel="stylesheet" type="text/css"/> +<title>All Thrift declarations</title></head><body> +<h1>All Thrift declarations</h1> +<table><tr><th>Module</th><th>Services</th><th>Sandeshs</th><th>Data types</th><th>Constants</th></tr> +<tr> +<td>cfgm_cpuinfo</td><td></td></tr> +<tr> +<td>cpuinfo</td><td><a href="cpuinfo.html#Snh_CpuLoadInfoReq">CpuLoadInfoReq</a><br/> +</td></tr> +<tr> +<td>process_info</td><td></td></tr> +</table> +</body></html> diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/__init__.py b/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/__init__.py new file mode 100644 index 0000000..adefd8e --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/__init__.py @@ -0,0 +1 @@ +__all__ = ['ttypes', 'constants'] diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/__init__.pyc b/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/__init__.pyc Binary files differnew file mode 100644 index 0000000..34a8d06 --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/__init__.pyc diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/constants.py b/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/constants.py new file mode 100644 index 0000000..561413e --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/constants.py @@ -0,0 +1,33 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +from pysandesh.Thrift import TType, TMessageType, TException +from ttypes import * + +ConnectionTypeNames = { + 0 : "Test", + 1 : "IFMap", + 2 : "XMPP", + 3 : "Collector", + 4 : "Database", + 5 : "Redis", + 6 : "Zookeeper", + 7 : "Discovery", + 8 : "ApiServer", + 9 : "ToR", +} +ConnectionStatusNames = { + 0 : "Initializing", + 1 : "Down", + 2 : "Up", +} +ProcessStateNames = { + 0 : "Functional", + 1 : "Non-Functional", +} diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/constants.pyc b/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/constants.pyc Binary files differnew file mode 100644 index 0000000..a13a91f --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/constants.pyc diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/http_request.py b/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/http_request.py new file mode 100644 index 0000000..8baea4f --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/http_request.py @@ -0,0 +1,14 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +import ttypes + +_HTTP_REQUEST_LIST = [ +] + diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/http_request.pyc b/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/http_request.pyc Binary files differnew file mode 100644 index 0000000..4348a49 --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/http_request.pyc diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/index.html b/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/index.html new file mode 100644 index 0000000..9550828 --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/index.html @@ -0,0 +1,9 @@ +<html><head> +<link href="style.css" rel="stylesheet" type="text/css"/> +<title>All Thrift declarations</title></head><body> +<h1>All Thrift declarations</h1> +<table><tr><th>Module</th><th>Services</th><th>Sandeshs</th><th>Data types</th><th>Constants</th></tr> +<tr> +<td>process_info</td><td></td></tr> +</table> +</body></html> diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/process_info.html b/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/process_info.html new file mode 100644 index 0000000..2a1230f --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/process_info.html @@ -0,0 +1,13 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> +<link href="style.css" rel="stylesheet" type="text/css"/> +<title>Module: process_info</title></head><body> +<h1>Module: process_info</h1> +<table><tr><th>Module</th><th>Sandeshs</th></tr> +<tr> +<td>process_info</td><td></td></tr> +</table> +</body></html>
diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/process_info.xml b/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/process_info.xml new file mode 100644 index 0000000..ed715d3 --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/process_info.xml @@ -0,0 +1,3 @@ +<?xml-stylesheet type="text/xsl" href="/universal_parse.xsl"?> +<process_info type="rlist"> +</process_info> diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/request_skeleton.py b/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/request_skeleton.py new file mode 100644 index 0000000..99c1196 --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/request_skeleton.py @@ -0,0 +1,13 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + + +# This autogenerated skeleton file illustrates the implementation of +# derived class to handle the sandesh request. + diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/request_skeleton.pyc b/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/request_skeleton.pyc Binary files differnew file mode 100644 index 0000000..11f0c97 --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/request_skeleton.pyc diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/style.css b/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/style.css new file mode 100644 index 0000000..6dc2f22 --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/style.css @@ -0,0 +1,10 @@ +/* Auto-generated CSS for generated Thrift docs */ +body { font-family: Tahoma, sans-serif; } +pre { background-color: #dddddd; padding: 6px; } +h3,h4 { padding-top: 0px; margin-top: 0px; } +div.definition { border: 1px solid gray; margin: 10px; padding: 10px; } +div.extends { margin: -0.5em 0 1em 5em } +table { border: 1px solid grey; border-collapse: collapse; } +td { border: 1px solid grey; padding: 1px 6px; vertical-align: top; } +th { border: 1px solid black; background-color: #bbbbbb; + text-align: left; padding: 1px 6px; } diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/ttypes.py b/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/ttypes.py new file mode 100644 index 0000000..5c12c29 --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/ttypes.py @@ -0,0 +1,854 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +from pysandesh.Thrift import TType, TMessageType, TException + +from pysandesh.transport import TTransport +from pysandesh.protocol import TBinaryProtocol, TProtocol +try: + from pysandesh.protocol import fastbinary +except: + fastbinary = None + +import cStringIO +import uuid +import bottle +from pysandesh import sandesh_base +from pysandesh.sandesh_http import SandeshHttp +from pysandesh.sandesh_uve import SandeshUVETypeMaps +from pysandesh.util import UTCTimestampUsec, UTCTimestampUsecToString +from pysandesh.gen_py.sandesh.constants import * + + +class ConnectionType(object): + TEST = 0 + IFMAP = 1 + XMPP = 2 + COLLECTOR = 3 + DATABASE = 4 + REDIS = 5 + ZOOKEEPER = 6 + DISCOVERY = 7 + APISERVER = 8 + TOR = 9 + + _VALUES_TO_NAMES = { + 0: "TEST", + 1: "IFMAP", + 2: "XMPP", + 3: "COLLECTOR", + 4: "DATABASE", + 5: "REDIS", + 6: "ZOOKEEPER", + 7: "DISCOVERY", + 8: "APISERVER", + 9: "TOR", + } + + _NAMES_TO_VALUES = { + "TEST": 0, + "IFMAP": 1, + "XMPP": 2, + "COLLECTOR": 3, + "DATABASE": 4, + "REDIS": 5, + "ZOOKEEPER": 6, + "DISCOVERY": 7, + "APISERVER": 8, + "TOR": 9, + } + +class ConnectionStatus(object): + INIT = 0 + DOWN = 1 + UP = 2 + + _VALUES_TO_NAMES = { + 0: "INIT", + 1: "DOWN", + 2: "UP", + } + + _NAMES_TO_VALUES = { + "INIT": 0, + "DOWN": 1, + "UP": 2, + } + +class ProcessState(object): + FUNCTIONAL = 0 + NON_FUNCTIONAL = 1 + + _VALUES_TO_NAMES = { + 0: "FUNCTIONAL", + 1: "NON_FUNCTIONAL", + } + + _NAMES_TO_VALUES = { + "FUNCTIONAL": 0, + "NON_FUNCTIONAL": 1, + } + + +class ConnectionInfo(object): + """ + Attributes: + - type + - name + - server_addrs + - status + - description + """ + + thrift_spec = ( + None, # 0 + (1, TType.STRING, 'type', None, None, ), # 1 + (2, TType.STRING, 'name', None, None, ), # 2 + (3, TType.LIST, 'server_addrs', (TType.STRING,None), None, ), # 3 + (4, TType.STRING, 'status', None, None, ), # 4 + (5, TType.STRING, 'description', None, None, ), # 5 + ) + + def __init__(self, type=None, name=None, server_addrs=None, status=None, description=None,): + self.type = type + self.name = name + self.server_addrs = server_addrs + self.status = status + self.description = description + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return 0 + read_cnt = 0 + length = iprot.readStructBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRING: + (length, self.type) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRING: + (length, self.name) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.LIST: + self.server_addrs = [] + (length, _etype3, _size0) = iprot.readListBegin() + read_cnt += length + for _i4 in xrange(_size0): + read_cnt += iprot.readContainerElementBegin() + (length, _elem5) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + self.server_addrs.append(_elem5) + read_cnt += iprot.readContainerElementEnd() + read_cnt += iprot.readListEnd() + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.STRING: + (length, self.status) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.STRING: + (length, self.description) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readStructEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeStructBegin('ConnectionInfo') < 0: return -1 + if self.type is not None: + annotations = {} + if oprot.writeFieldBegin('type', TType.STRING, 1, annotations) < 0: return -1 + if oprot.writeString(self.type) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.name is not None: + annotations = {} + if oprot.writeFieldBegin('name', TType.STRING, 2, annotations) < 0: return -1 + if oprot.writeString(self.name) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.server_addrs is not None: + annotations = {} + if oprot.writeFieldBegin('server_addrs', TType.LIST, 3, annotations) < 0: return -1 + if oprot.writeListBegin(TType.STRING, len(self.server_addrs)) < 0: return -1 + for iter6 in self.server_addrs: + if oprot.writeContainerElementBegin() < 0: return -1 + if oprot.writeString(iter6) < 0: return -1 + if oprot.writeContainerElementEnd() < 0: return -1 + if oprot.writeListEnd() < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.status is not None: + annotations = {} + if oprot.writeFieldBegin('status', TType.STRING, 4, annotations) < 0: return -1 + if oprot.writeString(self.status) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.description is not None: + annotations = {} + if oprot.writeFieldBegin('description', TType.STRING, 5, annotations) < 0: return -1 + if oprot.writeString(self.description) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeStructEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def log(self): + log_str = cStringIO.StringIO() + if self.type is not None: + log_str.write('type = ') + log_str.write(self.type) + log_str.write(' ') + if self.name is not None: + log_str.write('name = ') + log_str.write(self.name) + log_str.write(' ') + if self.server_addrs is not None: + log_str.write('server_addrs = ') + log_str.write('[ ') + for iter7 in self.server_addrs: + log_str.write(iter7) + log_str.write(', ') + log_str.write(' ]') + log_str.write(' ') + if self.status is not None: + log_str.write('status = ') + log_str.write(self.status) + log_str.write(' ') + if self.description is not None: + log_str.write('description = ') + log_str.write(self.description) + log_str.write(' ') + return log_str.getvalue() + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class ProcessStatus(object): + """ + Attributes: + - module_id + - instance_id + - state + - connection_infos + - description + """ + + thrift_spec = ( + None, # 0 + (1, TType.STRING, 'module_id', None, None, ), # 1 + (2, TType.STRING, 'instance_id', None, None, ), # 2 + (3, TType.STRING, 'state', None, None, ), # 3 + (4, TType.LIST, 'connection_infos', (TType.STRUCT,(ConnectionInfo, ConnectionInfo.thrift_spec)), None, ), # 4 + (5, TType.STRING, 'description', None, None, ), # 5 + ) + + def __init__(self, module_id=None, instance_id=None, state=None, connection_infos=None, description=None,): + self.module_id = module_id + self.instance_id = instance_id + self.state = state + self.connection_infos = connection_infos + self.description = description + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return 0 + read_cnt = 0 + length = iprot.readStructBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRING: + (length, self.module_id) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRING: + (length, self.instance_id) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRING: + (length, self.state) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.LIST: + self.connection_infos = [] + (length, _etype11, _size8) = iprot.readListBegin() + read_cnt += length + for _i12 in xrange(_size8): + _elem13 = ConnectionInfo() + read_cnt += _elem13.read(iprot) + self.connection_infos.append(_elem13) + read_cnt += iprot.readListEnd() + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.STRING: + (length, self.description) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readStructEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeStructBegin('ProcessStatus') < 0: return -1 + if self.module_id is not None: + annotations = {} + if oprot.writeFieldBegin('module_id', TType.STRING, 1, annotations) < 0: return -1 + if oprot.writeString(self.module_id) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.instance_id is not None: + annotations = {} + if oprot.writeFieldBegin('instance_id', TType.STRING, 2, annotations) < 0: return -1 + if oprot.writeString(self.instance_id) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.state is not None: + annotations = {} + if oprot.writeFieldBegin('state', TType.STRING, 3, annotations) < 0: return -1 + if oprot.writeString(self.state) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.connection_infos is not None: + annotations = {} + if oprot.writeFieldBegin('connection_infos', TType.LIST, 4, annotations) < 0: return -1 + if oprot.writeListBegin(TType.STRUCT, len(self.connection_infos)) < 0: return -1 + for iter14 in self.connection_infos: + if iter14.write(oprot) < 0: return -1 + if oprot.writeListEnd() < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.description is not None: + annotations = {} + if oprot.writeFieldBegin('description', TType.STRING, 5, annotations) < 0: return -1 + if oprot.writeString(self.description) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeStructEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def log(self): + log_str = cStringIO.StringIO() + if self.module_id is not None: + log_str.write('module_id = ') + log_str.write(self.module_id) + log_str.write(' ') + if self.instance_id is not None: + log_str.write('instance_id = ') + log_str.write(self.instance_id) + log_str.write(' ') + if self.state is not None: + log_str.write('state = ') + log_str.write(self.state) + log_str.write(' ') + if self.connection_infos is not None: + log_str.write('connection_infos = ') + log_str.write('[ ') + for iter15 in self.connection_infos: + log_str.write('<< ') + log_str.write(iter15.log()) + log_str.write('>>') + log_str.write(', ') + log_str.write(' ]') + log_str.write(' ') + if self.description is not None: + log_str.write('description = ') + log_str.write(self.description) + log_str.write(' ') + return log_str.getvalue() + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class DiskPartitionUsageStats(object): + """ + Attributes: + - partition_type + - partition_name + - partition_space_used_1k + - partition_space_available_1k + """ + + thrift_spec = ( + None, # 0 + (1, TType.STRING, 'partition_type', None, None, ), # 1 + (2, TType.STRING, 'partition_name', None, None, ), # 2 + (3, TType.U64, 'partition_space_used_1k', None, None, ), # 3 + (4, TType.U64, 'partition_space_available_1k', None, None, ), # 4 + ) + + def __init__(self, partition_type=None, partition_name=None, partition_space_used_1k=None, partition_space_available_1k=None,): + self.partition_type = partition_type + self.partition_name = partition_name + self.partition_space_used_1k = partition_space_used_1k + self.partition_space_available_1k = partition_space_available_1k + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return 0 + read_cnt = 0 + length = iprot.readStructBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRING: + (length, self.partition_type) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRING: + (length, self.partition_name) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.U64: + (length, self.partition_space_used_1k) = iprot.readU64(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.U64: + (length, self.partition_space_available_1k) = iprot.readU64(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readStructEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeStructBegin('DiskPartitionUsageStats') < 0: return -1 + if self.partition_type is not None: + annotations = {} + if oprot.writeFieldBegin('partition_type', TType.STRING, 1, annotations) < 0: return -1 + if oprot.writeString(self.partition_type) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.partition_name is not None: + annotations = {} + if oprot.writeFieldBegin('partition_name', TType.STRING, 2, annotations) < 0: return -1 + if oprot.writeString(self.partition_name) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.partition_space_used_1k is not None: + annotations = {} + if oprot.writeFieldBegin('partition_space_used_1k', TType.U64, 3, annotations) < 0: return -1 + if oprot.writeU64(self.partition_space_used_1k) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.partition_space_available_1k is not None: + annotations = {} + if oprot.writeFieldBegin('partition_space_available_1k', TType.U64, 4, annotations) < 0: return -1 + if oprot.writeU64(self.partition_space_available_1k) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeStructEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def log(self): + log_str = cStringIO.StringIO() + if self.partition_type is not None: + log_str.write('partition_type = ') + log_str.write(self.partition_type) + log_str.write(' ') + if self.partition_name is not None: + log_str.write('partition_name = ') + log_str.write(self.partition_name) + log_str.write(' ') + if self.partition_space_used_1k is not None: + log_str.write('partition_space_used_1k = ') + log_str.write(str(self.partition_space_used_1k)) + log_str.write(' ') + if self.partition_space_available_1k is not None: + log_str.write('partition_space_available_1k = ') + log_str.write(str(self.partition_space_available_1k)) + log_str.write(' ') + return log_str.getvalue() + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class ProcessInfo(object): + """ + Attributes: + - process_name + - process_state + - start_count + - stop_count + - exit_count + - last_start_time + - last_stop_time + - last_exit_time + - core_file_list + """ + + thrift_spec = ( + None, # 0 + (1, TType.STRING, 'process_name', None, None, ), # 1 + (2, TType.STRING, 'process_state', None, None, ), # 2 + (3, TType.U32, 'start_count', None, None, ), # 3 + (4, TType.U32, 'stop_count', None, None, ), # 4 + (5, TType.U32, 'exit_count', None, None, ), # 5 + (6, TType.STRING, 'last_start_time', None, None, ), # 6 + (7, TType.STRING, 'last_stop_time', None, None, ), # 7 + (8, TType.STRING, 'last_exit_time', None, None, ), # 8 + (9, TType.LIST, 'core_file_list', (TType.STRING,None), None, ), # 9 + ) + + def __init__(self, process_name=None, process_state=None, start_count=None, stop_count=None, exit_count=None, last_start_time=None, last_stop_time=None, last_exit_time=None, core_file_list=None,): + self.process_name = process_name + self.process_state = process_state + self.start_count = start_count + self.stop_count = stop_count + self.exit_count = exit_count + self.last_start_time = last_start_time + self.last_stop_time = last_stop_time + self.last_exit_time = last_exit_time + self.core_file_list = core_file_list + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return 0 + read_cnt = 0 + length = iprot.readStructBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRING: + (length, self.process_name) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRING: + (length, self.process_state) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.U32: + (length, self.start_count) = iprot.readU32(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.U32: + (length, self.stop_count) = iprot.readU32(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.U32: + (length, self.exit_count) = iprot.readU32(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 6: + if ftype == TType.STRING: + (length, self.last_start_time) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 7: + if ftype == TType.STRING: + (length, self.last_stop_time) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 8: + if ftype == TType.STRING: + (length, self.last_exit_time) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 9: + if ftype == TType.LIST: + self.core_file_list = [] + (length, _etype19, _size16) = iprot.readListBegin() + read_cnt += length + for _i20 in xrange(_size16): + read_cnt += iprot.readContainerElementBegin() + (length, _elem21) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + self.core_file_list.append(_elem21) + read_cnt += iprot.readContainerElementEnd() + read_cnt += iprot.readListEnd() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readStructEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeStructBegin('ProcessInfo') < 0: return -1 + if self.process_name is not None: + annotations = {} + if oprot.writeFieldBegin('process_name', TType.STRING, 1, annotations) < 0: return -1 + if oprot.writeString(self.process_name) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.process_state is not None: + annotations = {} + if oprot.writeFieldBegin('process_state', TType.STRING, 2, annotations) < 0: return -1 + if oprot.writeString(self.process_state) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.start_count is not None: + annotations = {} + if oprot.writeFieldBegin('start_count', TType.U32, 3, annotations) < 0: return -1 + if oprot.writeU32(self.start_count) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.stop_count is not None: + annotations = {} + if oprot.writeFieldBegin('stop_count', TType.U32, 4, annotations) < 0: return -1 + if oprot.writeU32(self.stop_count) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.exit_count is not None: + annotations = {} + if oprot.writeFieldBegin('exit_count', TType.U32, 5, annotations) < 0: return -1 + if oprot.writeU32(self.exit_count) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.last_start_time is not None: + annotations = {} + if oprot.writeFieldBegin('last_start_time', TType.STRING, 6, annotations) < 0: return -1 + if oprot.writeString(self.last_start_time) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.last_stop_time is not None: + annotations = {} + if oprot.writeFieldBegin('last_stop_time', TType.STRING, 7, annotations) < 0: return -1 + if oprot.writeString(self.last_stop_time) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.last_exit_time is not None: + annotations = {} + if oprot.writeFieldBegin('last_exit_time', TType.STRING, 8, annotations) < 0: return -1 + if oprot.writeString(self.last_exit_time) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.core_file_list is not None: + annotations = {} + if oprot.writeFieldBegin('core_file_list', TType.LIST, 9, annotations) < 0: return -1 + if oprot.writeListBegin(TType.STRING, len(self.core_file_list)) < 0: return -1 + for iter22 in self.core_file_list: + if oprot.writeContainerElementBegin() < 0: return -1 + if oprot.writeString(iter22) < 0: return -1 + if oprot.writeContainerElementEnd() < 0: return -1 + if oprot.writeListEnd() < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeStructEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def log(self): + log_str = cStringIO.StringIO() + if self.process_name is not None: + log_str.write('process_name = ') + log_str.write(self.process_name) + log_str.write(' ') + if self.process_state is not None: + log_str.write('process_state = ') + log_str.write(self.process_state) + log_str.write(' ') + if self.start_count is not None: + log_str.write('start_count = ') + log_str.write(str(self.start_count)) + log_str.write(' ') + if self.stop_count is not None: + log_str.write('stop_count = ') + log_str.write(str(self.stop_count)) + log_str.write(' ') + if self.exit_count is not None: + log_str.write('exit_count = ') + log_str.write(str(self.exit_count)) + log_str.write(' ') + if self.last_start_time is not None: + log_str.write('last_start_time = ') + log_str.write(self.last_start_time) + log_str.write(' ') + if self.last_stop_time is not None: + log_str.write('last_stop_time = ') + log_str.write(self.last_stop_time) + log_str.write(' ') + if self.last_exit_time is not None: + log_str.write('last_exit_time = ') + log_str.write(self.last_exit_time) + log_str.write(' ') + if self.core_file_list is not None: + log_str.write('core_file_list = ') + log_str.write('[ ') + for iter23 in self.core_file_list: + log_str.write(iter23) + log_str.write(', ') + log_str.write(' ]') + log_str.write(' ') + return log_str.getvalue() + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +_SANDESH_REQUEST_LIST = [ +] + + +_SANDESH_UVE_LIST = [ +] + + +_SANDESH_UVE_DATA_LIST = [ +] + + +_SANDESH_ALARM_LIST = [ +] + + +_SANDESH_ALARM_DATA_LIST = [ +] diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/ttypes.pyc b/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/ttypes.pyc Binary files differnew file mode 100644 index 0000000..a07afd4 --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/process_info/ttypes.pyc diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/request_skeleton.py b/Testcases/cfgm_common/uve/cfgm_cpuinfo/request_skeleton.py new file mode 100644 index 0000000..99c1196 --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/request_skeleton.py @@ -0,0 +1,13 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + + +# This autogenerated skeleton file illustrates the implementation of +# derived class to handle the sandesh request. + diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/request_skeleton.pyc b/Testcases/cfgm_common/uve/cfgm_cpuinfo/request_skeleton.pyc Binary files differnew file mode 100644 index 0000000..0ba81c0 --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/request_skeleton.pyc diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/style.css b/Testcases/cfgm_common/uve/cfgm_cpuinfo/style.css new file mode 100644 index 0000000..6dc2f22 --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/style.css @@ -0,0 +1,10 @@ +/* Auto-generated CSS for generated Thrift docs */ +body { font-family: Tahoma, sans-serif; } +pre { background-color: #dddddd; padding: 6px; } +h3,h4 { padding-top: 0px; margin-top: 0px; } +div.definition { border: 1px solid gray; margin: 10px; padding: 10px; } +div.extends { margin: -0.5em 0 1em 5em } +table { border: 1px solid grey; border-collapse: collapse; } +td { border: 1px solid grey; padding: 1px 6px; vertical-align: top; } +th { border: 1px solid black; background-color: #bbbbbb; + text-align: left; padding: 1px 6px; } diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/ttypes.py b/Testcases/cfgm_common/uve/cfgm_cpuinfo/ttypes.py new file mode 100644 index 0000000..ce6e3ae --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/ttypes.py @@ -0,0 +1,1281 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +from pysandesh.Thrift import TType, TMessageType, TException +import cpuinfo.ttypes +import process_info.ttypes + + +from pysandesh.transport import TTransport +from pysandesh.protocol import TBinaryProtocol, TProtocol +try: + from pysandesh.protocol import fastbinary +except: + fastbinary = None + +import cStringIO +import uuid +import bottle +from pysandesh import sandesh_base +from pysandesh.sandesh_http import SandeshHttp +from pysandesh.sandesh_uve import SandeshUVETypeMaps +from pysandesh.util import UTCTimestampUsec, UTCTimestampUsecToString +from pysandesh.gen_py.sandesh.constants import * + + + +class ModuleCpuInfo(object): + """ + Attributes: + - module_id + - cpu_info + - instance_id + """ + + thrift_spec = ( + None, # 0 + (1, TType.STRING, 'module_id', None, None, ), # 1 + (2, TType.STRUCT, 'cpu_info', (cpuinfo.ttypes.CpuLoadInfo, cpuinfo.ttypes.CpuLoadInfo.thrift_spec), None, ), # 2 + (3, TType.STRING, 'instance_id', None, None, ), # 3 + ) + + def __init__(self, module_id=None, cpu_info=None, instance_id=None,): + self.module_id = module_id + self.cpu_info = cpu_info + self.instance_id = instance_id + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return 0 + read_cnt = 0 + length = iprot.readStructBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRING: + (length, self.module_id) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.cpu_info = cpuinfo.ttypes.CpuLoadInfo() + read_cnt += self.cpu_info.read(iprot) + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRING: + (length, self.instance_id) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readStructEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeStructBegin('ModuleCpuInfo') < 0: return -1 + if self.module_id is not None: + annotations = {} + if oprot.writeFieldBegin('module_id', TType.STRING, 1, annotations) < 0: return -1 + if oprot.writeString(self.module_id) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.cpu_info is not None: + annotations = {} + if oprot.writeFieldBegin('cpu_info', TType.STRUCT, 2, annotations) < 0: return -1 + if self.cpu_info.write(oprot) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.instance_id is not None: + annotations = {} + if oprot.writeFieldBegin('instance_id', TType.STRING, 3, annotations) < 0: return -1 + if oprot.writeString(self.instance_id) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeStructEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def log(self): + log_str = cStringIO.StringIO() + if self.module_id is not None: + log_str.write('module_id = ') + log_str.write(self.module_id) + log_str.write(' ') + if self.cpu_info is not None: + log_str.write('cpu_info = ') + log_str.write('<< ') + log_str.write(self.cpu_info.log()) + log_str.write('>>') + log_str.write(' ') + if self.instance_id is not None: + log_str.write('instance_id = ') + log_str.write(self.instance_id) + log_str.write(' ') + return log_str.getvalue() + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class ModuleCpuState(object): + """ + Attributes: + - name + - deleted + - module_cpu_info + - build_info + - config_node_ip + - api_server_cpu_share + - schema_xmer_cpu_share + - service_monitor_cpu_share + - api_server_mem_virt + - schema_xmer_mem_virt + - service_monitor_mem_virt + """ + + thrift_spec = ( + None, # 0 + (1, TType.STRING, 'name', None, None, ), # 1 + (2, TType.BOOL, 'deleted', None, None, ), # 2 + (3, TType.LIST, 'module_cpu_info', (TType.STRUCT,(ModuleCpuInfo, ModuleCpuInfo.thrift_spec)), None, ), # 3 + (4, TType.STRING, 'build_info', None, None, ), # 4 + (5, TType.LIST, 'config_node_ip', (TType.STRING,None), None, ), # 5 + (6, TType.DOUBLE, 'api_server_cpu_share', None, None, ), # 6 + (7, TType.DOUBLE, 'schema_xmer_cpu_share', None, None, ), # 7 + (8, TType.DOUBLE, 'service_monitor_cpu_share', None, None, ), # 8 + (9, TType.U32, 'api_server_mem_virt', None, None, ), # 9 + (10, TType.U32, 'schema_xmer_mem_virt', None, None, ), # 10 + (11, TType.U32, 'service_monitor_mem_virt', None, None, ), # 11 + ) + + def __init__(self, name=None, deleted=None, module_cpu_info=None, build_info=None, config_node_ip=None, api_server_cpu_share=None, schema_xmer_cpu_share=None, service_monitor_cpu_share=None, api_server_mem_virt=None, schema_xmer_mem_virt=None, service_monitor_mem_virt=None,): + self.name = name + self.deleted = deleted + self.module_cpu_info = module_cpu_info + self.build_info = build_info + self.config_node_ip = config_node_ip + self.api_server_cpu_share = api_server_cpu_share + self.schema_xmer_cpu_share = schema_xmer_cpu_share + self.service_monitor_cpu_share = service_monitor_cpu_share + self.api_server_mem_virt = api_server_mem_virt + self.schema_xmer_mem_virt = schema_xmer_mem_virt + self.service_monitor_mem_virt = service_monitor_mem_virt + self._table = 'ObjectConfigNode' + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return 0 + read_cnt = 0 + length = iprot.readStructBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRING: + (length, self.name) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.BOOL: + (length, self.deleted) = iprot.readBool(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.LIST: + self.module_cpu_info = [] + (length, _etype3, _size0) = iprot.readListBegin() + read_cnt += length + for _i4 in xrange(_size0): + _elem5 = ModuleCpuInfo() + read_cnt += _elem5.read(iprot) + self.module_cpu_info.append(_elem5) + read_cnt += iprot.readListEnd() + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.STRING: + (length, self.build_info) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.LIST: + self.config_node_ip = [] + (length, _etype9, _size6) = iprot.readListBegin() + read_cnt += length + for _i10 in xrange(_size6): + read_cnt += iprot.readContainerElementBegin() + (length, _elem11) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + self.config_node_ip.append(_elem11) + read_cnt += iprot.readContainerElementEnd() + read_cnt += iprot.readListEnd() + else: + iprot.skip(ftype) + elif fid == 6: + if ftype == TType.DOUBLE: + (length, self.api_server_cpu_share) = iprot.readDouble(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 7: + if ftype == TType.DOUBLE: + (length, self.schema_xmer_cpu_share) = iprot.readDouble(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 8: + if ftype == TType.DOUBLE: + (length, self.service_monitor_cpu_share) = iprot.readDouble(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 9: + if ftype == TType.U32: + (length, self.api_server_mem_virt) = iprot.readU32(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 10: + if ftype == TType.U32: + (length, self.schema_xmer_mem_virt) = iprot.readU32(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 11: + if ftype == TType.U32: + (length, self.service_monitor_mem_virt) = iprot.readU32(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readStructEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeStructBegin('ModuleCpuState') < 0: return -1 + if self.name is not None: + annotations = {} + if self._table is None or self._table is '': return -1 + annotations['key'] = self._table + if oprot.writeFieldBegin('name', TType.STRING, 1, annotations) < 0: return -1 + if oprot.writeString(self.name) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.deleted is not None: + annotations = {} + if oprot.writeFieldBegin('deleted', TType.BOOL, 2, annotations) < 0: return -1 + if oprot.writeBool(self.deleted) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.module_cpu_info is not None: + annotations = {} + annotations['aggtype'] = 'union' + if oprot.writeFieldBegin('module_cpu_info', TType.LIST, 3, annotations) < 0: return -1 + if oprot.writeListBegin(TType.STRUCT, len(self.module_cpu_info)) < 0: return -1 + for iter12 in self.module_cpu_info: + if iter12.write(oprot) < 0: return -1 + if oprot.writeListEnd() < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.build_info is not None: + annotations = {} + if oprot.writeFieldBegin('build_info', TType.STRING, 4, annotations) < 0: return -1 + if oprot.writeString(self.build_info) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.config_node_ip is not None: + annotations = {} + if oprot.writeFieldBegin('config_node_ip', TType.LIST, 5, annotations) < 0: return -1 + if oprot.writeListBegin(TType.STRING, len(self.config_node_ip)) < 0: return -1 + for iter13 in self.config_node_ip: + if oprot.writeContainerElementBegin() < 0: return -1 + if oprot.writeString(iter13) < 0: return -1 + if oprot.writeContainerElementEnd() < 0: return -1 + if oprot.writeListEnd() < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.api_server_cpu_share is not None: + annotations = {} + annotations['aggtype'] = 'stats' + if oprot.writeFieldBegin('api_server_cpu_share', TType.DOUBLE, 6, annotations) < 0: return -1 + if oprot.writeDouble(self.api_server_cpu_share) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.schema_xmer_cpu_share is not None: + annotations = {} + annotations['aggtype'] = 'stats' + if oprot.writeFieldBegin('schema_xmer_cpu_share', TType.DOUBLE, 7, annotations) < 0: return -1 + if oprot.writeDouble(self.schema_xmer_cpu_share) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.service_monitor_cpu_share is not None: + annotations = {} + annotations['aggtype'] = 'stats' + if oprot.writeFieldBegin('service_monitor_cpu_share', TType.DOUBLE, 8, annotations) < 0: return -1 + if oprot.writeDouble(self.service_monitor_cpu_share) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.api_server_mem_virt is not None: + annotations = {} + annotations['aggtype'] = 'stats' + annotations['hbin'] = '100000' + if oprot.writeFieldBegin('api_server_mem_virt', TType.U32, 9, annotations) < 0: return -1 + if oprot.writeU32(self.api_server_mem_virt) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.schema_xmer_mem_virt is not None: + annotations = {} + annotations['aggtype'] = 'stats' + annotations['hbin'] = '100000' + if oprot.writeFieldBegin('schema_xmer_mem_virt', TType.U32, 10, annotations) < 0: return -1 + if oprot.writeU32(self.schema_xmer_mem_virt) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.service_monitor_mem_virt is not None: + annotations = {} + annotations['aggtype'] = 'stats' + annotations['hbin'] = '100000' + if oprot.writeFieldBegin('service_monitor_mem_virt', TType.U32, 11, annotations) < 0: return -1 + if oprot.writeU32(self.service_monitor_mem_virt) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeStructEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def log(self): + log_str = cStringIO.StringIO() + if self.name is not None: + log_str.write('name = ') + log_str.write(self.name) + log_str.write(' ') + if self.deleted is not None: + log_str.write('deleted = ') + if self.deleted: + log_str.write('True') + else: + log_str.write('False') + log_str.write(' ') + if self.module_cpu_info is not None: + log_str.write('module_cpu_info = ') + log_str.write('[ ') + for iter14 in self.module_cpu_info: + log_str.write('<< ') + log_str.write(iter14.log()) + log_str.write('>>') + log_str.write(', ') + log_str.write(' ]') + log_str.write(' ') + if self.build_info is not None: + log_str.write('build_info = ') + log_str.write(self.build_info) + log_str.write(' ') + if self.config_node_ip is not None: + log_str.write('config_node_ip = ') + log_str.write('[ ') + for iter15 in self.config_node_ip: + log_str.write(iter15) + log_str.write(', ') + log_str.write(' ]') + log_str.write(' ') + if self.api_server_cpu_share is not None: + log_str.write('api_server_cpu_share = ') + log_str.write(str(self.api_server_cpu_share)) + log_str.write(' ') + if self.schema_xmer_cpu_share is not None: + log_str.write('schema_xmer_cpu_share = ') + log_str.write(str(self.schema_xmer_cpu_share)) + log_str.write(' ') + if self.service_monitor_cpu_share is not None: + log_str.write('service_monitor_cpu_share = ') + log_str.write(str(self.service_monitor_cpu_share)) + log_str.write(' ') + if self.api_server_mem_virt is not None: + log_str.write('api_server_mem_virt = ') + log_str.write(str(self.api_server_mem_virt)) + log_str.write(' ') + if self.schema_xmer_mem_virt is not None: + log_str.write('schema_xmer_mem_virt = ') + log_str.write(str(self.schema_xmer_mem_virt)) + log_str.write(' ') + if self.service_monitor_mem_virt is not None: + log_str.write('service_monitor_mem_virt = ') + log_str.write(str(self.service_monitor_mem_virt)) + log_str.write(' ') + return log_str.getvalue() + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class ConfigCpuState(object): + """ + Attributes: + - name + - deleted + - cpu_info + """ + + thrift_spec = ( + None, # 0 + (1, TType.STRING, 'name', None, None, ), # 1 + (2, TType.BOOL, 'deleted', None, None, ), # 2 + (3, TType.LIST, 'cpu_info', (TType.STRUCT,(cpuinfo.ttypes.ProcessCpuInfo, cpuinfo.ttypes.ProcessCpuInfo.thrift_spec)), None, ), # 3 + ) + + def __init__(self, name=None, deleted=None, cpu_info=None,): + self.name = name + self.deleted = deleted + self.cpu_info = cpu_info + self._table = 'ObjectConfigNode' + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return 0 + read_cnt = 0 + length = iprot.readStructBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRING: + (length, self.name) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.BOOL: + (length, self.deleted) = iprot.readBool(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.LIST: + self.cpu_info = [] + (length, _etype19, _size16) = iprot.readListBegin() + read_cnt += length + for _i20 in xrange(_size16): + _elem21 = cpuinfo.ttypes.ProcessCpuInfo() + read_cnt += _elem21.read(iprot) + self.cpu_info.append(_elem21) + read_cnt += iprot.readListEnd() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readStructEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeStructBegin('ConfigCpuState') < 0: return -1 + if self.name is not None: + annotations = {} + if self._table is None or self._table is '': return -1 + annotations['key'] = self._table + if oprot.writeFieldBegin('name', TType.STRING, 1, annotations) < 0: return -1 + if oprot.writeString(self.name) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.deleted is not None: + annotations = {} + if oprot.writeFieldBegin('deleted', TType.BOOL, 2, annotations) < 0: return -1 + if oprot.writeBool(self.deleted) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.cpu_info is not None: + annotations = {} + annotations['aggtype'] = 'union' + annotations['tags'] = '.module_id,.mem_virt,.cpu_share,.mem_res' + if oprot.writeFieldBegin('cpu_info', TType.LIST, 3, annotations) < 0: return -1 + if oprot.writeListBegin(TType.STRUCT, len(self.cpu_info)) < 0: return -1 + for iter22 in self.cpu_info: + if iter22.write(oprot) < 0: return -1 + if oprot.writeListEnd() < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeStructEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def log(self): + log_str = cStringIO.StringIO() + if self.name is not None: + log_str.write('name = ') + log_str.write(self.name) + log_str.write(' ') + if self.deleted is not None: + log_str.write('deleted = ') + if self.deleted: + log_str.write('True') + else: + log_str.write('False') + log_str.write(' ') + if self.cpu_info is not None: + log_str.write('cpu_info = ') + log_str.write('[ ') + for iter23 in self.cpu_info: + log_str.write('<< ') + log_str.write(iter23.log()) + log_str.write('>>') + log_str.write(', ') + log_str.write(' ]') + log_str.write(' ') + return log_str.getvalue() + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class NodeStatus(object): + """ + Attributes: + - name + - deleted + - status + - process_status + - process_info + - disk_usage_info + - description + - all_core_file_list + """ + + thrift_spec = ( + None, # 0 + (1, TType.STRING, 'name', None, None, ), # 1 + (2, TType.BOOL, 'deleted', None, None, ), # 2 + (3, TType.STRING, 'status', None, None, ), # 3 + (4, TType.LIST, 'process_status', (TType.STRUCT,(process_info.ttypes.ProcessStatus, process_info.ttypes.ProcessStatus.thrift_spec)), None, ), # 4 + (5, TType.LIST, 'process_info', (TType.STRUCT,(process_info.ttypes.ProcessInfo, process_info.ttypes.ProcessInfo.thrift_spec)), None, ), # 5 + (6, TType.LIST, 'disk_usage_info', (TType.STRUCT,(process_info.ttypes.DiskPartitionUsageStats, process_info.ttypes.DiskPartitionUsageStats.thrift_spec)), None, ), # 6 + (7, TType.STRING, 'description', None, None, ), # 7 + (8, TType.LIST, 'all_core_file_list', (TType.STRING,None), None, ), # 8 + ) + + def __init__(self, name=None, deleted=None, status=None, process_status=None, process_info=None, disk_usage_info=None, description=None, all_core_file_list=None,): + self.name = name + self.deleted = deleted + self.status = status + self.process_status = process_status + self.process_info = process_info + self.disk_usage_info = disk_usage_info + self.description = description + self.all_core_file_list = all_core_file_list + self._table = 'ObjectConfigNode' + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return 0 + read_cnt = 0 + length = iprot.readStructBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRING: + (length, self.name) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.BOOL: + (length, self.deleted) = iprot.readBool(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRING: + (length, self.status) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.LIST: + self.process_status = [] + (length, _etype27, _size24) = iprot.readListBegin() + read_cnt += length + for _i28 in xrange(_size24): + _elem29 = process_info.ttypes.ProcessStatus() + read_cnt += _elem29.read(iprot) + self.process_status.append(_elem29) + read_cnt += iprot.readListEnd() + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.LIST: + self.process_info = [] + (length, _etype33, _size30) = iprot.readListBegin() + read_cnt += length + for _i34 in xrange(_size30): + _elem35 = process_info.ttypes.ProcessInfo() + read_cnt += _elem35.read(iprot) + self.process_info.append(_elem35) + read_cnt += iprot.readListEnd() + else: + iprot.skip(ftype) + elif fid == 6: + if ftype == TType.LIST: + self.disk_usage_info = [] + (length, _etype39, _size36) = iprot.readListBegin() + read_cnt += length + for _i40 in xrange(_size36): + _elem41 = process_info.ttypes.DiskPartitionUsageStats() + read_cnt += _elem41.read(iprot) + self.disk_usage_info.append(_elem41) + read_cnt += iprot.readListEnd() + else: + iprot.skip(ftype) + elif fid == 7: + if ftype == TType.STRING: + (length, self.description) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 8: + if ftype == TType.LIST: + self.all_core_file_list = [] + (length, _etype45, _size42) = iprot.readListBegin() + read_cnt += length + for _i46 in xrange(_size42): + read_cnt += iprot.readContainerElementBegin() + (length, _elem47) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + self.all_core_file_list.append(_elem47) + read_cnt += iprot.readContainerElementEnd() + read_cnt += iprot.readListEnd() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readStructEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeStructBegin('NodeStatus') < 0: return -1 + if self.name is not None: + annotations = {} + if self._table is None or self._table is '': return -1 + annotations['key'] = self._table + if oprot.writeFieldBegin('name', TType.STRING, 1, annotations) < 0: return -1 + if oprot.writeString(self.name) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.deleted is not None: + annotations = {} + if oprot.writeFieldBegin('deleted', TType.BOOL, 2, annotations) < 0: return -1 + if oprot.writeBool(self.deleted) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.status is not None: + annotations = {} + if oprot.writeFieldBegin('status', TType.STRING, 3, annotations) < 0: return -1 + if oprot.writeString(self.status) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.process_status is not None: + annotations = {} + annotations['aggtype'] = 'union' + if oprot.writeFieldBegin('process_status', TType.LIST, 4, annotations) < 0: return -1 + if oprot.writeListBegin(TType.STRUCT, len(self.process_status)) < 0: return -1 + for iter48 in self.process_status: + if iter48.write(oprot) < 0: return -1 + if oprot.writeListEnd() < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.process_info is not None: + annotations = {} + annotations['aggtype'] = 'union' + if oprot.writeFieldBegin('process_info', TType.LIST, 5, annotations) < 0: return -1 + if oprot.writeListBegin(TType.STRUCT, len(self.process_info)) < 0: return -1 + for iter49 in self.process_info: + if iter49.write(oprot) < 0: return -1 + if oprot.writeListEnd() < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.disk_usage_info is not None: + annotations = {} + annotations['tags'] = '' + if oprot.writeFieldBegin('disk_usage_info', TType.LIST, 6, annotations) < 0: return -1 + if oprot.writeListBegin(TType.STRUCT, len(self.disk_usage_info)) < 0: return -1 + for iter50 in self.disk_usage_info: + if iter50.write(oprot) < 0: return -1 + if oprot.writeListEnd() < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.description is not None: + annotations = {} + if oprot.writeFieldBegin('description', TType.STRING, 7, annotations) < 0: return -1 + if oprot.writeString(self.description) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.all_core_file_list is not None: + annotations = {} + if oprot.writeFieldBegin('all_core_file_list', TType.LIST, 8, annotations) < 0: return -1 + if oprot.writeListBegin(TType.STRING, len(self.all_core_file_list)) < 0: return -1 + for iter51 in self.all_core_file_list: + if oprot.writeContainerElementBegin() < 0: return -1 + if oprot.writeString(iter51) < 0: return -1 + if oprot.writeContainerElementEnd() < 0: return -1 + if oprot.writeListEnd() < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeStructEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def log(self): + log_str = cStringIO.StringIO() + if self.name is not None: + log_str.write('name = ') + log_str.write(self.name) + log_str.write(' ') + if self.deleted is not None: + log_str.write('deleted = ') + if self.deleted: + log_str.write('True') + else: + log_str.write('False') + log_str.write(' ') + if self.status is not None: + log_str.write('status = ') + log_str.write(self.status) + log_str.write(' ') + if self.process_status is not None: + log_str.write('process_status = ') + log_str.write('[ ') + for iter52 in self.process_status: + log_str.write('<< ') + log_str.write(iter52.log()) + log_str.write('>>') + log_str.write(', ') + log_str.write(' ]') + log_str.write(' ') + if self.process_info is not None: + log_str.write('process_info = ') + log_str.write('[ ') + for iter53 in self.process_info: + log_str.write('<< ') + log_str.write(iter53.log()) + log_str.write('>>') + log_str.write(', ') + log_str.write(' ]') + log_str.write(' ') + if self.disk_usage_info is not None: + log_str.write('disk_usage_info = ') + log_str.write('[ ') + for iter54 in self.disk_usage_info: + log_str.write('<< ') + log_str.write(iter54.log()) + log_str.write('>>') + log_str.write(', ') + log_str.write(' ]') + log_str.write(' ') + if self.description is not None: + log_str.write('description = ') + log_str.write(self.description) + log_str.write(' ') + if self.all_core_file_list is not None: + log_str.write('all_core_file_list = ') + log_str.write('[ ') + for iter55 in self.all_core_file_list: + log_str.write(iter55) + log_str.write(', ') + log_str.write(' ]') + log_str.write(' ') + return log_str.getvalue() + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class ModuleCpuStateTrace(sandesh_base.SandeshUVE): + + thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'data', (ModuleCpuState, ModuleCpuState.thrift_spec), None, ), # 1 + ) + + def __init__(self, data=None, table=None, sandesh=sandesh_base.sandesh_global): + sandesh_base.SandeshUVE.__init__(self) + self.data = data + self._scope = sandesh.scope() + self._module = sandesh.module() + self._source = sandesh.source_id() + self._node_type = sandesh.node_type() + self._instance_id = sandesh.instance_id() + self._seqnum = 0 + self._timestamp = UTCTimestampUsec() + self._versionsig = 3681498004 + self._hints = 0 | SANDESH_KEY_HINT + if table is not None: + self.data._table = table + + def update_uve(self, tdata): + if self.data.name is not None: + tdata.name = self.data.name + if self.data.deleted is not None: + tdata.deleted = self.data.deleted + if self.data.module_cpu_info is not None: + tdata.module_cpu_info = self.data.module_cpu_info + if self.data.build_info is not None: + tdata.build_info = self.data.build_info + if self.data.config_node_ip is not None: + tdata.config_node_ip = self.data.config_node_ip + if self.data.api_server_cpu_share is not None: + tdata.api_server_cpu_share = self.data.api_server_cpu_share + if self.data.schema_xmer_cpu_share is not None: + tdata.schema_xmer_cpu_share = self.data.schema_xmer_cpu_share + if self.data.service_monitor_cpu_share is not None: + tdata.service_monitor_cpu_share = self.data.service_monitor_cpu_share + if self.data.api_server_mem_virt is not None: + tdata.api_server_mem_virt = self.data.api_server_mem_virt + if self.data.schema_xmer_mem_virt is not None: + tdata.schema_xmer_mem_virt = self.data.schema_xmer_mem_virt + if self.data.service_monitor_mem_virt is not None: + tdata.service_monitor_mem_virt = self.data.service_monitor_mem_virt + return tdata + + def log(self, trace=False): + log_str = cStringIO.StringIO() + if trace: + log_str.write(str(self._timestamp)) + log_str.write(' ') + log_str.write('ModuleCpuStateTrace: ') + if self.data is not None: + log_str.write('data = ') + log_str.write('<< ') + log_str.write(self.data.log()) + log_str.write('>>') + log_str.write(' ') + return log_str.getvalue() + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return -1 + read_cnt = 0 + (length, sandesh_name) = iprot.readSandeshBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.data = ModuleCpuState() + read_cnt += self.data.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readSandeshEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeSandeshBegin('ModuleCpuStateTrace') < 0: return -1 + if self.data is not None: + annotations = {} + if oprot.writeFieldBegin('data', TType.STRUCT, 1, annotations) < 0: return -1 + if self.data.write(oprot) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeSandeshEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def compare(self, other): + if not isinstance(other, self.__class__): + return False + if self.data != other.data: + return False + return True + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class ConfigCpuStateTrace(sandesh_base.SandeshUVE): + + thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'data', (ConfigCpuState, ConfigCpuState.thrift_spec), None, ), # 1 + ) + + def __init__(self, data=None, table=None, sandesh=sandesh_base.sandesh_global): + sandesh_base.SandeshUVE.__init__(self) + self.data = data + self._scope = sandesh.scope() + self._module = sandesh.module() + self._source = sandesh.source_id() + self._node_type = sandesh.node_type() + self._instance_id = sandesh.instance_id() + self._seqnum = 0 + self._timestamp = UTCTimestampUsec() + self._versionsig = 3278957034 + self._hints = 0 | SANDESH_KEY_HINT + if table is not None: + self.data._table = table + + def update_uve(self, tdata): + if self.data.name is not None: + tdata.name = self.data.name + if self.data.deleted is not None: + tdata.deleted = self.data.deleted + if self.data.cpu_info is not None: + tdata.cpu_info = self.data.cpu_info + return tdata + + def log(self, trace=False): + log_str = cStringIO.StringIO() + if trace: + log_str.write(str(self._timestamp)) + log_str.write(' ') + log_str.write('ConfigCpuStateTrace: ') + if self.data is not None: + log_str.write('data = ') + log_str.write('<< ') + log_str.write(self.data.log()) + log_str.write('>>') + log_str.write(' ') + return log_str.getvalue() + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return -1 + read_cnt = 0 + (length, sandesh_name) = iprot.readSandeshBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.data = ConfigCpuState() + read_cnt += self.data.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readSandeshEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeSandeshBegin('ConfigCpuStateTrace') < 0: return -1 + if self.data is not None: + annotations = {} + if oprot.writeFieldBegin('data', TType.STRUCT, 1, annotations) < 0: return -1 + if self.data.write(oprot) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeSandeshEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def compare(self, other): + if not isinstance(other, self.__class__): + return False + if self.data != other.data: + return False + return True + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class NodeStatusUVE(sandesh_base.SandeshUVE): + + thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'data', (NodeStatus, NodeStatus.thrift_spec), None, ), # 1 + ) + + def __init__(self, data=None, table=None, sandesh=sandesh_base.sandesh_global): + sandesh_base.SandeshUVE.__init__(self) + self.data = data + self._scope = sandesh.scope() + self._module = sandesh.module() + self._source = sandesh.source_id() + self._node_type = sandesh.node_type() + self._instance_id = sandesh.instance_id() + self._seqnum = 0 + self._timestamp = UTCTimestampUsec() + self._versionsig = 2778367443 + self._hints = 0 | SANDESH_KEY_HINT + if table is not None: + self.data._table = table + + def update_uve(self, tdata): + if self.data.name is not None: + tdata.name = self.data.name + if self.data.deleted is not None: + tdata.deleted = self.data.deleted + if self.data.status is not None: + tdata.status = self.data.status + if self.data.process_status is not None: + tdata.process_status = self.data.process_status + if self.data.process_info is not None: + tdata.process_info = self.data.process_info + if self.data.disk_usage_info is not None: + tdata.disk_usage_info = self.data.disk_usage_info + if self.data.description is not None: + tdata.description = self.data.description + if self.data.all_core_file_list is not None: + tdata.all_core_file_list = self.data.all_core_file_list + return tdata + + def log(self, trace=False): + log_str = cStringIO.StringIO() + if trace: + log_str.write(str(self._timestamp)) + log_str.write(' ') + log_str.write('NodeStatusUVE: ') + if self.data is not None: + log_str.write('data = ') + log_str.write('<< ') + log_str.write(self.data.log()) + log_str.write('>>') + log_str.write(' ') + return log_str.getvalue() + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return -1 + read_cnt = 0 + (length, sandesh_name) = iprot.readSandeshBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.data = NodeStatus() + read_cnt += self.data.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readSandeshEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeSandeshBegin('NodeStatusUVE') < 0: return -1 + if self.data is not None: + annotations = {} + if oprot.writeFieldBegin('data', TType.STRUCT, 1, annotations) < 0: return -1 + if self.data.write(oprot) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeSandeshEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def compare(self, other): + if not isinstance(other, self.__class__): + return False + if self.data != other.data: + return False + return True + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +_SANDESH_REQUEST_LIST = [ +] + + +_SANDESH_UVE_LIST = [ +'ModuleCpuStateTrace', +'ConfigCpuStateTrace', +'NodeStatusUVE', +] + + +_SANDESH_UVE_DATA_LIST = [ +'ModuleCpuState', +'ConfigCpuState', +'NodeStatus', +] + + +_SANDESH_ALARM_LIST = [ +] + + +_SANDESH_ALARM_DATA_LIST = [ +] diff --git a/Testcases/cfgm_common/uve/cfgm_cpuinfo/ttypes.pyc b/Testcases/cfgm_common/uve/cfgm_cpuinfo/ttypes.pyc Binary files differnew file mode 100644 index 0000000..4a16093 --- /dev/null +++ b/Testcases/cfgm_common/uve/cfgm_cpuinfo/ttypes.pyc diff --git a/Testcases/cfgm_common/uve/physical_router/__init__.py b/Testcases/cfgm_common/uve/physical_router/__init__.py new file mode 100644 index 0000000..adefd8e --- /dev/null +++ b/Testcases/cfgm_common/uve/physical_router/__init__.py @@ -0,0 +1 @@ +__all__ = ['ttypes', 'constants'] diff --git a/Testcases/cfgm_common/uve/physical_router/__init__.pyc b/Testcases/cfgm_common/uve/physical_router/__init__.pyc Binary files differnew file mode 100644 index 0000000..1b6bfe5 --- /dev/null +++ b/Testcases/cfgm_common/uve/physical_router/__init__.pyc diff --git a/Testcases/cfgm_common/uve/physical_router/constants.py b/Testcases/cfgm_common/uve/physical_router/constants.py new file mode 100644 index 0000000..aadd78e --- /dev/null +++ b/Testcases/cfgm_common/uve/physical_router/constants.py @@ -0,0 +1,12 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +from pysandesh.Thrift import TType, TMessageType, TException +from ttypes import * + diff --git a/Testcases/cfgm_common/uve/physical_router/constants.pyc b/Testcases/cfgm_common/uve/physical_router/constants.pyc Binary files differnew file mode 100644 index 0000000..aee32ed --- /dev/null +++ b/Testcases/cfgm_common/uve/physical_router/constants.pyc diff --git a/Testcases/cfgm_common/uve/physical_router/http_request.py b/Testcases/cfgm_common/uve/physical_router/http_request.py new file mode 100644 index 0000000..8baea4f --- /dev/null +++ b/Testcases/cfgm_common/uve/physical_router/http_request.py @@ -0,0 +1,14 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +import ttypes + +_HTTP_REQUEST_LIST = [ +] + diff --git a/Testcases/cfgm_common/uve/physical_router/http_request.pyc b/Testcases/cfgm_common/uve/physical_router/http_request.pyc Binary files differnew file mode 100644 index 0000000..8f6d434 --- /dev/null +++ b/Testcases/cfgm_common/uve/physical_router/http_request.pyc diff --git a/Testcases/cfgm_common/uve/physical_router/index.html b/Testcases/cfgm_common/uve/physical_router/index.html new file mode 100644 index 0000000..8e90634 --- /dev/null +++ b/Testcases/cfgm_common/uve/physical_router/index.html @@ -0,0 +1,9 @@ +<html><head> +<link href="style.css" rel="stylesheet" type="text/css"/> +<title>All Thrift declarations</title></head><body> +<h1>All Thrift declarations</h1> +<table><tr><th>Module</th><th>Services</th><th>Sandeshs</th><th>Data types</th><th>Constants</th></tr> +<tr> +<td>physical_router</td><td></td></tr> +</table> +</body></html> diff --git a/Testcases/cfgm_common/uve/physical_router/physical_router.html b/Testcases/cfgm_common/uve/physical_router/physical_router.html new file mode 100644 index 0000000..9c65e61 --- /dev/null +++ b/Testcases/cfgm_common/uve/physical_router/physical_router.html @@ -0,0 +1,14 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> +<link href="style.css" rel="stylesheet" type="text/css"/> +<title>Module: physical_router</title></head><body> +<h1>Module: physical_router</h1> +<table><tr><th>Module</th><th>Sandeshs</th></tr> +<tr> +<td>physical_router</td><td></td></tr> +</table> +<hr/><h2 id="Sandeshs"></h2> +</body></html>
diff --git a/Testcases/cfgm_common/uve/physical_router/physical_router.xml b/Testcases/cfgm_common/uve/physical_router/physical_router.xml new file mode 100644 index 0000000..e1befde --- /dev/null +++ b/Testcases/cfgm_common/uve/physical_router/physical_router.xml @@ -0,0 +1,3 @@ +<?xml-stylesheet type="text/xsl" href="/universal_parse.xsl"?> +<physical_router type="rlist"> +</physical_router> diff --git a/Testcases/cfgm_common/uve/physical_router/request_skeleton.py b/Testcases/cfgm_common/uve/physical_router/request_skeleton.py new file mode 100644 index 0000000..99c1196 --- /dev/null +++ b/Testcases/cfgm_common/uve/physical_router/request_skeleton.py @@ -0,0 +1,13 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + + +# This autogenerated skeleton file illustrates the implementation of +# derived class to handle the sandesh request. + diff --git a/Testcases/cfgm_common/uve/physical_router/request_skeleton.pyc b/Testcases/cfgm_common/uve/physical_router/request_skeleton.pyc Binary files differnew file mode 100644 index 0000000..70674a0 --- /dev/null +++ b/Testcases/cfgm_common/uve/physical_router/request_skeleton.pyc diff --git a/Testcases/cfgm_common/uve/physical_router/style.css b/Testcases/cfgm_common/uve/physical_router/style.css new file mode 100644 index 0000000..6dc2f22 --- /dev/null +++ b/Testcases/cfgm_common/uve/physical_router/style.css @@ -0,0 +1,10 @@ +/* Auto-generated CSS for generated Thrift docs */ +body { font-family: Tahoma, sans-serif; } +pre { background-color: #dddddd; padding: 6px; } +h3,h4 { padding-top: 0px; margin-top: 0px; } +div.definition { border: 1px solid gray; margin: 10px; padding: 10px; } +div.extends { margin: -0.5em 0 1em 5em } +table { border: 1px solid grey; border-collapse: collapse; } +td { border: 1px solid grey; padding: 1px 6px; vertical-align: top; } +th { border: 1px solid black; background-color: #bbbbbb; + text-align: left; padding: 1px 6px; } diff --git a/Testcases/cfgm_common/uve/physical_router/ttypes.py b/Testcases/cfgm_common/uve/physical_router/ttypes.py new file mode 100644 index 0000000..2f487ce --- /dev/null +++ b/Testcases/cfgm_common/uve/physical_router/ttypes.py @@ -0,0 +1,461 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +from pysandesh.Thrift import TType, TMessageType, TException + +from pysandesh.transport import TTransport +from pysandesh.protocol import TBinaryProtocol, TProtocol +try: + from pysandesh.protocol import fastbinary +except: + fastbinary = None + +import cStringIO +import uuid +import bottle +from pysandesh import sandesh_base +from pysandesh.sandesh_http import SandeshHttp +from pysandesh.sandesh_uve import SandeshUVETypeMaps +from pysandesh.util import UTCTimestampUsec, UTCTimestampUsecToString +from pysandesh.gen_py.sandesh.constants import * + + + +class UvePhysicalRouterConfig(object): + """ + Attributes: + - name + - deleted + - ip_address + - connected_bgp_router + - product_info + - auto_conf_enabled + - netconf_enabled_status + - last_commit_time + - last_commit_duration + - commit_status_message + - total_commits_sent_since_up + """ + + thrift_spec = ( + None, # 0 + (1, TType.STRING, 'name', None, None, ), # 1 + (2, TType.BOOL, 'deleted', None, None, ), # 2 + (3, TType.STRING, 'ip_address', None, None, ), # 3 + (4, TType.STRING, 'connected_bgp_router', None, None, ), # 4 + (5, TType.STRING, 'product_info', None, None, ), # 5 + (6, TType.BOOL, 'auto_conf_enabled', None, None, ), # 6 + (7, TType.BOOL, 'netconf_enabled_status', None, None, ), # 7 + (8, TType.STRING, 'last_commit_time', None, None, ), # 8 + (9, TType.STRING, 'last_commit_duration', None, None, ), # 9 + (10, TType.STRING, 'commit_status_message', None, None, ), # 10 + (11, TType.I32, 'total_commits_sent_since_up', None, None, ), # 11 + ) + + def __init__(self, name=None, deleted=None, ip_address=None, connected_bgp_router=None, product_info=None, auto_conf_enabled=None, netconf_enabled_status=None, last_commit_time=None, last_commit_duration=None, commit_status_message=None, total_commits_sent_since_up=None,): + self.name = name + self.deleted = deleted + self.ip_address = ip_address + self.connected_bgp_router = connected_bgp_router + self.product_info = product_info + self.auto_conf_enabled = auto_conf_enabled + self.netconf_enabled_status = netconf_enabled_status + self.last_commit_time = last_commit_time + self.last_commit_duration = last_commit_duration + self.commit_status_message = commit_status_message + self.total_commits_sent_since_up = total_commits_sent_since_up + self._table = 'ObjectPRouter' + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return 0 + read_cnt = 0 + length = iprot.readStructBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRING: + (length, self.name) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.BOOL: + (length, self.deleted) = iprot.readBool(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRING: + (length, self.ip_address) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.STRING: + (length, self.connected_bgp_router) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.STRING: + (length, self.product_info) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 6: + if ftype == TType.BOOL: + (length, self.auto_conf_enabled) = iprot.readBool(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 7: + if ftype == TType.BOOL: + (length, self.netconf_enabled_status) = iprot.readBool(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 8: + if ftype == TType.STRING: + (length, self.last_commit_time) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 9: + if ftype == TType.STRING: + (length, self.last_commit_duration) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 10: + if ftype == TType.STRING: + (length, self.commit_status_message) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 11: + if ftype == TType.I32: + (length, self.total_commits_sent_since_up) = iprot.readI32(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readStructEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeStructBegin('UvePhysicalRouterConfig') < 0: return -1 + if self.name is not None: + annotations = {} + if self._table is None or self._table is '': return -1 + annotations['key'] = self._table + if oprot.writeFieldBegin('name', TType.STRING, 1, annotations) < 0: return -1 + if oprot.writeString(self.name) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.deleted is not None: + annotations = {} + if oprot.writeFieldBegin('deleted', TType.BOOL, 2, annotations) < 0: return -1 + if oprot.writeBool(self.deleted) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.ip_address is not None: + annotations = {} + if oprot.writeFieldBegin('ip_address', TType.STRING, 3, annotations) < 0: return -1 + if oprot.writeString(self.ip_address) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.connected_bgp_router is not None: + annotations = {} + if oprot.writeFieldBegin('connected_bgp_router', TType.STRING, 4, annotations) < 0: return -1 + if oprot.writeString(self.connected_bgp_router) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.product_info is not None: + annotations = {} + if oprot.writeFieldBegin('product_info', TType.STRING, 5, annotations) < 0: return -1 + if oprot.writeString(self.product_info) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.auto_conf_enabled is not None: + annotations = {} + if oprot.writeFieldBegin('auto_conf_enabled', TType.BOOL, 6, annotations) < 0: return -1 + if oprot.writeBool(self.auto_conf_enabled) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.netconf_enabled_status is not None: + annotations = {} + if oprot.writeFieldBegin('netconf_enabled_status', TType.BOOL, 7, annotations) < 0: return -1 + if oprot.writeBool(self.netconf_enabled_status) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.last_commit_time is not None: + annotations = {} + if oprot.writeFieldBegin('last_commit_time', TType.STRING, 8, annotations) < 0: return -1 + if oprot.writeString(self.last_commit_time) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.last_commit_duration is not None: + annotations = {} + if oprot.writeFieldBegin('last_commit_duration', TType.STRING, 9, annotations) < 0: return -1 + if oprot.writeString(self.last_commit_duration) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.commit_status_message is not None: + annotations = {} + if oprot.writeFieldBegin('commit_status_message', TType.STRING, 10, annotations) < 0: return -1 + if oprot.writeString(self.commit_status_message) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.total_commits_sent_since_up is not None: + annotations = {} + if oprot.writeFieldBegin('total_commits_sent_since_up', TType.I32, 11, annotations) < 0: return -1 + if oprot.writeI32(self.total_commits_sent_since_up) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeStructEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def log(self): + log_str = cStringIO.StringIO() + if self.name is not None: + log_str.write('name = ') + log_str.write(self.name) + log_str.write(' ') + if self.deleted is not None: + log_str.write('deleted = ') + if self.deleted: + log_str.write('True') + else: + log_str.write('False') + log_str.write(' ') + if self.ip_address is not None: + log_str.write('ip_address = ') + log_str.write(self.ip_address) + log_str.write(' ') + if self.connected_bgp_router is not None: + log_str.write('connected_bgp_router = ') + log_str.write(self.connected_bgp_router) + log_str.write(' ') + if self.product_info is not None: + log_str.write('product_info = ') + log_str.write(self.product_info) + log_str.write(' ') + if self.auto_conf_enabled is not None: + log_str.write('auto_conf_enabled = ') + if self.auto_conf_enabled: + log_str.write('True') + else: + log_str.write('False') + log_str.write(' ') + if self.netconf_enabled_status is not None: + log_str.write('netconf_enabled_status = ') + if self.netconf_enabled_status: + log_str.write('True') + else: + log_str.write('False') + log_str.write(' ') + if self.last_commit_time is not None: + log_str.write('last_commit_time = ') + log_str.write(self.last_commit_time) + log_str.write(' ') + if self.last_commit_duration is not None: + log_str.write('last_commit_duration = ') + log_str.write(self.last_commit_duration) + log_str.write(' ') + if self.commit_status_message is not None: + log_str.write('commit_status_message = ') + log_str.write(self.commit_status_message) + log_str.write(' ') + if self.total_commits_sent_since_up is not None: + log_str.write('total_commits_sent_since_up = ') + log_str.write(str(self.total_commits_sent_since_up)) + log_str.write(' ') + return log_str.getvalue() + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class UvePhysicalRouterConfigTrace(sandesh_base.SandeshUVE): + + thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'data', (UvePhysicalRouterConfig, UvePhysicalRouterConfig.thrift_spec), None, ), # 1 + ) + + def __init__(self, data=None, table=None, sandesh=sandesh_base.sandesh_global): + sandesh_base.SandeshUVE.__init__(self) + self.data = data + self._scope = sandesh.scope() + self._module = sandesh.module() + self._source = sandesh.source_id() + self._node_type = sandesh.node_type() + self._instance_id = sandesh.instance_id() + self._seqnum = 0 + self._timestamp = UTCTimestampUsec() + self._versionsig = 147236693 + self._hints = 0 | SANDESH_KEY_HINT + if table is not None: + self.data._table = table + + def update_uve(self, tdata): + if self.data.name is not None: + tdata.name = self.data.name + if self.data.deleted is not None: + tdata.deleted = self.data.deleted + if self.data.ip_address is not None: + tdata.ip_address = self.data.ip_address + if self.data.connected_bgp_router is not None: + tdata.connected_bgp_router = self.data.connected_bgp_router + if self.data.product_info is not None: + tdata.product_info = self.data.product_info + if self.data.auto_conf_enabled is not None: + tdata.auto_conf_enabled = self.data.auto_conf_enabled + if self.data.netconf_enabled_status is not None: + tdata.netconf_enabled_status = self.data.netconf_enabled_status + if self.data.last_commit_time is not None: + tdata.last_commit_time = self.data.last_commit_time + if self.data.last_commit_duration is not None: + tdata.last_commit_duration = self.data.last_commit_duration + if self.data.commit_status_message is not None: + tdata.commit_status_message = self.data.commit_status_message + if self.data.total_commits_sent_since_up is not None: + tdata.total_commits_sent_since_up = self.data.total_commits_sent_since_up + return tdata + + def log(self, trace=False): + log_str = cStringIO.StringIO() + if trace: + log_str.write(str(self._timestamp)) + log_str.write(' ') + log_str.write('UvePhysicalRouterConfigTrace: ') + if self.data is not None: + log_str.write('data = ') + log_str.write('<< ') + log_str.write(self.data.log()) + log_str.write('>>') + log_str.write(' ') + return log_str.getvalue() + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return -1 + read_cnt = 0 + (length, sandesh_name) = iprot.readSandeshBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.data = UvePhysicalRouterConfig() + read_cnt += self.data.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readSandeshEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeSandeshBegin('UvePhysicalRouterConfigTrace') < 0: return -1 + if self.data is not None: + annotations = {} + if oprot.writeFieldBegin('data', TType.STRUCT, 1, annotations) < 0: return -1 + if self.data.write(oprot) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeSandeshEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def compare(self, other): + if not isinstance(other, self.__class__): + return False + if self.data != other.data: + return False + return True + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +_SANDESH_REQUEST_LIST = [ +] + + +_SANDESH_UVE_LIST = [ +'UvePhysicalRouterConfigTrace', +] + + +_SANDESH_UVE_DATA_LIST = [ +'UvePhysicalRouterConfig', +] + + +_SANDESH_ALARM_LIST = [ +] + + +_SANDESH_ALARM_DATA_LIST = [ +] diff --git a/Testcases/cfgm_common/uve/physical_router/ttypes.pyc b/Testcases/cfgm_common/uve/physical_router/ttypes.pyc Binary files differnew file mode 100644 index 0000000..3b39e02 --- /dev/null +++ b/Testcases/cfgm_common/uve/physical_router/ttypes.pyc diff --git a/Testcases/cfgm_common/uve/service_instance/__init__.py b/Testcases/cfgm_common/uve/service_instance/__init__.py new file mode 100644 index 0000000..adefd8e --- /dev/null +++ b/Testcases/cfgm_common/uve/service_instance/__init__.py @@ -0,0 +1 @@ +__all__ = ['ttypes', 'constants'] diff --git a/Testcases/cfgm_common/uve/service_instance/__init__.pyc b/Testcases/cfgm_common/uve/service_instance/__init__.pyc Binary files differnew file mode 100644 index 0000000..0841faa --- /dev/null +++ b/Testcases/cfgm_common/uve/service_instance/__init__.pyc diff --git a/Testcases/cfgm_common/uve/service_instance/constants.py b/Testcases/cfgm_common/uve/service_instance/constants.py new file mode 100644 index 0000000..aadd78e --- /dev/null +++ b/Testcases/cfgm_common/uve/service_instance/constants.py @@ -0,0 +1,12 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +from pysandesh.Thrift import TType, TMessageType, TException +from ttypes import * + diff --git a/Testcases/cfgm_common/uve/service_instance/constants.pyc b/Testcases/cfgm_common/uve/service_instance/constants.pyc Binary files differnew file mode 100644 index 0000000..e8ee618 --- /dev/null +++ b/Testcases/cfgm_common/uve/service_instance/constants.pyc diff --git a/Testcases/cfgm_common/uve/service_instance/http_request.py b/Testcases/cfgm_common/uve/service_instance/http_request.py new file mode 100644 index 0000000..8baea4f --- /dev/null +++ b/Testcases/cfgm_common/uve/service_instance/http_request.py @@ -0,0 +1,14 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +import ttypes + +_HTTP_REQUEST_LIST = [ +] + diff --git a/Testcases/cfgm_common/uve/service_instance/http_request.pyc b/Testcases/cfgm_common/uve/service_instance/http_request.pyc Binary files differnew file mode 100644 index 0000000..c14433a --- /dev/null +++ b/Testcases/cfgm_common/uve/service_instance/http_request.pyc diff --git a/Testcases/cfgm_common/uve/service_instance/index.html b/Testcases/cfgm_common/uve/service_instance/index.html new file mode 100644 index 0000000..6f164e3 --- /dev/null +++ b/Testcases/cfgm_common/uve/service_instance/index.html @@ -0,0 +1,9 @@ +<html><head> +<link href="style.css" rel="stylesheet" type="text/css"/> +<title>All Thrift declarations</title></head><body> +<h1>All Thrift declarations</h1> +<table><tr><th>Module</th><th>Services</th><th>Sandeshs</th><th>Data types</th><th>Constants</th></tr> +<tr> +<td>service_instance</td><td></td></tr> +</table> +</body></html> diff --git a/Testcases/cfgm_common/uve/service_instance/request_skeleton.py b/Testcases/cfgm_common/uve/service_instance/request_skeleton.py new file mode 100644 index 0000000..99c1196 --- /dev/null +++ b/Testcases/cfgm_common/uve/service_instance/request_skeleton.py @@ -0,0 +1,13 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + + +# This autogenerated skeleton file illustrates the implementation of +# derived class to handle the sandesh request. + diff --git a/Testcases/cfgm_common/uve/service_instance/request_skeleton.pyc b/Testcases/cfgm_common/uve/service_instance/request_skeleton.pyc Binary files differnew file mode 100644 index 0000000..96f839a --- /dev/null +++ b/Testcases/cfgm_common/uve/service_instance/request_skeleton.pyc diff --git a/Testcases/cfgm_common/uve/service_instance/service_instance.html b/Testcases/cfgm_common/uve/service_instance/service_instance.html new file mode 100644 index 0000000..75ca67b --- /dev/null +++ b/Testcases/cfgm_common/uve/service_instance/service_instance.html @@ -0,0 +1,14 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> +<link href="style.css" rel="stylesheet" type="text/css"/> +<title>Module: service_instance</title></head><body> +<h1>Module: service_instance</h1> +<table><tr><th>Module</th><th>Sandeshs</th></tr> +<tr> +<td>service_instance</td><td></td></tr> +</table> +<hr/><h2 id="Sandeshs"></h2> +</body></html>
diff --git a/Testcases/cfgm_common/uve/service_instance/service_instance.xml b/Testcases/cfgm_common/uve/service_instance/service_instance.xml new file mode 100644 index 0000000..4ccfff9 --- /dev/null +++ b/Testcases/cfgm_common/uve/service_instance/service_instance.xml @@ -0,0 +1,3 @@ +<?xml-stylesheet type="text/xsl" href="/universal_parse.xsl"?> +<service_instance type="rlist"> +</service_instance> diff --git a/Testcases/cfgm_common/uve/service_instance/style.css b/Testcases/cfgm_common/uve/service_instance/style.css new file mode 100644 index 0000000..6dc2f22 --- /dev/null +++ b/Testcases/cfgm_common/uve/service_instance/style.css @@ -0,0 +1,10 @@ +/* Auto-generated CSS for generated Thrift docs */ +body { font-family: Tahoma, sans-serif; } +pre { background-color: #dddddd; padding: 6px; } +h3,h4 { padding-top: 0px; margin-top: 0px; } +div.definition { border: 1px solid gray; margin: 10px; padding: 10px; } +div.extends { margin: -0.5em 0 1em 5em } +table { border: 1px solid grey; border-collapse: collapse; } +td { border: 1px solid grey; padding: 1px 6px; vertical-align: top; } +th { border: 1px solid black; background-color: #bbbbbb; + text-align: left; padding: 1px 6px; } diff --git a/Testcases/cfgm_common/uve/service_instance/ttypes.py b/Testcases/cfgm_common/uve/service_instance/ttypes.py new file mode 100644 index 0000000..c8cb3a4 --- /dev/null +++ b/Testcases/cfgm_common/uve/service_instance/ttypes.py @@ -0,0 +1,484 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +from pysandesh.Thrift import TType, TMessageType, TException + +from pysandesh.transport import TTransport +from pysandesh.protocol import TBinaryProtocol, TProtocol +try: + from pysandesh.protocol import fastbinary +except: + fastbinary = None + +import cStringIO +import uuid +import bottle +from pysandesh import sandesh_base +from pysandesh.sandesh_http import SandeshHttp +from pysandesh.sandesh_uve import SandeshUVETypeMaps +from pysandesh.util import UTCTimestampUsec, UTCTimestampUsecToString +from pysandesh.gen_py.sandesh.constants import * + + + +class UveSvcInstanceVMConfig(object): + """ + Attributes: + - uuid + - vr_name + - ha + """ + + thrift_spec = ( + None, # 0 + (1, TType.STRING, 'uuid', None, None, ), # 1 + (2, TType.STRING, 'vr_name', None, None, ), # 2 + (3, TType.STRING, 'ha', None, None, ), # 3 + ) + + def __init__(self, uuid=None, vr_name=None, ha=None,): + self.uuid = uuid + self.vr_name = vr_name + self.ha = ha + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return 0 + read_cnt = 0 + length = iprot.readStructBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRING: + (length, self.uuid) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRING: + (length, self.vr_name) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRING: + (length, self.ha) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readStructEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeStructBegin('UveSvcInstanceVMConfig') < 0: return -1 + if self.uuid is not None: + annotations = {} + if oprot.writeFieldBegin('uuid', TType.STRING, 1, annotations) < 0: return -1 + if oprot.writeString(self.uuid) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.vr_name is not None: + annotations = {} + if oprot.writeFieldBegin('vr_name', TType.STRING, 2, annotations) < 0: return -1 + if oprot.writeString(self.vr_name) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.ha is not None: + annotations = {} + if oprot.writeFieldBegin('ha', TType.STRING, 3, annotations) < 0: return -1 + if oprot.writeString(self.ha) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeStructEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def log(self): + log_str = cStringIO.StringIO() + if self.uuid is not None: + log_str.write('uuid = ') + log_str.write(self.uuid) + log_str.write(' ') + if self.vr_name is not None: + log_str.write('vr_name = ') + log_str.write(self.vr_name) + log_str.write(' ') + if self.ha is not None: + log_str.write('ha = ') + log_str.write(self.ha) + log_str.write(' ') + return log_str.getvalue() + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class UveSvcInstanceConfig(object): + """ + Attributes: + - name + - deleted + - st_name + - status + - create_ts + - vm_list + """ + + thrift_spec = ( + None, # 0 + (1, TType.STRING, 'name', None, None, ), # 1 + (2, TType.BOOL, 'deleted', None, None, ), # 2 + (3, TType.STRING, 'st_name', None, None, ), # 3 + (4, TType.STRING, 'status', None, None, ), # 4 + (5, TType.I64, 'create_ts', None, None, ), # 5 + (6, TType.LIST, 'vm_list', (TType.STRUCT,(UveSvcInstanceVMConfig, UveSvcInstanceVMConfig.thrift_spec)), None, ), # 6 + ) + + def __init__(self, name=None, deleted=None, st_name=None, status=None, create_ts=None, vm_list=None,): + self.name = name + self.deleted = deleted + self.st_name = st_name + self.status = status + self.create_ts = create_ts + self.vm_list = vm_list + self._table = 'ObjectSITable' + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return 0 + read_cnt = 0 + length = iprot.readStructBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRING: + (length, self.name) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.BOOL: + (length, self.deleted) = iprot.readBool(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRING: + (length, self.st_name) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.STRING: + (length, self.status) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.I64: + (length, self.create_ts) = iprot.readI64(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 6: + if ftype == TType.LIST: + self.vm_list = [] + (length, _etype3, _size0) = iprot.readListBegin() + read_cnt += length + for _i4 in xrange(_size0): + _elem5 = UveSvcInstanceVMConfig() + read_cnt += _elem5.read(iprot) + self.vm_list.append(_elem5) + read_cnt += iprot.readListEnd() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readStructEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeStructBegin('UveSvcInstanceConfig') < 0: return -1 + if self.name is not None: + annotations = {} + if self._table is None or self._table is '': return -1 + annotations['key'] = self._table + if oprot.writeFieldBegin('name', TType.STRING, 1, annotations) < 0: return -1 + if oprot.writeString(self.name) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.deleted is not None: + annotations = {} + if oprot.writeFieldBegin('deleted', TType.BOOL, 2, annotations) < 0: return -1 + if oprot.writeBool(self.deleted) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.st_name is not None: + annotations = {} + if oprot.writeFieldBegin('st_name', TType.STRING, 3, annotations) < 0: return -1 + if oprot.writeString(self.st_name) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.status is not None: + annotations = {} + if oprot.writeFieldBegin('status', TType.STRING, 4, annotations) < 0: return -1 + if oprot.writeString(self.status) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.create_ts is not None: + annotations = {} + if oprot.writeFieldBegin('create_ts', TType.I64, 5, annotations) < 0: return -1 + if oprot.writeI64(self.create_ts) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.vm_list is not None: + annotations = {} + if oprot.writeFieldBegin('vm_list', TType.LIST, 6, annotations) < 0: return -1 + if oprot.writeListBegin(TType.STRUCT, len(self.vm_list)) < 0: return -1 + for iter6 in self.vm_list: + if iter6.write(oprot) < 0: return -1 + if oprot.writeListEnd() < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeStructEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def log(self): + log_str = cStringIO.StringIO() + if self.name is not None: + log_str.write('name = ') + log_str.write(self.name) + log_str.write(' ') + if self.deleted is not None: + log_str.write('deleted = ') + if self.deleted: + log_str.write('True') + else: + log_str.write('False') + log_str.write(' ') + if self.st_name is not None: + log_str.write('st_name = ') + log_str.write(self.st_name) + log_str.write(' ') + if self.status is not None: + log_str.write('status = ') + log_str.write(self.status) + log_str.write(' ') + if self.create_ts is not None: + log_str.write('create_ts = ') + log_str.write(str(self.create_ts)) + log_str.write(' ') + if self.vm_list is not None: + log_str.write('vm_list = ') + log_str.write('[ ') + for iter7 in self.vm_list: + log_str.write('<< ') + log_str.write(iter7.log()) + log_str.write('>>') + log_str.write(', ') + log_str.write(' ]') + log_str.write(' ') + return log_str.getvalue() + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class UveSvcInstanceConfigTrace(sandesh_base.SandeshUVE): + + thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'data', (UveSvcInstanceConfig, UveSvcInstanceConfig.thrift_spec), None, ), # 1 + ) + + def __init__(self, data=None, table=None, sandesh=sandesh_base.sandesh_global): + sandesh_base.SandeshUVE.__init__(self) + self.data = data + self._scope = sandesh.scope() + self._module = sandesh.module() + self._source = sandesh.source_id() + self._node_type = sandesh.node_type() + self._instance_id = sandesh.instance_id() + self._seqnum = 0 + self._timestamp = UTCTimestampUsec() + self._versionsig = 1572544528 + self._hints = 0 | SANDESH_KEY_HINT + if table is not None: + self.data._table = table + + def update_uve(self, tdata): + if self.data.name is not None: + tdata.name = self.data.name + if self.data.deleted is not None: + tdata.deleted = self.data.deleted + if self.data.st_name is not None: + tdata.st_name = self.data.st_name + if self.data.status is not None: + tdata.status = self.data.status + if self.data.create_ts is not None: + tdata.create_ts = self.data.create_ts + if self.data.vm_list is not None: + tdata.vm_list = self.data.vm_list + return tdata + + def log(self, trace=False): + log_str = cStringIO.StringIO() + if trace: + log_str.write(str(self._timestamp)) + log_str.write(' ') + log_str.write('UveSvcInstanceConfigTrace: ') + if self.data is not None: + log_str.write('data = ') + log_str.write('<< ') + log_str.write(self.data.log()) + log_str.write('>>') + log_str.write(' ') + return log_str.getvalue() + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return -1 + read_cnt = 0 + (length, sandesh_name) = iprot.readSandeshBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.data = UveSvcInstanceConfig() + read_cnt += self.data.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readSandeshEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeSandeshBegin('UveSvcInstanceConfigTrace') < 0: return -1 + if self.data is not None: + annotations = {} + if oprot.writeFieldBegin('data', TType.STRUCT, 1, annotations) < 0: return -1 + if self.data.write(oprot) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeSandeshEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def compare(self, other): + if not isinstance(other, self.__class__): + return False + if self.data != other.data: + return False + return True + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +_SANDESH_REQUEST_LIST = [ +] + + +_SANDESH_UVE_LIST = [ +'UveSvcInstanceConfigTrace', +] + + +_SANDESH_UVE_DATA_LIST = [ +'UveSvcInstanceConfig', +] + + +_SANDESH_ALARM_LIST = [ +] + + +_SANDESH_ALARM_DATA_LIST = [ +] diff --git a/Testcases/cfgm_common/uve/service_instance/ttypes.pyc b/Testcases/cfgm_common/uve/service_instance/ttypes.pyc Binary files differnew file mode 100644 index 0000000..d0f3ce4 --- /dev/null +++ b/Testcases/cfgm_common/uve/service_instance/ttypes.pyc diff --git a/Testcases/cfgm_common/uve/virtual_machine/__init__.py b/Testcases/cfgm_common/uve/virtual_machine/__init__.py new file mode 100644 index 0000000..adefd8e --- /dev/null +++ b/Testcases/cfgm_common/uve/virtual_machine/__init__.py @@ -0,0 +1 @@ +__all__ = ['ttypes', 'constants'] diff --git a/Testcases/cfgm_common/uve/virtual_machine/__init__.pyc b/Testcases/cfgm_common/uve/virtual_machine/__init__.pyc Binary files differnew file mode 100644 index 0000000..9037b16 --- /dev/null +++ b/Testcases/cfgm_common/uve/virtual_machine/__init__.pyc diff --git a/Testcases/cfgm_common/uve/virtual_machine/constants.py b/Testcases/cfgm_common/uve/virtual_machine/constants.py new file mode 100644 index 0000000..aadd78e --- /dev/null +++ b/Testcases/cfgm_common/uve/virtual_machine/constants.py @@ -0,0 +1,12 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +from pysandesh.Thrift import TType, TMessageType, TException +from ttypes import * + diff --git a/Testcases/cfgm_common/uve/virtual_machine/constants.pyc b/Testcases/cfgm_common/uve/virtual_machine/constants.pyc Binary files differnew file mode 100644 index 0000000..5b0397a --- /dev/null +++ b/Testcases/cfgm_common/uve/virtual_machine/constants.pyc diff --git a/Testcases/cfgm_common/uve/virtual_machine/http_request.py b/Testcases/cfgm_common/uve/virtual_machine/http_request.py new file mode 100644 index 0000000..8baea4f --- /dev/null +++ b/Testcases/cfgm_common/uve/virtual_machine/http_request.py @@ -0,0 +1,14 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +import ttypes + +_HTTP_REQUEST_LIST = [ +] + diff --git a/Testcases/cfgm_common/uve/virtual_machine/http_request.pyc b/Testcases/cfgm_common/uve/virtual_machine/http_request.pyc Binary files differnew file mode 100644 index 0000000..ba5b9e6 --- /dev/null +++ b/Testcases/cfgm_common/uve/virtual_machine/http_request.pyc diff --git a/Testcases/cfgm_common/uve/virtual_machine/index.html b/Testcases/cfgm_common/uve/virtual_machine/index.html new file mode 100644 index 0000000..656351f --- /dev/null +++ b/Testcases/cfgm_common/uve/virtual_machine/index.html @@ -0,0 +1,9 @@ +<html><head> +<link href="style.css" rel="stylesheet" type="text/css"/> +<title>All Thrift declarations</title></head><body> +<h1>All Thrift declarations</h1> +<table><tr><th>Module</th><th>Services</th><th>Sandeshs</th><th>Data types</th><th>Constants</th></tr> +<tr> +<td>virtual_machine</td><td></td></tr> +</table> +</body></html> diff --git a/Testcases/cfgm_common/uve/virtual_machine/request_skeleton.py b/Testcases/cfgm_common/uve/virtual_machine/request_skeleton.py new file mode 100644 index 0000000..99c1196 --- /dev/null +++ b/Testcases/cfgm_common/uve/virtual_machine/request_skeleton.py @@ -0,0 +1,13 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + + +# This autogenerated skeleton file illustrates the implementation of +# derived class to handle the sandesh request. + diff --git a/Testcases/cfgm_common/uve/virtual_machine/request_skeleton.pyc b/Testcases/cfgm_common/uve/virtual_machine/request_skeleton.pyc Binary files differnew file mode 100644 index 0000000..7a0ffff --- /dev/null +++ b/Testcases/cfgm_common/uve/virtual_machine/request_skeleton.pyc diff --git a/Testcases/cfgm_common/uve/virtual_machine/style.css b/Testcases/cfgm_common/uve/virtual_machine/style.css new file mode 100644 index 0000000..6dc2f22 --- /dev/null +++ b/Testcases/cfgm_common/uve/virtual_machine/style.css @@ -0,0 +1,10 @@ +/* Auto-generated CSS for generated Thrift docs */ +body { font-family: Tahoma, sans-serif; } +pre { background-color: #dddddd; padding: 6px; } +h3,h4 { padding-top: 0px; margin-top: 0px; } +div.definition { border: 1px solid gray; margin: 10px; padding: 10px; } +div.extends { margin: -0.5em 0 1em 5em } +table { border: 1px solid grey; border-collapse: collapse; } +td { border: 1px solid grey; padding: 1px 6px; vertical-align: top; } +th { border: 1px solid black; background-color: #bbbbbb; + text-align: left; padding: 1px 6px; } diff --git a/Testcases/cfgm_common/uve/virtual_machine/ttypes.py b/Testcases/cfgm_common/uve/virtual_machine/ttypes.py new file mode 100644 index 0000000..d2a95f0 --- /dev/null +++ b/Testcases/cfgm_common/uve/virtual_machine/ttypes.py @@ -0,0 +1,517 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +from pysandesh.Thrift import TType, TMessageType, TException + +from pysandesh.transport import TTransport +from pysandesh.protocol import TBinaryProtocol, TProtocol +try: + from pysandesh.protocol import fastbinary +except: + fastbinary = None + +import cStringIO +import uuid +import bottle +from pysandesh import sandesh_base +from pysandesh.sandesh_http import SandeshHttp +from pysandesh.sandesh_uve import SandeshUVETypeMaps +from pysandesh.util import UTCTimestampUsec, UTCTimestampUsecToString +from pysandesh.gen_py.sandesh.constants import * + + + +class VmInterfaceConfig(object): + """ + Attributes: + - name + - ip_address + - virtual_network + - floating_ips + """ + + thrift_spec = ( + None, # 0 + (1, TType.STRING, 'name', None, None, ), # 1 + (2, TType.STRING, 'ip_address', None, None, ), # 2 + (3, TType.STRING, 'virtual_network', None, None, ), # 3 + (4, TType.LIST, 'floating_ips', (TType.STRING,None), None, ), # 4 + ) + + def __init__(self, name=None, ip_address=None, virtual_network=None, floating_ips=None,): + self.name = name + self.ip_address = ip_address + self.virtual_network = virtual_network + self.floating_ips = floating_ips + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return 0 + read_cnt = 0 + length = iprot.readStructBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRING: + (length, self.name) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRING: + (length, self.ip_address) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRING: + (length, self.virtual_network) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.LIST: + self.floating_ips = [] + (length, _etype3, _size0) = iprot.readListBegin() + read_cnt += length + for _i4 in xrange(_size0): + read_cnt += iprot.readContainerElementBegin() + (length, _elem5) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + self.floating_ips.append(_elem5) + read_cnt += iprot.readContainerElementEnd() + read_cnt += iprot.readListEnd() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readStructEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeStructBegin('VmInterfaceConfig') < 0: return -1 + if self.name is not None: + annotations = {} + if oprot.writeFieldBegin('name', TType.STRING, 1, annotations) < 0: return -1 + if oprot.writeString(self.name) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.ip_address is not None: + annotations = {} + if oprot.writeFieldBegin('ip_address', TType.STRING, 2, annotations) < 0: return -1 + if oprot.writeString(self.ip_address) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.virtual_network is not None: + annotations = {} + annotations['aggtype'] = 'listkey' + if oprot.writeFieldBegin('virtual_network', TType.STRING, 3, annotations) < 0: return -1 + if oprot.writeString(self.virtual_network) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.floating_ips is not None: + annotations = {} + if oprot.writeFieldBegin('floating_ips', TType.LIST, 4, annotations) < 0: return -1 + if oprot.writeListBegin(TType.STRING, len(self.floating_ips)) < 0: return -1 + for iter6 in self.floating_ips: + if oprot.writeContainerElementBegin() < 0: return -1 + if oprot.writeString(iter6) < 0: return -1 + if oprot.writeContainerElementEnd() < 0: return -1 + if oprot.writeListEnd() < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeStructEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def log(self): + log_str = cStringIO.StringIO() + if self.name is not None: + log_str.write('name = ') + log_str.write(self.name) + log_str.write(' ') + if self.ip_address is not None: + log_str.write('ip_address = ') + log_str.write(self.ip_address) + log_str.write(' ') + if self.virtual_network is not None: + log_str.write('virtual_network = ') + log_str.write(self.virtual_network) + log_str.write(' ') + if self.floating_ips is not None: + log_str.write('floating_ips = ') + log_str.write('[ ') + for iter7 in self.floating_ips: + log_str.write(iter7) + log_str.write(', ') + log_str.write(' ]') + log_str.write(' ') + return log_str.getvalue() + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class UveVirtualMachineConfig(object): + """ + Attributes: + - name + - deleted + - attached_groups + - interface_list + - vrouter + """ + + thrift_spec = ( + None, # 0 + (1, TType.STRING, 'name', None, None, ), # 1 + (2, TType.BOOL, 'deleted', None, None, ), # 2 + (3, TType.LIST, 'attached_groups', (TType.STRING,None), None, ), # 3 + (4, TType.LIST, 'interface_list', (TType.STRUCT,(VmInterfaceConfig, VmInterfaceConfig.thrift_spec)), None, ), # 4 + (5, TType.STRING, 'vrouter', None, None, ), # 5 + ) + + def __init__(self, name=None, deleted=None, attached_groups=None, interface_list=None, vrouter=None,): + self.name = name + self.deleted = deleted + self.attached_groups = attached_groups + self.interface_list = interface_list + self.vrouter = vrouter + self._table = 'ObjectVMTable' + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return 0 + read_cnt = 0 + length = iprot.readStructBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRING: + (length, self.name) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.BOOL: + (length, self.deleted) = iprot.readBool(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.LIST: + self.attached_groups = [] + (length, _etype11, _size8) = iprot.readListBegin() + read_cnt += length + for _i12 in xrange(_size8): + read_cnt += iprot.readContainerElementBegin() + (length, _elem13) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + self.attached_groups.append(_elem13) + read_cnt += iprot.readContainerElementEnd() + read_cnt += iprot.readListEnd() + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.LIST: + self.interface_list = [] + (length, _etype17, _size14) = iprot.readListBegin() + read_cnt += length + for _i18 in xrange(_size14): + _elem19 = VmInterfaceConfig() + read_cnt += _elem19.read(iprot) + self.interface_list.append(_elem19) + read_cnt += iprot.readListEnd() + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.STRING: + (length, self.vrouter) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readStructEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeStructBegin('UveVirtualMachineConfig') < 0: return -1 + if self.name is not None: + annotations = {} + if self._table is None or self._table is '': return -1 + annotations['key'] = self._table + if oprot.writeFieldBegin('name', TType.STRING, 1, annotations) < 0: return -1 + if oprot.writeString(self.name) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.deleted is not None: + annotations = {} + if oprot.writeFieldBegin('deleted', TType.BOOL, 2, annotations) < 0: return -1 + if oprot.writeBool(self.deleted) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.attached_groups is not None: + annotations = {} + if oprot.writeFieldBegin('attached_groups', TType.LIST, 3, annotations) < 0: return -1 + if oprot.writeListBegin(TType.STRING, len(self.attached_groups)) < 0: return -1 + for iter20 in self.attached_groups: + if oprot.writeContainerElementBegin() < 0: return -1 + if oprot.writeString(iter20) < 0: return -1 + if oprot.writeContainerElementEnd() < 0: return -1 + if oprot.writeListEnd() < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.interface_list is not None: + annotations = {} + if oprot.writeFieldBegin('interface_list', TType.LIST, 4, annotations) < 0: return -1 + if oprot.writeListBegin(TType.STRUCT, len(self.interface_list)) < 0: return -1 + for iter21 in self.interface_list: + if iter21.write(oprot) < 0: return -1 + if oprot.writeListEnd() < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.vrouter is not None: + annotations = {} + if oprot.writeFieldBegin('vrouter', TType.STRING, 5, annotations) < 0: return -1 + if oprot.writeString(self.vrouter) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeStructEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def log(self): + log_str = cStringIO.StringIO() + if self.name is not None: + log_str.write('name = ') + log_str.write(self.name) + log_str.write(' ') + if self.deleted is not None: + log_str.write('deleted = ') + if self.deleted: + log_str.write('True') + else: + log_str.write('False') + log_str.write(' ') + if self.attached_groups is not None: + log_str.write('attached_groups = ') + log_str.write('[ ') + for iter22 in self.attached_groups: + log_str.write(iter22) + log_str.write(', ') + log_str.write(' ]') + log_str.write(' ') + if self.interface_list is not None: + log_str.write('interface_list = ') + log_str.write('[ ') + for iter23 in self.interface_list: + log_str.write('<< ') + log_str.write(iter23.log()) + log_str.write('>>') + log_str.write(', ') + log_str.write(' ]') + log_str.write(' ') + if self.vrouter is not None: + log_str.write('vrouter = ') + log_str.write(self.vrouter) + log_str.write(' ') + return log_str.getvalue() + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class UveVirtualMachineConfigTrace(sandesh_base.SandeshUVE): + + thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'data', (UveVirtualMachineConfig, UveVirtualMachineConfig.thrift_spec), None, ), # 1 + ) + + def __init__(self, data=None, table=None, sandesh=sandesh_base.sandesh_global): + sandesh_base.SandeshUVE.__init__(self) + self.data = data + self._scope = sandesh.scope() + self._module = sandesh.module() + self._source = sandesh.source_id() + self._node_type = sandesh.node_type() + self._instance_id = sandesh.instance_id() + self._seqnum = 0 + self._timestamp = UTCTimestampUsec() + self._versionsig = 4221818251 + self._hints = 0 | SANDESH_KEY_HINT + if table is not None: + self.data._table = table + + def update_uve(self, tdata): + if self.data.name is not None: + tdata.name = self.data.name + if self.data.deleted is not None: + tdata.deleted = self.data.deleted + if self.data.attached_groups is not None: + tdata.attached_groups = self.data.attached_groups + if self.data.interface_list is not None: + tdata.interface_list = self.data.interface_list + if self.data.vrouter is not None: + tdata.vrouter = self.data.vrouter + return tdata + + def log(self, trace=False): + log_str = cStringIO.StringIO() + if trace: + log_str.write(str(self._timestamp)) + log_str.write(' ') + log_str.write('UveVirtualMachineConfigTrace: ') + if self.data is not None: + log_str.write('data = ') + log_str.write('<< ') + log_str.write(self.data.log()) + log_str.write('>>') + log_str.write(' ') + return log_str.getvalue() + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return -1 + read_cnt = 0 + (length, sandesh_name) = iprot.readSandeshBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.data = UveVirtualMachineConfig() + read_cnt += self.data.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readSandeshEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeSandeshBegin('UveVirtualMachineConfigTrace') < 0: return -1 + if self.data is not None: + annotations = {} + if oprot.writeFieldBegin('data', TType.STRUCT, 1, annotations) < 0: return -1 + if self.data.write(oprot) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeSandeshEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def compare(self, other): + if not isinstance(other, self.__class__): + return False + if self.data != other.data: + return False + return True + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +_SANDESH_REQUEST_LIST = [ +] + + +_SANDESH_UVE_LIST = [ +'UveVirtualMachineConfigTrace', +] + + +_SANDESH_UVE_DATA_LIST = [ +'UveVirtualMachineConfig', +] + + +_SANDESH_ALARM_LIST = [ +] + + +_SANDESH_ALARM_DATA_LIST = [ +] diff --git a/Testcases/cfgm_common/uve/virtual_machine/ttypes.pyc b/Testcases/cfgm_common/uve/virtual_machine/ttypes.pyc Binary files differnew file mode 100644 index 0000000..44085c2 --- /dev/null +++ b/Testcases/cfgm_common/uve/virtual_machine/ttypes.pyc diff --git a/Testcases/cfgm_common/uve/virtual_machine/virtual_machine.html b/Testcases/cfgm_common/uve/virtual_machine/virtual_machine.html new file mode 100644 index 0000000..ab3f29d --- /dev/null +++ b/Testcases/cfgm_common/uve/virtual_machine/virtual_machine.html @@ -0,0 +1,14 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> +<link href="style.css" rel="stylesheet" type="text/css"/> +<title>Module: virtual_machine</title></head><body> +<h1>Module: virtual_machine</h1> +<table><tr><th>Module</th><th>Sandeshs</th></tr> +<tr> +<td>virtual_machine</td><td></td></tr> +</table> +<hr/><h2 id="Sandeshs"></h2> +</body></html>
diff --git a/Testcases/cfgm_common/uve/virtual_machine/virtual_machine.xml b/Testcases/cfgm_common/uve/virtual_machine/virtual_machine.xml new file mode 100644 index 0000000..72fb587 --- /dev/null +++ b/Testcases/cfgm_common/uve/virtual_machine/virtual_machine.xml @@ -0,0 +1,3 @@ +<?xml-stylesheet type="text/xsl" href="/universal_parse.xsl"?> +<virtual_machine type="rlist"> +</virtual_machine> diff --git a/Testcases/cfgm_common/uve/virtual_network/__init__.py b/Testcases/cfgm_common/uve/virtual_network/__init__.py new file mode 100644 index 0000000..adefd8e --- /dev/null +++ b/Testcases/cfgm_common/uve/virtual_network/__init__.py @@ -0,0 +1 @@ +__all__ = ['ttypes', 'constants'] diff --git a/Testcases/cfgm_common/uve/virtual_network/__init__.pyc b/Testcases/cfgm_common/uve/virtual_network/__init__.pyc Binary files differnew file mode 100644 index 0000000..5e20ef0 --- /dev/null +++ b/Testcases/cfgm_common/uve/virtual_network/__init__.pyc diff --git a/Testcases/cfgm_common/uve/virtual_network/constants.py b/Testcases/cfgm_common/uve/virtual_network/constants.py new file mode 100644 index 0000000..aadd78e --- /dev/null +++ b/Testcases/cfgm_common/uve/virtual_network/constants.py @@ -0,0 +1,12 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +from pysandesh.Thrift import TType, TMessageType, TException +from ttypes import * + diff --git a/Testcases/cfgm_common/uve/virtual_network/constants.pyc b/Testcases/cfgm_common/uve/virtual_network/constants.pyc Binary files differnew file mode 100644 index 0000000..13aede5 --- /dev/null +++ b/Testcases/cfgm_common/uve/virtual_network/constants.pyc diff --git a/Testcases/cfgm_common/uve/virtual_network/http_request.py b/Testcases/cfgm_common/uve/virtual_network/http_request.py new file mode 100644 index 0000000..8baea4f --- /dev/null +++ b/Testcases/cfgm_common/uve/virtual_network/http_request.py @@ -0,0 +1,14 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +import ttypes + +_HTTP_REQUEST_LIST = [ +] + diff --git a/Testcases/cfgm_common/uve/virtual_network/http_request.pyc b/Testcases/cfgm_common/uve/virtual_network/http_request.pyc Binary files differnew file mode 100644 index 0000000..cebf344 --- /dev/null +++ b/Testcases/cfgm_common/uve/virtual_network/http_request.pyc diff --git a/Testcases/cfgm_common/uve/virtual_network/index.html b/Testcases/cfgm_common/uve/virtual_network/index.html new file mode 100644 index 0000000..0884ed5 --- /dev/null +++ b/Testcases/cfgm_common/uve/virtual_network/index.html @@ -0,0 +1,9 @@ +<html><head> +<link href="style.css" rel="stylesheet" type="text/css"/> +<title>All Thrift declarations</title></head><body> +<h1>All Thrift declarations</h1> +<table><tr><th>Module</th><th>Services</th><th>Sandeshs</th><th>Data types</th><th>Constants</th></tr> +<tr> +<td>virtual_network</td><td></td></tr> +</table> +</body></html> diff --git a/Testcases/cfgm_common/uve/virtual_network/request_skeleton.py b/Testcases/cfgm_common/uve/virtual_network/request_skeleton.py new file mode 100644 index 0000000..99c1196 --- /dev/null +++ b/Testcases/cfgm_common/uve/virtual_network/request_skeleton.py @@ -0,0 +1,13 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + + +# This autogenerated skeleton file illustrates the implementation of +# derived class to handle the sandesh request. + diff --git a/Testcases/cfgm_common/uve/virtual_network/request_skeleton.pyc b/Testcases/cfgm_common/uve/virtual_network/request_skeleton.pyc Binary files differnew file mode 100644 index 0000000..438188b --- /dev/null +++ b/Testcases/cfgm_common/uve/virtual_network/request_skeleton.pyc diff --git a/Testcases/cfgm_common/uve/virtual_network/style.css b/Testcases/cfgm_common/uve/virtual_network/style.css new file mode 100644 index 0000000..6dc2f22 --- /dev/null +++ b/Testcases/cfgm_common/uve/virtual_network/style.css @@ -0,0 +1,10 @@ +/* Auto-generated CSS for generated Thrift docs */ +body { font-family: Tahoma, sans-serif; } +pre { background-color: #dddddd; padding: 6px; } +h3,h4 { padding-top: 0px; margin-top: 0px; } +div.definition { border: 1px solid gray; margin: 10px; padding: 10px; } +div.extends { margin: -0.5em 0 1em 5em } +table { border: 1px solid grey; border-collapse: collapse; } +td { border: 1px solid grey; padding: 1px 6px; vertical-align: top; } +th { border: 1px solid black; background-color: #bbbbbb; + text-align: left; padding: 1px 6px; } diff --git a/Testcases/cfgm_common/uve/virtual_network/ttypes.py b/Testcases/cfgm_common/uve/virtual_network/ttypes.py new file mode 100644 index 0000000..b58ac6e --- /dev/null +++ b/Testcases/cfgm_common/uve/virtual_network/ttypes.py @@ -0,0 +1,787 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +from pysandesh.Thrift import TType, TMessageType, TException + +from pysandesh.transport import TTransport +from pysandesh.protocol import TBinaryProtocol, TProtocol +try: + from pysandesh.protocol import fastbinary +except: + fastbinary = None + +import cStringIO +import uuid +import bottle +from pysandesh import sandesh_base +from pysandesh.sandesh_http import SandeshHttp +from pysandesh.sandesh_uve import SandeshUVETypeMaps +from pysandesh.util import UTCTimestampUsec, UTCTimestampUsecToString +from pysandesh.gen_py.sandesh.constants import * + + + +class UveVirtualNetworkConfig(object): + """ + Attributes: + - name + - deleted + - connected_networks + - partially_connected_networks + - routing_instance_list + - total_acl_rules + """ + + thrift_spec = ( + None, # 0 + (1, TType.STRING, 'name', None, None, ), # 1 + (2, TType.BOOL, 'deleted', None, None, ), # 2 + None, # 3 + (4, TType.LIST, 'connected_networks', (TType.STRING,None), None, ), # 4 + (5, TType.LIST, 'partially_connected_networks', (TType.STRING,None), None, ), # 5 + (6, TType.LIST, 'routing_instance_list', (TType.STRING,None), None, ), # 6 + (7, TType.I32, 'total_acl_rules', None, None, ), # 7 + ) + + def __init__(self, name=None, deleted=None, connected_networks=None, partially_connected_networks=None, routing_instance_list=None, total_acl_rules=None,): + self.name = name + self.deleted = deleted + self.connected_networks = connected_networks + self.partially_connected_networks = partially_connected_networks + self.routing_instance_list = routing_instance_list + self.total_acl_rules = total_acl_rules + self._table = 'ObjectVNTable' + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return 0 + read_cnt = 0 + length = iprot.readStructBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRING: + (length, self.name) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.BOOL: + (length, self.deleted) = iprot.readBool(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.LIST: + self.connected_networks = [] + (length, _etype3, _size0) = iprot.readListBegin() + read_cnt += length + for _i4 in xrange(_size0): + read_cnt += iprot.readContainerElementBegin() + (length, _elem5) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + self.connected_networks.append(_elem5) + read_cnt += iprot.readContainerElementEnd() + read_cnt += iprot.readListEnd() + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.LIST: + self.partially_connected_networks = [] + (length, _etype9, _size6) = iprot.readListBegin() + read_cnt += length + for _i10 in xrange(_size6): + read_cnt += iprot.readContainerElementBegin() + (length, _elem11) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + self.partially_connected_networks.append(_elem11) + read_cnt += iprot.readContainerElementEnd() + read_cnt += iprot.readListEnd() + else: + iprot.skip(ftype) + elif fid == 6: + if ftype == TType.LIST: + self.routing_instance_list = [] + (length, _etype15, _size12) = iprot.readListBegin() + read_cnt += length + for _i16 in xrange(_size12): + read_cnt += iprot.readContainerElementBegin() + (length, _elem17) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + self.routing_instance_list.append(_elem17) + read_cnt += iprot.readContainerElementEnd() + read_cnt += iprot.readListEnd() + else: + iprot.skip(ftype) + elif fid == 7: + if ftype == TType.I32: + (length, self.total_acl_rules) = iprot.readI32(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readStructEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeStructBegin('UveVirtualNetworkConfig') < 0: return -1 + if self.name is not None: + annotations = {} + if self._table is None or self._table is '': return -1 + annotations['key'] = self._table + if oprot.writeFieldBegin('name', TType.STRING, 1, annotations) < 0: return -1 + if oprot.writeString(self.name) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.deleted is not None: + annotations = {} + if oprot.writeFieldBegin('deleted', TType.BOOL, 2, annotations) < 0: return -1 + if oprot.writeBool(self.deleted) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.connected_networks is not None: + annotations = {} + annotations['aggtype'] = 'union' + if oprot.writeFieldBegin('connected_networks', TType.LIST, 4, annotations) < 0: return -1 + if oprot.writeListBegin(TType.STRING, len(self.connected_networks)) < 0: return -1 + for iter18 in self.connected_networks: + if oprot.writeContainerElementBegin() < 0: return -1 + if oprot.writeString(iter18) < 0: return -1 + if oprot.writeContainerElementEnd() < 0: return -1 + if oprot.writeListEnd() < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.partially_connected_networks is not None: + annotations = {} + annotations['aggtype'] = 'union' + if oprot.writeFieldBegin('partially_connected_networks', TType.LIST, 5, annotations) < 0: return -1 + if oprot.writeListBegin(TType.STRING, len(self.partially_connected_networks)) < 0: return -1 + for iter19 in self.partially_connected_networks: + if oprot.writeContainerElementBegin() < 0: return -1 + if oprot.writeString(iter19) < 0: return -1 + if oprot.writeContainerElementEnd() < 0: return -1 + if oprot.writeListEnd() < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.routing_instance_list is not None: + annotations = {} + annotations['aggtype'] = 'union' + if oprot.writeFieldBegin('routing_instance_list', TType.LIST, 6, annotations) < 0: return -1 + if oprot.writeListBegin(TType.STRING, len(self.routing_instance_list)) < 0: return -1 + for iter20 in self.routing_instance_list: + if oprot.writeContainerElementBegin() < 0: return -1 + if oprot.writeString(iter20) < 0: return -1 + if oprot.writeContainerElementEnd() < 0: return -1 + if oprot.writeListEnd() < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.total_acl_rules is not None: + annotations = {} + if oprot.writeFieldBegin('total_acl_rules', TType.I32, 7, annotations) < 0: return -1 + if oprot.writeI32(self.total_acl_rules) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeStructEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def log(self): + log_str = cStringIO.StringIO() + if self.name is not None: + log_str.write('name = ') + log_str.write(self.name) + log_str.write(' ') + if self.deleted is not None: + log_str.write('deleted = ') + if self.deleted: + log_str.write('True') + else: + log_str.write('False') + log_str.write(' ') + if self.connected_networks is not None: + log_str.write('connected_networks = ') + log_str.write('[ ') + for iter21 in self.connected_networks: + log_str.write(iter21) + log_str.write(', ') + log_str.write(' ]') + log_str.write(' ') + if self.partially_connected_networks is not None: + log_str.write('partially_connected_networks = ') + log_str.write('[ ') + for iter22 in self.partially_connected_networks: + log_str.write(iter22) + log_str.write(', ') + log_str.write(' ]') + log_str.write(' ') + if self.routing_instance_list is not None: + log_str.write('routing_instance_list = ') + log_str.write('[ ') + for iter23 in self.routing_instance_list: + log_str.write(iter23) + log_str.write(', ') + log_str.write(' ]') + log_str.write(' ') + if self.total_acl_rules is not None: + log_str.write('total_acl_rules = ') + log_str.write(str(self.total_acl_rules)) + log_str.write(' ') + return log_str.getvalue() + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class UveServiceChainData(object): + """ + Attributes: + - name + - deleted + - source_virtual_network + - destination_virtual_network + - source_ports + - destination_ports + - protocol + - direction + - services + """ + + thrift_spec = ( + None, # 0 + (1, TType.STRING, 'name', None, None, ), # 1 + (2, TType.BOOL, 'deleted', None, None, ), # 2 + (3, TType.STRING, 'source_virtual_network', None, None, ), # 3 + (4, TType.STRING, 'destination_virtual_network', None, None, ), # 4 + (5, TType.STRING, 'source_ports', None, None, ), # 5 + (6, TType.STRING, 'destination_ports', None, None, ), # 6 + (7, TType.STRING, 'protocol', None, None, ), # 7 + (8, TType.STRING, 'direction', None, None, ), # 8 + (9, TType.LIST, 'services', (TType.STRING,None), None, ), # 9 + ) + + def __init__(self, name=None, deleted=None, source_virtual_network=None, destination_virtual_network=None, source_ports=None, destination_ports=None, protocol=None, direction=None, services=None,): + self.name = name + self.deleted = deleted + self.source_virtual_network = source_virtual_network + self.destination_virtual_network = destination_virtual_network + self.source_ports = source_ports + self.destination_ports = destination_ports + self.protocol = protocol + self.direction = direction + self.services = services + self._table = 'ServiceChain' + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return 0 + read_cnt = 0 + length = iprot.readStructBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRING: + (length, self.name) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.BOOL: + (length, self.deleted) = iprot.readBool(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRING: + (length, self.source_virtual_network) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.STRING: + (length, self.destination_virtual_network) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.STRING: + (length, self.source_ports) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 6: + if ftype == TType.STRING: + (length, self.destination_ports) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 7: + if ftype == TType.STRING: + (length, self.protocol) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 8: + if ftype == TType.STRING: + (length, self.direction) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 9: + if ftype == TType.LIST: + self.services = [] + (length, _etype27, _size24) = iprot.readListBegin() + read_cnt += length + for _i28 in xrange(_size24): + read_cnt += iprot.readContainerElementBegin() + (length, _elem29) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + self.services.append(_elem29) + read_cnt += iprot.readContainerElementEnd() + read_cnt += iprot.readListEnd() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readStructEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeStructBegin('UveServiceChainData') < 0: return -1 + if self.name is not None: + annotations = {} + if self._table is None or self._table is '': return -1 + annotations['key'] = self._table + if oprot.writeFieldBegin('name', TType.STRING, 1, annotations) < 0: return -1 + if oprot.writeString(self.name) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.deleted is not None: + annotations = {} + if oprot.writeFieldBegin('deleted', TType.BOOL, 2, annotations) < 0: return -1 + if oprot.writeBool(self.deleted) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.source_virtual_network is not None: + annotations = {} + if oprot.writeFieldBegin('source_virtual_network', TType.STRING, 3, annotations) < 0: return -1 + if oprot.writeString(self.source_virtual_network) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.destination_virtual_network is not None: + annotations = {} + if oprot.writeFieldBegin('destination_virtual_network', TType.STRING, 4, annotations) < 0: return -1 + if oprot.writeString(self.destination_virtual_network) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.source_ports is not None: + annotations = {} + if oprot.writeFieldBegin('source_ports', TType.STRING, 5, annotations) < 0: return -1 + if oprot.writeString(self.source_ports) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.destination_ports is not None: + annotations = {} + if oprot.writeFieldBegin('destination_ports', TType.STRING, 6, annotations) < 0: return -1 + if oprot.writeString(self.destination_ports) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.protocol is not None: + annotations = {} + if oprot.writeFieldBegin('protocol', TType.STRING, 7, annotations) < 0: return -1 + if oprot.writeString(self.protocol) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.direction is not None: + annotations = {} + if oprot.writeFieldBegin('direction', TType.STRING, 8, annotations) < 0: return -1 + if oprot.writeString(self.direction) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.services is not None: + annotations = {} + if oprot.writeFieldBegin('services', TType.LIST, 9, annotations) < 0: return -1 + if oprot.writeListBegin(TType.STRING, len(self.services)) < 0: return -1 + for iter30 in self.services: + if oprot.writeContainerElementBegin() < 0: return -1 + if oprot.writeString(iter30) < 0: return -1 + if oprot.writeContainerElementEnd() < 0: return -1 + if oprot.writeListEnd() < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeStructEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def log(self): + log_str = cStringIO.StringIO() + if self.name is not None: + log_str.write('name = ') + log_str.write(self.name) + log_str.write(' ') + if self.deleted is not None: + log_str.write('deleted = ') + if self.deleted: + log_str.write('True') + else: + log_str.write('False') + log_str.write(' ') + if self.source_virtual_network is not None: + log_str.write('source_virtual_network = ') + log_str.write(self.source_virtual_network) + log_str.write(' ') + if self.destination_virtual_network is not None: + log_str.write('destination_virtual_network = ') + log_str.write(self.destination_virtual_network) + log_str.write(' ') + if self.source_ports is not None: + log_str.write('source_ports = ') + log_str.write(self.source_ports) + log_str.write(' ') + if self.destination_ports is not None: + log_str.write('destination_ports = ') + log_str.write(self.destination_ports) + log_str.write(' ') + if self.protocol is not None: + log_str.write('protocol = ') + log_str.write(self.protocol) + log_str.write(' ') + if self.direction is not None: + log_str.write('direction = ') + log_str.write(self.direction) + log_str.write(' ') + if self.services is not None: + log_str.write('services = ') + log_str.write('[ ') + for iter31 in self.services: + log_str.write(iter31) + log_str.write(', ') + log_str.write(' ]') + log_str.write(' ') + return log_str.getvalue() + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class UveVirtualNetworkConfigTrace(sandesh_base.SandeshUVE): + + thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'data', (UveVirtualNetworkConfig, UveVirtualNetworkConfig.thrift_spec), None, ), # 1 + ) + + def __init__(self, data=None, table=None, sandesh=sandesh_base.sandesh_global): + sandesh_base.SandeshUVE.__init__(self) + self.data = data + self._scope = sandesh.scope() + self._module = sandesh.module() + self._source = sandesh.source_id() + self._node_type = sandesh.node_type() + self._instance_id = sandesh.instance_id() + self._seqnum = 0 + self._timestamp = UTCTimestampUsec() + self._versionsig = 74672981 + self._hints = 0 | SANDESH_KEY_HINT + if table is not None: + self.data._table = table + + def update_uve(self, tdata): + if self.data.name is not None: + tdata.name = self.data.name + if self.data.deleted is not None: + tdata.deleted = self.data.deleted + if self.data.connected_networks is not None: + tdata.connected_networks = self.data.connected_networks + if self.data.partially_connected_networks is not None: + tdata.partially_connected_networks = self.data.partially_connected_networks + if self.data.routing_instance_list is not None: + tdata.routing_instance_list = self.data.routing_instance_list + if self.data.total_acl_rules is not None: + tdata.total_acl_rules = self.data.total_acl_rules + return tdata + + def log(self, trace=False): + log_str = cStringIO.StringIO() + if trace: + log_str.write(str(self._timestamp)) + log_str.write(' ') + log_str.write('UveVirtualNetworkConfigTrace: ') + if self.data is not None: + log_str.write('data = ') + log_str.write('<< ') + log_str.write(self.data.log()) + log_str.write('>>') + log_str.write(' ') + return log_str.getvalue() + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return -1 + read_cnt = 0 + (length, sandesh_name) = iprot.readSandeshBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.data = UveVirtualNetworkConfig() + read_cnt += self.data.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readSandeshEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeSandeshBegin('UveVirtualNetworkConfigTrace') < 0: return -1 + if self.data is not None: + annotations = {} + if oprot.writeFieldBegin('data', TType.STRUCT, 1, annotations) < 0: return -1 + if self.data.write(oprot) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeSandeshEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def compare(self, other): + if not isinstance(other, self.__class__): + return False + if self.data != other.data: + return False + return True + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class UveServiceChain(sandesh_base.SandeshUVE): + + thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'data', (UveServiceChainData, UveServiceChainData.thrift_spec), None, ), # 1 + ) + + def __init__(self, data=None, table=None, sandesh=sandesh_base.sandesh_global): + sandesh_base.SandeshUVE.__init__(self) + self.data = data + self._scope = sandesh.scope() + self._module = sandesh.module() + self._source = sandesh.source_id() + self._node_type = sandesh.node_type() + self._instance_id = sandesh.instance_id() + self._seqnum = 0 + self._timestamp = UTCTimestampUsec() + self._versionsig = 2360766836 + self._hints = 0 | SANDESH_KEY_HINT + if table is not None: + self.data._table = table + + def update_uve(self, tdata): + if self.data.name is not None: + tdata.name = self.data.name + if self.data.deleted is not None: + tdata.deleted = self.data.deleted + if self.data.source_virtual_network is not None: + tdata.source_virtual_network = self.data.source_virtual_network + if self.data.destination_virtual_network is not None: + tdata.destination_virtual_network = self.data.destination_virtual_network + if self.data.source_ports is not None: + tdata.source_ports = self.data.source_ports + if self.data.destination_ports is not None: + tdata.destination_ports = self.data.destination_ports + if self.data.protocol is not None: + tdata.protocol = self.data.protocol + if self.data.direction is not None: + tdata.direction = self.data.direction + if self.data.services is not None: + tdata.services = self.data.services + return tdata + + def log(self, trace=False): + log_str = cStringIO.StringIO() + if trace: + log_str.write(str(self._timestamp)) + log_str.write(' ') + log_str.write('UveServiceChain: ') + if self.data is not None: + log_str.write('data = ') + log_str.write('<< ') + log_str.write(self.data.log()) + log_str.write('>>') + log_str.write(' ') + return log_str.getvalue() + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return -1 + read_cnt = 0 + (length, sandesh_name) = iprot.readSandeshBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.data = UveServiceChainData() + read_cnt += self.data.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readSandeshEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeSandeshBegin('UveServiceChain') < 0: return -1 + if self.data is not None: + annotations = {} + if oprot.writeFieldBegin('data', TType.STRUCT, 1, annotations) < 0: return -1 + if self.data.write(oprot) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeSandeshEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def compare(self, other): + if not isinstance(other, self.__class__): + return False + if self.data != other.data: + return False + return True + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +_SANDESH_REQUEST_LIST = [ +] + + +_SANDESH_UVE_LIST = [ +'UveVirtualNetworkConfigTrace', +'UveServiceChain', +] + + +_SANDESH_UVE_DATA_LIST = [ +'UveVirtualNetworkConfig', +'UveServiceChainData', +] + + +_SANDESH_ALARM_LIST = [ +] + + +_SANDESH_ALARM_DATA_LIST = [ +] diff --git a/Testcases/cfgm_common/uve/virtual_network/ttypes.pyc b/Testcases/cfgm_common/uve/virtual_network/ttypes.pyc Binary files differnew file mode 100644 index 0000000..2888df8 --- /dev/null +++ b/Testcases/cfgm_common/uve/virtual_network/ttypes.pyc diff --git a/Testcases/cfgm_common/uve/virtual_network/virtual_network.html b/Testcases/cfgm_common/uve/virtual_network/virtual_network.html new file mode 100644 index 0000000..270901f --- /dev/null +++ b/Testcases/cfgm_common/uve/virtual_network/virtual_network.html @@ -0,0 +1,14 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> +<link href="style.css" rel="stylesheet" type="text/css"/> +<title>Module: virtual_network</title></head><body> +<h1>Module: virtual_network</h1> +<table><tr><th>Module</th><th>Sandeshs</th></tr> +<tr> +<td>virtual_network</td><td></td></tr> +</table> +<hr/><h2 id="Sandeshs"></h2> +</body></html>
diff --git a/Testcases/cfgm_common/uve/virtual_network/virtual_network.xml b/Testcases/cfgm_common/uve/virtual_network/virtual_network.xml new file mode 100644 index 0000000..7089d62 --- /dev/null +++ b/Testcases/cfgm_common/uve/virtual_network/virtual_network.xml @@ -0,0 +1,3 @@ +<?xml-stylesheet type="text/xsl" href="/universal_parse.xsl"?> +<virtual_network type="rlist"> +</virtual_network> diff --git a/Testcases/cfgm_common/uve/vnc_api/__init__.py b/Testcases/cfgm_common/uve/vnc_api/__init__.py new file mode 100644 index 0000000..adefd8e --- /dev/null +++ b/Testcases/cfgm_common/uve/vnc_api/__init__.py @@ -0,0 +1 @@ +__all__ = ['ttypes', 'constants'] diff --git a/Testcases/cfgm_common/uve/vnc_api/__init__.pyc b/Testcases/cfgm_common/uve/vnc_api/__init__.pyc Binary files differnew file mode 100644 index 0000000..0ac091c --- /dev/null +++ b/Testcases/cfgm_common/uve/vnc_api/__init__.pyc diff --git a/Testcases/cfgm_common/uve/vnc_api/constants.py b/Testcases/cfgm_common/uve/vnc_api/constants.py new file mode 100644 index 0000000..aadd78e --- /dev/null +++ b/Testcases/cfgm_common/uve/vnc_api/constants.py @@ -0,0 +1,12 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +from pysandesh.Thrift import TType, TMessageType, TException +from ttypes import * + diff --git a/Testcases/cfgm_common/uve/vnc_api/constants.pyc b/Testcases/cfgm_common/uve/vnc_api/constants.pyc Binary files differnew file mode 100644 index 0000000..efe1f9b --- /dev/null +++ b/Testcases/cfgm_common/uve/vnc_api/constants.pyc diff --git a/Testcases/cfgm_common/uve/vnc_api/http_request.py b/Testcases/cfgm_common/uve/vnc_api/http_request.py new file mode 100644 index 0000000..8baea4f --- /dev/null +++ b/Testcases/cfgm_common/uve/vnc_api/http_request.py @@ -0,0 +1,14 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +import ttypes + +_HTTP_REQUEST_LIST = [ +] + diff --git a/Testcases/cfgm_common/uve/vnc_api/http_request.pyc b/Testcases/cfgm_common/uve/vnc_api/http_request.pyc Binary files differnew file mode 100644 index 0000000..2f6880e --- /dev/null +++ b/Testcases/cfgm_common/uve/vnc_api/http_request.pyc diff --git a/Testcases/cfgm_common/uve/vnc_api/index.html b/Testcases/cfgm_common/uve/vnc_api/index.html new file mode 100644 index 0000000..bb522d0 --- /dev/null +++ b/Testcases/cfgm_common/uve/vnc_api/index.html @@ -0,0 +1,9 @@ +<html><head> +<link href="style.css" rel="stylesheet" type="text/css"/> +<title>All Thrift declarations</title></head><body> +<h1>All Thrift declarations</h1> +<table><tr><th>Module</th><th>Services</th><th>Sandeshs</th><th>Data types</th><th>Constants</th></tr> +<tr> +<td>vnc_api</td><td></td></tr> +</table> +</body></html> diff --git a/Testcases/cfgm_common/uve/vnc_api/request_skeleton.py b/Testcases/cfgm_common/uve/vnc_api/request_skeleton.py new file mode 100644 index 0000000..99c1196 --- /dev/null +++ b/Testcases/cfgm_common/uve/vnc_api/request_skeleton.py @@ -0,0 +1,13 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + + +# This autogenerated skeleton file illustrates the implementation of +# derived class to handle the sandesh request. + diff --git a/Testcases/cfgm_common/uve/vnc_api/request_skeleton.pyc b/Testcases/cfgm_common/uve/vnc_api/request_skeleton.pyc Binary files differnew file mode 100644 index 0000000..0e855d5 --- /dev/null +++ b/Testcases/cfgm_common/uve/vnc_api/request_skeleton.pyc diff --git a/Testcases/cfgm_common/uve/vnc_api/style.css b/Testcases/cfgm_common/uve/vnc_api/style.css new file mode 100644 index 0000000..6dc2f22 --- /dev/null +++ b/Testcases/cfgm_common/uve/vnc_api/style.css @@ -0,0 +1,10 @@ +/* Auto-generated CSS for generated Thrift docs */ +body { font-family: Tahoma, sans-serif; } +pre { background-color: #dddddd; padding: 6px; } +h3,h4 { padding-top: 0px; margin-top: 0px; } +div.definition { border: 1px solid gray; margin: 10px; padding: 10px; } +div.extends { margin: -0.5em 0 1em 5em } +table { border: 1px solid grey; border-collapse: collapse; } +td { border: 1px solid grey; padding: 1px 6px; vertical-align: top; } +th { border: 1px solid black; background-color: #bbbbbb; + text-align: left; padding: 1px 6px; } diff --git a/Testcases/cfgm_common/uve/vnc_api/ttypes.py b/Testcases/cfgm_common/uve/vnc_api/ttypes.py new file mode 100644 index 0000000..4a38dd2 --- /dev/null +++ b/Testcases/cfgm_common/uve/vnc_api/ttypes.py @@ -0,0 +1,778 @@ +# +# Autogenerated by Sandesh Compiler (1.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py:new_style +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +from pysandesh.Thrift import TType, TMessageType, TException + +from pysandesh.transport import TTransport +from pysandesh.protocol import TBinaryProtocol, TProtocol +try: + from pysandesh.protocol import fastbinary +except: + fastbinary = None + +import cStringIO +import uuid +import bottle +from pysandesh import sandesh_base +from pysandesh.sandesh_http import SandeshHttp +from pysandesh.sandesh_uve import SandeshUVETypeMaps +from pysandesh.util import UTCTimestampUsec, UTCTimestampUsecToString +from pysandesh.gen_py.sandesh.constants import * + + + +class VncApiCommon(object): + """ + Attributes: + - identifier_uuid + - object_type + - identifier_name + - url + - operation + - useragent + - remote_ip + - params + - body + - domain + - project + - user + - error + """ + + thrift_spec = ( + None, # 0 + (1, TType.STRING, 'identifier_uuid', None, None, ), # 1 + (2, TType.STRING, 'object_type', None, None, ), # 2 + (3, TType.STRING, 'identifier_name', None, None, ), # 3 + (4, TType.STRING, 'url', None, None, ), # 4 + (5, TType.STRING, 'operation', None, None, ), # 5 + (6, TType.STRING, 'useragent', None, None, ), # 6 + (7, TType.STRING, 'remote_ip', None, None, ), # 7 + (8, TType.STRING, 'params', None, None, ), # 8 + (9, TType.STRING, 'body', None, None, ), # 9 + (10, TType.STRING, 'domain', None, None, ), # 10 + (11, TType.STRING, 'project', None, None, ), # 11 + (12, TType.STRING, 'user', None, None, ), # 12 + (13, TType.STRING, 'error', None, None, ), # 13 + ) + + def __init__(self, identifier_uuid=None, object_type=None, identifier_name=None, url=None, operation=None, useragent=None, remote_ip=None, params=None, body=None, domain=None, project=None, user=None, error=None,): + self.identifier_uuid = identifier_uuid + self.object_type = object_type + self.identifier_name = identifier_name + self.url = url + self.operation = operation + self.useragent = useragent + self.remote_ip = remote_ip + self.params = params + self.body = body + self.domain = domain + self.project = project + self.user = user + self.error = error + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return 0 + read_cnt = 0 + length = iprot.readStructBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRING: + (length, self.identifier_uuid) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRING: + (length, self.object_type) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRING: + (length, self.identifier_name) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.STRING: + (length, self.url) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.STRING: + (length, self.operation) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 6: + if ftype == TType.STRING: + (length, self.useragent) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 7: + if ftype == TType.STRING: + (length, self.remote_ip) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 8: + if ftype == TType.STRING: + (length, self.params) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 9: + if ftype == TType.STRING: + (length, self.body) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 10: + if ftype == TType.STRING: + (length, self.domain) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 11: + if ftype == TType.STRING: + (length, self.project) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 12: + if ftype == TType.STRING: + (length, self.user) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == 13: + if ftype == TType.STRING: + (length, self.error) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readStructEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeStructBegin('VncApiCommon') < 0: return -1 + if self.identifier_uuid is not None: + annotations = {} + if oprot.writeFieldBegin('identifier_uuid', TType.STRING, 1, annotations) < 0: return -1 + if oprot.writeString(self.identifier_uuid) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.object_type is not None: + annotations = {} + annotations['key'] = 'ConfigObjectTable' + if oprot.writeFieldBegin('object_type', TType.STRING, 2, annotations) < 0: return -1 + if oprot.writeString(self.object_type) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.identifier_name is not None: + annotations = {} + annotations['key'] = 'ConfigObjectTable' + if oprot.writeFieldBegin('identifier_name', TType.STRING, 3, annotations) < 0: return -1 + if oprot.writeString(self.identifier_name) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.url is not None: + annotations = {} + if oprot.writeFieldBegin('url', TType.STRING, 4, annotations) < 0: return -1 + if oprot.writeString(self.url) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.operation is not None: + annotations = {} + if oprot.writeFieldBegin('operation', TType.STRING, 5, annotations) < 0: return -1 + if oprot.writeString(self.operation) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.useragent is not None: + annotations = {} + if oprot.writeFieldBegin('useragent', TType.STRING, 6, annotations) < 0: return -1 + if oprot.writeString(self.useragent) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.remote_ip is not None: + annotations = {} + if oprot.writeFieldBegin('remote_ip', TType.STRING, 7, annotations) < 0: return -1 + if oprot.writeString(self.remote_ip) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.params is not None: + annotations = {} + if oprot.writeFieldBegin('params', TType.STRING, 8, annotations) < 0: return -1 + if oprot.writeString(self.params) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.body is not None: + annotations = {} + if oprot.writeFieldBegin('body', TType.STRING, 9, annotations) < 0: return -1 + if oprot.writeString(self.body) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.domain is not None: + annotations = {} + annotations['key'] = 'ConfigObjectTableByUser' + if oprot.writeFieldBegin('domain', TType.STRING, 10, annotations) < 0: return -1 + if oprot.writeString(self.domain) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.project is not None: + annotations = {} + annotations['key'] = 'ConfigObjectTableByUser' + if oprot.writeFieldBegin('project', TType.STRING, 11, annotations) < 0: return -1 + if oprot.writeString(self.project) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.user is not None: + annotations = {} + annotations['key'] = 'ConfigObjectTableByUser' + if oprot.writeFieldBegin('user', TType.STRING, 12, annotations) < 0: return -1 + if oprot.writeString(self.user) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.error is not None: + annotations = {} + if oprot.writeFieldBegin('error', TType.STRING, 13, annotations) < 0: return -1 + if oprot.writeString(self.error) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeStructEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def log(self): + log_str = cStringIO.StringIO() + if self.identifier_uuid is not None: + log_str.write('identifier_uuid = ') + log_str.write(self.identifier_uuid) + log_str.write(' ') + if self.object_type is not None: + log_str.write('object_type = ') + log_str.write(self.object_type) + log_str.write(' ') + if self.identifier_name is not None: + log_str.write('identifier_name = ') + log_str.write(self.identifier_name) + log_str.write(' ') + if self.url is not None: + log_str.write('url = ') + log_str.write(self.url) + log_str.write(' ') + if self.operation is not None: + log_str.write('operation = ') + log_str.write(self.operation) + log_str.write(' ') + if self.useragent is not None: + log_str.write('useragent = ') + log_str.write(self.useragent) + log_str.write(' ') + if self.remote_ip is not None: + log_str.write('remote_ip = ') + log_str.write(self.remote_ip) + log_str.write(' ') + if self.params is not None: + log_str.write('params = ') + log_str.write(self.params) + log_str.write(' ') + if self.body is not None: + log_str.write('body = ') + log_str.write(self.body) + log_str.write(' ') + if self.domain is not None: + log_str.write('domain = ') + log_str.write(self.domain) + log_str.write(' ') + if self.project is not None: + log_str.write('project = ') + log_str.write(self.project) + log_str.write(' ') + if self.user is not None: + log_str.write('user = ') + log_str.write(self.user) + log_str.write(' ') + if self.error is not None: + log_str.write('error = ') + log_str.write(self.error) + log_str.write(' ') + return log_str.getvalue() + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class VncApiReadLog(sandesh_base.SandeshTrace): + + thrift_spec = None + + def __init__(self, api_log=None, file=None, line=None, sandesh=sandesh_base.sandesh_global): + sandesh_base.SandeshTrace.__init__(self, type=SandeshType.TRACE_OBJECT) + self.api_log = api_log + self.file = file + self.line = line + self._scope = sandesh.scope() + self._module = sandesh.module() + self._source = sandesh.source_id() + self._node_type = sandesh.node_type() + self._instance_id = sandesh.instance_id() + self._seqnum = 0 + self._timestamp = UTCTimestampUsec() + self._versionsig = 103727244 + self._hints = 0 | SANDESH_KEY_HINT + + def log(self, trace=False): + log_str = cStringIO.StringIO() + if trace: + log_str.write(str(self._timestamp)) + log_str.write(' ') + log_str.write('VncApiReadLog: ') + if self.api_log is not None: + log_str.write('api_log = ') + log_str.write('<< ') + log_str.write(self.api_log.log()) + log_str.write('>>') + log_str.write(' ') + if self.file is not None: + log_str.write('file = ') + log_str.write(self.file) + log_str.write(' ') + if self.line is not None: + log_str.write('line = ') + log_str.write(str(self.line)) + log_str.write(' ') + return log_str.getvalue() + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return -1 + read_cnt = 0 + (length, sandesh_name) = iprot.readSandeshBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.api_log = VncApiCommon() + read_cnt += self.api_log.read(iprot) + else: + iprot.skip(ftype) + elif fid == -32768: + if ftype == TType.STRING: + (length, self.file) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == -32767: + if ftype == TType.I32: + (length, self.line) = iprot.readI32(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readSandeshEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeSandeshBegin('VncApiReadLog') < 0: return -1 + if self.file is not None: + annotations = {} + if oprot.writeFieldBegin('file', TType.STRING, -32768, annotations) < 0: return -1 + if oprot.writeString(self.file) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.line is not None: + annotations = {} + if oprot.writeFieldBegin('line', TType.I32, -32767, annotations) < 0: return -1 + if oprot.writeI32(self.line) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.api_log is not None: + annotations = {} + if oprot.writeFieldBegin('api_log', TType.STRUCT, 1, annotations) < 0: return -1 + if self.api_log.write(oprot) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeSandeshEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def compare(self, other): + if not isinstance(other, self.__class__): + return False + if self.file != other.file: + return False + if self.line != other.line: + return False + if self.api_log != other.api_log: + return False + return True + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class VncApiConfigLog(sandesh_base.SandeshObject): + + thrift_spec = None + + def __init__(self, api_log=None, file=None, line=None, category='__default__', level=SandeshLevel.SYS_INFO, sandesh=sandesh_base.sandesh_global): + sandesh_base.SandeshObject.__init__(self) + self.api_log = api_log + self.file = file + self.line = line + self._scope = sandesh.scope() + self._module = sandesh.module() + self._source = sandesh.source_id() + self._node_type = sandesh.node_type() + self._instance_id = sandesh.instance_id() + self._seqnum = 0 + self._timestamp = UTCTimestampUsec() + self._versionsig = 103727244 + self._hints = 0 | SANDESH_KEY_HINT + self._category = category + self._level = level + + def log(self, trace=False): + log_str = cStringIO.StringIO() + if trace: + log_str.write(str(self._timestamp)) + log_str.write(' ') + if self._category is not None: + log_str.write(self._category) + log_str.write(' [') + log_str.write(SandeshLevel._VALUES_TO_NAMES[self._level]) + log_str.write(']: ') + log_str.write('VncApiConfigLog: ') + if self.api_log is not None: + log_str.write('api_log = ') + log_str.write('<< ') + log_str.write(self.api_log.log()) + log_str.write('>>') + log_str.write(' ') + if self.file is not None: + log_str.write('file = ') + log_str.write(self.file) + log_str.write(' ') + if self.line is not None: + log_str.write('line = ') + log_str.write(str(self.line)) + log_str.write(' ') + return log_str.getvalue() + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return -1 + read_cnt = 0 + (length, sandesh_name) = iprot.readSandeshBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.api_log = VncApiCommon() + read_cnt += self.api_log.read(iprot) + else: + iprot.skip(ftype) + elif fid == -32768: + if ftype == TType.STRING: + (length, self.file) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == -32767: + if ftype == TType.I32: + (length, self.line) = iprot.readI32(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readSandeshEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeSandeshBegin('VncApiConfigLog') < 0: return -1 + if self.file is not None: + annotations = {} + if oprot.writeFieldBegin('file', TType.STRING, -32768, annotations) < 0: return -1 + if oprot.writeString(self.file) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.line is not None: + annotations = {} + if oprot.writeFieldBegin('line', TType.I32, -32767, annotations) < 0: return -1 + if oprot.writeI32(self.line) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.api_log is not None: + annotations = {} + if oprot.writeFieldBegin('api_log', TType.STRUCT, 1, annotations) < 0: return -1 + if self.api_log.write(oprot) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeSandeshEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def compare(self, other): + if not isinstance(other, self.__class__): + return False + if self.file != other.file: + return False + if self.line != other.line: + return False + if self.api_log != other.api_log: + return False + return True + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + +class VncApiError(sandesh_base.SandeshSystem): + + thrift_spec = None + + def __init__(self, api_error_msg=None, file=None, line=None, category='__default__', level=SandeshLevel.SYS_INFO, sandesh=sandesh_base.sandesh_global): + sandesh_base.SandeshSystem.__init__(self) + self.api_error_msg = api_error_msg + self.file = file + self.line = line + self._scope = sandesh.scope() + self._module = sandesh.module() + self._source = sandesh.source_id() + self._node_type = sandesh.node_type() + self._instance_id = sandesh.instance_id() + self._seqnum = 0 + self._timestamp = UTCTimestampUsec() + self._versionsig = 2183673535 + self._hints = 0 + self._category = category + self._level = level + + def log(self, trace=False): + log_str = cStringIO.StringIO() + if trace: + log_str.write(str(self._timestamp)) + log_str.write(' ') + if self._category is not None: + log_str.write(self._category) + log_str.write(' [') + log_str.write(SandeshLevel._VALUES_TO_NAMES[self._level]) + log_str.write(']: ') + log_str.write('VncApiError: ') + if self.api_error_msg is not None: + log_str.write(self.api_error_msg) + log_str.write(' ') + if self.file is not None: + log_str.write(self.file) + log_str.write(' ') + if self.line is not None: + log_str.write(str(self.line)) + log_str.write(' ') + return log_str.getvalue() + + def read(self, iprot): + if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: + fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) + return -1 + read_cnt = 0 + (length, sandesh_name) = iprot.readSandeshBegin() + if length < 0: return -1 + read_cnt += length + while True: + (length, fname, ftype, fid) = iprot.readFieldBegin() + if length < 0: return -1 + read_cnt += length + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRING: + (length, self.api_error_msg) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == -32768: + if ftype == TType.STRING: + (length, self.file) = iprot.readString(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + elif fid == -32767: + if ftype == TType.I32: + (length, self.line) = iprot.readI32(); + if length < 0: return -1 + read_cnt += length + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + length = iprot.readFieldEnd() + if length < 0: return -1 + read_cnt += length + length = iprot.readSandeshEnd() + if length < 0: return -1 + read_cnt += length + return read_cnt + + def write(self, oprot): + if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: + oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) + return 0 + if oprot.writeSandeshBegin('VncApiError') < 0: return -1 + if self.file is not None: + annotations = {} + if oprot.writeFieldBegin('file', TType.STRING, -32768, annotations) < 0: return -1 + if oprot.writeString(self.file) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.line is not None: + annotations = {} + if oprot.writeFieldBegin('line', TType.I32, -32767, annotations) < 0: return -1 + if oprot.writeI32(self.line) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if self.api_error_msg is not None: + annotations = {} + if oprot.writeFieldBegin('api_error_msg', TType.STRING, 1, annotations) < 0: return -1 + if oprot.writeString(self.api_error_msg) < 0: return -1 + if oprot.writeFieldEnd() < 0: return -1 + if oprot.writeFieldStop() < 0: return -1 + if oprot.writeSandeshEnd() < 0: return -1 + return 0 + + def validate(self): + return + + + def compare(self, other): + if not isinstance(other, self.__class__): + return False + if self.file != other.file: + return False + if self.line != other.line: + return False + if self.api_error_msg != other.api_error_msg: + return False + return True + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.iteritems()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +_SANDESH_REQUEST_LIST = [ +] + + +_SANDESH_UVE_LIST = [ +] + + +_SANDESH_UVE_DATA_LIST = [ +] + + +_SANDESH_ALARM_LIST = [ +] + + +_SANDESH_ALARM_DATA_LIST = [ +] diff --git a/Testcases/cfgm_common/uve/vnc_api/ttypes.pyc b/Testcases/cfgm_common/uve/vnc_api/ttypes.pyc Binary files differnew file mode 100644 index 0000000..1d0400a --- /dev/null +++ b/Testcases/cfgm_common/uve/vnc_api/ttypes.pyc diff --git a/Testcases/cfgm_common/uve/vnc_api/vnc_api.html b/Testcases/cfgm_common/uve/vnc_api/vnc_api.html new file mode 100644 index 0000000..b467b7c --- /dev/null +++ b/Testcases/cfgm_common/uve/vnc_api/vnc_api.html @@ -0,0 +1,14 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> +<link href="style.css" rel="stylesheet" type="text/css"/> +<title>Module: vnc_api</title></head><body> +<h1>Module: vnc_api</h1> +<table><tr><th>Module</th><th>Sandeshs</th></tr> +<tr> +<td>vnc_api</td><td></td></tr> +</table> +<hr/><h2 id="Sandeshs"></h2> +</body></html>
diff --git a/Testcases/cfgm_common/uve/vnc_api/vnc_api.xml b/Testcases/cfgm_common/uve/vnc_api/vnc_api.xml new file mode 100644 index 0000000..4cf212d --- /dev/null +++ b/Testcases/cfgm_common/uve/vnc_api/vnc_api.xml @@ -0,0 +1,3 @@ +<?xml-stylesheet type="text/xsl" href="/universal_parse.xsl"?> +<vnc_api type="rlist"> +</vnc_api> diff --git a/Testcases/cfgm_common/vnc_cassandra.py b/Testcases/cfgm_common/vnc_cassandra.py new file mode 100644 index 0000000..1bbb109 --- /dev/null +++ b/Testcases/cfgm_common/vnc_cassandra.py @@ -0,0 +1,317 @@ +# +# Copyright (c) 2014 Juniper Networks, Inc. All rights reserved. +# + +import pycassa +from pycassa import ColumnFamily +from pycassa.batch import Mutator +from pycassa.system_manager import SystemManager, SIMPLE_STRATEGY +from pycassa.pool import AllServersUnavailable + +from vnc_api.gen.vnc_cassandra_client_gen import VncCassandraClientGen +from exceptions import NoIdError +from pysandesh.connection_info import ConnectionState +from pysandesh.gen_py.process_info.ttypes import ConnectionStatus, \ + ConnectionType +from pysandesh.gen_py.sandesh.ttypes import SandeshLevel +import time +import json +import utils + +class VncCassandraClient(VncCassandraClientGen): + # Name to ID mapping keyspace + tables + _UUID_KEYSPACE_NAME = 'config_db_uuid' + + # TODO describe layout + _OBJ_UUID_CF_NAME = 'obj_uuid_table' + + # TODO describe layout + _OBJ_FQ_NAME_CF_NAME = 'obj_fq_name_table' + + @classmethod + def get_db_info(cls): + db_info = [(cls._UUID_KEYSPACE_NAME, [cls._OBJ_UUID_CF_NAME, + cls._OBJ_FQ_NAME_CF_NAME])] + return db_info + # end get_db_info + + def __init__(self, server_list, reset_config, db_prefix, keyspaces, logger, + generate_url=None): + super(VncCassandraClient, self).__init__() + self._reset_config = reset_config + self._cache_uuid_to_fq_name = {} + if db_prefix: + self._db_prefix = '%s_' %(db_prefix) + else: + self._db_prefix = '' + self._server_list = server_list + self._conn_state = ConnectionStatus.INIT + self._logger = logger + + # if no generate_url is specified, use a dummy function that always + # returns an empty string + self._generate_url = generate_url or (lambda x,y: '') + self._cf_dict = {} + self._keyspaces = { + self._UUID_KEYSPACE_NAME: [(self._OBJ_UUID_CF_NAME, None), + (self._OBJ_FQ_NAME_CF_NAME, None)]} + + if keyspaces: + self._keyspaces.update(keyspaces) + self._cassandra_init(server_list) + self._cache_uuid_to_fq_name = {} + self._obj_uuid_cf = self._cf_dict[self._OBJ_UUID_CF_NAME] + self._obj_fq_name_cf = self._cf_dict[self._OBJ_FQ_NAME_CF_NAME] + # end __init__ + + def _update_sandesh_status(self, status, msg=''): + ConnectionState.update(conn_type=ConnectionType.DATABASE, + name='Cassandra', status=status, message=msg, + server_addrs=self._server_list) + + def _handle_exceptions(self, func): + def wrapper(*args, **kwargs): + try: + if self._conn_state != ConnectionStatus.UP: + # will set conn_state to UP if successful + self._cassandra_init_conn_pools() + + return func(*args, **kwargs) + except AllServersUnavailable: + if self._conn_state != ConnectionStatus.DOWN: + self._update_sandesh_status(ConnectionStatus.DOWN) + msg = 'Cassandra connection down. Exception in %s' \ + %(str(func)) + self._logger(msg, level=SandeshLevel.SYS_ERR) + + self._conn_state = ConnectionStatus.DOWN + raise + + return wrapper + # end _handle_exceptions + + # Helper routines for cassandra + def _cassandra_init(self, server_list): + # 1. Ensure keyspace and schema/CFs exist + # 2. Read in persisted data and publish to ifmap server + + self._update_sandesh_status(ConnectionStatus.INIT) + + ColumnFamily.get = self._handle_exceptions(ColumnFamily.get) + ColumnFamily.multiget = self._handle_exceptions(ColumnFamily.multiget) + ColumnFamily.xget = self._handle_exceptions(ColumnFamily.xget) + ColumnFamily.get_range = self._handle_exceptions(ColumnFamily.get_range) + ColumnFamily.insert = self._handle_exceptions(ColumnFamily.insert) + ColumnFamily.remove = self._handle_exceptions(ColumnFamily.remove) + Mutator.send = self._handle_exceptions(Mutator.send) + + for ks,cf_list in self._keyspaces.items(): + keyspace = '%s%s' %(self._db_prefix, ks) + self._cassandra_ensure_keyspace(server_list, keyspace, cf_list) + + self._cassandra_init_conn_pools() + # end _cassandra_init + + def _cassandra_ensure_keyspace(self, server_list, + keyspace_name, cf_info_list): + # Retry till cassandra is up + server_idx = 0 + num_dbnodes = len(self._server_list) + connected = False + while not connected: + try: + cass_server = self._server_list[server_idx] + sys_mgr = SystemManager(cass_server) + connected = True + except Exception as e: + # TODO do only for + # thrift.transport.TTransport.TTransportException + server_idx = (server_idx + 1) % num_dbnodes + time.sleep(3) + + if self._reset_config: + try: + sys_mgr.drop_keyspace(keyspace_name) + except pycassa.cassandra.ttypes.InvalidRequestException as e: + # TODO verify only EEXISTS + self._logger("Warning! " + str(e), level=SandeshLevel.SYS_WARN) + + try: + sys_mgr.create_keyspace(keyspace_name, SIMPLE_STRATEGY, + {'replication_factor': str(num_dbnodes)}) + except pycassa.cassandra.ttypes.InvalidRequestException as e: + # TODO verify only EEXISTS + self._logger("Warning! " + str(e), level=SandeshLevel.SYS_WARN) + + gc_grace_sec = 0 + if num_dbnodes > 1: + gc_grace_sec = 60 + + for cf_info in cf_info_list: + try: + (cf_name, comparator_type) = cf_info + if comparator_type: + sys_mgr.create_column_family( + keyspace_name, cf_name, + comparator_type=comparator_type, + gc_grace_seconds=gc_grace_sec, + default_validation_class='UTF8Type') + else: + sys_mgr.create_column_family(keyspace_name, cf_name, + gc_grace_seconds=gc_grace_sec, + default_validation_class='UTF8Type') + except pycassa.cassandra.ttypes.InvalidRequestException as e: + # TODO verify only EEXISTS + self._logger("Warning! " + str(e), level=SandeshLevel.SYS_WARN) + sys_mgr.alter_column_family(keyspace_name, cf_name, + gc_grace_seconds=gc_grace_sec, + default_validation_class='UTF8Type') + # end _cassandra_ensure_keyspace + + def _cassandra_init_conn_pools(self): + for ks,cf_list in self._keyspaces.items(): + pool = pycassa.ConnectionPool( + ks, self._server_list, max_overflow=-1, use_threadlocal=True, + prefill=True, pool_size=20, pool_timeout=120, + max_retries=-1, timeout=5) + + rd_consistency = pycassa.cassandra.ttypes.ConsistencyLevel.QUORUM + wr_consistency = pycassa.cassandra.ttypes.ConsistencyLevel.QUORUM + + for (cf, _) in cf_list: + self._cf_dict[cf] = ColumnFamily( + pool, cf, read_consistency_level = rd_consistency, + write_consistency_level = wr_consistency) + + ConnectionState.update(conn_type = ConnectionType.DATABASE, + name = 'Cassandra', status = ConnectionStatus.UP, message = '', + server_addrs = self._server_list) + self._conn_state = ConnectionStatus.UP + msg = 'Cassandra connection ESTABLISHED' + self._logger(msg, level=SandeshLevel.SYS_NOTICE) + # end _cassandra_init_conn_pools + + def cache_uuid_to_fq_name_add(self, id, fq_name, obj_type): + self._cache_uuid_to_fq_name[id] = (fq_name, obj_type) + # end cache_uuid_to_fq_name_add + + def cache_uuid_to_fq_name_del(self, id): + try: + del self._cache_uuid_to_fq_name[id] + except KeyError: + pass + # end cache_uuid_to_fq_name_del + + def uuid_to_fq_name(self, id): + try: + return self._cache_uuid_to_fq_name[id][0] + except KeyError: + try: + obj = self._obj_uuid_cf.get(id, columns=['fq_name', 'type']) + except pycassa.NotFoundException: + raise NoIdError(id) + + fq_name = json.loads(obj['fq_name']) + obj_type = json.loads(obj['type']) + self.cache_uuid_to_fq_name_add(id, fq_name, obj_type) + return fq_name + # end uuid_to_fq_name + + def uuid_to_obj_type(self, id): + try: + return self._cache_uuid_to_fq_name[id][1] + except KeyError: + try: + obj = self._obj_uuid_cf.get(id, columns=['fq_name', 'type']) + except pycassa.NotFoundException: + raise NoIdError(id) + + fq_name = json.loads(obj['fq_name']) + obj_type = json.loads(obj['type']) + self.cache_uuid_to_fq_name_add(id, fq_name, obj_type) + return obj_type + # end uuid_to_obj_type + + + def fq_name_to_uuid(self, obj_type, fq_name): + method_name = obj_type.replace('-', '_') + fq_name_str = ':'.join(fq_name) + col_start = '%s:' % (utils.encode_string(fq_name_str)) + col_fin = '%s;' % (utils.encode_string(fq_name_str)) + try: + col_info_iter = self._obj_fq_name_cf.xget( + method_name, column_start=col_start, column_finish=col_fin) + except pycassa.NotFoundException: + raise NoIdError('%s %s' % (obj_type, fq_name)) + + col_infos = list(col_info_iter) + + if len(col_infos) == 0: + raise NoIdError('%s %s' % (obj_type, fq_name)) + + for (col_name, col_val) in col_infos: + obj_uuid = col_name.split(':')[-1] + + return obj_uuid + # end fq_name_to_uuid + + def _read_child(self, result, obj_uuid, child_type, + child_uuid, child_tstamp): + if '%ss' % (child_type) not in result: + result['%ss' % (child_type)] = [] + + child_info = {} + child_info['to'] = self.uuid_to_fq_name(child_uuid) + child_info['href'] = self._generate_url(child_type, child_uuid) + child_info['uuid'] = child_uuid + child_info['tstamp'] = child_tstamp + + result['%ss' % (child_type)].append(child_info) + # end _read_child + + def _read_ref(self, result, obj_uuid, ref_type, ref_uuid, ref_data_json): + if '%s_refs' % (ref_type) not in result: + result['%s_refs' % (ref_type)] = [] + + ref_data = json.loads(ref_data_json) + ref_info = {} + try: + ref_info['to'] = self.uuid_to_fq_name(ref_uuid) + except NoIdError as e: + ref_info['to'] = ['ERROR'] + + if ref_data: + try: + ref_info['attr'] = ref_data['attr'] + except KeyError: + # TODO remove backward compat old format had attr directly + ref_info['attr'] = ref_data + + ref_info['href'] = self._generate_url(ref_type, ref_uuid) + ref_info['uuid'] = ref_uuid + + result['%s_refs' % (ref_type)].append(ref_info) + # end _read_ref + + def _read_back_ref(self, result, obj_uuid, back_ref_type, + back_ref_uuid, back_ref_data_json): + if '%s_back_refs' % (back_ref_type) not in result: + result['%s_back_refs' % (back_ref_type)] = [] + + back_ref_info = {} + back_ref_info['to'] = self.uuid_to_fq_name(back_ref_uuid) + back_ref_data = json.loads(back_ref_data_json) + if back_ref_data: + try: + back_ref_info['attr'] = back_ref_data['attr'] + except KeyError: + # TODO remove backward compat old format had attr directly + back_ref_info['attr'] = back_ref_data + + back_ref_info['href'] = self._generate_url(back_ref_type, back_ref_uuid) + back_ref_info['uuid'] = back_ref_uuid + + result['%s_back_refs' % (back_ref_type)].append(back_ref_info) + # end _read_back_ref + + diff --git a/Testcases/cfgm_common/vnc_cassandra.pyc b/Testcases/cfgm_common/vnc_cassandra.pyc Binary files differnew file mode 100644 index 0000000..4c8cac5 --- /dev/null +++ b/Testcases/cfgm_common/vnc_cassandra.pyc diff --git a/Testcases/cfgm_common/vnc_cpu_info.py b/Testcases/cfgm_common/vnc_cpu_info.py new file mode 100644 index 0000000..d929534 --- /dev/null +++ b/Testcases/cfgm_common/vnc_cpu_info.py @@ -0,0 +1,196 @@ +# +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +""" +.. attention:: Fix the license string +""" +import os +import socket +import psutil +import gevent +from uve.cfgm_cpuinfo.ttypes import * +from uve.cfgm_cpuinfo.cpuinfo.ttypes import * +from buildinfo import build_info +from sandesh_common.vns.ttypes import Module +from sandesh_common.vns.constants import ModuleNames + +# CpuInfo object for config-node + + +class CpuInfo(object): + + def __init__(self, module_id, instance_id, sysinfo_req, sandesh, + time_interval, server_ip=None): + # store cpuinfo at init + self._module_id = module_id + self._instance_id = instance_id + self._sysinfo = sysinfo_req + self._sandesh = sandesh + self._time_interval = time_interval + self._rss = 0 + self._vms = 0 + self._pvms = 0 + self._load_avg = (0, 0, 0) + self._phymem_usage = (0, 0, 0, 0) + self._phymem_buffers = 0 + self._num_cpus = 0 + self._cpu_share = 0 + self._curr_build_info = None + self._new_build_info = None + self._curr_ip = server_ip + self._new_ip = None + + # spawn a Greenlet object to do periodic collect and send. + gevent.spawn(self.cpu_stats) + # end __init__ + + def get_config_node_ip(self): + return self._curr_ip + # end __get_config_ndoe_ip + + def set_config_node_ip(self, server_ip): + self._curr_ip = server_ip + # end __set_config_ndoe_ip + + def cpu_stats(self): + cfg_process = psutil.Process(os.getpid()) + while True: + # collect Vmsizes + self._ip_change = 0 + self._build_change = 0 + rss = cfg_process.get_memory_info().rss + if (self._rss != rss): + self._rss = rss + + vms = cfg_process.get_memory_info().vms + if (self._vms != vms): + self._vms = vms + + pvms = vms + if (pvms > self._pvms): + self._pvms = pvms + + if self._sysinfo: + # collect CPU Load avg + load_avg = os.getloadavg() + if (load_avg != self._load_avg): + self._load_avg = load_avg + + # collect systemmeory info + phymem_usage = psutil.phymem_usage() + if (phymem_usage != self._phymem_usage): + self._phymem_usage = phymem_usage + + phymem_buffers = psutil.phymem_buffers() + if (phymem_buffers != self._phymem_buffers): + self._phymem_buffers = phymem_buffers + + if (self._new_ip != self._curr_ip): + self._new_ip = self.get_config_node_ip() + self._ip_change = 1 + + # Retrieve build_info from package/rpm and cache it + if self._curr_build_info is None: + command = "contrail-version contrail-config | grep 'contrail-config'" + version = os.popen(command).read() + _, rpm_version, build_num = version.split() + self._new_build_info = build_info + '"build-id" : "' + \ + rpm_version + '", "build-number" : "' + \ + build_num + '"}]}' + if (self._new_build_info != self._curr_build_info): + self._curr_build_info = self._new_build_info + self._build_change = 1 + + num_cpus = psutil.NUM_CPUS + if (num_cpus != self._num_cpus): + self._num_cpus = num_cpus + + cpu_percent = cfg_process.get_cpu_percent(interval=0.1) + cpu_share = cpu_percent / num_cpus + self._cpu_share = cpu_share + + self._send_cpustats() + + gevent.sleep(self._time_interval) + # end cpu_stats + + # Send Uve Object + def _send_cpustats(self): + mod_cpu = ModuleCpuInfo() + mod_cpu.module_id = self._module_id + mod_cpu.instance_id = self._instance_id + + mod_cpu.cpu_info = CpuLoadInfo() + + # populate number of available CPU + mod_cpu.cpu_info.num_cpu = self._num_cpus + + if self._sysinfo: + # populate system memory details + mod_cpu.cpu_info.sys_mem_info = SysMemInfo() + mod_cpu.cpu_info.sys_mem_info.total = self._phymem_usage[0] / 1024 + mod_cpu.cpu_info.sys_mem_info.used = self._phymem_usage[1] / 1024 + mod_cpu.cpu_info.sys_mem_info.free = self._phymem_usage[2] / 1024 + mod_cpu.cpu_info.sys_mem_info.buffers = self._phymem_buffers / 1024 + + # populate CPU Load avg + mod_cpu.cpu_info.cpuload = CpuLoadAvg() + mod_cpu.cpu_info.cpuload.one_min_avg = self._load_avg[0] + mod_cpu.cpu_info.cpuload.five_min_avg = self._load_avg[1] + mod_cpu.cpu_info.cpuload.fifteen_min_avg = self._load_avg[2] + + # populate Virtual Memory details + mod_cpu.cpu_info.meminfo = MemInfo() + mod_cpu.cpu_info.meminfo.virt = self._vms / 1024 + mod_cpu.cpu_info.meminfo.peakvirt = self._pvms / 1024 + mod_cpu.cpu_info.meminfo.res = self._rss / 1024 + + # populate cpu_share, which is calibrated with num_cpu + mod_cpu.cpu_info.cpu_share = self._cpu_share + + cpu_load_info_list = [mod_cpu] + + cfgm_cpu_uve = ModuleCpuState(module_cpu_info=cpu_load_info_list) + cfgm_cpu_uve.name = socket.gethostname() + if self._sysinfo: + if self._ip_change: + cfgm_cpu_uve.config_node_ip = self._new_ip + if self._build_change: + cfgm_cpu_uve.build_info = self._curr_build_info + + if (self._module_id == ModuleNames[Module.API_SERVER]): + cfgm_cpu_uve.api_server_mem_virt = mod_cpu.cpu_info.meminfo.virt + cfgm_cpu_uve.api_server_cpu_share = self._cpu_share + + if (self._module_id == ModuleNames[Module.SCHEMA_TRANSFORMER]): + cfgm_cpu_uve.schema_xmer_mem_virt = mod_cpu.cpu_info.meminfo.virt + cfgm_cpu_uve.schema_xmer_cpu_share = self._cpu_share + + if (self._module_id == ModuleNames[Module.SVC_MONITOR]): + cfgm_cpu_uve.service_monitor_mem_virt =\ + mod_cpu.cpu_info.meminfo.virt + cfgm_cpu_uve.service_monitor_cpu_share = self._cpu_share + + cpu_info_trace = ModuleCpuStateTrace( + data=cfgm_cpu_uve, sandesh=self._sandesh) + cpu_info_trace.send(sandesh=self._sandesh) + + cnf_cpu_state = ConfigCpuState() + cnf_cpu_state.name = socket.gethostname() + + cnf_cpu_info = ProcessCpuInfo() + cnf_cpu_info.module_id = self._module_id + cnf_cpu_info.inst_id = self._instance_id + cnf_cpu_info.cpu_share = self._cpu_share + cnf_cpu_info.mem_virt = mod_cpu.cpu_info.meminfo.virt + cnf_cpu_info.mem_res = mod_cpu.cpu_info.meminfo.res + cnf_cpu_state.cpu_info = [cnf_cpu_info] + + cnf_cpu_state_trace = ConfigCpuStateTrace( + sandesh=self._sandesh, data=cnf_cpu_state) + cnf_cpu_state_trace.send(sandesh=self._sandesh) + + # end _send_cpustats + +# end class CpuInfo diff --git a/Testcases/cfgm_common/vnc_cpu_info.pyc b/Testcases/cfgm_common/vnc_cpu_info.pyc Binary files differnew file mode 100644 index 0000000..8a122c9 --- /dev/null +++ b/Testcases/cfgm_common/vnc_cpu_info.pyc diff --git a/Testcases/cfgm_common/vnc_db.py b/Testcases/cfgm_common/vnc_db.py new file mode 100644 index 0000000..fae990d --- /dev/null +++ b/Testcases/cfgm_common/vnc_db.py @@ -0,0 +1,205 @@ +# +# Copyright (c) 2014 Juniper Networks, Inc. All rights reserved. +# + +""" +This file contains implementation of database model for contrail config daemons +""" +from vnc_api.common.exceptions import NoIdError + +class DBBase(object): + # This is the base class for all DB objects. All derived objects must + # have a class member called _dict of dictionary type. + # The init method of this class must be callled before using any functions + + _logger = None + _cassandra = None + _manager = None + + @classmethod + def init(cls, manager, logger, cassandra): + cls._logger = logger + cls._cassandra = cassandra + cls._manager = manager + # end init + + class __metaclass__(type): + + def __iter__(cls): + for i in cls._dict: + yield i + # end __iter__ + + def values(cls): + for i in cls._dict.values(): + yield i + # end values + + def items(cls): + for i in cls._dict.items(): + yield i + # end items + # end __metaclass__ + + @classmethod + def get(cls, key): + if key in cls._dict: + return cls._dict[key] + return None + # end get + + @classmethod + def locate(cls, key, *args): + if key not in cls._dict: + try: + cls._dict[key] = cls(key, *args) + except NoIdError as e: + cls._logger.debug( + "Exception %s while creating %s for %s", + e, cls.__name__, key) + return None + return cls._dict[key] + # end locate + + @classmethod + def delete(cls, key): + if key in cls._dict: + del cls._dict[key] + # end delete + + def get_ref_uuid_from_dict(self, obj_dict, ref_name): + if ref_name in obj_dict: + return obj_dict[ref_name][0]['uuid'] + else: + return None + + def add_ref(self, ref_type, ref): + if hasattr(self, ref_type): + setattr(self, ref_type, ref) + elif hasattr(self, ref_type+'s'): + ref_set = getattr(self, ref_type+'s') + ref_set.add(ref) + # end add_ref + + def delete_ref(self, ref_type, ref): + if hasattr(self, ref_type) and getattr(self, ref_type) == ref: + setattr(self, ref_type, None) + elif hasattr(self, ref_type+'s'): + ref_set = getattr(self, ref_type+'s') + ref_set.discard(ref) + # end delete_ref + + def add_to_parent(self, obj_dict): + self.parent_type = obj_dict.get('parent_type') + self.parent_id = obj_dict.get('parent_uuid') + if not self.parent_type or not self.parent_id: + return + p_obj = self._OBJ_TYPE_MAP[self.parent_type].get(self.parent_id) + if p_obj is not None: + p_obj.add_ref(self.obj_type, self.uuid) + # end + + def remove_from_parent(self): + if not self.parent_type or not self.parent_id: + return + p_obj = self._OBJ_TYPE_MAP[self.parent_type].get(self.parent_id) + if p_obj is not None: + p_obj.delete_ref(self.obj_type, self.uuid) + + def update_single_ref(self, ref_type, obj): + refs = obj.get(ref_type+'_refs') or obj.get(ref_type+'_back_refs') + if refs: + try: + new_id = refs[0]['uuid'] + except KeyError: + fq_name = refs[0]['to'] + new_id = self._cassandra.fq_name_to_uuid(ref_type, fq_name) + else: + new_id = None + old_id = getattr(self, ref_type, None) + if old_id == new_id: + return + ref_obj = self._OBJ_TYPE_MAP[ref_type].get(old_id) + if ref_obj is not None: + ref_obj.delete_ref(self.obj_type, self.uuid) + ref_obj = self._OBJ_TYPE_MAP[ref_type].get(new_id) + if ref_obj is not None: + ref_obj.add_ref(self.obj_type, self.uuid) + setattr(self, ref_type, new_id) + # end update_single_ref + + def set_children(self, ref_type, obj): + refs = obj.get(ref_type+'s') + new_refs = set() + for ref in refs or []: + try: + new_id = ref['uuid'] + except KeyError: + fq_name = ref['to'] + new_id = self._cassandra.fq_name_to_uuid(ref_type, fq_name) + new_refs.add(new_id) + setattr(self, ref_type+'s', new_refs) + # end + + def update_multiple_refs(self, ref_type, obj): + refs = obj.get(ref_type+'_refs') or obj.get(ref_type+'_back_refs') + new_refs = set() + for ref in refs or []: + try: + new_id = ref['uuid'] + except KeyError: + fq_name = ref['to'] + new_id = self._cassandra.fq_name_to_uuid(ref_type, fq_name) + new_refs.add(new_id) + old_refs = getattr(self, ref_type+'s') + for ref_id in old_refs - new_refs: + ref_obj = self._OBJ_TYPE_MAP[ref_type].get(ref_id) + if ref_obj is not None: + ref_obj.delete_ref(self.obj_type, self.uuid) + for ref_id in new_refs - old_refs: + ref_obj = self._OBJ_TYPE_MAP[ref_type].get(ref_id) + if ref_obj is not None: + ref_obj.add_ref(self.obj_type, self.uuid) + setattr(self, ref_type+'s', new_refs) + # end update_multiple_refs + + def read_obj(self, uuid, obj_type=None): + method_name = "_cassandra_%s_read" % (obj_type or self.obj_type) + method = getattr(self._cassandra, method_name) + ok, objs = method([uuid]) + if not ok: + self._logger.error( + 'Cannot read %s %s, error %s' % (obj_type, uuid, objs)) + raise NoIdError('') + return objs[0] + # end read_obj + + def get_parent_uuid(self, obj): + if 'parent_uuid' in obj: + return obj['parent_uuid'] + else: + parent_type = obj['parent_type'].replace('-', '_') + parent_fq_name = obj['fq_name'][:-1] + return self._cassandra.fq_name_to_uuid(parent_type, parent_fq_name) + # end get_parent_uuid + + @classmethod + def find_by_name_or_uuid(cls, name_or_uuid): + obj = cls.get(name_or_uuid) + if obj: + return obj + + for obj in cls.values(): + if obj.name == name_or_uuid: + return obj + return None + # end find_by_name_or_uuid + + @classmethod + def reset(cls): + cls._dict = {} +# end class DBBase + +DBBase._OBJ_TYPE_MAP = { +} + diff --git a/Testcases/cfgm_common/vnc_db.pyc b/Testcases/cfgm_common/vnc_db.pyc Binary files differnew file mode 100644 index 0000000..af6d0d6 --- /dev/null +++ b/Testcases/cfgm_common/vnc_db.pyc diff --git a/Testcases/cfgm_common/vnc_extensions.py b/Testcases/cfgm_common/vnc_extensions.py new file mode 100644 index 0000000..cebbe4d --- /dev/null +++ b/Testcases/cfgm_common/vnc_extensions.py @@ -0,0 +1,65 @@ +# +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +import functools + +import stevedore + + +class ApiHookManager(stevedore.hook.HookManager): + def __init__(self, namespace, hook_name): + super(ApiHookManager, self).__init__(namespace, hook_name, + invoke_on_load=True) + #end __init__ + + def run_pre(self, hook_name, args, kwargs): + for e in self.extensions: + obj = e.obj + pre = getattr(obj, 'pre', None) + if pre: + pre(*args, **kwargs) + #end run_pre + + def run_post(self, hook_name, rv, args, kwargs): + for e in reversed(self.extensions): + obj = e.obj + post = getattr(obj, 'post', None) + if post: + post(rv, *args, **kwargs) + #end run_post +#end class ApiHookManager + + +def add_api_hook(hook_manager, hook_name): + def outer(f): + @functools.wraps(f) + def inner(*args, **kwargs): + hook_manager.run_pre(hook_name, args, kwargs) + rv = f(*args, **kwargs) + hook_manager.run_post(hook_name, rv, args, kwargs) + + return rv + + return inner + #end inner + #end outer + + return outer +#end add_api_hook + + +class ExtensionManager(stevedore.extension.ExtensionManager): + def __init__(self, namespace, api_server_ip, + api_server_port, conf_sections, sandesh, + propagate_map_exceptions=False): + super(ExtensionManager, self).__init__( + namespace, invoke_on_load=True, + invoke_kwds={'api_server_ip': api_server_ip, + 'api_server_port': api_server_port, + 'conf_sections': conf_sections, + 'sandesh': sandesh }, + propagate_map_exceptions=propagate_map_exceptions) + #end __init__ + +#end class ExtensionManager diff --git a/Testcases/cfgm_common/vnc_extensions.pyc b/Testcases/cfgm_common/vnc_extensions.pyc Binary files differnew file mode 100644 index 0000000..68318a9 --- /dev/null +++ b/Testcases/cfgm_common/vnc_extensions.pyc diff --git a/Testcases/cfgm_common/vnc_kombu.py b/Testcases/cfgm_common/vnc_kombu.py new file mode 100644 index 0000000..0f00865 --- /dev/null +++ b/Testcases/cfgm_common/vnc_kombu.py @@ -0,0 +1,226 @@ +# +# Copyright (c) 2014 Juniper Networks, Inc. All rights reserved. +# +import re +import amqp.exceptions +import kombu +import gevent +import gevent.monkey +gevent.monkey.patch_all() +import time +from gevent.queue import Queue +try: + from gevent.lock import Semaphore +except ImportError: + # older versions of gevent + from gevent.coros import Semaphore + +from pysandesh.connection_info import ConnectionState +from pysandesh.gen_py.process_info.ttypes import ConnectionStatus, \ + ConnectionType +from pysandesh.gen_py.sandesh.ttypes import SandeshLevel + +__all__ = "VncKombuClient" + + +class VncKombuClientBase(object): + def _update_sandesh_status(self, status, msg=''): + ConnectionState.update(conn_type=ConnectionType.DATABASE, + name='RabbitMQ', status=status, message=msg, + server_addrs=["%s:%s" % (self._rabbit_ip, self._rabbit_port)]) + # end _update_sandesh_status + + def publish(self, message): + self._publish_queue.put(message) + # end publish + + def __init__(self, rabbit_ip, rabbit_port, rabbit_user, rabbit_password, + rabbit_vhost, rabbit_ha_mode, q_name, subscribe_cb, logger): + self._rabbit_ip = rabbit_ip + self._rabbit_port = rabbit_port + self._rabbit_user = rabbit_user + self._rabbit_password = rabbit_password + self._rabbit_vhost = rabbit_vhost + self._subscribe_cb = subscribe_cb + self._logger = logger + self._publish_queue = Queue() + self._conn_lock = Semaphore() + + self.obj_upd_exchange = kombu.Exchange('vnc_config.object-update', 'fanout', + durable=False) + + def num_pending_messages(self): + return self._publish_queue.qsize() + # end num_pending_messages + + def prepare_to_consume(self): + # override this method + return + + def _reconnect(self, delete_old_q=False): + if self._conn_lock.locked(): + # either connection-monitor or publisher should have taken + # the lock. The one who acquired the lock would re-establish + # the connection and releases the lock, so the other one can + # just wait on the lock, till it gets released + self._conn_lock.wait() + return + + self._conn_lock.acquire() + + msg = "RabbitMQ connection down" + self._logger(msg, level=SandeshLevel.SYS_ERR) + self._update_sandesh_status(ConnectionStatus.DOWN) + self._conn_state = ConnectionStatus.DOWN + + self._conn.close() + + self._conn.ensure_connection() + self._conn.connect() + + self._update_sandesh_status(ConnectionStatus.UP) + self._conn_state = ConnectionStatus.UP + msg = 'RabbitMQ connection ESTABLISHED %s' % repr(self._conn) + self._logger(msg, level=SandeshLevel.SYS_NOTICE) + + self._channel = self._conn.channel() + if delete_old_q: + # delete the old queue in first-connect context + # as db-resync would have caught up with history. + try: + bound_q = self._update_queue_obj(self._channel) + bound_q.delete() + except Exception as e: + msg = 'Unable to delete the old ampq queue: %s' %(str(e)) + self._logger(msg, level=SandeshLevel.SYS_ERR) + + self._consumer = kombu.Consumer(self._channel, + queues=self._update_queue_obj, + callbacks=[self._subscribe]) + self._producer = kombu.Producer(self._channel, exchange=self.obj_upd_exchange) + + self._conn_lock.release() + # end _reconnect + + def _connection_watch(self): + self.prepare_to_consume() + while True: + try: + self._consumer.consume() + self._conn.drain_events() + except self._conn.connection_errors + self._conn.channel_errors as e: + self._reconnect() + # end _connection_watch + + def _publisher(self): + message = None + while True: + try: + if not message: + # earlier was sent fine, dequeue one more + message = self._publish_queue.get() + + while True: + try: + self._producer.publish(message) + message = None + break + except self._conn.connection_errors + self._conn.channel_errors as e: + self._reconnect() + except Exception as e: + log_str = "Unknown exception in _publisher greenlet" + str(e) + self._logger(log_str, level=SandeshLevel.SYS_ERR) + # end _publisher + + def _subscribe(self, body, message): + try: + self._subscribe_cb(body) + finally: + message.ack() + + + def _start(self): + self._reconnect(delete_old_q=True) + + self._publisher_greenlet = gevent.spawn(self._publisher) + self._connection_monitor_greenlet = gevent.spawn(self._connection_watch) + + def shutdown(self): + self._publisher_greenlet.kill() + self._connection_monitor_greenlet.kill() + self._producer.close() + self._consumer.close() + self._conn.close() + + +class VncKombuClientV1(VncKombuClientBase): + def __init__(self, rabbit_ip, rabbit_port, rabbit_user, rabbit_password, + rabbit_vhost, rabbit_ha_mode, q_name, subscribe_cb, logger): + super(VncKombuClientV1, self).__init__(rabbit_ip, rabbit_port, + rabbit_user, rabbit_password, + rabbit_vhost, rabbit_ha_mode, + q_name, subscribe_cb, logger) + + self._conn = kombu.Connection(hostname=self._rabbit_ip, + port=self._rabbit_port, + userid=self._rabbit_user, + password=self._rabbit_password, + virtual_host=self._rabbit_vhost) + self._update_queue_obj = kombu.Queue(q_name, self.obj_upd_exchange, durable=False) + self._start() + # end __init__ + + +class VncKombuClientV2(VncKombuClientBase): + def _parse_rabbit_hosts(self, rabbit_hosts): + server_list = rabbit_hosts.split(",") + + default_dict = {'user': self._rabbit_user, + 'password': self._rabbit_password, + 'port': self._rabbit_port} + ret = [] + for s in server_list: + match = re.match("(?:(?P<user>.*?)(?::(?P<password>.*?))*@)*(?P<host>.*?)(?::(?P<port>\d+))*$", s) + if match: + mdict = match.groupdict().copy() + for key in ['user', 'password', 'port']: + if not mdict[key]: + mdict[key] = default_dict[key] + + ret.append(mdict) + + return ret + + def __init__(self, rabbit_hosts, rabbit_port, rabbit_user, rabbit_password, + rabbit_vhost, rabbit_ha_mode, q_name, subscribe_cb, logger): + super(VncKombuClientV2, self).__init__(rabbit_hosts, rabbit_port, + rabbit_user, rabbit_password, + rabbit_vhost, rabbit_ha_mode, + q_name, subscribe_cb, logger) + + _hosts = self._parse_rabbit_hosts(rabbit_hosts) + self._urls = [] + for h in _hosts: + h['vhost'] = "" if not rabbit_vhost else rabbit_vhost + _url = "pyamqp://%(user)s:%(password)s@%(host)s:%(port)s/%(vhost)s/" % h + self._urls.append(_url) + + msg = "Initializing RabbitMQ connection, urls %s" % self._urls + self._logger(msg, level=SandeshLevel.SYS_NOTICE) + self._update_sandesh_status(ConnectionStatus.INIT) + self._conn_state = ConnectionStatus.INIT + self._conn = kombu.Connection(self._urls) + queue_args = {"x-ha-policy": "all"} if rabbit_ha_mode else None + self._update_queue_obj = kombu.Queue(q_name, self.obj_upd_exchange, + durable=False, + queue_arguments=queue_args) + + self._start() + # end __init__ + + +from distutils.version import LooseVersion +if LooseVersion(kombu.__version__) >= LooseVersion("2.5.0"): + VncKombuClient = VncKombuClientV2 +else: + VncKombuClient = VncKombuClientV1 diff --git a/Testcases/cfgm_common/vnc_kombu.pyc b/Testcases/cfgm_common/vnc_kombu.pyc Binary files differnew file mode 100644 index 0000000..a8c19ed --- /dev/null +++ b/Testcases/cfgm_common/vnc_kombu.pyc diff --git a/Testcases/cfgm_common/vnc_plugin_base.py b/Testcases/cfgm_common/vnc_plugin_base.py new file mode 100644 index 0000000..e1d3517 --- /dev/null +++ b/Testcases/cfgm_common/vnc_plugin_base.py @@ -0,0 +1,71 @@ +# +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# + +import abc +from vnc_api.gen.vnc_api_extension_gen import ResourceApiGen + +class Resync(object): + @abc.abstractmethod + def __init__(self, api_server_ip, api_server_port, conf_sections): + pass + #end __init__ + + @abc.abstractmethod + def resync_domains_projects(self): + """ + Method that implements auditing of projects between orchestration + system and OpenContrail VNC + """ + pass + #end resync_projects + +#end class Resync + + +class ResourceApi(ResourceApiGen): + @abc.abstractmethod + def __init__(self): + pass + #end __init__ + + @abc.abstractmethod + def transform_request(self, request): + pass + # end transform_request + + @abc.abstractmethod + def validate_request(self, request): + pass + # end validate_request + + @abc.abstractmethod + def transform_response(self, request, response): + pass + # end transform_response + + +class NeutronApi(object): + @abc.abstractmethod + def __init__(self): + pass + #end __init__ + + +class AuthBase(object): + __metaclass__ = abc.ABCMeta + + @abc.abstractmethod + def __init__(self, auth_method, auth_opts): + pass + #end __init__ + + @abc.abstractmethod + def get_request_auth_app(self): + """ + Middleware to invoke for authentication on every request + """ + pass + #end get_request_auth_app + +#end class AuthBase diff --git a/Testcases/cfgm_common/vnc_plugin_base.pyc b/Testcases/cfgm_common/vnc_plugin_base.pyc Binary files differnew file mode 100644 index 0000000..598918a --- /dev/null +++ b/Testcases/cfgm_common/vnc_plugin_base.pyc diff --git a/Testcases/cfgm_common/zkclient.py b/Testcases/cfgm_common/zkclient.py new file mode 100644 index 0000000..5c8d461 --- /dev/null +++ b/Testcases/cfgm_common/zkclient.py @@ -0,0 +1,358 @@ +# +# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. +# +import os +import gevent +import logging +import kazoo.client +import kazoo.exceptions +import kazoo.handlers.gevent +import kazoo.recipe.election +from kazoo.client import KazooState +from kazoo.retry import KazooRetry + +from bitarray import bitarray +from cfgm_common.exceptions import ResourceExhaustionError, ResourceExistsError +from gevent.coros import BoundedSemaphore + +import uuid + +LOG_DIR = '/var/log/contrail/' + +class IndexAllocator(object): + + def __init__(self, zookeeper_client, path, size=0, start_idx=0, + reverse=False,alloc_list=None, max_alloc=0): + if alloc_list is None: + self._alloc_list = [{'start':start_idx, 'end':start_idx+size}] + else: + sorted_alloc_list = sorted(alloc_list, key=lambda k: k['start']) + self._alloc_list = sorted_alloc_list + + alloc_count = len(self._alloc_list) + total_size = 0 + start_idx = self._alloc_list[0]['start'] + size = 0 + + #check for overlap in alloc_list --TODO + for alloc_idx in range (0, alloc_count -1): + idx_start_addr = self._alloc_list[alloc_idx]['start'] + idx_end_addr = self._alloc_list[alloc_idx]['end'] + next_start_addr = self._alloc_list[alloc_idx+1]['start'] + if next_start_addr <= idx_end_addr: + raise Exception() + size += idx_end_addr - idx_start_addr + 1 + size += self._alloc_list[alloc_count-1]['end'] - self._alloc_list[alloc_count-1]['start'] + 1 + + self._size = size + self._start_idx = start_idx + if max_alloc == 0: + self._max_alloc = self._size + else: + self._max_alloc = max_alloc + + self._zookeeper_client = zookeeper_client + self._path = path + self._in_use = bitarray('0') + self._reverse = reverse + for idx in self._zookeeper_client.get_children(path): + idx_int = self._get_bit_from_zk_index(int(idx)) + if idx_int >= 0: + self._set_in_use(idx_int) + # end for idx + # end __init__ + + def _get_zk_index_from_bit(self, idx): + size = idx + if self._reverse: + for alloc in reversed(self._alloc_list): + size -= alloc['end'] - alloc['start'] + 1 + if size < 0: + return alloc['start']-size - 1 + else: + for alloc in self._alloc_list: + size -= alloc['end'] - alloc['start'] + 1 + if size < 0: + return alloc['end']+size + 1 + + raise Exception() + # end _get_zk_index + + def _get_bit_from_zk_index(self, idx): + size = 0 + if self._reverse: + for alloc in reversed(self._alloc_list): + if alloc['start'] <= idx <= alloc['end']: + return alloc['end'] - idx + size + size += alloc['end'] - alloc['start'] + 1 + pass + else: + for alloc in self._alloc_list: + if alloc['start'] <= idx <= alloc['end']: + return idx - alloc['start'] + size + size += alloc['end'] - alloc['start'] + 1 + return -1 + # end _get_bit_from_zk_index + + def _set_in_use(self, idx): + # if the index is higher than _max_alloc, do not use the bitarray, in + # order to reduce the size of the bitarray. Otherwise, set the bit + # corresponding to idx to 1 and extend the _in_use bitarray if needed + if idx > self._max_alloc: + return + if idx >= self._in_use.length(): + temp = bitarray(idx - self._in_use.length()) + temp.setall(0) + temp.append('1') + self._in_use.extend(temp) + else: + self._in_use[idx] = 1 + # end _set_in_use + + def alloc(self, value=None): + if self._in_use.all(): + idx = self._in_use.length() + if idx > self._max_alloc: + raise ResourceExhaustionError() + self._in_use.append(1) + else: + idx = self._in_use.index(0) + self._in_use[idx] = 1 + + idx = self._get_zk_index_from_bit(idx) + try: + # Create a node at path and return its integer value + id_str = "%(#)010d" % {'#': idx} + self._zookeeper_client.create_node(self._path + id_str, value) + return idx + except ResourceExistsError: + return self.alloc(value) + # end alloc + + def reserve(self, idx, value=None): + bit_idx = self._get_bit_from_zk_index(idx) + if bit_idx < 0: + return None + try: + # Create a node at path and return its integer value + id_str = "%(#)010d" % {'#': idx} + self._zookeeper_client.create_node(self._path + id_str, value) + self._set_in_use(bit_idx) + return idx + except ResourceExistsError: + self._set_in_use(bit_idx) + return None + # end reserve + + def delete(self, idx): + id_str = "%(#)010d" % {'#': idx} + self._zookeeper_client.delete_node(self._path + id_str) + bit_idx = self._get_bit_from_zk_index(idx) + if 0 <= bit_idx < self._in_use.length(): + self._in_use[bit_idx] = 0 + # end delete + + def read(self, idx): + id_str = "%(#)010d" % {'#': idx} + id_val = self._zookeeper_client.read_node(self._path+id_str) + if id_val is not None: + bit_idx = self._get_bit_from_zk_index(idx) + if bit_idx >= 0: + self._set_in_use(bit_idx) + return id_val + # end read + + def empty(self): + return not self._in_use.any() + # end empty + + @classmethod + def delete_all(cls, zookeeper_client, path): + try: + zookeeper_client.delete_node(path, recursive=True) + except kazoo.exceptions.NotEmptyError: + #TODO: Add retries for NotEmptyError + zookeeper_client.syslog("NotEmptyError while deleting %s" % path) + # end delete_all + +#end class IndexAllocator + + +class ZookeeperClient(object): + + def __init__(self, module, server_list, logging_fn=None): + # logging + logger = logging.getLogger(module) + logger.setLevel(logging.INFO) + try: + handler = logging.handlers.RotatingFileHandler(LOG_DIR + module + '-zk.log', maxBytes=10*1024*1024, backupCount=5) + except IOError: + print "Cannot open log file in %s" %(LOG_DIR) + else: + log_format = logging.Formatter('%(asctime)s [%(name)s]: %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p') + handler.setFormatter(log_format) + logger.addHandler(handler) + + if logging_fn: + self.log = logging_fn + else: + self.log = self.syslog + + self._zk_client = \ + kazoo.client.KazooClient( + server_list, + timeout=400, + handler=kazoo.handlers.gevent.SequentialGeventHandler(), + logger=logger) + + self._zk_client.add_listener(self._zk_listener) + self._logger = logger + self._election = None + self._server_list = server_list + # KazooRetry to retry keeper CRUD operations + self._retry = KazooRetry(max_tries=None, max_delay=300, + sleep_func=gevent.sleep) + + self._conn_state = None + self._sandesh_connection_info_update(status='INIT', message='') + self._lost_cb = None + + self.connect() + # end __init__ + + # start + def connect(self): + while True: + try: + self._zk_client.start() + break + except gevent.event.Timeout as e: + # Update connection info + self._sandesh_connection_info_update(status='DOWN', + message=str(e)) + gevent.sleep(1) + # Zookeeper is also throwing exception due to delay in master election + except Exception as e: + # Update connection info + self._sandesh_connection_info_update(status='DOWN', + message=str(e)) + gevent.sleep(1) + # Update connection info + self._sandesh_connection_info_update(status='UP', message='') + + # end + + def is_connected(self): + return self._zk_client.state == KazooState.CONNECTED + # end is_connected + + def syslog(self, msg, *args, **kwargs): + if not self._logger: + return + self._logger.info(msg) + # end syslog + + def set_lost_cb(self, lost_cb=None): + # set a callback to be called when kazoo state is lost + # set to None for default action + self._lost_cb = lost_cb + # end set_lost_cb + + def _zk_listener(self, state): + if state == KazooState.CONNECTED: + if self._election: + self._election.cancel() + # Update connection info + self._sandesh_connection_info_update(status='UP', message='') + elif state == KazooState.LOST: + # Lost the session with ZooKeeper Server + # Best of option we have is to exit the process and restart all + # over again + if self._lost_cb: + self._lost_cb() + else: + os._exit(2) + elif state == KazooState.SUSPENDED: + # Update connection info + self._sandesh_connection_info_update(status='INIT', + message = 'Connection to zookeeper lost. Retrying') + + # end + + def _zk_election_callback(self, func, *args, **kwargs): + func(*args, **kwargs) + # Exit if running master encounters error or exception + exit(1) + # end + + def master_election(self, path, identifier, func, *args, **kwargs): + while True: + self._election = self._zk_client.Election(path, identifier) + self._election.run(self._zk_election_callback, func, *args, **kwargs) + # end master_election + + def create_node(self, path, value=None): + try: + if value is None: + value = uuid.uuid4() + retry = self._retry.copy() + retry(self._zk_client.create, path, str(value), makepath=True) + except kazoo.exceptions.NodeExistsError: + current_value = self.read_node(path) + if current_value == value: + return True; + raise ResourceExistsError(path, str(current_value)) + # end create_node + + def delete_node(self, path, recursive=False): + try: + retry = self._retry.copy() + retry(self._zk_client.delete, path, recursive=recursive) + except kazoo.exceptions.NoNodeError: + pass + except Exception as e: + raise e + # end delete_node + + def read_node(self, path): + try: + retry = self._retry.copy() + value = retry(self._zk_client.get, path) + return value[0] + except Exception: + return None + # end read_node + + def get_children(self, path): + try: + retry = self._retry.copy() + return retry(self._zk_client.get_children, path) + except Exception: + return [] + # end read_node + + def _sandesh_connection_info_update(self, status, message): + from pysandesh.connection_info import ConnectionState + from pysandesh.gen_py.process_info.ttypes import ConnectionStatus, \ + ConnectionType + from pysandesh.gen_py.sandesh.ttypes import SandeshLevel + + new_conn_state = getattr(ConnectionStatus, status) + ConnectionState.update(conn_type = ConnectionType.ZOOKEEPER, + name = 'Zookeeper', status = new_conn_state, + message = message, + server_addrs = self._server_list.split(',')) + + if (self._conn_state and self._conn_state != ConnectionStatus.DOWN and + new_conn_state == ConnectionStatus.DOWN): + msg = 'Connection to Zookeeper down: %s' %(message) + self.log(msg, level=SandeshLevel.SYS_ERR) + if (self._conn_state and self._conn_state != new_conn_state and + new_conn_state == ConnectionStatus.UP): + msg = 'Connection to Zookeeper ESTABLISHED' + self.log(msg, level=SandeshLevel.SYS_NOTICE) + + self._conn_state = new_conn_state + # end _sandesh_connection_info_update + +# end class ZookeeperClient diff --git a/Testcases/cfgm_common/zkclient.pyc b/Testcases/cfgm_common/zkclient.pyc Binary files differnew file mode 100644 index 0000000..c18a227 --- /dev/null +++ b/Testcases/cfgm_common/zkclient.pyc |