Module cvpysdk.instances.cloudapps.spanner_instance

File for operating on a Google Cloud Spanner Instance.

GoogleSpannerInstance is the only class defined in this file.

GoogleSpannerInstance: Derived class from CloudAppsInstance Base class, representing a Google Cloud Spanner instance, and to perform operations on that instance

Googlespannerinstance

_get_instance_properties() – Instance class method overwritten to add cloud apps instance properties as well

GoogleSpannerInstance Attributes:

instance_type           --  Returns the GoogleSpannerInstance instance type

spanner_instance_id     --  Returns the cloud service account client id

proxy_client            --  Returns the proxy client name to this instance

staging_path            --  Returns the instance staging path

project_id              --  Returns the cloud spanner project id
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 operating on a Google Cloud Spanner Instance.

GoogleSpannerInstance is the only class defined in this file.

GoogleSpannerInstance: Derived class from CloudAppsInstance Base class, representing a
Google Cloud Spanner instance, and to perform operations on that instance

GoogleSpannerInstance:

    _get_instance_properties()  --  Instance class method overwritten to add cloud apps
    instance properties as well

GoogleSpannerInstance Attributes:

    instance_type           --  Returns the GoogleSpannerInstance instance type

    spanner_instance_id     --  Returns the cloud service account client id

    proxy_client            --  Returns the proxy client name to this instance

    staging_path            --  Returns the instance staging path

    project_id              --  Returns the cloud spanner project id

