Module cvpysdk.monitoring

Main file for performing Monitoring related operations on the commcell.

This file has all the classes related to Monitoring operations.

MonitoringPolicies: Class for representing all the monitoring policies configured in the commcell.

MonitoringPolicy: Class for representing a single monitoring policy configured in the commcell.

Monitoringpolicies

init(commcell_object) – initialize the MonitoringPolicies class instance for the commcell

str() – returns all the monitoring policies associated with the commcell

repr() – returns the string for the instance of the MonitoringPolicy class

_get_monitoring_policies() – gets all the monitoring policies of the commcell

has_monitoring_policy() – checks if a monitoring policy exists with the given name or not

_get_analytics_servers() – returns all the analytics servers associated with the commcell

has_analytics_server() – checks if a analytics server exists with the given name or not

_get_templates() – returns all the templates associated with the commcell

has_template() – checks if a template exists with the given name or not

get() – Returns a MonitoringPolicy object of the specified monitoring policy name

add() – adds a new monitoring policy to the commcell

delete() – deletes a monitoring policy

refresh() – refreshes the MonitoringPolicies/Templates and Analytics Servers associated to the commcell

Attributes

**all_analytics_servers**       -- returns the dictionary consisting of
all the analytics servers that are associated with the commcell and their
information such as cloudid and analyticsserver name

**all_templates**               -- returns the dictionary consisting of
all the templates that are associated with the commcell and their
information such as templateid and templatename

**all_monitoring_policies       -- returns the dictionary consisting of
all the monitoring policies that are associated with the commcell and
their information such as monitoringpolicyid and name

Monitoringpolicy

init(commcell_object, monitoring_policy_name, monitoring_policy_id) – initializes the instance of MonitoringPolicy class for a specific MonitoringPolicy of the commcell

repr() – returns a string representation of the MonitoringPolicy instance

_get_monitoring_policy_id() – gets the id of the MonitoringPolicy instance from the commcell

run() – starts a Monitoring Policy job and returns a job object

Attributes

**monitoring_policy_name**          -- returns the monitoringpolicy name

**monitoring_policy_id**            -- returnd the id of monitoringpolicy
Expand source code Browse git
# -*- coding: utf-8 -*-

# --------------------------------------------------------------------------
# Copyright Commvault Systems, Inc.
#
# 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.
# --------------------------------------------------------------------------

"""Main file for performing Monitoring related operations on the commcell.

This file has all the classes related to Monitoring operations.

MonitoringPolicies:      Class for representing all the monitoring policies
                            configured in the commcell.

MonitoringPolicy:        Class for representing a single monitoring policy
                            configured in the commcell.

MonitoringPolicies:

    __init__(commcell_object)       --  initialize the MonitoringPolicies class
                                            instance for the commcell

    __str__()                       --  returns all the monitoring policies
                                            associated with the commcell

    __repr__()                      --  returns the string for the instance
                                            of the MonitoringPolicy class

    _get_monitoring_policies()      --  gets all the monitoring policies
                                            of the commcell

    has_monitoring_policy()         --  checks if a monitoring policy exists
                                            with the given name or not

    _get_analytics_servers()        --  returns all the analytics servers
                                            associated with the commcell

    has_analytics_server()          --  checks if a analytics server exists
                                            with the given name or not

    _get_templates()                --  returns all the templates
                                            associated with the commcell

    has_template()                  --  checks if a template exists
                                            with the given name or not

    get()                           --  Returns  a MonitoringPolicy object
                                        of the specified monitoring policy name

    add()                           --  adds a new monitoring policy to the commcell

    delete()                        --  deletes a monitoring policy

    refresh()                       -- refreshes the MonitoringPolicies/Templates
                                            and Analytics Servers
                                            associated to the commcell

Attributes
==========

    **all_analytics_servers**       -- returns the dictionary consisting of
    all the analytics servers that are associated with the commcell and their
    information such as cloudid and analyticsserver name

    **all_templates**               -- returns the dictionary consisting of
    all the templates that are associated with the commcell and their
    information such as templateid and templatename

    **all_monitoring_policies       -- returns the dictionary consisting of
    all the monitoring policies that are associated with the commcell and
    their information such as monitoringpolicyid and name


MonitoringPolicy:

    __init__(commcell_object,
             monitoring_policy_name,
             monitoring_policy_id)            --  initializes the instance of
                                                    MonitoringPolicy class
                                                    for a specific MonitoringPolicy
                                                    of the commcell

    __repr__()                                --  returns a string representation
                                                    of the MonitoringPolicy instance

    _get_monitoring_policy_id()            --  gets the id of the MonitoringPolicy
                                                    instance from the commcell

    run()                                     --  starts a Monitoring Policy job
                                                    and returns a job object

Attributes
==========

    **monitoring_policy_name**          -- returns the monitoringpolicy name

    **monitoring_policy_id**            -- returnd the id of monitoringpolicy
"""

from .exception import SDKException
from .job import Job


