Best Python code snippet using autotest_python
restore_request.py
Source:restore_request.py  
1# coding: utf-82"""3    Couchbase Backup Service API4    This is REST API allows users to remotely schedule and run backups, restores and merges as well as to explore various archives for all there Couchbase Clusters.  # noqa: E5015    OpenAPI spec version: 0.1.06    7    Generated by: https://github.com/swagger-api/swagger-codegen.git8"""9import pprint10import re  # noqa: F40111import six12class RestoreRequest(object):13    """NOTE: This class is auto generated by the swagger code generator program.14    Do not edit the class manually.15    """16    """17    Attributes:18      swagger_types (dict): The key is attribute name19                            and the value is attribute type.20      attribute_map (dict): The key is attribute name21                            and the value is json key in definition.22    """23    swagger_types = {24        'target': 'str',25        'user': 'str',26        'password': 'str',27        'start': 'str',28        'end': 'str',29        'include_data': 'str',30        'exclude_data': 'str',31        'map_data': 'str',32        'auto_create_buckets': 'bool',33        'auto_remove_collections': 'bool',34        'enable_bucket_config': 'bool',35        'disable_views': 'bool',36        'disable_gsi_indexes': 'bool',37        'disable_ft': 'bool',38        'disable_data': 'bool',39        'disable_eventing': 'bool',40        'disable_analytics': 'bool',41        'force_updates': 'bool',42        'replace_ttl': 'str',43        'replace_ttl_with': 'str'44    }45    attribute_map = {46        'target': 'target',47        'user': 'user',48        'password': 'password',49        'start': 'start',50        'end': 'end',51        'include_data': 'include_data',52        'exclude_data': 'exclude_data',53        'map_data': 'map_data',54        'auto_create_buckets': 'auto_create_buckets',55        'auto_remove_collections': 'auto_remove_collections',56        'enable_bucket_config': 'enable_bucket_config',57        'disable_views': 'disable_views',58        'disable_gsi_indexes': 'disable_gsi_indexes',59        'disable_ft': 'disable_ft',60        'disable_data': 'disable_data',61        'disable_eventing': 'disable_eventing',62        'disable_analytics': 'disable_analytics',63        'force_updates': 'force_updates',64        'replace_ttl': 'replace_ttl',65        'replace_ttl_with': 'replace_ttl_with'66    }67    def __init__(self, target=None, user=None, password=None, start=None, end=None, include_data=None, exclude_data=None, map_data=None, auto_create_buckets=None, auto_remove_collections=None, enable_bucket_config=None, disable_views=None, disable_gsi_indexes=None, disable_ft=None, disable_data=None, disable_eventing=None, disable_analytics=None, force_updates=None, replace_ttl=None, replace_ttl_with=None):  # noqa: E50168        """RestoreRequest - a model defined in Swagger"""  # noqa: E50169        self._target = None70        self._user = None71        self._password = None72        self._start = None73        self._end = None74        self._include_data = None75        self._exclude_data = None76        self._map_data = None77        self._auto_create_buckets = None78        self._auto_remove_collections = None79        self._enable_bucket_config = None80        self._disable_views = None81        self._disable_gsi_indexes = None82        self._disable_ft = None83        self._disable_data = None84        self._disable_eventing = None85        self._disable_analytics = None86        self._force_updates = None87        self._replace_ttl = None88        self._replace_ttl_with = None89        self.discriminator = None90        if target is not None:91            self.target = target92        if user is not None:93            self.user = user94        if password is not None:95            self.password = password96        if start is not None:97            self.start = start98        if end is not None:99            self.end = end100        if include_data is not None:101            self.include_data = include_data102        if exclude_data is not None:103            self.exclude_data = exclude_data104        if map_data is not None:105            self.map_data = map_data106        if auto_create_buckets is not None:107            self.auto_create_buckets = auto_create_buckets108        if auto_remove_collections is not None:109            self.auto_remove_collections = auto_remove_collections110        if enable_bucket_config is not None:111            self.enable_bucket_config = enable_bucket_config112        if disable_views is not None:113            self.disable_views = disable_views114        if disable_gsi_indexes is not None:115            self.disable_gsi_indexes = disable_gsi_indexes116        if disable_ft is not None:117            self.disable_ft = disable_ft118        if disable_data is not None:119            self.disable_data = disable_data120        if disable_eventing is not None:121            self.disable_eventing = disable_eventing122        if disable_analytics is not None:123            self.disable_analytics = disable_analytics124        if force_updates is not None:125            self.force_updates = force_updates126        if replace_ttl is not None:127            self.replace_ttl = replace_ttl128        if replace_ttl_with is not None:129            self.replace_ttl_with = replace_ttl_with130    @property131    def target(self):132        """Gets the target of this RestoreRequest.  # noqa: E501133        The address of the cluster to restore to  # noqa: E501134        :return: The target of this RestoreRequest.  # noqa: E501135        :rtype: str136        """137        return self._target138    @target.setter139    def target(self, target):140        """Sets the target of this RestoreRequest.141        The address of the cluster to restore to  # noqa: E501142        :param target: The target of this RestoreRequest.  # noqa: E501143        :type: str144        """145        self._target = target146    @property147    def user(self):148        """Gets the user of this RestoreRequest.  # noqa: E501149        The user to use for the restore  # noqa: E501150        :return: The user of this RestoreRequest.  # noqa: E501151        :rtype: str152        """153        return self._user154    @user.setter155    def user(self, user):156        """Sets the user of this RestoreRequest.157        The user to use for the restore  # noqa: E501158        :param user: The user of this RestoreRequest.  # noqa: E501159        :type: str160        """161        self._user = user162    @property163    def password(self):164        """Gets the password of this RestoreRequest.  # noqa: E501165        The password to use for the restore  # noqa: E501166        :return: The password of this RestoreRequest.  # noqa: E501167        :rtype: str168        """169        return self._password170    @password.setter171    def password(self, password):172        """Sets the password of this RestoreRequest.173        The password to use for the restore  # noqa: E501174        :param password: The password of this RestoreRequest.  # noqa: E501175        :type: str176        """177        self._password = password178    @property179    def start(self):180        """Gets the start of this RestoreRequest.  # noqa: E501181        The option to be passed to the restore --start  # noqa: E501182        :return: The start of this RestoreRequest.  # noqa: E501183        :rtype: str184        """185        return self._start186    @start.setter187    def start(self, start):188        """Sets the start of this RestoreRequest.189        The option to be passed to the restore --start  # noqa: E501190        :param start: The start of this RestoreRequest.  # noqa: E501191        :type: str192        """193        self._start = start194    @property195    def end(self):196        """Gets the end of this RestoreRequest.  # noqa: E501197        The option to be passed to restore --end  # noqa: E501198        :return: The end of this RestoreRequest.  # noqa: E501199        :rtype: str200        """201        return self._end202    @end.setter203    def end(self, end):204        """Sets the end of this RestoreRequest.205        The option to be passed to restore --end  # noqa: E501206        :param end: The end of this RestoreRequest.  # noqa: E501207        :type: str208        """209        self._end = end210    @property211    def include_data(self):212        """Gets the include_data of this RestoreRequest.  # noqa: E501213        The option to be passed to restore --include-data  # noqa: E501214        :return: The include_data of this RestoreRequest.  # noqa: E501215        :rtype: str216        """217        return self._include_data218    @include_data.setter219    def include_data(self, include_data):220        """Sets the include_data of this RestoreRequest.221        The option to be passed to restore --include-data  # noqa: E501222        :param include_data: The include_data of this RestoreRequest.  # noqa: E501223        :type: str224        """225        self._include_data = include_data226    @property227    def exclude_data(self):228        """Gets the exclude_data of this RestoreRequest.  # noqa: E501229        The option to be passed to restore --exclude data  # noqa: E501230        :return: The exclude_data of this RestoreRequest.  # noqa: E501231        :rtype: str232        """233        return self._exclude_data234    @exclude_data.setter235    def exclude_data(self, exclude_data):236        """Sets the exclude_data of this RestoreRequest.237        The option to be passed to restore --exclude data  # noqa: E501238        :param exclude_data: The exclude_data of this RestoreRequest.  # noqa: E501239        :type: str240        """241        self._exclude_data = exclude_data242    @property243    def map_data(self):244        """Gets the map_data of this RestoreRequest.  # noqa: E501245        The option to be passed to restore --map-data  # noqa: E501246        :return: The map_data of this RestoreRequest.  # noqa: E501247        :rtype: str248        """249        return self._map_data250    @map_data.setter251    def map_data(self, map_data):252        """Sets the map_data of this RestoreRequest.253        The option to be passed to restore --map-data  # noqa: E501254        :param map_data: The map_data of this RestoreRequest.  # noqa: E501255        :type: str256        """257        self._map_data = map_data258    @property259    def auto_create_buckets(self):260        """Gets the auto_create_buckets of this RestoreRequest.  # noqa: E501261        Enables the restore option --auto-create-buckets  # noqa: E501262        :return: The auto_create_buckets of this RestoreRequest.  # noqa: E501263        :rtype: bool264        """265        return self._auto_create_buckets266    @auto_create_buckets.setter267    def auto_create_buckets(self, auto_create_buckets):268        """Sets the auto_create_buckets of this RestoreRequest.269        Enables the restore option --auto-create-buckets  # noqa: E501270        :param auto_create_buckets: The auto_create_buckets of this RestoreRequest.  # noqa: E501271        :type: bool272        """273        self._auto_create_buckets = auto_create_buckets274    @property275    def auto_remove_collections(self):276        """Gets the auto_remove_collections of this RestoreRequest.  # noqa: E501277        Enables the restore option --auto-remove-collections  # noqa: E501278        :return: The auto_remove_collections of this RestoreRequest.  # noqa: E501279        :rtype: bool280        """281        return self._auto_remove_collections282    @auto_remove_collections.setter283    def auto_remove_collections(self, auto_remove_collections):284        """Sets the auto_remove_collections of this RestoreRequest.285        Enables the restore option --auto-remove-collections  # noqa: E501286        :param auto_remove_collections: The auto_remove_collections of this RestoreRequest.  # noqa: E501287        :type: bool288        """289        self._auto_remove_collections = auto_remove_collections290    @property291    def enable_bucket_config(self):292        """Gets the enable_bucket_config of this RestoreRequest.  # noqa: E501293        Enables the restore option --enable-bucket-config  # noqa: E501294        :return: The enable_bucket_config of this RestoreRequest.  # noqa: E501295        :rtype: bool296        """297        return self._enable_bucket_config298    @enable_bucket_config.setter299    def enable_bucket_config(self, enable_bucket_config):300        """Sets the enable_bucket_config of this RestoreRequest.301        Enables the restore option --enable-bucket-config  # noqa: E501302        :param enable_bucket_config: The enable_bucket_config of this RestoreRequest.  # noqa: E501303        :type: bool304        """305        self._enable_bucket_config = enable_bucket_config306    @property307    def disable_views(self):308        """Gets the disable_views of this RestoreRequest.  # noqa: E501309        TEnables the restore option --disable-views  # noqa: E501310        :return: The disable_views of this RestoreRequest.  # noqa: E501311        :rtype: bool312        """313        return self._disable_views314    @disable_views.setter315    def disable_views(self, disable_views):316        """Sets the disable_views of this RestoreRequest.317        TEnables the restore option --disable-views  # noqa: E501318        :param disable_views: The disable_views of this RestoreRequest.  # noqa: E501319        :type: bool320        """321        self._disable_views = disable_views322    @property323    def disable_gsi_indexes(self):324        """Gets the disable_gsi_indexes of this RestoreRequest.  # noqa: E501325        Enables the restore option --disable-gsi-indexes  # noqa: E501326        :return: The disable_gsi_indexes of this RestoreRequest.  # noqa: E501327        :rtype: bool328        """329        return self._disable_gsi_indexes330    @disable_gsi_indexes.setter331    def disable_gsi_indexes(self, disable_gsi_indexes):332        """Sets the disable_gsi_indexes of this RestoreRequest.333        Enables the restore option --disable-gsi-indexes  # noqa: E501334        :param disable_gsi_indexes: The disable_gsi_indexes of this RestoreRequest.  # noqa: E501335        :type: bool336        """337        self._disable_gsi_indexes = disable_gsi_indexes338    @property339    def disable_ft(self):340        """Gets the disable_ft of this RestoreRequest.  # noqa: E501341        Enables the restore option --disable-full-text-search  # noqa: E501342        :return: The disable_ft of this RestoreRequest.  # noqa: E501343        :rtype: bool344        """345        return self._disable_ft346    @disable_ft.setter347    def disable_ft(self, disable_ft):348        """Sets the disable_ft of this RestoreRequest.349        Enables the restore option --disable-full-text-search  # noqa: E501350        :param disable_ft: The disable_ft of this RestoreRequest.  # noqa: E501351        :type: bool352        """353        self._disable_ft = disable_ft354    @property355    def disable_data(self):356        """Gets the disable_data of this RestoreRequest.  # noqa: E501357        Enables the restore option --disable-data  # noqa: E501358        :return: The disable_data of this RestoreRequest.  # noqa: E501359        :rtype: bool360        """361        return self._disable_data362    @disable_data.setter363    def disable_data(self, disable_data):364        """Sets the disable_data of this RestoreRequest.365        Enables the restore option --disable-data  # noqa: E501366        :param disable_data: The disable_data of this RestoreRequest.  # noqa: E501367        :type: bool368        """369        self._disable_data = disable_data370    @property371    def disable_eventing(self):372        """Gets the disable_eventing of this RestoreRequest.  # noqa: E501373        Enables the restore option --disable-eventing  # noqa: E501374        :return: The disable_eventing of this RestoreRequest.  # noqa: E501375        :rtype: bool376        """377        return self._disable_eventing378    @disable_eventing.setter379    def disable_eventing(self, disable_eventing):380        """Sets the disable_eventing of this RestoreRequest.381        Enables the restore option --disable-eventing  # noqa: E501382        :param disable_eventing: The disable_eventing of this RestoreRequest.  # noqa: E501383        :type: bool384        """385        self._disable_eventing = disable_eventing386    @property387    def disable_analytics(self):388        """Gets the disable_analytics of this RestoreRequest.  # noqa: E501389        Enables the restore option --disable-analytics  # noqa: E501390        :return: The disable_analytics of this RestoreRequest.  # noqa: E501391        :rtype: bool392        """393        return self._disable_analytics394    @disable_analytics.setter395    def disable_analytics(self, disable_analytics):396        """Sets the disable_analytics of this RestoreRequest.397        Enables the restore option --disable-analytics  # noqa: E501398        :param disable_analytics: The disable_analytics of this RestoreRequest.  # noqa: E501399        :type: bool400        """401        self._disable_analytics = disable_analytics402    @property403    def force_updates(self):404        """Gets the force_updates of this RestoreRequest.  # noqa: E501405        Enables the restore option --force-updates  # noqa: E501406        :return: The force_updates of this RestoreRequest.  # noqa: E501407        :rtype: bool408        """409        return self._force_updates410    @force_updates.setter411    def force_updates(self, force_updates):412        """Sets the force_updates of this RestoreRequest.413        Enables the restore option --force-updates  # noqa: E501414        :param force_updates: The force_updates of this RestoreRequest.  # noqa: E501415        :type: bool416        """417        self._force_updates = force_updates418    @property419    def replace_ttl(self):420        """Gets the replace_ttl of this RestoreRequest.  # noqa: E501421        The option passed to --replace-ttl  # noqa: E501422        :return: The replace_ttl of this RestoreRequest.  # noqa: E501423        :rtype: str424        """425        return self._replace_ttl426    @replace_ttl.setter427    def replace_ttl(self, replace_ttl):428        """Sets the replace_ttl of this RestoreRequest.429        The option passed to --replace-ttl  # noqa: E501430        :param replace_ttl: The replace_ttl of this RestoreRequest.  # noqa: E501431        :type: str432        """433        self._replace_ttl = replace_ttl434    @property435    def replace_ttl_with(self):436        """Gets the replace_ttl_with of this RestoreRequest.  # noqa: E501437        The option passed to --replace-ttl-with  # noqa: E501438        :return: The replace_ttl_with of this RestoreRequest.  # noqa: E501439        :rtype: str440        """441        return self._replace_ttl_with442    @replace_ttl_with.setter443    def replace_ttl_with(self, replace_ttl_with):444        """Sets the replace_ttl_with of this RestoreRequest.445        The option passed to --replace-ttl-with  # noqa: E501446        :param replace_ttl_with: The replace_ttl_with of this RestoreRequest.  # noqa: E501447        :type: str448        """449        self._replace_ttl_with = replace_ttl_with450    def to_dict(self):451        """Returns the model properties as a dict"""452        result = {}453        for attr, _ in six.iteritems(self.swagger_types):454            value = getattr(self, attr)455            if isinstance(value, list):456                result[attr] = list(map(457                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,458                    value459                ))460            elif hasattr(value, "to_dict"):461                result[attr] = value.to_dict()462            elif isinstance(value, dict):463                result[attr] = dict(map(464                    lambda item: (item[0], item[1].to_dict())465                    if hasattr(item[1], "to_dict") else item,466                    value.items()467                ))468            else:469                result[attr] = value470        if issubclass(RestoreRequest, dict):471            for key, value in self.items():472                result[key] = value473        return result474    def to_str(self):475        """Returns the string representation of the model"""476        return pprint.pformat(self.to_dict())477    def __repr__(self):478        """For `print` and `pprint`"""479        return self.to_str()480    def __eq__(self, other):481        """Returns true if both objects are equal"""482        if not isinstance(other, RestoreRequest):483            return False484        return self.__dict__ == other.__dict__485    def __ne__(self, other):486        """Returns true if both objects are not equal"""...test_backups.py
Source:test_backups.py  
...265        restr = RunnerClass(None, restore_location="/tmp",266                            location="filename", checksum="md5")267        self.assertEqual(DECRYPT + PIPE + UNZIP + PIPE + CBBACKUP_RESTORE,268                         restr.restore_cmd)269    def test_reset_root_password_on_mysql_restore(self):270        with patch.object(utils, 'execute_with_timeout',271                          return_value=True) as exec_call:272            with patch.object(MySQLRestoreMixin,273                              '_start_mysqld_safe_with_init_file',274                              return_value=True):275                inst = MySQLRestoreMixin()276                inst.reset_root_password()277                self.assertEqual(2, exec_call.call_count,278                                 "'execute_with_timeout' "279                                 "called an unexpected number of times")280                exec_call.assert_any_call("sudo", "chmod", "a+r",281                                          ANY)282                # Make sure the temporary error log got deleted as root283                # (see bug/1423759).284                exec_call.assert_any_call("rm", "-f", ANY, run_as_root=True,285                                          root_helper="sudo")286class CouchbaseBackupTests(testtools.TestCase):287    def setUp(self):288        super(CouchbaseBackupTests, self).setUp()289        self.backup_runner = utils.import_class(290            BACKUP_CBBACKUP_CLS)291    def tearDown(self):292        super(CouchbaseBackupTests, self).tearDown()293    def test_backup_success(self):294        self.backup_runner.__exit__ = mock.Mock()295        self.backup_runner.run = mock.Mock()296        self.backup_runner._run_pre_backup = mock.Mock()297        self.backup_runner._run_post_backup = mock.Mock()298        utils.execute_with_timeout = mock.Mock(return_value=None)299        with self.backup_runner(12345):300            pass301        self.assertTrue(self.backup_runner.run)302        self.assertTrue(self.backup_runner._run_pre_backup)303        self.assertTrue(self.backup_runner._run_post_backup)304    def test_backup_failed_due_to_run_backup(self):305        self.backup_runner.run = mock.Mock(306            side_effect=exception.ProcessExecutionError('test'))307        self.backup_runner._run_pre_backup = mock.Mock()308        self.backup_runner._run_post_backup = mock.Mock()309        utils.execute_with_timeout = mock.Mock(return_value=None)310        self.assertRaises(exception.ProcessExecutionError,311                          self.backup_runner(12345).__enter__)312class CouchbaseRestoreTests(testtools.TestCase):313    def setUp(self):314        super(CouchbaseRestoreTests, self).setUp()315        self.restore_runner = utils.import_class(316            RESTORE_CBBACKUP_CLS)(317                'swift', location='http://some.where',318                checksum='True_checksum',319                restore_location='/tmp/somewhere')320    def tearDown(self):321        super(CouchbaseRestoreTests, self).tearDown()322    def test_restore_success(self):323        expected_content_length = 123324        self.restore_runner._run_restore = mock.Mock(325            return_value=expected_content_length)326        self.restore_runner.pre_restore = mock.Mock()327        self.restore_runner.post_restore = mock.Mock()328        actual_content_length = self.restore_runner.restore()329        self.assertEqual(330            expected_content_length, actual_content_length)331    def test_restore_failed_due_to_pre_restore(self):332        self.restore_runner.post_restore = mock.Mock()333        self.restore_runner.pre_restore = mock.Mock(334            side_effect=exception.ProcessExecutionError('Error'))335        self.restore_runner._run_restore = mock.Mock()336        self.assertRaises(exception.ProcessExecutionError,337                          self.restore_runner.restore)338    def test_restore_failed_due_to_run_restore(self):339        self.restore_runner.pre_restore = mock.Mock()340        self.restore_runner._run_restore = mock.Mock(341            side_effect=exception.ProcessExecutionError('Error'))342        self.restore_runner.post_restore = mock.Mock()343        self.assertRaises(exception.ProcessExecutionError,...updraft-admin-restore.js
Source:updraft-admin-restore.js  
1var updraft_restore_screen = true;2jQuery(function($) {3	var job_id = $('#updraftplus_ajax_restore_job_id').val();4	var action = $('#updraftplus_ajax_restore_action').val();5	var updraft_restore_update_timer;6	var last_received = 0;7	var $output = $('#updraftplus_ajax_restore_output');8	var $steps_list = $('.updraft_restore_components_list');9	var previous_stage;10	var current_stage;11	var logged_out = false;12	var auto_resume_count = 0;13	var server_500_count = 0;14	$('#updraft-restore-hidethis').remove();15	updraft_restore_command(job_id, action);16	/**17	 * This function will start the restore over ajax for the passed in job_id.18	 *19	 * @param {string}  job_id - the restore job id20	 * @param {string}  action - the restore action21	 */22	function updraft_restore_command(job_id, action) {23		var xhttp = new XMLHttpRequest();24		var xhttp_data = 'action=' + action + '&updraftplus_ajax_restore=do_ajax_restore&job_id=' + job_id;25		var previous_data_length = 0;26		var show_alert = true;27		var debug = $('#updraftplus_ajax_restore_debug').length;28		xhttp.open("POST", ajaxurl, true);29		xhttp.onprogress = function(response) {30			if (response.currentTarget.status >= 200 && response.currentTarget.status < 300) {31				if (-1 !== response.currentTarget.responseText.indexOf('<html')) {32					if (show_alert) {33						show_alert = false;34						alert("UpdraftPlus " + updraftlion.ajax_restore_error + ' ' + updraftlion.ajax_restore_invalid_response);35					}36					$output.append("UpdraftPlus " + updraftlion.ajax_restore_error + ' ' + updraftlion.ajax_restore_invalid_response);37					console.log("UpdraftPlus restore error: HTML detected in response could be a copy of the WordPress front page caused by mod_security");38					console.log(response.currentTarget.responseText);39					return;40				}41				if (previous_data_length == response.currentTarget.responseText.length) return;42				last_received = Math.round(Date.now() / 1000);43				var responseText = response.currentTarget.responseText.substr(previous_data_length);44				previous_data_length = response.currentTarget.responseText.length;45				var i = 0;46				var end_of_json = 0;47				// Check if there is restore information json in the response if so process it and remove it from the response so that it does not make it to page48				while (i < responseText.length) {49					var buffer = responseText.substr(i, 7);50					if ('RINFO:{' == buffer) {51						// Output what precedes the RINFO:52						$output53							.append(responseText.substring(end_of_json, i).trim()) // add the text to the activity log54							.scrollTop($output[0].scrollHeight); // Scroll to the bottom of the box55						// Grab what follows RINFO:56						var analyse_it = ud_parse_json(responseText.substr(i), true);57						if (1 == debug) { console.log(analyse_it); }58						updraft_restore_process_data(analyse_it.parsed);59						// move the for loop counter to the end of the json60						end_of_json = i + analyse_it.json_last_pos - analyse_it.json_start_pos + 6;61						// When the for loop goes round again, it will start with the end of the JSON62						i = end_of_json;63					} else {64						i++;65					}66				}67				$output.append(responseText.substr(end_of_json).trim()).scrollTop($output[0].scrollHeight);68				// check if the fylesystem form is displayed69				if ($output.find('input[name=connection_type]').length && $output.find('#upgrade').length) {70					updraft_restore_setup_filesystem_form();71				}72			} else {73				if (0 == response.currentTarget.status) {74					$output.append("UpdraftPlus " + updraftlion.ajax_restore_error + ' ' + updraftlion.ajax_restore_contact_failed);75				} else {76					$output.append("UpdraftPlus " + updraftlion.ajax_restore_error + ' ' + response.currentTarget.status + ' ' + response.currentTarget.statusText);77				}78				console.log("UpdraftPlus restore error: " + response.currentTarget.status + ' ' + response.currentTarget.statusText);79				console.log(response.currentTarget);80			}81		}82		xhttp.onload = function() {83			var $result = $output.find('.updraft_restore_successful, .updraft_restore_error');84			// if we don't find the result, exit85			if (!$result.length) return;86			var $result_output = $('.updraft_restore_result');87			$result_output.slideDown();88			$steps_list.slideUp();89			$steps_list.siblings('h2').slideUp();90			if ($result.is('.updraft_restore_successful')) {91				$result_output.find('.dashicons').addClass('dashicons-yes');92				$result_output.find('.updraft_restore_result--text').text($result.text());93				$result_output.addClass('restore-success');94			} else if ($result.is('.updraft_restore_error')) {95				$result_output.find('.dashicons').addClass('dashicons-no-alt');96				$result_output.find('.updraft_restore_result--text').text($result.text());97				$result_output.addClass('restore-error');98			}99			// scroll log to the bottom100			setTimeout(function() {101				$output.scrollTop($output[0].scrollHeight);102			}, 500);103		}104		xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");105		xhttp.send(xhttp_data);106	}107	/**108	 * This function will process the parsed restore data and make updates to the front end109	 *110	 * @param {object} restore_data - the restore data object contains information on the restore progress to update the front end111	 */112	function updraft_restore_process_data(restore_data) {113		// If the stage is started then we want to start our restore timer as the restore has now actually began114		if ('started' == restore_data.stage) {115			updraft_restore_update_timer = setInterval(function () {116				updraft_restore_update();117			}, 5000);118		}119		120		// If the stage is finished then we want to remove our timer and clean up the UI121		if ('finished' == restore_data.stage && updraft_restore_update_timer) {122			clearInterval(updraft_restore_update_timer);123			$('#updraftplus_ajax_restore_last_activity').html('');124		}125		if (restore_data) {126			if ('state' == restore_data.type || 'state_change' == restore_data.type) {127				console.log(restore_data.stage, restore_data.data);128				if ('files' == restore_data.stage) {129					current_stage = restore_data.data.entity;130				} else {131					current_stage = restore_data.stage;132				}133				var $current = $steps_list.find('[data-component='+current_stage+']');134				// show simplified activity log next to the component's label135				if ('files' == restore_data.stage) {136					$current.find('.updraft_component--progress').html(' â '+updraftlion.restore_files_progress.replace('%s1', '<strong>'+(restore_data.data.fileindex)+'</strong>').replace('%s2', '<strong>'+restore_data.data.total_files+'</strong>'));137				}138				if ('db' == restore_data.stage) {139					if (restore_data.data.hasOwnProperty('stage')) {140						if ('table' == restore_data.data.stage) {141							$current.find('.updraft_component--progress').html(' â '+updraftlion.restore_db_table_progress.replace('%s', '<strong>'+(restore_data.data.table)+'</strong>'));142						} else if ('stored_routine' == restore_data.data.stage) {143							$current.find('.updraft_component--progress').html(' â '+updraftlion.restore_db_stored_routine_progress.replace('%s', '<strong>'+(restore_data.data.routine_name)+'</strong>'));144						} else if ('finished' == restore_data.data.stage) {145							$current.find('.updraft_component--progress').html(' â '+updraftlion.finished);146						} else if ('begun' == restore_data.data.stage) {147							$current.find('.updraft_component--progress').html(' â '+updraftlion.begun+'...');148						}149					}150				}151				if (previous_stage !== current_stage) {152					if (previous_stage) {153						var $prev = $steps_list.find('[data-component='+previous_stage+']');154						// empty the line's status155						$prev.find('.updraft_component--progress').html('');156						$prev.removeClass('active').addClass('done');157					}158					if ('finished' == current_stage) {159						$current.addClass('done');160						$steps_list.find('[data-component]').each(function(index, el) {161							$el = $(el);162							if (!$el.is('.done')) {163								$el.addClass('error');164							}165						});166						if (restore_data.data.hasOwnProperty('actions') && 'object' == typeof restore_data.data.actions) {167							168							var pages_found = updraft_restore_get_pages(restore_data.data.urls);169							if (!$.isEmptyObject(pages_found)) {170								$('.updraft_restore_result').before(updraftlion.ajax_restore_404_detected);171								$.each(pages_found, function(index, url) {172									$('.updraft_missing_pages').append('<li>'+url+'</li>');173								});174							}175							$.each(restore_data.data.actions, function(index, item) {176								$steps_list.after('<a href="'+item+'" class="button button-primary">'+index+'</a>');177							});178						}179					} else {180						$current.addClass('active');181					}182				}183				previous_stage = current_stage;184			}185		}186	}187	/**188	 * This function will update the time in the front end that we last recived data, after 120 seconds call the resume restore notice189	 */190	function updraft_restore_update() {191		var current_time = Math.round(Date.now() / 1000);192		var last_activity = current_time - last_received;193		if (60 > last_activity) {194			$('#updraftplus_ajax_restore_last_activity').html(updraftlion.last_activity.replace('%d', last_activity));195		} else {196			var resume_in = 120 - last_activity;197			if (0 < resume_in) {198				$('#updraftplus_ajax_restore_last_activity').html(updraftlion.no_recent_activity.replace('%d', resume_in));199			} else {200				$('#updraftplus_ajax_restore_last_activity').html('');201				updraft_restore_resume_notice();202			}203		}204	}205	/**206	 * This will move the filesystem form to take all the required space207	 */208	function updraft_restore_setup_filesystem_form() {209		// Hiding things is handled via CSS210		$('.updraft_restore_main').addClass('show-credentials-form');211		if ($('#message').length) {212			$('.restore-credential-errors .restore-credential-errors--list').appendTo($('#message'));213			$('.restore-credential-errors .restore-credential-errors--link').appendTo($('#message'));214		}215	}216	/**217	 * This function will make a call to the backend to get the resume restore notice so the user can resume the timed out restore from the same page218	 */219	function updraft_restore_resume_notice() {220		updraft_send_command('get_restore_resume_notice', { job_id: job_id }, function(response) {221			if (response.hasOwnProperty('status') && 'success' == response.status && response.hasOwnProperty('html')) {222				if (updraft_restore_update_timer) clearInterval(updraft_restore_update_timer);223				if ('plugins' != current_stage && 'db' != current_stage && 5 > auto_resume_count) {224					auto_resume_count++;225					updraft_restore_command(job_id, 'updraft_ajaxrestore_continue');226				} else {227					$('.updraft_restore_main--components').prepend(response.html);228				}229			} else if (response.hasOwnProperty('error_code') && response.hasOwnProperty('error_message')) {230				if (updraft_restore_update_timer) clearInterval(updraft_restore_update_timer);231				alert(response.error_code + ': ' + response.error_message);232				console.log(response.error_code + ': ' + response.error_message);233			}234		}, {235			error_callback: function (response, status, error_code, resp) {236				if (500 == response.status && 3 > server_500_count) {237					server_500_count++;238					updraft_restore_command(job_id, 'updraft_ajaxrestore_continue');239				} else {240					updraft_restore_process_data({stage: 'finished', type: 'state_change'})241					var error_message = "updraft_send_command: error: " + status + " (" + error_code + ")";242					alert(error_message);243					console.log(error_message);244					console.log(response);245				}246			}247		});248	}249	/**250	 * This function will make a call to the passed in urls and check if the response code is a 404 if it is then add it to the array of urls that are not found and return it251	 *252	 * @param {array} urls - the urls we want to test253	 *254	 * @return {array} an array of urls not found255	 */256	function updraft_restore_get_pages(urls) {257		var urls_not_found = [];258		$.each(urls, function(index, url) {259			var xhttp = new XMLHttpRequest();260			xhttp.open('GET', url, false);261			xhttp.send(null);262			if (xhttp.status == 404) urls_not_found.push(url);263		});264		return urls_not_found;265	}266	$('#updraftplus_ajax_restore_progress').on('click', '#updraft_restore_resume', function(e) {267		e.preventDefault();268		$("#updraftplus_ajax_restore_progress").slideUp(1000, function () {269			$(this).remove();270		});271		updraft_restore_command(job_id, 'updraft_ajaxrestore_continue');272	});273	$(document).on('heartbeat-tick', function (event, heartbeat_data) {274		if (!heartbeat_data.hasOwnProperty('wp-auth-check')) return;275		276		// check if we are logged out277		if (!heartbeat_data["wp-auth-check"]) {278			logged_out = true;279			return;280		}281		// if we were previously logged out but are now logged in retry the restore282		if (logged_out && heartbeat_data["wp-auth-check"]) {283			last_received = Math.round(Date.now() / 1000);284			logged_out = false;285		}286		287		if (!heartbeat_data.hasOwnProperty('updraftplus')) return;288		var updraftplus_data = heartbeat_data.updraftplus;289		// if we are logged in, check if theres a new nonce290		if (updraftplus_data.hasOwnProperty('updraft_credentialtest_nonce')) {291			updraft_credentialtest_nonce = updraftplus_data.updraft_credentialtest_nonce;292			last_received = Math.round(Date.now() / 1000);293		}294	});...restore.py
Source:restore.py  
...19from massrc.com.citrix.mas.nitro.resource.config.mps.backup_component import backup_component20'''21Configuration for Restore resource22'''23class restore(base_resource):24	_backup_components=[]25	_act_id= ""26	_restore_type= ""27	_backup_file_name= ""28	_backup_password= ""29	_ip_address_list=[]30	__count=""31	'''32	get the resource id33	'''34	def get_resource_id(self) :35		try:36			if hasattr(self, 'id'):37				return self.id 38			else:39				return None 40		except Exception as e :41			raise e42	'''43	get the resource type44	'''45	def get_object_type(self) :46		try:47			return "restore"48		except Exception as e :49			raise e50	'''51	Returns the value of object identifier argument.52	'''53	def get_object_id(self) :54		try:55			return None56		except Exception as e :57			raise e58	'''59	Returns the value of object file path argument.60	'''61	@property62	def file_path_value(self) :63		try:64			return None65		except Exception as e :66			raise e67	'''68	Returns the value of object file component name.69	'''70	@property71	def file_component_value(self) :72		try :73			return "restores"74		except Exception as e :75			raise e76	'''77	get Backup Components78	'''79	@property80	def backup_components(self) :81		try:82			return self._backup_components83		except Exception as e :84			raise e85	'''86	set Backup Components87	'''88	@backup_components.setter89	def backup_components(self,backup_components) :90		try :91			if not isinstance(backup_components,list):92				raise TypeError("backup_components must be set to array of backup_component value")93			for item in backup_components :94				if not isinstance(item,backup_component):95					raise TypeError("item must be set to backup_component value")96			self._backup_components = backup_components97		except Exception as e :98			raise e99	'''100	get Activity Id101	'''102	@property103	def act_id(self) :104		try:105			return self._act_id106		except Exception as e :107			raise e108	'''109	get  110	'''111	@property112	def restore_type(self) :113		try:114			return self._restore_type115		except Exception as e :116			raise e117	'''118	set  119	'''120	@restore_type.setter121	def restore_type(self,restore_type):122		try :123			if not isinstance(restore_type,int):124				raise TypeError("restore_type must be set to int value")125			self._restore_type = restore_type126		except Exception as e :127			raise e128	'''129	get Backup file name130	'''131	@property132	def backup_file_name(self) :133		try:134			return self._backup_file_name135		except Exception as e :136			raise e137	'''138	set Backup file name139	'''140	@backup_file_name.setter141	def backup_file_name(self,backup_file_name):142		try :143			if not isinstance(backup_file_name,str):144				raise TypeError("backup_file_name must be set to str value")145			self._backup_file_name = backup_file_name146		except Exception as e :147			raise e148	'''149	get Password of encrypted backup file150	'''151	@property152	def backup_password(self) :153		try:154			return self._backup_password155		except Exception as e :156			raise e157	'''158	set Password of encrypted backup file159	'''160	@backup_password.setter161	def backup_password(self,backup_password):162		try :163			if not isinstance(backup_password,str):164				raise TypeError("backup_password must be set to str value")165			self._backup_password = backup_password166		except Exception as e :167			raise e168	'''169	get List of VM IP Address170	'''171	@property172	def ip_address_list(self) :173		try:174			return self._ip_address_list175		except Exception as e :176			raise e177	'''178	set List of VM IP Address179	'''180	@ip_address_list.setter181	def ip_address_list(self,ip_address_list) :182		try :183			if not isinstance(ip_address_list,list):184				raise TypeError("ip_address_list must be set to array of str value")185			for item in ip_address_list :186				if not isinstance(item,str):187					raise TypeError("item must be set to str value")188			self._ip_address_list = ip_address_list189		except Exception as e :190			raise e191	'''192	Use this operation to restore the Appliance.193	'''194	@classmethod195	def add(cls,service=None,resource=None):196		try:197			if resource is None :198				raise Exception("Resource Object Not Found")199			if type(resource) is not list :200				return resource.perform_operation(service,"add")201			else : 202				restore_obj= restore()203				return cls.perform_operation_bulk_request(service,"add", resource,restore_obj)204		except Exception as e :205			raise e206	'''207	Use this operation to get restore component information.208	'''209	@classmethod210	def get(cls,client = None,resource="",option_=""): 211		try:212			response=""213			if not resource :214				restore_obj=restore()215				response = restore_obj.get_resources(client,option_)216			else:217				response = resource.get_resource(client, option_)218			return response219		except Exception as e :220			raise e221	'''222	Use this API to fetch filtered set of restore resources.223	filter string should be in JSON format.eg: "vm_state:DOWN,name:[a-z]+"224	'''225	@classmethod226	def get_filtered(cls,service,filter_) :227		try:228			restore_obj = restore()229			option_ = options()230			option_._filter=filter_231			return restore_obj.getfiltered(service, option_)232		except Exception as e :233			raise e234	'''235	* Use this API to count the restore resources.236	'''237	@classmethod238	def count(cls,service) :239		try:240			restore_obj = restore()241			option_ = options()242			option_._count=True243			response = restore_obj.get_resources(service, option_)244			if response :245				return response[0].__dict__['___count']246			return 0247		except Exception as e :248			raise e249	'''250	Use this API to count the filtered set of restore resources.251	filter string should be in JSON format.eg: "vm_state:DOWN,name:[a-z]+"252	'''253	@classmethod254	def count_filtered(cls,service,filter_):255		try:256			restore_obj = restore()257			option_ = options()258			option_._count=True259			option_._filter=filter_260			response = restore_obj.getfiltered(service, option_)261			if response :262				return response[0].__dict__['_count']263			return 0;264		except Exception as e :265			raise e266	'''267	Converts API response into object and returns the object array in case of get request.268	'''269	def get_nitro_response(self,service ,response):270		try :271			result=service.payload_formatter.string_to_resource(restore_response, response, self.__class__.__name__)272			if(result.errorcode != 0) :273				if (result.errorcode == 444) :274					service.clear_session(self)275				if result.severity :276					if (result.severity == "ERROR") :277						raise nitro_exception(result.errorcode, str(result.message), str(result.severity))278				else :279					raise nitro_exception(result.errorcode, str(result.message), str(result.severity))280			return result.restore281		except Exception as e :282			raise e283	'''284	Converts API response into object and returns the object array .285	'''286	def get_nitro_bulk_response(self,service ,response):287		try :288			result=service.payload_formatter.string_to_resource(restore_responses, response, "restore_response_array")289			if(result.errorcode != 0) :290				if (result.errorcode == 444) :291					service.clear_session(self)292				response = result.restore_response_array293				i=0294				error = [restore() for _ in range(len(response))]295				for obj in response :296					error[i]= obj._message297					i=i+1298				raise nitro_exception(result.errorcode, str(result.message), error)299			response = result.restore_response_array300			i=0301			restore_objs = [restore() for _ in range(len(response))]302			for obj in response :303				if hasattr(obj,'_restore'):304					for props in obj._restore:305						result = service.payload_formatter.string_to_bulk_resource(restore_response,self.__class__.__name__,props)306						restore_objs[i] = result.restore307						i=i+1308			return restore_objs309		except Exception as e :310			raise e311	'''312	Performs generic data validation for the operation to be performed313	'''314	def validate(self,operationType):315		try:316			super(restore,self).validate()317		except Exception as e :318			raise e319'''320Forms the proper response.321'''322class restore_response(base_response):323	def __init__(self,length=1) :324		self.restore= []325		self.errorcode = 0 326		self.message = "" 327		self.severity = "" 328		self.restore= [ restore() for _ in range(length)]329'''330Forms the proper response for bulk operation.331'''332class restore_responses(base_response):333	def __init__(self,length=1) :334		self.restore_response_array = []335		self.errorcode = 0 336		self.message = "" ...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
