Module cvpysdk.subclients.virtualserver.livesync.azure_live_sync

File for configuring and monitoring live sync on the AzureRM subclient.

AzureLiveSync is the only class defined in this file. AzureLiveSync: Class for configuring and monitoring Hyper-V subclient live sync

Azurelivesync

generate_restore_options_json() – To generate the restore options json for Hyper-V live sync

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 configuring and monitoring live sync on the AzureRM subclient.

AzureLiveSync is the only class defined in this file.
AzureLiveSync: Class for configuring and monitoring Hyper-V subclient live sync

AzureLiveSync:

    generate_restore_options_json()     -- To generate the restore
                                            options json for Hyper-V live sync

"""

from .vsa_live_sync import VsaLiveSync
from ....exception import SDKException


class AzureLiveSync(VsaLiveSync):
    """Class for configuring and monitoring Hyper-V live sync operations"""

    def configure_live_sync(self,
                            schedule_name=None,
                            unconditional_overwrite=None,
                            destination_client=None,
                            power_on=True,
                            copy_precedence=0,
                            resource_group=None,
                            storage_account=None,
                            createpublicip=None,
                            restoreasmanagedvm=None,
                            instancesize=None,
                            restored_vm_name=None,
                            proxy_client=None,
                            restore_option=None,
                            networkdisplayname=None,
                            vm_to_restore=None,
                            pattern_dict=None,
                            region=None,
                            destsubid=None,
                            networkrsg=None
                            ):
        """To configure live

        Args:

            schedule_name               (str)   -- Name of the Live sync schedule to be created

            destination_client          (str)   --  Client Name where
                                                    VM needs to be restored

            proxy_client                (str)   -- Name of the proxy client to be used

            copy_precedence             (int)   -- Copy id from which restore needs to be performed
                                                    default: 0

            vm_to_restore               (list)  -- VM's to be restored


            power_on                    (bool)  -- To validate destination VM power on and off
                                                    default: True

            unconditional_overwrite     (bool)  -- To overwrite VM and disk in destination

            resource_group              (str)  -- Destination Resource Group

            storage_account             (str)  -- storage account to be used for destiantion VM

            restored_vm_name            (str)   -- Name used for the VM when restored

            createpublicip             (bool)  -- To create public IP in destination vm

            datacenter                 (str)   -- region of the destionation VM

            restoreasmanagedvm          (bool)  -- To Restore VM as a maganed VM

            networkdisplayname          (str)   -- Network Display name
                                                    which has used for destination VM

            networkrsg                  (str)   -- Resource group of the Network
                                                    to be used by destination VM

            restore_option              (dict)  -- Restore options
                                                    dictionary with advanced options

            pattern_dict                (dict)  -- Dictionary to generate
                                                    the live sync schedule

            instancesize                (str)   -- instance size of destination vm

            destsubid                   (str)   -- subscription id destination client

            region                       (str)  -- region of the destination VM

            restored_vm_name            (str)   -- Name used for the VM when restored

                Sample:

                    for after_job_completes :
                    {
                        "freq_type": 'after_job_completes',
                        "active_start_date": date_in_%m/%d/%y (str),
                        "active_start_time": time_in_%H/%S (str),
                        "repeat_days": days_to_repeat (int)
                    }

                    for daily:
                    {
                         "freq_type": 'daily',
                         "active_start_time": time_in_%H/%S (str),
                         "repeat_days": days_to_repeat (int)
                    }

                    for weekly:
                    {
                         "freq_type": 'weekly',
                         "active_start_time": time_in_%H/%S (str),
                         "repeat_weeks": weeks_to_repeat (int)
                         "weekdays": list of weekdays ['Monday','Tuesday']
                    }

                    for monthly:
                    {
                         "freq_type": 'monthly',
                         "active_start_time": time_in_%H/%S (str),
                         "repeat_months": weeks_to_repeat (int)
                         "on_day": Day to run schedule (int)
                    }

                    for yearly:
                    {
                         "active_start_time": time_in_%H/%S (str),
                         "on_month": month to run schedule (str) January, Febuary...
                         "on_day": Day to run schedule (int)
                    }

        Returns:
            object - instance of the Schedule class for this Live sync

        """
        # restore options
        if restore_option is None:
            restore_option = {}

        if vm_to_restore and not isinstance(vm_to_restore, str):
            raise SDKException('Subclient', '101')

        if not restored_vm_name and isinstance(vm_to_restore, str):
            restored_vm_name = "LiveSync_"
        restore_option['restore_new_name'] = restored_vm_name

        if copy_precedence:
            restore_option["copy_precedence_applicable"] = True

        if vm_to_restore:
            vm_to_restore = [vm_to_restore]

        # check mandatory input parameters are correct
        if bool(restore_option):
            if not (isinstance(unconditional_overwrite, bool) and
                    isinstance(power_on, bool)):
                raise SDKException('Subclient', '101')

        # set attr for all the option in restore xml from user inputs
        self._subclient_object._set_restore_inputs(
            restore_option,
            vm_to_restore=self._subclient_object._set_vm_to_restore(vm_to_restore),
            vcenter_client=destination_client,
            unconditional_overwrite=unconditional_overwrite,
            power_on=power_on,
            copy_precedence=copy_precedence,
            volume_level_restore=1,
            client_name=proxy_client,
            esx_host=resource_group,
            datastore=storage_account,
            in_place=False,
            networkDisplayName=networkdisplayname,
            datacenter=region,
            restoreAsManagedVM=restoreasmanagedvm,
            instanceSize=instancesize,
            createPublicIP=createpublicip,
            destsubid=destsubid,
            networkrsg=networkrsg
            )

        return self._configure_live_sync(schedule_name, restore_option, pattern_dict)

Classes

class AzureLiveSync (subclient_object)

Class for configuring and monitoring Hyper-V live sync operations

Initializing instance of the VsaLiveSync class

Args

subclient_object (obj) – Instance of Subclient class

Expand source code Browse git
class AzureLiveSync(VsaLiveSync):
    """Class for configuring and monitoring Hyper-V live sync operations"""

    def configure_live_sync(self,
                            schedule_name=None,
                            unconditional_overwrite=None,
                            destination_client=None,
                            power_on=True,
                            copy_precedence=0,
                            resource_group=None,
                            storage_account=None,
                            createpublicip=None,
                            restoreasmanagedvm=None,
                            instancesize=None,
                            restored_vm_name=None,
                            proxy_client=None,
                            restore_option=None,
                            networkdisplayname=None,
                            vm_to_restore=None,
                            pattern_dict=None,
                            region=None,
                            destsubid=None,
                            networkrsg=None
                            ):
        """To configure live

        Args:

            schedule_name               (str)   -- Name of the Live sync schedule to be created

            destination_client          (str)   --  Client Name where
                                                    VM needs to be restored

            proxy_client                (str)   -- Name of the proxy client to be used

            copy_precedence             (int)   -- Copy id from which restore needs to be performed
                                                    default: 0

            vm_to_restore               (list)  -- VM's to be restored


            power_on                    (bool)  -- To validate destination VM power on and off
                                                    default: True

            unconditional_overwrite     (bool)  -- To overwrite VM and disk in destination

            resource_group              (str)  -- Destination Resource Group

            storage_account             (str)  -- storage account to be used for destiantion VM

            restored_vm_name            (str)   -- Name used for the VM when restored

            createpublicip             (bool)  -- To create public IP in destination vm

            datacenter                 (str)   -- region of the destionation VM

            restoreasmanagedvm          (bool)  -- To Restore VM as a maganed VM

            networkdisplayname          (str)   -- Network Display name
                                                    which has used for destination VM

            networkrsg                  (str)   -- Resource group of the Network
                                                    to be used by destination VM

            restore_option              (dict)  -- Restore options
                                                    dictionary with advanced options

            pattern_dict                (dict)  -- Dictionary to generate
                                                    the live sync schedule

            instancesize                (str)   -- instance size of destination vm

            destsubid                   (str)   -- subscription id destination client

            region                       (str)  -- region of the destination VM

            restored_vm_name            (str)   -- Name used for the VM when restored

                Sample:

                    for after_job_completes :
                    {
                        "freq_type": 'after_job_completes',
                        "active_start_date": date_in_%m/%d/%y (str),
                        "active_start_time": time_in_%H/%S (str),
                        "repeat_days": days_to_repeat (int)
                    }

                    for daily:
                    {
                         "freq_type": 'daily',
                         "active_start_time": time_in_%H/%S (str),
                         "repeat_days": days_to_repeat (int)
                    }

                    for weekly:
                    {
                         "freq_type": 'weekly',
                         "active_start_time": time_in_%H/%S (str),
                         "repeat_weeks": weeks_to_repeat (int)
                         "weekdays": list of weekdays ['Monday','Tuesday']
                    }

                    for monthly:
                    {
                         "freq_type": 'monthly',
                         "active_start_time": time_in_%H/%S (str),
                         "repeat_months": weeks_to_repeat (int)
                         "on_day": Day to run schedule (int)
                    }

                    for yearly:
                    {
                         "active_start_time": time_in_%H/%S (str),
                         "on_month": month to run schedule (str) January, Febuary...
                         "on_day": Day to run schedule (int)
                    }

        Returns:
            object - instance of the Schedule class for this Live sync

        """
        # restore options
        if restore_option is None:
            restore_option = {}

        if vm_to_restore and not isinstance(vm_to_restore, str):
            raise SDKException('Subclient', '101')

        if not restored_vm_name and isinstance(vm_to_restore, str):
            restored_vm_name = "LiveSync_"
        restore_option['restore_new_name'] = restored_vm_name

        if copy_precedence:
            restore_option["copy_precedence_applicable"] = True

        if vm_to_restore:
            vm_to_restore = [vm_to_restore]

        # check mandatory input parameters are correct
        if bool(restore_option):
            if not (isinstance(unconditional_overwrite, bool) and
                    isinstance(power_on, bool)):
                raise SDKException('Subclient', '101')

        # set attr for all the option in restore xml from user inputs
        self._subclient_object._set_restore_inputs(
            restore_option,
            vm_to_restore=self._subclient_object._set_vm_to_restore(vm_to_restore),
            vcenter_client=destination_client,
            unconditional_overwrite=unconditional_overwrite,
            power_on=power_on,
            copy_precedence=copy_precedence,
            volume_level_restore=1,
            client_name=proxy_client,
            esx_host=resource_group,
            datastore=storage_account,
            in_place=False,
            networkDisplayName=networkdisplayname,
            datacenter=region,
            restoreAsManagedVM=restoreasmanagedvm,
            instanceSize=instancesize,
            createPublicIP=createpublicip,
            destsubid=destsubid,
            networkrsg=networkrsg
            )

        return self._configure_live_sync(schedule_name, restore_option, pattern_dict)

Ancestors

Methods

def configure_live_sync(self, schedule_name=None, unconditional_overwrite=None, destination_client=None, power_on=True, copy_precedence=0, resource_group=None, storage_account=None, createpublicip=None, restoreasmanagedvm=None, instancesize=None, restored_vm_name=None, proxy_client=None, restore_option=None, networkdisplayname=None, vm_to_restore=None, pattern_dict=None, region=None, destsubid=None, networkrsg=None)

To configure live

Args

schedule_name (str) – Name of the Live sync schedule to be created

destination_client (str) – Client Name where VM needs to be restored

proxy_client (str) – Name of the proxy client to be used

copy_precedence (int) – Copy id from which restore needs to be performed default: 0

vm_to_restore (list) – VM's to be restored

power_on (bool) – To validate destination VM power on and off default: True

unconditional_overwrite (bool) – To overwrite VM and disk in destination

resource_group (str) – Destination Resource Group

storage_account (str) – storage account to be used for destiantion VM

restored_vm_name (str) – Name used for the VM when restored

createpublicip (bool) – To create public IP in destination vm

datacenter (str) – region of the destionation VM

restoreasmanagedvm (bool) – To Restore VM as a maganed VM

networkdisplayname (str) – Network Display name which has used for destination VM

networkrsg (str) – Resource group of the Network to be used by destination VM

restore_option (dict) – Restore options dictionary with advanced options

pattern_dict (dict) – Dictionary to generate the live sync schedule

instancesize (str) – instance size of destination vm

destsubid (str) – subscription id destination client

region (str) – region of the destination VM

restored_vm_name (str) – Name used for the VM when restored

Sample:

    for after_job_completes :
    {
        "freq_type": 'after_job_completes',
        "active_start_date": date_in_%m/%d/%y (str),
        "active_start_time": time_in_%H/%S (str),
        "repeat_days": days_to_repeat (int)
    }

    for daily:
    {
         "freq_type": 'daily',
         "active_start_time": time_in_%H/%S (str),
         "repeat_days": days_to_repeat (int)
    }

    for weekly:
    {
         "freq_type": 'weekly',
         "active_start_time": time_in_%H/%S (str),
         "repeat_weeks": weeks_to_repeat (int)
         "weekdays": list of weekdays ['Monday','Tuesday']
    }

    for monthly:
    {
         "freq_type": 'monthly',
         "active_start_time": time_in_%H/%S (str),
         "repeat_months": weeks_to_repeat (int)
         "on_day": Day to run schedule (int)
    }

    for yearly:
    {
         "active_start_time": time_in_%H/%S (str),
         "on_month": month to run schedule (str) January, Febuary...
         "on_day": Day to run schedule (int)
    }

Returns

object - instance of the Schedule class for this Live sync

Expand source code Browse git
def configure_live_sync(self,
                        schedule_name=None,
                        unconditional_overwrite=None,
                        destination_client=None,
                        power_on=True,
                        copy_precedence=0,
                        resource_group=None,
                        storage_account=None,
                        createpublicip=None,
                        restoreasmanagedvm=None,
                        instancesize=None,
                        restored_vm_name=None,
                        proxy_client=None,
                        restore_option=None,
                        networkdisplayname=None,
                        vm_to_restore=None,
                        pattern_dict=None,
                        region=None,
                        destsubid=None,
                        networkrsg=None
                        ):
    """To configure live

    Args:

        schedule_name               (str)   -- Name of the Live sync schedule to be created

        destination_client          (str)   --  Client Name where
                                                VM needs to be restored

        proxy_client                (str)   -- Name of the proxy client to be used

        copy_precedence             (int)   -- Copy id from which restore needs to be performed
                                                default: 0

        vm_to_restore               (list)  -- VM's to be restored


        power_on                    (bool)  -- To validate destination VM power on and off
                                                default: True

        unconditional_overwrite     (bool)  -- To overwrite VM and disk in destination

        resource_group              (str)  -- Destination Resource Group

        storage_account             (str)  -- storage account to be used for destiantion VM

        restored_vm_name            (str)   -- Name used for the VM when restored

        createpublicip             (bool)  -- To create public IP in destination vm

        datacenter                 (str)   -- region of the destionation VM

        restoreasmanagedvm          (bool)  -- To Restore VM as a maganed VM

        networkdisplayname          (str)   -- Network Display name
                                                which has used for destination VM

        networkrsg                  (str)   -- Resource group of the Network
                                                to be used by destination VM

        restore_option              (dict)  -- Restore options
                                                dictionary with advanced options

        pattern_dict                (dict)  -- Dictionary to generate
                                                the live sync schedule

        instancesize                (str)   -- instance size of destination vm

        destsubid                   (str)   -- subscription id destination client

        region                       (str)  -- region of the destination VM

        restored_vm_name            (str)   -- Name used for the VM when restored

            Sample:

                for after_job_completes :
                {
                    "freq_type": 'after_job_completes',
                    "active_start_date": date_in_%m/%d/%y (str),
                    "active_start_time": time_in_%H/%S (str),
                    "repeat_days": days_to_repeat (int)
                }

                for daily:
                {
                     "freq_type": 'daily',
                     "active_start_time": time_in_%H/%S (str),
                     "repeat_days": days_to_repeat (int)
                }

                for weekly:
                {
                     "freq_type": 'weekly',
                     "active_start_time": time_in_%H/%S (str),
                     "repeat_weeks": weeks_to_repeat (int)
                     "weekdays": list of weekdays ['Monday','Tuesday']
                }

                for monthly:
                {
                     "freq_type": 'monthly',
                     "active_start_time": time_in_%H/%S (str),
                     "repeat_months": weeks_to_repeat (int)
                     "on_day": Day to run schedule (int)
                }

                for yearly:
                {
                     "active_start_time": time_in_%H/%S (str),
                     "on_month": month to run schedule (str) January, Febuary...
                     "on_day": Day to run schedule (int)
                }

    Returns:
        object - instance of the Schedule class for this Live sync

    """
    # restore options
    if restore_option is None:
        restore_option = {}

    if vm_to_restore and not isinstance(vm_to_restore, str):
        raise SDKException('Subclient', '101')

    if not restored_vm_name and isinstance(vm_to_restore, str):
        restored_vm_name = "LiveSync_"
    restore_option['restore_new_name'] = restored_vm_name

    if copy_precedence:
        restore_option["copy_precedence_applicable"] = True

    if vm_to_restore:
        vm_to_restore = [vm_to_restore]

    # check mandatory input parameters are correct
    if bool(restore_option):
        if not (isinstance(unconditional_overwrite, bool) and
                isinstance(power_on, bool)):
            raise SDKException('Subclient', '101')

    # set attr for all the option in restore xml from user inputs
    self._subclient_object._set_restore_inputs(
        restore_option,
        vm_to_restore=self._subclient_object._set_vm_to_restore(vm_to_restore),
        vcenter_client=destination_client,
        unconditional_overwrite=unconditional_overwrite,
        power_on=power_on,
        copy_precedence=copy_precedence,
        volume_level_restore=1,
        client_name=proxy_client,
        esx_host=resource_group,
        datastore=storage_account,
        in_place=False,
        networkDisplayName=networkdisplayname,
        datacenter=region,
        restoreAsManagedVM=restoreasmanagedvm,
        instanceSize=instancesize,
        createPublicIP=createpublicip,
        destsubid=destsubid,
        networkrsg=networkrsg
        )

    return self._configure_live_sync(schedule_name, restore_option, pattern_dict)

Inherited members