Module cvpysdk.internetoptions

File for setting internet options InternetOptions: class for setting Internet options in CommServe

init(Commcell_object) – initialise with object of CommCell

repr() – returns the string to represent the instance of the InternetOptions class set_internet_gateway_client(clientname) – sets Internet gateway with provided client

set_metrics_internet_gateway() – sets metrics server as internet gateway

set_no_gateway() – Removes internet gateway

set_http_proxy(servername, port)– sets HTTP proxy enabled with the provided server name and port

disable_http_proxy() – Removes HTTP proxy

set_http_authentication(username, pwd) – sets authentication to HTTP proxy

disable_http_authentication() –Removes HTTP authentication

refresh() – refresh the internet options set_gateway_for_sendlogs — sets internet gateway for sendlog files

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.
# --------------------------------------------------------------------------

"""File for setting internet options
InternetOptions: class for setting Internet options in CommServe

 __init__(Commcell_object)      --  initialise with object of CommCell

__repr__()                      --  returns the string to represent the instance of the
                                            InternetOptions class
set_internet_gateway_client(clientname)
                                --  sets Internet gateway with provided client

set_metrics_internet_gateway()  -- sets metrics server as internet gateway

set_no_gateway()                -- Removes internet gateway

set_http_proxy(servername, port)-- sets HTTP proxy enabled with the provided server name and port

disable_http_proxy()            -- Removes HTTP proxy

set_http_authentication(username, pwd)
                                -- sets authentication to HTTP proxy

disable_http_authentication()   --Removes HTTP authentication

refresh()                       --  refresh the internet options
set_gateway_for_sendlogs    --- sets internet gateway for sendlog files

"""
from __future__ import absolute_import
from __future__ import unicode_literals

from base64 import b64encode

from .exception import SDKException