class MonitoringPolicies(object):
    """Class for representing all the Monitoring Policies
        configured in the commcell."""

    def __init__(self, commcell_object):
        """Intializes object of the MonitoringPolicies class.

            Args:
                commcell_object (object) -instance of the commcell class

            Returns:
                object - instance of the MonitoringPolicies class
        """

        self._commcell_object = commcell_object

        self._cvpysdk_object = self._commcell_object._cvpysdk_object
        self._services = self._commcell_object._services
        self._update_response_ = self._commcell_object._update_response_

        self._MONITORING_POLICIES = self._services['GET_ALL_MONITORING_POLICIES']
        self._ANALYTICS_SERVERS = self._services['GET_ALL_ANALYTICS_SERVERS']
        self._TEMPLATES = self._services['GET_ALL_TEMPLATES']
        self._MONITORING_POLICIES_OPERATIONS = self._services[
            'CREATE_DELETE_EDIT_OPERATIONS'
        ]
        self._monitoring_policies = None
        self._analytics_servers = None
        self._templates = None
        self.refresh()

    def __str__(self):
        """Representation string consisting of all MonitoringPolicies of the commcell.

            Returns:
                str - string of all the monitoring policies
                    associated with the commcell
        """
        representation_string = '{:^5}\t{:^20}\n\n'.format('S.No.',
                                                           'Monitoring Policy')

        for index, monitoring_policy in enumerate(self.all_monitoring_policies):
            sub_str = '{:^5}\t{:^20}\n\n'.format(index + 1, monitoring_policy)
            representation_string += sub_str

        return representation_string.strip()

    def __repr__(self):
        """Representation string for the instance of the MonitoringPolicies class."""
        return "MonitoringPolicies class instance for Commcell: '{0}'".format(
            self._commcell_object.commserv_name
        )

    def _get_monitoring_policies(self):
        """Gets all the Monitoring Policies associated to the commcell
            specified by commcell object.

                Returns:
                    dict - consists of all monitoring policies of the commcell
                        {
                             "monitoring_policy_name1":monitoring_policy_id1,
                             "monitoring_policy_name2":monitoring_policy_id2
                        }
                Raises:
                    SDKException:
                        if response is empty

                        if response is not success
        """
        request = {
                "flag": 2, "appType": 1
            }

        flag, response = self._cvpysdk_object.make_request(
            'POST', self._MONITORING_POLICIES, request)

        if flag:
            if response.json() and 'monitoringPolicies' in response.json():
                monitoring_policies_dict = {}

                for dictionary in response.json()['monitoringPolicies']:
                    temp_name = dictionary['monitoringPolicyName'].lower()
                    temp_id = int(dictionary['monitoringPolicyid'])
                    monitoring_policies_dict[temp_name] = temp_id

                return monitoring_policies_dict

            return {}
        else:
            response_string = self._update_response_(response.text)
            raise SDKException('Response', '101', response_string)

    @property
    def all_analytics_servers(self):
        """Returns the dictionary consisting of all the analytics servers
            and their info.

            dict - consists of all analytics servers in the commcell
                {
                    "analytics_server_1":cloud_id1,
                    "analytics_server_2":cloud_id2
                }
        """
        return self._analytics_servers

    @property
    def all_templates(self):
        """Returns the dictionary consisting of all the templates
            and their info.

            dict - consists of all templates in the commcell
                {
                     "template_name1":{
                         "id":template_id1,
                         "type":template_type
                    },
                    "template_name2":{
                        "id":template_id2,
                        "type":template_type
                    }
                }
        """
        return self._templates

    @property
    def all_monitoring_policies(self):
        """Returns the dictionary consisting of all the
            monitoringpolicies and their info.

            dict - consists of all the monitoringpolicies
                    in the commcell
                {
                    "monitoring_policy_name1":monitoring_policy_id1,
                    "monitoring_policy_name2":monitoring_policy_id2
                }
        """
        return self._monitoring_policies

    def has_monitoring_policy(self, monitoring_policy_name):
        """checks if a moniotoring policy exists in the commcell
                with the provided name

            Args:
                monitoring_policy_name (str) -- name of the monitoring policy

            Returns:
                bool - boolean output whether the monitoring policy
                    exists in the commcell or not

            Raises:
                SDKException:
                    if type of the monitoring_policy_name is not string
        """

        if not isinstance(monitoring_policy_name, str):
            raise SDKException('Monitoring', '101')

        return self.all_monitoring_policies and monitoring_policy_name.lower() in \
            self.all_monitoring_policies

    def _get_analytics_servers(self):
        """Gets all the analytics servers associated to the commcell
                specified by commcell object.

            Returns:
                dict - consists of all analytics servers of the commcell
                    {
                         "analytics_server_1":cloud_id1
                         "analytics_server_2":cloud_id2
                    }
            Raises:
                SDKException:
                    if response is empty

                    if response is not success
        """
        flag, response = self._cvpysdk_object.make_request(
            'GET', self._ANALYTICS_SERVERS
        )

        if flag:
            if response.json() and 'listOfCIServer' in response.json():
                analytics_servers_dict = {}

                for dictionary in response.json()['listOfCIServer']:
                    temp_name = dictionary['internalCloudName'].lower()
                    temp_id = int(dictionary['cloudID'])
                    analytics_servers_dict[temp_name] = temp_id

                return analytics_servers_dict

            return {}
        else:
            response_string = self._update_response_(response.text)
            raise SDKException('Response', '101', response_string)

    def has_analytics_server(self, analytics_server_name):
        """Checks if a analytics server exists in the commcell
            with the input analytics server name

            Args:
                analytics_server_name (str) -- name of the analytics server

            Returns:
                bool - boolean output whether the analytics server
                    exists in the commcell or not

            Raises:
                SDKException:
                    if type of the analytics server name is not string

        """

        if not isinstance(analytics_server_name, str):
            raise SDKException('Monitoring', '101')

        return self.all_analytics_servers and analytics_server_name.lower() in \
            self.all_analytics_servers

    def _get_templates(self):
        """Gets all the templates associated to the commcell
            specified by commcell object.

                Returns:
                    dict- consists of all templates of the commcell
                        {
                             "template_name1": {
                                 "id":template_id1,
                                 "type":template_type
                            },
                            "template_name2": {
                                "id":template_id2,
                                "type":template_type
                            }
                        }
                Raises:
                    SDKException:
                        if response is empty

                        if response is not success
        """

        xml_request = """<GetListofTemplatesByTemplateId templateId=""
        includeTemplateXML="" appType="" flag=""></GetListofTemplatesByTemplateId>"""

        flag, response = self._cvpysdk_object.make_request(
            'POST', self._TEMPLATES, xml_request
        )

        if flag:
            if response.json() and 'LMTemplates' in response.json():
                templates_dict = {}

                for dictionary in response.json()['LMTemplates']:
                    temp_name = dictionary['LMTemplateEntity']['templateName'].lower()
                    temp_id = int(dictionary['LMTemplateEntity']['templateId'])
                    temp_type = int(dictionary['templateForMonitoringType'])
                    templates_dict[temp_name] = {
                        'id' : temp_id,
                        'type' : temp_type
                    }

                return templates_dict

            else:
                raise SDKException('Response', '102')
        else:
            response_string = self._update_response_(response.text)
            raise SDKException('Response', '101', response_string)

    def has_template(self, template_name):
        """Checks if a template exists in the commcell with the input template name.

            Args:
                template_name(str) -- name of the template

            Returns:
                bool- boolean output whether the template exists
                    in the commcell or not

            Raises:
                SDKException:
                    if type of the library name argument is not string
        """
        if not isinstance(template_name, str):
            raise SDKException('Monitoring', '101')

        return self.all_templates and template_name.lower() in self.all_templates

    def get(self, monitoring_policy_name):
        """Returns  a MonitoringPolicy object of the specified monitoring policy name.

            Args:
                monitoring_policy_name (str) - name of the monitoring policy

            Returns:
                object - instance of the MonitoringPolicy class
                    for the given policy name

            Raises:
                SDKException:
                    if type of the monitoring policy name argument is not string

                    if no monitoring policy exists with the given name
        """
        if not isinstance(monitoring_policy_name, str):
            raise SDKException('Monitoring', '101')

        monitoring_policy_name = monitoring_policy_name.lower()

        if not self.has_monitoring_policy(monitoring_policy_name):
            raise SDKException(
                'Monitoring',
                '102',
                'No policy exists with name :{0}'.format(monitoring_policy_name))

        return MonitoringPolicy(
            self._commcell_object,
            monitoring_policy_name,
            self.all_monitoring_policies[monitoring_policy_name]
        )

    def add(self,
            monitoring_policy_name,
            template_name,
            analytics_server_name,
            client_name,
            content=None,
            win_flag=False,
            policy_type=0,
            **kwargs):
        """Adds a new Monitoring Policy to the Commcell.

            Args:
                monitoring_policy_name (str) -- name of the new monitoring
                                                    policy to add

                template_name (str)          -- name of the template
                                                    that has to be used

                analytics_server_name (str)  -- name of the Analytics Server
                                                    with LM role

                client_name (str)            -- client from which data
                                                    has to be picked

                content (str)                     -- content to be used for
                                                    running the policy

                win_flag (bool)                    -- For executing Text based
                                                    WindowsEvents Policy

                policy_type (int)                -- type of policy to be created 0 - index server 1 - event raiser

                kwargs                          -- continuousMode - true/false, conditionsXML - criteria for policy

            Raises:
                SDKException:
                    if template doesn't exists

                    if Analytics Server doesn't exists

                    if Client doesn't exists

                    if creation of Monitoring Policy fails

                    if response is empty

                    if response is not success
        """
        template_name = template_name.lower()
        client_name = client_name.lower()
        template_dict = {}
        cloud_id = 0
        if analytics_server_name is None:
            analytics_server_name = ''

        if template_name == "ondemand":
            template_id = 1
            template_type = 4
        elif win_flag:
            template_id = 2
            template_type = 0
        else:
            if self.has_template(template_name):
                # template_dict = self.all_templates
                template_id = int(self.all_templates[template_name]['id'])
                template_type = int(self.all_templates[template_name]['type'])
            else:
                err_msg = 'Template "{0}" doesn\'t exist'.format(template_name)
                raise SDKException('Monitoring', '102', err_msg)

        if content is None:
            content = ""

        if policy_type==0:
            analytics_server_name = analytics_server_name.lower()
            if self.has_analytics_server(analytics_server_name):
                cloud_id = self.all_analytics_servers[analytics_server_name]
            else:
                err_msg = 'Analytics Server "{0}" doesn\'t exist'.format(
                    analytics_server_name
                )
                raise SDKException('Monitoring', '102', err_msg)

        client_dict = {}
        if self._commcell_object.clients.has_client(client_name):
            client_dict = self._commcell_object.clients.all_clients
            client_id = int(client_dict[client_name]['id'])
        else:
            err_msg = 'Client "{0}" doesn\'t exist'.format(client_name)
            raise SDKException('Monitoring', '102', err_msg)

        request = {
            "op": 1,
            "policy": {
                "monitoringPolicyName": monitoring_policy_name,
                "monitoringPolicyid": 0,
                "content": content,
                "continuousMode": kwargs.get('continuousMode',False),
                "indexAllLines": False if kwargs.get('conditionsXML') else True,
                "associations": [{
                    "clientName": client_name,
                    "clientId": client_id,
                    "_type_": 3
                }],
                "monitoringTypes": [
                    template_type
                ],
                "LMTemplates": [{
                    "templateName": template_name,
                    "templateId": template_id
                }],
                "criteria": [
                    {
                        "conditionsXML": kwargs.get('conditionsXML',''),
                        "templateId": template_id
                    }
                ],
                "dataCapturingOptions": {
                    "cloudId": cloud_id,
                    "ageCIDataAfterDays": 15,
                    "cloudName": analytics_server_name,
                    "doNotMonitorOldData": False,
                    "enableContentIndexing": True,
                    "asFtp": False,
                    "dataCapturingType": policy_type,
                    "captureEntireFile": False
                }
            }
        }

        flag, response = self._cvpysdk_object.make_request(
            'POST', self._MONITORING_POLICIES_OPERATIONS, request)

        if flag:
            if response.json():
                error_code = response.json()['errorCode']

                if error_code != 0:
                    error_string = response.json()['errorMessage']
                    raise SDKException(
                        'Monitoring',
                        '102',
                        'Failed to create MonitoringPolicy\nError: "{0}"'.format(
                            error_string
                        )
                    )
                self.refresh()
            else:
                raise SDKException('Response', '102')
        else:
            response_string = self._update_response_(response.text)
            raise SDKException('Response', '101', response_string)

        return self.get(monitoring_policy_name)

    def delete(self, monitoring_policy_name):
        """Deletes the monitoring policy from the commcell.

            Args:
                monitoring_policy_name(str) -- name of the monitoring policy to delete

            Raises:
                SDKException:
                    if type of the monitoring policy name argument is not string

                    if failed to delete monitoring policy

                    if response is empty

                    if response is not succcess
        """
        if not isinstance(monitoring_policy_name, str):
            raise SDKException('Monitoring', '101')
        else:
            monitoring_policy_name = monitoring_policy_name.lower()

            if self.has_monitoring_policy(monitoring_policy_name):
                request = {
                    "op": 3,
                    "policy": {
                        "monitoringPolicyName": monitoring_policy_name,
                        "monitoringTypes": [0]
                    }
                }
                flag, response = self._cvpysdk_object.make_request(
                    'POST', self._MONITORING_POLICIES_OPERATIONS, request)

                self.refresh()

                if flag:
                    if response.json():
                        error_code = response.json()['errorCode']

                        if error_code != 0:
                            error_string = response.json()['errorMessage']
                            raise SDKException(
                                'Monitoring', '102'
                                'Failed to delete MonitoringPolicy\nError: "{0}"'
                                .format(
                                    error_string
                                )
                            )

                    else:
                        raise SDKException('Response', '102')
                else:
                    response_string = self._update_response_(
                        response.text
                    )
                    raise SDKException('Response', '101', response_string)
            else:
                err_msg = 'MonitoringPolicy "{0}" doesn\'t exist'.format(
                    monitoring_policy_name
                )
                raise SDKException('Monitoring', '102', err_msg)

    def refresh(self):
        """Refreshes the monitoring policies/analytics servers
            and templates associated with the commcell"""

        self._monitoring_policies = self._get_monitoring_policies()
        self._analytics_servers = self._get_analytics_servers()
        self._templates = self._get_templates()