"""
from ...exception import SDKException
from ..cainstance import CloudAppsInstance


class GoogleSpannerInstance(CloudAppsInstance):
    """Class for representing an Instance of the Google Cloud Spanner instance type."""

    def _get_instance_properties(self):
        """Gets the properties of this instance.

            Raises:
                SDKException:
                    if response is empty

                    if response is not success

        """
        super(GoogleSpannerInstance, self)._get_instance_properties()
        self._ca_instance_type = None
        self._proxy_client = None

        self._google_instance_id = None
        self._staging_path = None
        self._project_id = None

        if 'cloudAppsInstance' in self._properties:
            cloud_apps_instance = self._properties['cloudAppsInstance']
            self._ca_instance_type = cloud_apps_instance['instanceType']

            if 'generalCloudProperties' in cloud_apps_instance:
                if 'proxyServers' in cloud_apps_instance['generalCloudProperties']:
                    self._proxy_client = cloud_apps_instance.get(
                        'generalCloudProperties', {}).get('proxyServers', [{}])[0].get('clientName')
                else:
                    if 'clientName' in cloud_apps_instance.get(
                        'generalCloudProperties', {}).get('memberServers', [{}])[0].get('client'):
                        self._proxy_client = cloud_apps_instance.get('generalCloudProperties', {}).get(
                            'memberServers', [{}])[0].get('client', {}).get('clientName')
                    else:
                        self._proxy_client = cloud_apps_instance.get('generalCloudProperties', {}).get(
                            'memberServers', [{}])[0].get('client', {}).get('clientGroupName')

                if self._proxy_client is None:
                    raise SDKException('Instance', '102', 'Access Node has not been configured')

            if 'cloudSpannerInstance' in cloud_apps_instance:
                self._google_instance_id = cloud_apps_instance.get(
                    'cloudSpannerInstance', {}).get('instanceId')
                self._staging_path = cloud_apps_instance.get(
                    'cloudSpannerInstance', {}).get('cloudStagingPath')
                self._project_id = cloud_apps_instance.get(
                    'cloudSpannerInstance', {}).get('projectId')

    @property
    def instance_type(self):
        """
            Returns:

                 int:   CloudAppsInstance instance type

        """
        return self._ca_instance_type

    @property
    def spanner_instance_id(self):
        """
            Returns:

                 str:   Google service account instance id

        """
        return self._google_instance_id

    @property
    def proxy_client(self):
        """
            Returns the proxy client name to this instance

                str:    Client name of proxy associated to cloud account

        """
        return self._proxy_client

    @property
    def staging_path(self):
        """
            Returns the instance staging path

                str:    Cloud spanner staging path of instance

        """
        return self._staging_path

    @property
    def project_id(self):
        """
            Returns the cloud project id

                str:    Cloud spanner project id
        """
        return self._project_id

Classes

class GoogleSpannerInstance (agent_object, instance_name, instance_id=None)

Class for representing an Instance of the Google Cloud Spanner instance type.

Initialise the instance object.

Args

agent_object (object) – instance of the Agent class

instance_name (str) – name of the instance

instance_id (str) – id of the instance default: None

Returns

object - instance of the Instance class

Expand source code Browse git
class GoogleSpannerInstance(CloudAppsInstance):
    """Class for representing an Instance of the Google Cloud Spanner instance type."""

    def _get_instance_properties(self):
        """Gets the properties of this instance.

            Raises:
                SDKException:
                    if response is empty

                    if response is not success

        """
        super(GoogleSpannerInstance, self)._get_instance_properties()
        self._ca_instance_type = None
        self._proxy_client = None

        self._google_instance_id = None
        self._staging_path = None
        self._project_id = None

        if 'cloudAppsInstance' in self._properties:
            cloud_apps_instance = self._properties['cloudAppsInstance']
            self._ca_instance_type = cloud_apps_instance['instanceType']

            if 'generalCloudProperties' in cloud_apps_instance:
                if 'proxyServers' in cloud_apps_instance['generalCloudProperties']:
                    self._proxy_client = cloud_apps_instance.get(
                        'generalCloudProperties', {}).get('proxyServers', [{}])[0].get('clientName')
                else:
                    if 'clientName' in cloud_apps_instance.get(
                        'generalCloudProperties', {}).get('memberServers', [{}])[0].get('client'):
                        self._proxy_client = cloud_apps_instance.get('generalCloudProperties', {}).get(
                            'memberServers', [{}])[0].get('client', {}).get('clientName')
                    else:
                        self._proxy_client = cloud_apps_instance.get('generalCloudProperties', {}).get(
                            'memberServers', [{}])[0].get('client', {}).get('clientGroupName')

                if self._proxy_client is None:
                    raise SDKException('Instance', '102', 'Access Node has not been configured')

            if 'cloudSpannerInstance' in cloud_apps_instance:
                self._google_instance_id = cloud_apps_instance.get(
                    'cloudSpannerInstance', {}).get('instanceId')
                self._staging_path = cloud_apps_instance.get(
                    'cloudSpannerInstance', {}).get('cloudStagingPath')
                self._project_id = cloud_apps_instance.get(
                    'cloudSpannerInstance', {}).get('projectId')

    @property
    def instance_type(self):
        """
            Returns:

                 int:   CloudAppsInstance instance type

        """
        return self._ca_instance_type

    @property
    def spanner_instance_id(self):
        """
            Returns:

                 str:   Google service account instance id

        """
        return self._google_instance_id

    @property
    def proxy_client(self):
        """
            Returns the proxy client name to this instance

                str:    Client name of proxy associated to cloud account

        """
        return self._proxy_client

    @property
    def staging_path(self):
        """
            Returns the instance staging path

                str:    Cloud spanner staging path of instance

        """
        return self._staging_path

    @property
    def project_id(self):
        """
            Returns the cloud project id

                str:    Cloud spanner project id
        """
        return self._project_id

Ancestors

Instance variables

var instance_type

Returns

int
CloudAppsInstance instance type
Expand source code Browse git
@property
def instance_type(self):
    """
        Returns:

             int:   CloudAppsInstance instance type

    """
    return self._ca_instance_type
var project_id

Returns the cloud project id

str:    Cloud spanner project id
Expand source code Browse git
@property
def project_id(self):
    """
        Returns the cloud project id

            str:    Cloud spanner project id
    """
    return self._project_id
var proxy_client

Returns the proxy client name to this instance

str:    Client name of proxy associated to cloud account
Expand source code Browse git
@property
def proxy_client(self):
    """
        Returns the proxy client name to this instance

            str:    Client name of proxy associated to cloud account

    """
    return self._proxy_client
var spanner_instance_id

Returns

str
Google service account instance id
Expand source code Browse git
@property
def spanner_instance_id(self):
    """
        Returns:

             str:   Google service account instance id

    """
    return self._google_instance_id
var staging_path

Returns the instance staging path

str:    Cloud spanner staging path of instance
Expand source code Browse git
@property
def staging_path(self):
    """
        Returns the instance staging path

            str:    Cloud spanner staging path of instance

    """
    return self._staging_path

Inherited members