class InternetOptions(object):
    """Class for setting Internet options in CommServe"""

    def __init__(self, commcell_object):
        self._commcell_object = commcell_object
        self._INTERNET = self._commcell_object._services['INTERNET_PROXY']
        self.refresh()

    def __repr__(self):
        """Representation string for the instance of the UserGroups class."""
        return "InternetOption class instance for Commcell: '{0}' with config '{1}'".format(
            self._commcell_object.commserv_name,
            self._internet_config
        )

    def _get_internet_config(self):
        flag, response = self._commcell_object._cvpysdk_object.make_request(
            'GET', self._INTERNET
        )
        if flag:
            self._internet_config = response.json()
            if self._internet_config and 'config' in self._internet_config:
                self._config = self._internet_config['config']
            else:
                raise SDKException('Response', '102')
        else:
            raise SDKException('Response', '101', response.text)

    def _save_config(self):
        """
        updates the configuration of private Metrics
        this must be called to save the configuration changes made in this object
        Raises:
            SDKException:
                if response is not success
        """
        flag, response = self._commcell_object._cvpysdk_object.make_request(
            'POST', self._INTERNET, self._internet_config
        )
        if not flag:
            raise SDKException('Response', '101', response.text)

    def set_internet_gateway_client(self,
                                    client_name=None,
                                    cloud_metrics=True,
                                    private_metrics=True
                                    ):
        """
        set internet gateway with the client name provided.
        Args:
            client_name     (str): client to be used as internet gateway
            cloud_metrics  (bool): True to enable gateway for cloud metrics
            private_metrics(bool): True to enable gateway for Private metrics
        Raises:
            SDKException:
                if client doesnt exist in CommServe
        """
        if client_name is None:
            raise SDKException('InternetOptions', '101', 'Client name is required')
        clientid = int(self._commcell_object.clients.get(client_name).client_id)
        self._config['proxyType'] = 2
        self._config['proxyClient']['clientId'] = clientid
        self._config['proxyClient']['clientName'] = client_name
        if cloud_metrics:
            self._config['useInternetGatewayPublic'] = True
        else:
            self._config['useInternetGatewayPublic'] = False
        if private_metrics:
            self._config['useInternetGatewayPrivate'] = True
        else:
            self._config['useInternetGatewayPrivate'] = False
        self._save_config()

    def set_gateway_for_sendlogs(self,
                                 client_name
                                 ):
        """
        set internet gateway with the client name provided for sendlogs.
        Args:
            client_name     (str): client to be used as internet gateway
        Raises:
            SDKException:
                if client doesnt exist in CommServe
        """
        clientid = int(self._commcell_object.clients.get(client_name).client_id)
        self._config['proxyType'] = 2
        self._config['proxyClient']['clientId'] = clientid
        self._config['proxyClient']['clientName'] = client_name
        self._config['useInternetGatewaySendLogFile'] = True
        self._save_config()

    def set_metrics_internet_gateway(self):
        """sets metrics server as internet gateway"""
        self._config['proxyType'] = 3
        self._save_config()

    def set_no_gateway(self):
        """Removes internet gateway"""
        self._config['proxyType'] = 1
        self._save_config()

    def set_http_proxy(self, servername=None, port=None):
        """
        sets HTTP proxy enabled with the provided server name and port
        Args:
            servername (str): hostname or IP of the HTTP proxy server
            port (int): HTTP proxy server port
        Raises:
            SDKException:
                if proxy server name and port are empty
        """
        if servername is None or port is None:
            raise SDKException('Response', '101', 'proxy server name and port cannot be empty')
        self._config['useHttpProxy'] = True
        self._config['proxyServer'] = servername
        self._config['proxyPort'] = int(port)
        self._save_config()

    def disable_http_proxy(self):
        """Removes HTTP proxy"""
        self._config['useHttpProxy'] = False
        self._save_config()

    def set_http_authentication(self, username='', pwd=''):
        """
        sets authentication to HTTP proxy
        Args:
            username: username for proxy server
            pwd: password for proxy server
        """
        self._config['useProxyAuthentication'] = True
        self._config['proxyCredentials']['userName'] = username
        self._config['proxyCredentials']['password'] = b64encode(pwd.encode()).decode()
        self._config['proxyCredentials']['confirmPassword'] = b64encode(pwd.encode()).decode()
        self._save_config()

    def disable_http_authentication(self):
        """Removes HTTP authentication"""
        self._config['useProxyAuthentication'] = False
        self._save_config()

    def refresh(self):
        """Refresh the Internet Options."""
        self._get_internet_config()

Classes

class InternetOptions (commcell_object)

Class for setting Internet options in CommServe