class MonitoringPolicy(object):
    """"Class for performing monitoring policy operations
            for a specific monitoring policy"""

    def __init__(self, commcell_object, monitoring_policy_name,
                 monitoring_policy_id=None):
        """Initialise the Monitoring Policy class instance."""

        self._monitoring_policy_name = monitoring_policy_name.lower()
        self._commcell_object = commcell_object
        self._update_response_ = self._commcell_object._update_response_

        if monitoring_policy_id:
            self._monitoring_policy_id = str(monitoring_policy_id)
        else:
            self._monitoring_policy_id = self._get_monitoring_policy_id()

        self._RUN_MONITORING_POLICY = self._commcell_object._services[
            'RUN_MONITORING_POLICY'] % (self._monitoring_policy_id)

    def __repr__(self):
        """String representation of the instance of this class"""
        representation_string = 'Monitoring Policy class instance ' \
                                'for Monitoring Policy: "{0}"'
        return representation_string.format(self.monitoring_policy_name)

    def _get_monitoring_policy_id(self):
        """Gets the monitoring policy id associated with the monitoring policy."""
        monitoring_policies = MonitoringPolicies(self._commcell_object)
        return monitoring_policies.get(self.monitoring_policy_name).\
            monitoring_policy_id

    @property
    def monitoring_policy_name(self):
        """Treats the monitoring policy name as read only attribute."""
        return self._monitoring_policy_name

    @property
    def monitoring_policy_id(self):
        """Treats the monitoring policy id as read only attribute."""
        return self._monitoring_policy_id

    def run(self):
        """Runs the Monitoring Policy job"""

        flag, response = self._commcell_object._cvpysdk_object.make_request(
            'POST', self._RUN_MONITORING_POLICY)

        if flag:
            if response.json():
                if "jobIds" in response.json():
                    return Job(self._commcell_object, response.json()['jobIds'][0])
                elif "errorCode" in response.json():
                    o_str = 'Intializing Monitoring Policy Job failed\nError: "{0}"'\
                        .format(response.json()['errorMessage'])
                    raise SDKException('Monitoring', '102', o_str)
            else:
                raise SDKException('Response', '102')
        else:
            response_string = self._update_response_(response.text)
            raise SDKException('Response', '101', response_string)

Classes

class MonitoringPolicies (commcell_object)

Class for representing all the Monitoring Policies configured in the commcell.

Intializes object of the MonitoringPolicies class.

Args

commcell_object (object) -instance of the commcell class

Returns

object - instance of the MonitoringPolicies class

Expand source code Browse git
class MonitoringPolicies(object):
    """Class for representing all the Monitoring Policies
        configured in the commcell."""

    def __init__(self, commcell_object):
        """Intializes object of the MonitoringPolicies class.

            Args:
                commcell_object (object) -instance of the commcell class

            Returns:
                object - instance of the MonitoringPolicies class
        """

        self._commcell_object = commcell_object

        self._cvpysdk_object = self._commcell_object._cvpysdk_object
        self._services = self._commcell_object._services
        self._update_response_ = self._commcell_object._update_response_

        self._MONITORING_POLICIES = self._services['GET_ALL_MONITORING_POLICIES']
        self._ANALYTICS_SERVERS = self._services['GET_ALL_ANALYTICS_SERVERS']
        self._TEMPLATES = self._services['GET_ALL_TEMPLATES']
        self._MONITORING_POLICIES_OPERATIONS = self._services[
            'CREATE_DELETE_EDIT_OPERATIONS'
        ]
        self._monitoring_policies = None
        self._analytics_servers = None
        self._templates = None
        self.refresh()

    def __str__(self):
        """Representation string consisting of all MonitoringPolicies of the commcell.

            Returns:
                str - string of all the monitoring policies
                    associated with the commcell
        """
        representation_string = '{:^5}\t{:^20}\n\n'.format('S.No.',
                                                           'Monitoring Policy')

        for index, monitoring_policy in enumerate(self.all_monitoring_policies):
            sub_str = '{:^5}\t{:^20}\n\n'.format(index + 1, monitoring_policy)
            representation_string += sub_str

        return representation_string.strip()

    def __repr__(self):
        """Representation string for the instance of the MonitoringPolicies class."""
        return "MonitoringPolicies class instance for Commcell: '{0}'".format(
            self._commcell_object.commserv_name
        )

    def _get_monitoring_policies(self):
        """Gets all the Monitoring Policies associated to the commcell
            specified by commcell object.

                Returns:
                    dict - consists of all monitoring policies of the commcell
                        {
                             "monitoring_policy_name1":monitoring_policy_id1,
                             "monitoring_policy_name2":monitoring_policy_id2
                        }
                Raises:
                    SDKException:
                        if response is empty

                        if response is not success
        """
        request = {
                "flag": 2, "appType": 1
            }

        flag, response = self._cvpysdk_object.make_request(
            'POST', self._MONITORING_POLICIES, request)

        if flag:
            if response.json() and 'monitoringPolicies' in response.json():
                monitoring_policies_dict = {}

                for dictionary in response.json()['monitoringPolicies']:
                    temp_name = dictionary['monitoringPolicyName'].lower()
                    temp_id = int(dictionary['monitoringPolicyid'])
                    monitoring_policies_dict[temp_name] = temp_id

                return monitoring_policies_dict

            return {}
        else:
            response_string = self._update_response_(response.text)
            raise SDKException('Response', '101', response_string)

    @property
    def all_analytics_servers(self):
        """Returns the dictionary consisting of all the analytics servers
            and their info.

            dict - consists of all analytics servers in the commcell
                {
                    "analytics_server_1":cloud_id1,
                    "analytics_server_2":cloud_id2
                }
        """
        return self._analytics_servers

    @property
    def all_templates(self):
        """Returns the dictionary consisting of all the templates
            and their info.

            dict - consists of all templates in the commcell
                {
                     "template_name1":{
                         "id":template_id1,
                         "type":template_type
                    },
                    "template_name2":{
                        "id":template_id2,
                        "type":template_type
                    }
                }
        """
        return self._templates

    @property
    def all_monitoring_policies(self):
        """Returns the dictionary consisting of all the
            monitoringpolicies and their info.

            dict - consists of all the monitoringpolicies
                    in the commcell
                {
                    "monitoring_policy_name1":monitoring_policy_id1,
                    "monitoring_policy_name2":monitoring_policy_id2
                }
        """
        return self._monitoring_policies

    def has_monitoring_policy(self, monitoring_policy_name):
        """checks if a moniotoring policy exists in the commcell
                with the provided name

            Args:
                monitoring_policy_name (str) -- name of the monitoring policy

            Returns:
                bool - boolean output whether the monitoring policy
                    exists in the commcell or not

            Raises:
                SDKException:
                    if type of the monitoring_policy_name is not string
        """

        if not isinstance(monitoring_policy_name, str):
            raise SDKException('Monitoring', '101')

        return self.all_monitoring_policies and monitoring_policy_name.lower() in \
            self.all_monitoring_policies

    def _get_analytics_servers(self):
        """Gets all the analytics servers associated to the commcell
                specified by commcell object.

            Returns:
                dict - consists of all analytics servers of the commcell
                    {
                         "analytics_server_1":cloud_id1
                         "analytics_server_2":cloud_id2
                    }
            Raises:
                SDKException:
                    if response is empty

                    if response is not success
        """
        flag, response = self._cvpysdk_object.make_request(
            'GET', self._ANALYTICS_SERVERS
        )

        if flag:
            if response.json() and 'listOfCIServer' in response.json():
                analytics_servers_dict = {}

                for dictionary in response.json()['listOfCIServer']:
                    temp_name = dictionary['internalCloudName'].lower()
                    temp_id = int(dictionary['cloudID'])
                    analytics_servers_dict[temp_name] = temp_id

                return analytics_servers_dict

            return {}
        else:
            response_string = self._update_response_(response.text)
            raise SDKException('Response', '101', response_string)

    def has_analytics_server(self, analytics_server_name):
        """Checks if a analytics server exists in the commcell
            with the input analytics server name

            Args:
                analytics_server_name (str) -- name of the analytics server

            Returns:
                bool - boolean output whether the analytics server
                    exists in the commcell or not

            Raises:
                SDKException:
                    if type of the analytics server name is not string

        """

        if not isinstance(analytics_server_name, str):
            raise SDKException('Monitoring', '101')

        return self.all_analytics_servers and analytics_server_name.lower() in \
            self.all_analytics_servers

    def _get_templates(self):
        """Gets all the templates associated to the commcell
            specified by commcell object.

                Returns:
                    dict- consists of all templates of the commcell
                        {
                             "template_name1": {
                                 "id":template_id1,
                                 "type":template_type
                            },
                            "template_name2": {
                                "id":template_id2,
                                "type":template_type
                            }
                        }
                Raises:
                    SDKException:
                        if response is empty

                        if response is not success
        """

        xml_request = """<GetListofTemplatesByTemplateId templateId=""
        includeTemplateXML="" appType="" flag=""></GetListofTemplatesByTemplateId>"""

        flag, response = self._cvpysdk_object.make_request(
            'POST', self._TEMPLATES, xml_request
        )

        if flag:
            if response.json() and 'LMTemplates' in response.json():
                templates_dict = {}

                for dictionary in response.json()['LMTemplates']:
                    temp_name = dictionary['LMTemplateEntity']['templateName'].lower()
                    temp_id = int(dictionary['LMTemplateEntity']['templateId'])
                    temp_type = int(dictionary['templateForMonitoringType'])
                    templates_dict[temp_name] = {
                        'id' : temp_id,
                        'type' : temp_type
                    }

                return templates_dict

            else:
                raise SDKException('Response', '102')
        else:
            response_string = self._update_response_(response.text)
            raise SDKException('Response', '101', response_string)

    def has_template(self, template_name):
        """Checks if a template exists in the commcell with the input template name.

            Args:
                template_name(str) -- name of the template

            Returns:
                bool- boolean output whether the template exists
                    in the commcell or not

            Raises:
                SDKException:
                    if type of the library name argument is not string
        """
        if not isinstance(template_name, str):
            raise SDKException('Monitoring', '101')

        return self.all_templates and template_name.lower() in self.all_templates

    def get(self, monitoring_policy_name):
        """Returns  a MonitoringPolicy object of the specified monitoring policy name.

            Args:
                monitoring_policy_name (str) - name of the monitoring policy

            Returns:
                object - instance of the MonitoringPolicy class
                    for the given policy name

            Raises:
                SDKException:
                    if type of the monitoring policy name argument is not string

                    if no monitoring policy exists with the given name
        """
        if not isinstance(monitoring_policy_name, str):
            raise SDKException('Monitoring', '101')

        monitoring_policy_name = monitoring_policy_name.lower()

        if not self.has_monitoring_policy(monitoring_policy_name):
            raise SDKException(
                'Monitoring',
                '102',
                'No policy exists with name :{0}'.format(monitoring_policy_name))

        return MonitoringPolicy(
            self._commcell_object,
            monitoring_policy_name,
            self.all_monitoring_policies[monitoring_policy_name]
        )

    def add(self,
            monitoring_policy_name,
            template_name,
            analytics_server_name,
            client_name,
            content=None,
            win_flag=False,
            policy_type=0,
            **kwargs):
        """Adds a new Monitoring Policy to the Commcell.

            Args:
                monitoring_policy_name (str) -- name of the new monitoring
                                                    policy to add

                template_name (str)          -- name of the template
                                                    that has to be used

                analytics_server_name (str)  -- name of the Analytics Server
                                                    with LM role

                client_name (str)            -- client from which data
                                                    has to be picked

                content (str)                     -- content to be used for
                                                    running the policy

                win_flag (bool)                    -- For executing Text based
                                                    WindowsEvents Policy

                policy_type (int)                -- type of policy to be created 0 - index server 1 - event raiser

                kwargs                          -- continuousMode - true/false, conditionsXML - criteria for policy

            Raises:
                SDKException:
                    if template doesn't exists

                    if Analytics Server doesn't exists

                    if Client doesn't exists

                    if creation of Monitoring Policy fails

                    if response is empty

                    if response is not success
        """
        template_name = template_name.lower()
        client_name = client_name.lower()
        template_dict = {}
        cloud_id = 0
        if analytics_server_name is None:
            analytics_server_name = ''

        if template_name == "ondemand":
            template_id = 1
            template_type = 4
        elif win_flag:
            template_id = 2
            template_type = 0
        else:
            if self.has_template(template_name):
                # template_dict = self.all_templates
                template_id = int(self.all_templates[template_name]['id'])
                template_type = int(self.all_templates[template_name]['type'])
            else:
                err_msg = 'Template "{0}" doesn\'t exist'.format(template_name)
                raise SDKException('Monitoring', '102', err_msg)

        if content is None:
            content = ""

        if policy_type==0:
            analytics_server_name = analytics_server_name.lower()
            if self.has_analytics_server(analytics_server_name):
                cloud_id = self.all_analytics_servers[analytics_server_name]
            else:
                err_msg = 'Analytics Server "{0}" doesn\'t exist'.format(
                    analytics_server_name
                )
                raise SDKException('Monitoring', '102', err_msg)

        client_dict = {}
        if self._commcell_object.clients.has_client(client_name):
            client_dict = self._commcell_object.clients.all_clients
            client_id = int(client_dict[client_name]['id'])
        else:
            err_msg = 'Client "{0}" doesn\'t exist'.format(client_name)
            raise SDKException('Monitoring', '102', err_msg)

        request = {
            "op": 1,
            "policy": {
                "monitoringPolicyName": monitoring_policy_name,
                "monitoringPolicyid": 0,
                "content": content,
                "continuousMode": kwargs.get('continuousMode',False),
                "indexAllLines": False if kwargs.get('conditionsXML') else True,
                "associations": [{
                    "clientName": client_name,
                    "clientId": client_id,
                    "_type_": 3
                }],
                "monitoringTypes": [
                    template_type
                ],
                "LMTemplates": [{
                    "templateName": template_name,
                    "templateId": template_id
                }],
                "criteria": [
                    {
                        "conditionsXML": kwargs.get('conditionsXML',''),
                        "templateId": template_id
                    }
                ],
                "dataCapturingOptions": {
                    "cloudId": cloud_id,
                    "ageCIDataAfterDays": 15,
                    "cloudName": analytics_server_name,
                    "doNotMonitorOldData": False,
                    "enableContentIndexing": True,
                    "asFtp": False,
                    "dataCapturingType": policy_type,
                    "captureEntireFile": False
                }
            }
        }

        flag, response = self._cvpysdk_object.make_request(
            'POST', self._MONITORING_POLICIES_OPERATIONS, request)

        if flag:
            if response.json():
                error_code = response.json()['errorCode']

                if error_code != 0:
                    error_string = response.json()['errorMessage']
                    raise SDKException(
                        'Monitoring',
                        '102',
                        'Failed to create MonitoringPolicy\nError: "{0}"'.format(
                            error_string
                        )
                    )
                self.refresh()
            else:
                raise SDKException('Response', '102')
        else:
            response_string = self._update_response_(response.text)
            raise SDKException('Response', '101', response_string)

        return self.get(monitoring_policy_name)

    def delete(self, monitoring_policy_name):
        """Deletes the monitoring policy from the commcell.

            Args:
                monitoring_policy_name(str) -- name of the monitoring policy to delete

            Raises:
                SDKException:
                    if type of the monitoring policy name argument is not string

                    if failed to delete monitoring policy

                    if response is empty

                    if response is not succcess
        """
        if not isinstance(monitoring_policy_name, str):
            raise SDKException('Monitoring', '101')
        else:
            monitoring_policy_name = monitoring_policy_name.lower()

            if self.has_monitoring_policy(monitoring_policy_name):
                request = {
                    "op": 3,
                    "policy": {
                        "monitoringPolicyName": monitoring_policy_name,
                        "monitoringTypes": [0]
                    }
                }
                flag, response = self._cvpysdk_object.make_request(
                    'POST', self._MONITORING_POLICIES_OPERATIONS, request)

                self.refresh()

                if flag:
                    if response.json():
                        error_code = response.json()['errorCode']

                        if error_code != 0:
                            error_string = response.json()['errorMessage']
                            raise SDKException(
                                'Monitoring', '102'
                                'Failed to delete MonitoringPolicy\nError: "{0}"'
                                .format(
                                    error_string
                                )
                            )

                    else:
                        raise SDKException('Response', '102')
                else:
                    response_string = self._update_response_(
                        response.text
                    )
                    raise SDKException('Response', '101', response_string)
            else:
                err_msg = 'MonitoringPolicy "{0}" doesn\'t exist'.format(
                    monitoring_policy_name
                )
                raise SDKException('Monitoring', '102', err_msg)

    def refresh(self):
        """Refreshes the monitoring policies/analytics servers
            and templates associated with the commcell"""

        self._monitoring_policies = self._get_monitoring_policies()
        self._analytics_servers = self._get_analytics_servers()
        self._templates = self._get_templates()