Expand source code Browse git
class InternetOptions(object):
    """Class for setting Internet options in CommServe"""

    def __init__(self, commcell_object):
        self._commcell_object = commcell_object
        self._INTERNET = self._commcell_object._services['INTERNET_PROXY']
        self.refresh()

    def __repr__(self):
        """Representation string for the instance of the UserGroups class."""
        return "InternetOption class instance for Commcell: '{0}' with config '{1}'".format(
            self._commcell_object.commserv_name,
            self._internet_config
        )

    def _get_internet_config(self):
        flag, response = self._commcell_object._cvpysdk_object.make_request(
            'GET', self._INTERNET
        )
        if flag:
            self._internet_config = response.json()
            if self._internet_config and 'config' in self._internet_config:
                self._config = self._internet_config['config']
            else:
                raise SDKException('Response', '102')
        else:
            raise SDKException('Response', '101', response.text)

    def _save_config(self):
        """
        updates the configuration of private Metrics
        this must be called to save the configuration changes made in this object
        Raises:
            SDKException:
                if response is not success
        """
        flag, response = self._commcell_object._cvpysdk_object.make_request(
            'POST', self._INTERNET, self._internet_config
        )
        if not flag:
            raise SDKException('Response', '101', response.text)

    def set_internet_gateway_client(self,
                                    client_name=None,
                                    cloud_metrics=True,
                                    private_metrics=True
                                    ):
        """
        set internet gateway with the client name provided.
        Args:
            client_name     (str): client to be used as internet gateway
            cloud_metrics  (bool): True to enable gateway for cloud metrics
            private_metrics(bool): True to enable gateway for Private metrics
        Raises:
            SDKException:
                if client doesnt exist in CommServe
        """
        if client_name is None:
            raise SDKException('InternetOptions', '101', 'Client name is required')
        clientid = int(self._commcell_object.clients.get(client_name).client_id)
        self._config['proxyType'] = 2
        self._config['proxyClient']['clientId'] = clientid
        self._config['proxyClient']['clientName'] = client_name
        if cloud_metrics:
            self._config['useInternetGatewayPublic'] = True
        else:
            self._config['useInternetGatewayPublic'] = False
        if private_metrics:
            self._config['useInternetGatewayPrivate'] = True
        else:
            self._config['useInternetGatewayPrivate'] = False
        self._save_config()

    def set_gateway_for_sendlogs(self,
                                 client_name
                                 ):
        """
        set internet gateway with the client name provided for sendlogs.
        Args:
            client_name     (str): client to be used as internet gateway
        Raises:
            SDKException:
                if client doesnt exist in CommServe
        """
        clientid = int(self._commcell_object.clients.get(client_name).client_id)
        self._config['proxyType'] = 2
        self._config['proxyClient']['clientId'] = clientid
        self._config['proxyClient']['clientName'] = client_name
        self._config['useInternetGatewaySendLogFile'] = True
        self._save_config()

    def set_metrics_internet_gateway(self):
        """sets metrics server as internet gateway"""
        self._config['proxyType'] = 3
        self._save_config()

    def set_no_gateway(self):
        """Removes internet gateway"""
        self._config['proxyType'] = 1
        self._save_config()

    def set_http_proxy(self, servername=None, port=None):
        """
        sets HTTP proxy enabled with the provided server name and port
        Args:
            servername (str): hostname or IP of the HTTP proxy server
            port (int): HTTP proxy server port
        Raises:
            SDKException:
                if proxy server name and port are empty
        """
        if servername is None or port is None:
            raise SDKException('Response', '101', 'proxy server name and port cannot be empty')
        self._config['useHttpProxy'] = True
        self._config['proxyServer'] = servername
        self._config['proxyPort'] = int(port)
        self._save_config()

    def disable_http_proxy(self):
        """Removes HTTP proxy"""
        self._config['useHttpProxy'] = False
        self._save_config()

    def set_http_authentication(self, username='', pwd=''):
        """
        sets authentication to HTTP proxy
        Args:
            username: username for proxy server
            pwd: password for proxy server
        """
        self._config['useProxyAuthentication'] = True
        self._config['proxyCredentials']['userName'] = username
        self._config['proxyCredentials']['password'] = b64encode(pwd.encode()).decode()
        self._config['proxyCredentials']['confirmPassword'] = b64encode(pwd.encode()).decode()
        self._save_config()

    def disable_http_authentication(self):
        """Removes HTTP authentication"""
        self._config['useProxyAuthentication'] = False
        self._save_config()

    def refresh(self):
        """Refresh the Internet Options."""
        self._get_internet_config()

Methods

def disable_http_authentication(self)

Removes HTTP authentication

Expand source code Browse git
def disable_http_authentication(self):
    """Removes HTTP authentication"""
    self._config['useProxyAuthentication'] = False
    self._save_config()
def disable_http_proxy(self)

Removes HTTP proxy

Expand source code Browse git
def disable_http_proxy(self):
    """Removes HTTP proxy"""
    self._config['useHttpProxy'] = False
    self._save_config()
def refresh(self)

Refresh the Internet Options.

Expand source code Browse git
def refresh(self):
    """Refresh the Internet Options."""
    self._get_internet_config()
def set_gateway_for_sendlogs(self, client_name)

set internet gateway with the client name provided for sendlogs.

Args

client_name (str): client to be used as internet gateway

Raises

SDKException: if client doesnt exist in CommServe