Instance variables

var all_analytics_servers

Returns the dictionary consisting of all the analytics servers and their info.

dict - consists of all analytics servers in the commcell { "analytics_server_1":cloud_id1, "analytics_server_2":cloud_id2 }

Expand source code Browse git
@property
def all_analytics_servers(self):
    """Returns the dictionary consisting of all the analytics servers
        and their info.

        dict - consists of all analytics servers in the commcell
            {
                "analytics_server_1":cloud_id1,
                "analytics_server_2":cloud_id2
            }
    """
    return self._analytics_servers
var all_monitoring_policies

Returns the dictionary consisting of all the monitoringpolicies and their info.

dict - consists of all the monitoringpolicies in the commcell { "monitoring_policy_name1":monitoring_policy_id1, "monitoring_policy_name2":monitoring_policy_id2 }

Expand source code Browse git
@property
def all_monitoring_policies(self):
    """Returns the dictionary consisting of all the
        monitoringpolicies and their info.

        dict - consists of all the monitoringpolicies
                in the commcell
            {
                "monitoring_policy_name1":monitoring_policy_id1,
                "monitoring_policy_name2":monitoring_policy_id2
            }
    """
    return self._monitoring_policies
var all_templates

Returns the dictionary consisting of all the templates and their info.

dict - consists of all templates in the commcell { "template_name1":{ "id":template_id1, "type":template_type }, "template_name2":{ "id":template_id2, "type":template_type } }

Expand source code Browse git
@property
def all_templates(self):
    """Returns the dictionary consisting of all the templates
        and their info.

        dict - consists of all templates in the commcell
            {
                 "template_name1":{
                     "id":template_id1,
                     "type":template_type
                },
                "template_name2":{
                    "id":template_id2,
                    "type":template_type
                }
            }
    """
    return self._templates

Methods

def add(self, monitoring_policy_name, template_name, analytics_server_name, client_name, content=None, win_flag=False, policy_type=0, **kwargs)

Adds a new Monitoring Policy to the Commcell.

Args

monitoring_policy_name (str) – name of the new monitoring policy to add

template_name (str) – name of the template that has to be used

analytics_server_name (str) – name of the Analytics Server with LM role

client_name (str) – client from which data has to be picked

content (str) – content to be used for running the policy

win_flag (bool) – For executing Text based WindowsEvents Policy

policy_type (int) – type of policy to be created 0 - index server 1 - event raiser

kwargs – continuousMode - true/false, conditionsXML - criteria for policy

Raises

SDKException: if template doesn't exists

if Analytics Server doesn't exists

if Client doesn't exists

if creation of Monitoring Policy fails

if response is empty

if response is not success
Expand source code Browse git
def add(self,
        monitoring_policy_name,
        template_name,
        analytics_server_name,
        client_name,
        content=None,
        win_flag=False,
        policy_type=0,
        **kwargs):
    """Adds a new Monitoring Policy to the Commcell.

        Args:
            monitoring_policy_name (str) -- name of the new monitoring
                                                policy to add

            template_name (str)          -- name of the template
                                                that has to be used

            analytics_server_name (str)  -- name of the Analytics Server
                                                with LM role

            client_name (str)            -- client from which data
                                                has to be picked

            content (str)                     -- content to be used for
                                                running the policy

            win_flag (bool)                    -- For executing Text based
                                                WindowsEvents Policy

            policy_type (int)                -- type of policy to be created 0 - index server 1 - event raiser

            kwargs                          -- continuousMode - true/false, conditionsXML - criteria for policy

        Raises:
            SDKException:
                if template doesn't exists

                if Analytics Server doesn't exists

                if Client doesn't exists

                if creation of Monitoring Policy fails

                if response is empty

                if response is not success
    """
    template_name = template_name.lower()
    client_name = client_name.lower()
    template_dict = {}
    cloud_id = 0
    if analytics_server_name is None:
        analytics_server_name = ''

    if template_name == "ondemand":
        template_id = 1
        template_type = 4
    elif win_flag:
        template_id = 2
        template_type = 0
    else:
        if self.has_template(template_name):
            # template_dict = self.all_templates
            template_id = int(self.all_templates[template_name]['id'])
            template_type = int(self.all_templates[template_name]['type'])
        else:
            err_msg = 'Template "{0}" doesn\'t exist'.format(template_name)
            raise SDKException('Monitoring', '102', err_msg)

    if content is None:
        content = ""

    if policy_type==0:
        analytics_server_name = analytics_server_name.lower()
        if self.has_analytics_server(analytics_server_name):
            cloud_id = self.all_analytics_servers[analytics_server_name]
        else:
            err_msg = 'Analytics Server "{0}" doesn\'t exist'.format(
                analytics_server_name
            )
            raise SDKException('Monitoring', '102', err_msg)

    client_dict = {}
    if self._commcell_object.clients.has_client(client_name):
        client_dict = self._commcell_object.clients.all_clients
        client_id = int(client_dict[client_name]['id'])
    else:
        err_msg = 'Client "{0}" doesn\'t exist'.format(client_name)
        raise SDKException('Monitoring', '102', err_msg)

    request = {
        "op": 1,
        "policy": {
            "monitoringPolicyName": monitoring_policy_name,
            "monitoringPolicyid": 0,
            "content": content,
            "continuousMode": kwargs.get('continuousMode',False),
            "indexAllLines": False if kwargs.get('conditionsXML') else True,
            "associations": [{
                "clientName": client_name,
                "clientId": client_id,
                "_type_": 3
            }],
            "monitoringTypes": [
                template_type
            ],
            "LMTemplates": [{
                "templateName": template_name,
                "templateId": template_id
            }],
            "criteria": [
                {
                    "conditionsXML": kwargs.get('conditionsXML',''),
                    "templateId": template_id
                }
            ],
            "dataCapturingOptions": {
                "cloudId": cloud_id,
                "ageCIDataAfterDays": 15,
                "cloudName": analytics_server_name,
                "doNotMonitorOldData": False,
                "enableContentIndexing": True,
                "asFtp": False,
                "dataCapturingType": policy_type,
                "captureEntireFile": False
            }
        }
    }

    flag, response = self._cvpysdk_object.make_request(
        'POST', self._MONITORING_POLICIES_OPERATIONS, request)

    if flag:
        if response.json():
            error_code = response.json()['errorCode']

            if error_code != 0:
                error_string = response.json()['errorMessage']
                raise SDKException(
                    'Monitoring',
                    '102',
                    'Failed to create MonitoringPolicy\nError: "{0}"'.format(
                        error_string
                    )
                )
            self.refresh()
        else:
            raise SDKException('Response', '102')
    else:
        response_string = self._update_response_(response.text)
        raise SDKException('Response', '101', response_string)

    return self.get(monitoring_policy_name)