Expand source code Browse git
def set_gateway_for_sendlogs(self,
                             client_name
                             ):
    """
    set internet gateway with the client name provided for sendlogs.
    Args:
        client_name     (str): client to be used as internet gateway
    Raises:
        SDKException:
            if client doesnt exist in CommServe
    """
    clientid = int(self._commcell_object.clients.get(client_name).client_id)
    self._config['proxyType'] = 2
    self._config['proxyClient']['clientId'] = clientid
    self._config['proxyClient']['clientName'] = client_name
    self._config['useInternetGatewaySendLogFile'] = True
    self._save_config()
def set_http_authentication(self, username='', pwd='')

sets authentication to HTTP proxy

Args

username
username for proxy server
pwd
password for proxy server
Expand source code Browse git
def set_http_authentication(self, username='', pwd=''):
    """
    sets authentication to HTTP proxy
    Args:
        username: username for proxy server
        pwd: password for proxy server
    """
    self._config['useProxyAuthentication'] = True
    self._config['proxyCredentials']['userName'] = username
    self._config['proxyCredentials']['password'] = b64encode(pwd.encode()).decode()
    self._config['proxyCredentials']['confirmPassword'] = b64encode(pwd.encode()).decode()
    self._save_config()
def set_http_proxy(self, servername=None, port=None)

sets HTTP proxy enabled with the provided server name and port

Args

servername : str
hostname or IP of the HTTP proxy server
port : int
HTTP proxy server port

Raises

SDKException: if proxy server name and port are empty

Expand source code Browse git
def set_http_proxy(self, servername=None, port=None):
    """
    sets HTTP proxy enabled with the provided server name and port
    Args:
        servername (str): hostname or IP of the HTTP proxy server
        port (int): HTTP proxy server port
    Raises:
        SDKException:
            if proxy server name and port are empty
    """
    if servername is None or port is None:
        raise SDKException('Response', '101', 'proxy server name and port cannot be empty')
    self._config['useHttpProxy'] = True
    self._config['proxyServer'] = servername
    self._config['proxyPort'] = int(port)
    self._save_config()
def set_internet_gateway_client(self, client_name=None, cloud_metrics=True, private_metrics=True)

set internet gateway with the client name provided.

Args

client_name (str): client to be used as internet gateway cloud_metrics (bool): True to enable gateway for cloud metrics private_metrics(bool): True to enable gateway for Private metrics

Raises

SDKException: if client doesnt exist in CommServe

Expand source code Browse git
def set_internet_gateway_client(self,
                                client_name=None,
                                cloud_metrics=True,
                                private_metrics=True
                                ):
    """
    set internet gateway with the client name provided.
    Args:
        client_name     (str): client to be used as internet gateway
        cloud_metrics  (bool): True to enable gateway for cloud metrics
        private_metrics(bool): True to enable gateway for Private metrics
    Raises:
        SDKException:
            if client doesnt exist in CommServe
    """
    if client_name is None:
        raise SDKException('InternetOptions', '101', 'Client name is required')
    clientid = int(self._commcell_object.clients.get(client_name).client_id)
    self._config['proxyType'] = 2
    self._config['proxyClient']['clientId'] = clientid
    self._config['proxyClient']['clientName'] = client_name
    if cloud_metrics:
        self._config['useInternetGatewayPublic'] = True
    else:
        self._config['useInternetGatewayPublic'] = False
    if private_metrics:
        self._config['useInternetGatewayPrivate'] = True
    else:
        self._config['useInternetGatewayPrivate'] = False
    self._save_config()
def set_metrics_internet_gateway(self)

sets metrics server as internet gateway

Expand source code Browse git
def set_metrics_internet_gateway(self):
    """sets metrics server as internet gateway"""
    self._config['proxyType'] = 3
    self._save_config()
def set_no_gateway(self)

Removes internet gateway

Expand source code Browse git
def set_no_gateway(self):
    """Removes internet gateway"""
    self._config['proxyType'] = 1
    self._save_config()