def delete(self, monitoring_policy_name)

Deletes the monitoring policy from the commcell.

Args

monitoring_policy_name(str) – name of the monitoring policy to delete

Raises

SDKException: if type of the monitoring policy name argument is not string

if failed to delete monitoring policy

if response is empty

if response is not succcess
Expand source code Browse git
def delete(self, monitoring_policy_name):
    """Deletes the monitoring policy from the commcell.

        Args:
            monitoring_policy_name(str) -- name of the monitoring policy to delete

        Raises:
            SDKException:
                if type of the monitoring policy name argument is not string

                if failed to delete monitoring policy

                if response is empty

                if response is not succcess
    """
    if not isinstance(monitoring_policy_name, str):
        raise SDKException('Monitoring', '101')
    else:
        monitoring_policy_name = monitoring_policy_name.lower()

        if self.has_monitoring_policy(monitoring_policy_name):
            request = {
                "op": 3,
                "policy": {
                    "monitoringPolicyName": monitoring_policy_name,
                    "monitoringTypes": [0]
                }
            }
            flag, response = self._cvpysdk_object.make_request(
                'POST', self._MONITORING_POLICIES_OPERATIONS, request)

            self.refresh()

            if flag:
                if response.json():
                    error_code = response.json()['errorCode']

                    if error_code != 0:
                        error_string = response.json()['errorMessage']
                        raise SDKException(
                            'Monitoring', '102'
                            'Failed to delete MonitoringPolicy\nError: "{0}"'
                            .format(
                                error_string
                            )
                        )

                else:
                    raise SDKException('Response', '102')
            else:
                response_string = self._update_response_(
                    response.text
                )
                raise SDKException('Response', '101', response_string)
        else:
            err_msg = 'MonitoringPolicy "{0}" doesn\'t exist'.format(
                monitoring_policy_name
            )
            raise SDKException('Monitoring', '102', err_msg)
def get(self, monitoring_policy_name)

Returns a MonitoringPolicy object of the specified monitoring policy name.

Args

monitoring_policy_name (str) - name of the monitoring policy

Returns

object - instance of the MonitoringPolicy class for the given policy name

Raises

SDKException: if type of the monitoring policy name argument is not string

if no monitoring policy exists with the given name
Expand source code Browse git
def get(self, monitoring_policy_name):
    """Returns  a MonitoringPolicy object of the specified monitoring policy name.

        Args:
            monitoring_policy_name (str) - name of the monitoring policy

        Returns:
            object - instance of the MonitoringPolicy class
                for the given policy name

        Raises:
            SDKException:
                if type of the monitoring policy name argument is not string

                if no monitoring policy exists with the given name
    """
    if not isinstance(monitoring_policy_name, str):
        raise SDKException('Monitoring', '101')

    monitoring_policy_name = monitoring_policy_name.lower()

    if not self.has_monitoring_policy(monitoring_policy_name):
        raise SDKException(
            'Monitoring',
            '102',
            'No policy exists with name :{0}'.format(monitoring_policy_name))

    return MonitoringPolicy(
        self._commcell_object,
        monitoring_policy_name,
        self.all_monitoring_policies[monitoring_policy_name]
    )
def has_analytics_server(self, analytics_server_name)

Checks if a analytics server exists in the commcell with the input analytics server name

Args

analytics_server_name (str) – name of the analytics server

Returns

bool - boolean output whether the analytics server exists in the commcell or not

Raises

SDKException: if type of the analytics server name is not string

Expand source code Browse git
def has_analytics_server(self, analytics_server_name):
    """Checks if a analytics server exists in the commcell
        with the input analytics server name

        Args:
            analytics_server_name (str) -- name of the analytics server

        Returns:
            bool - boolean output whether the analytics server
                exists in the commcell or not

        Raises:
            SDKException:
                if type of the analytics server name is not string

    """

    if not isinstance(analytics_server_name, str):
        raise SDKException('Monitoring', '101')

    return self.all_analytics_servers and analytics_server_name.lower() in \
        self.all_analytics_servers
def has_monitoring_policy(self, monitoring_policy_name)

checks if a moniotoring policy exists in the commcell with the provided name

Args

monitoring_policy_name (str) – name of the monitoring policy

Returns

bool - boolean output whether the monitoring policy exists in the commcell or not

Raises

SDKException: if type of the monitoring_policy_name is not string

Expand source code Browse git
def has_monitoring_policy(self, monitoring_policy_name):
    """checks if a moniotoring policy exists in the commcell
            with the provided name

        Args:
            monitoring_policy_name (str) -- name of the monitoring policy

        Returns:
            bool - boolean output whether the monitoring policy
                exists in the commcell or not

        Raises:
            SDKException:
                if type of the monitoring_policy_name is not string
    """

    if not isinstance(monitoring_policy_name, str):
        raise SDKException('Monitoring', '101')

    return self.all_monitoring_policies and monitoring_policy_name.lower() in \
        self.all_monitoring_policies
def has_template(self, template_name)

Checks if a template exists in the commcell with the input template name.

Args

template_name(str) – name of the template

Returns

bool- boolean output whether the template exists in the commcell or not

Raises

SDKException: if type of the library name argument is not string

Expand source code Browse git
def has_template(self, template_name):
    """Checks if a template exists in the commcell with the input template name.

        Args:
            template_name(str) -- name of the template

        Returns:
            bool- boolean output whether the template exists
                in the commcell or not

        Raises:
            SDKException:
                if type of the library name argument is not string
    """
    if not isinstance(template_name, str):
        raise SDKException('Monitoring', '101')

    return self.all_templates and template_name.lower() in self.all_templates
def refresh(self)

Refreshes the monitoring policies/analytics servers and templates associated with the commcell

Expand source code Browse git
def refresh(self):
    """Refreshes the monitoring policies/analytics servers
        and templates associated with the commcell"""

    self._monitoring_policies = self._get_monitoring_policies()
    self._analytics_servers = self._get_analytics_servers()
    self._templates = self._get_templates()
class MonitoringPolicy (commcell_object, monitoring_policy_name, monitoring_policy_id=None)

"Class for performing monitoring policy operations for a specific monitoring policy

Initialise the Monitoring Policy class instance.

Expand source code Browse git
class MonitoringPolicy(object):
    """"Class for performing monitoring policy operations
            for a specific monitoring policy"""

    def __init__(self, commcell_object, monitoring_policy_name,
                 monitoring_policy_id=None):
        """Initialise the Monitoring Policy class instance."""

        self._monitoring_policy_name = monitoring_policy_name.lower()
        self._commcell_object = commcell_object
        self._update_response_ = self._commcell_object._update_response_

        if monitoring_policy_id:
            self._monitoring_policy_id = str(monitoring_policy_id)
        else:
            self._monitoring_policy_id = self._get_monitoring_policy_id()

        self._RUN_MONITORING_POLICY = self._commcell_object._services[
            'RUN_MONITORING_POLICY'] % (self._monitoring_policy_id)

    def __repr__(self):
        """String representation of the instance of this class"""
        representation_string = 'Monitoring Policy class instance ' \
                                'for Monitoring Policy: "{0}"'
        return representation_string.format(self.monitoring_policy_name)

    def _get_monitoring_policy_id(self):
        """Gets the monitoring policy id associated with the monitoring policy."""
        monitoring_policies = MonitoringPolicies(self._commcell_object)
        return monitoring_policies.get(self.monitoring_policy_name).\
            monitoring_policy_id

    @property
    def monitoring_policy_name(self):
        """Treats the monitoring policy name as read only attribute."""
        return self._monitoring_policy_name

    @property
    def monitoring_policy_id(self):
        """Treats the monitoring policy id as read only attribute."""
        return self._monitoring_policy_id

    def run(self):
        """Runs the Monitoring Policy job"""

        flag, response = self._commcell_object._cvpysdk_object.make_request(
            'POST', self._RUN_MONITORING_POLICY)

        if flag:
            if response.json():
                if "jobIds" in response.json():
                    return Job(self._commcell_object, response.json()['jobIds'][0])
                elif "errorCode" in response.json():
                    o_str = 'Intializing Monitoring Policy Job failed\nError: "{0}"'\
                        .format(response.json()['errorMessage'])
                    raise SDKException('Monitoring', '102', o_str)
            else:
                raise SDKException('Response', '102')
        else:
            response_string = self._update_response_(response.text)
            raise SDKException('Response', '101', response_string)

Instance variables

var monitoring_policy_id

Treats the monitoring policy id as read only attribute.

Expand source code Browse git
@property
def monitoring_policy_id(self):
    """Treats the monitoring policy id as read only attribute."""
    return self._monitoring_policy_id
var monitoring_policy_name

Treats the monitoring policy name as read only attribute.

Expand source code Browse git
@property
def monitoring_policy_name(self):
    """Treats the monitoring policy name as read only attribute."""
    return self._monitoring_policy_name

Methods

def run(self)

Runs the Monitoring Policy job

Expand source code Browse git
def run(self):
    """Runs the Monitoring Policy job"""

    flag, response = self._commcell_object._cvpysdk_object.make_request(
        'POST', self._RUN_MONITORING_POLICY)

    if flag:
        if response.json():
            if "jobIds" in response.json():
                return Job(self._commcell_object, response.json()['jobIds'][0])
            elif "errorCode" in response.json():
                o_str = 'Intializing Monitoring Policy Job failed\nError: "{0}"'\
                    .format(response.json()['errorMessage'])
                raise SDKException('Monitoring', '102', o_str)
        else:
            raise SDKException('Response', '102')
    else:
        response_string = self._update_response_(response.text)
        raise SDKException('Response', '101', response_string)