LOG_EXCEPTION = 'Exception: '
# ================  common/parallels/common/safe.py ===============
MIGRATION_TOOLS_TRIED_PERFORM_OPERATION_IN = 'Migration tools tried to perform operation in %s attempts.'
FAILED_MIGRATE_SERVICE_PLAN_THAT_RESELLER_2 = u'Failed to migrate service plan that the reseller of this plan is assigned to.'
FAILED_MIGRATE_RESELLER_THAT_OWNS_CLIENT_1 = u'Failed to migrate reseller that owns client of this subscription.'
FAILED_MIGRATE_SERVICE_PLAN_THAT_RESELLER_1 = u'Failed to migrate service plan that the reseller that owns client of this subscription is assigned to.'
FAILED_MIGRATE_SERVICE_PLAN_THAT_RESELLER = u'Failed to migrate service plan that the reseller that owns this client is assigned to.'
FAILED_MIGRATE_RESELLER_PLAN = u'Failed to migrate reseller of this plan.'
FAILED_PERFORM_AN_ACTION_AUXILIARY_USER = u"Failed to perform an action on auxiliary user '%s' of client '%s'"
FAILED_MIGRATE_SERVICE_PLAN_RESELLER_IS = u'Failed to migrate service plan this reseller is assigned to.'
FAILED_MIGRATE_CLIENT_SUBSCRIPTION = u'Failed to migrate client of this subscription.'
FAILED_MIGRATE_RESELLER_THAT_OWNS_CLIENT = u'Failed to migrate reseller that owns this client.'
FAILED_MIGRATE_SERVICE_PLAN_SUBSCRIPTION = u'Failed to migrate service plan of this subscription.'
# ================  common/parallels/common/importer.py ===============
CANNOT_CREATE_AUXILIARY_USERS_FOR_CLIENT = u'Cannot create auxiliary users for client without subscriptions.'
SUBSCRIPTION_NO_WEB_IP_ADDRESSES_SKIP = u'Subscription has no web IP addresses, skip cleaning up its vhost'
PPA_HOST_ID_WHERE_SUBSCRIPTIONS_WEB = u'PPA host id where subscriptions web service is located: %s'
FAILED_CREATE_CLIENT_IN_S = u'Failed to create client in %s.'
FAILED_CREATE_SUBSCRIPTION_IN_S = u'Failed to create subscription in %s.'
WAIT_UNTIL_ALL_CLIENTS_ARE_CREATED = u'Wait until all clients are created in Plesk'
FAILED_UPDATE_AUXILIARY_USER_ROLE_PLESK = u'Failed to update auxiliary user role with Plesk API.'
FAILED_CLEAN_UP_SKELETON_WEBSPACE = u'Failed to clean up skeleton of webspace.'
CREATE_AUXILIARY_USERS_FOR_S_CUSTOMER = u"Create auxiliary users for '%s' customer"
TIMED_OUT_WAITING_UNTIL_WEBSPACE_S = u'Timed out waiting until webspace %s is provisioned'
PROVISIONING_WEBSPACE_S_IS_TIMED_OUT = u'Provisioning of the webspace %s is timed out.'
FAILED_GET_HOSTING_TYPE_SUBSCRIPTION_S = u'Failed to get hosting type of subscription %s: expected to have exactly 1 result to Plesk API request, got %s'
TIME_OUT_WAITING_FOR_PROVISIONING_CUSTOMERS = u'Time out: waiting for provisioning of customers, %d out of %d customer(s) were not provisioned to Plesk'
FAILED_CREATE_AUXILIARY_ROLES_CLIENT = u'Failed to create auxiliary roles of client.'
SKIP_AUXILIARY_USER_S_AS_IT = u"Skip auxiliary user '%s' as it already exists in PPA"
SKIP_AUXILIARY_USER_ROLE_S_AS = u"Skip auxiliary user role '%s' as it already exists in PPA"
FAILED_CREATE_AUXILIARY_USER_ROLE_PLESK = u'Failed to create auxiliary user role with Plesk API.'
FAILED_CREATE_AUXILIARY_USER_IN_PLESK = u'Failed to create auxiliary user in Plesk.'
HELP_PPA_COMPLETE_TASKS_FOR_WEBSPACE = u"Help PPA to complete the tasks for this webspace successfully, then - only if you transfer subscription to a new server - clean up webspace's virtual host: remove all files from its httpdocs/ and cgi-bin/ directories, and then retry the migration of this subscription."
FAILED_CREATE_AUXILIARY_USERS_CLIENT = u'Failed to create auxiliary users of client.'
ALL_CLIENTS_ARE_PROVISIONED_PLESK = u'All clients are provisioned to Plesk'
FAILED_CREATE_WEBSPACE_IN_S = u'Failed to create webspace in %s.'
SOME_ERROR_OCCURED_DURING_FETCHING_LIST = u'Some error occured during fetching list of provisioned clients. See log for Plesk response details.'
CLIENT_S_ALREADY_EXISTS_IN_PPA = u"Client '%s' already exists in PPA"
SUBSCRIPTION_S_USER_S_IS_RESTRICTED = u"Subscription '%s' user '%s' is restricted to does not exist. User won't be created."
ERROR_WHILE_FETCHING_SUBSCRIPTION_WEB_SERVICE = u'Error while fetching subscription web service IP from Plesk: expected to receive exactly one subscription, Plesk API returned %d subscriptions.'
SUBSCRIPTION_S_ALREADY_EXISTS_IN_PPA = u"Subscription '%s' already exists in PPA"
SUBSCRIPTION_DOES_NOT_HAVE_VIRTUAL_HOSTING = u'Subscription does not have virtual hosting, skip cleaning up its vhost'
SUBSCRIPTION_S_USER_S_IS_RESTRICTED_1 = u"Subscription '%s' user '%s' is restricted to is not active (not provisioned, or suspended). User won't be created."
PPA_WEBSPACE_CORRESPONDING_SUBSCRIPTION_S_DIFFERENT = u"PPA webspace corresponding to subscription '%s' has different owner"
WAITING_FOR_WEBSPACE_PROVISIONING = 'Waiting for webspace provisioning'
WAITING_FOR_CLIENT_PROVISIONING = 'Waiting for client provisioning'
CUSTOMER_ACCOUNT_LOGIN_S_MUST_EXIST = u"Customer account with login '%s' must exist in PPA, but it does not exist."
FAILED_CREATE_AUXILIARY_USER_ROLE_PLESK_1 = u'Failed to create auxiliary user role with Plesk API.'
UPDATING_ROLES_PRECREATED_BY_PLESK_BUT = u'Updating roles pre-created by Plesk but not built-in'
CLEAN_UP_SUBSCRIPTIONS_VHOST_FILES = u'Clean up subscriptions vhost files'
TIME_OUT_WAITING_FOR_PROVISIONING_CUSTOMER = u'Time out: waiting for provisioning customer to Plesk'
CREATE_WEBSPACE_S_IN_SUBSCRIPTION_S = u"Create webspace '%s' in subscription #%s"
FAILED_CREATE_RESELLER_IN_S = 'Failed to create reseller in %s.'
# ================  common/parallels/common/migration_list.py ===============
CUSTOMER_S_AUTOMATICALLY_GENERATED_SPECIAL_ACCOUNT = u"    Customer: %s # automatically generated special account which will receive %s's subscriptions"
ALREADY_EXISTS_IN_TARGET_PANEL = u'already exists in the target panel'
LINE_S_SUBSCRIPTION_S_IS_NOT_1 = u"Line %s: subscription '%s' is not assigned to a plan. Custom subscriptions are not supported"
EXISTING_HOSTING_PLANS_NOT_USED_BY = '    # Existing hosting plans not used by any customer'
FILE_SPECIFIES_LIST_DOMAINS_AND_CLIENTS = "\t\t# This file specifies a list of domains and clients to be migrated.\n\t\t# For each domain, you should specify a service plan, that is to be\n\t\t# used when creating subscription for this domain. You should also\n\t\t# specify a client, that owns the domain. Domains that are not assigned\n\t\t# to a customer, will be automatically assigned to a reseller or admin\n\t\t# account, depending on what you've specified earlier in this file.\n\t\t#\n\t\t# For each client, you should specify a reseller, that will be a vendor\n\t\t# of the corresponding customer. If you do not specify a reseller,\n\t\t# corresponding customer will be created under admin. For the examples\n\t\t# of how to specify that, consult migrator documentation."
LINE_S_S_IS_NOT_VALID = u"Line %s: '%s' is not a valid value for IPv4 mapping. Please specify valid IPv4 address or select one of: %s"
ADMIN_SUBSCRIPTIONS_AND_CUSTOMERS = u'# Admin subscriptions and customers'
CUSTOM_SUBSCRIPTIONS_MUST_ASSOCIATED_SERVICE_TEMPLATE = u'        # Custom subscriptions, must be associated with a service template to be transferred'
LINE_S_SUBSCRIPTION_S_IS_NOT = u"Line %s: subscription '%s' is not presented on source Plesks"
LINE_S_S_IS_NOT_VALID_1 = u"Line %s: '%s' is not a valid value for IPv6 mapping. Please specify valid IPv6 address or select one of: %s"
# ================  common/parallels/common/existing_objects_model.py ===============
MODEL_REPRESENTING_OBJECTS_THAT_ALREADY_EXIST = 'Model representing objects that already exist in target panel'
# ================  common/parallels/common/run_command.py ===============
COMMAND_COMMAND_EXECUTED_AT_HOST_RETURNED = '\n\t\t\t\t\tThe command "{command}" executed at {host} returned a non-zero exit code.\n\t\t\t\t\t============================================================================\n\t\t\t\t\tStderr:\n{stderr}\n\t\t\t\t\t============================================================================\n\t\t\t\t\tStdout:\n{stdout}\n\t\t\t\t\t============================================================================\n\t\t\t\t\t1. If this happened because of a network issue, re-run the migration tool.\n\t\t\t\t\t2. To investigate the issue, execute an HCL request and look at the result:\n\t\t\t\t\t2.1. Log in to the PPA management node.\n\t\t\t\t\t2.2. Create an XML file with an HCL request (/tmp/tmp-hcl for example):\n\t\t\t\t\t{hcl_script}\n\t\t\t\t\t2.3. Run the command "/usr/local/pem/bin/pleskd_ctl -f /usr/local/pem/etc/pleskd.props processHCL /tmp/tmp-hcl {host_id}" \n\t\t\t\t\t'
DOS_CHARSET_CP_UNAVAILABLE_USING_ASCII = "dos charset 'CP850' unavailable - using ASCII\n"
PARAMETER_ENV_IS_NOT_SUPPORTED = u"The parameter 'env' is not supported"
COMMAND_S_FAILED_EXECUTE_S_ERROR_1 = u"Command '%s' failed to execute with '%s' error. Please check that connection settings for server '%s' are correct in config.ini"
PARAMETER_ENV_IS_NOT_SUPPORTED_1 = u"The parameter 'env' is not supported"
COMMAND_S_FAILED_EXECUTE_S_ERROR_2 = u"Command '%s' failed to execute with '%s' error"
COMMAND_COMMANDWHERE_RETURNED_NONZERO_EXIT_CODE = u'The command "{command}"{where} returned a non-zero exit code.\n============================================================================\nStderr:\n{stderr}\n============================================================================\nStdout:\n{stdout}\n============================================================================\n\n1. If this happened because of a network issue, re-run the migration tool.\n2. Ensure that the host is up and there are no firewall rules that may block SSH connection to the host.\n3. To investigate the issue, login to the host by SSH, run the command and look at the result.\n'
UNABLE_DOWNLOAD_FILE_CONTENTS_S_DIRECTORY = 'Unable to download file contents to %s: directory for temporary files was not specified to WinexeRunner'
FAILED_CONNECT_SAMBA_SHARE_C_SERVER = u"Failed to connect to samba share C$ on server '%s': %s. \n\t\t\t\tCheck that:\n\t\t\t\t1) Correct Windows login and password are specified in config.ini.\n\t\t\t\t2) Samba service is working on the Windows server.\n\t\t\t\t"
COMMAND_COMMAND_EXECUTED_AT_HOST_RETURNED_1 = '\n\t\t\t\t\tThe command "{command}" executed at {host} returned a non-zero exit code.\n\t\t\t\t\t============================================================================\n\t\t\t\t\tStderr:\n{stderr}\n\t\t\t\t\t============================================================================\n\t\t\t\t\tStdout:\n{stdout}\n\t\t\t\t\t============================================================================\n\t\t\t\t\t1. If this happened because of a network issue, re-run the migration tool.\n\t\t\t\t\t2. To investigate the issue, execute an HCL request and look at the result:\n\t\t\t\t\t2.1. Log in to the PPA management node.\n\t\t\t\t\t2.2. Create an XML file with an HCL request (/tmp/tmp-hcl for example):\n\t\t\t\t\t{hcl_script}\n\t\t\t\t\t2.3. Run the command "/usr/local/pem/bin/pleskd_ctl -f /usr/local/pem/etc/pleskd.props processHCL /tmp/tmp-hcl {host_id}" \n\t\t\t\t\t'
EXECUTE_COMMAND_REMOTE_SERVER_PAEXEC = 'Execute command on remote server with paexec'
FAILED_EXECUTE_REMOTE_COMMAND_RETRY_IN = 'Failed to execute a remote command, retry in %d seconds'
FAILED_CONNECT_SERVER_S_PAEXEC_UTILITY = 'Failed to connect to server %s with paexec utility\nCheck that:\n1) Correct Windows login and password are specified in config.ini.\n2) Samba service is working on the Windows server.'
RUNNER_DOES_NOT_SUPPORT_STDIN_CONTENT = u'This runner does not support stdin_content parameter'
RUNNER_DOES_NOT_SUPPORT_STDIN_CONTENT_4 = u'This runner does not support stdin_content parameter'
RUNNER_DOES_NOT_SUPPORT_STDIN_CONTENT_3 = u'This runner does not support stdin_content parameter'
RUNNER_DOES_NOT_SUPPORT_STDIN_CONTENT_2 = u'This runner does not support stdin_content parameter'
RUNNER_DOES_NOT_SUPPORT_STDIN_CONTENT_1 = u'This runner does not support stdin_content parameter'
FAILED_DETECT_OS_NODE_COMMAND_COMMAND_1 = '\n\t\t\t\t\tFailed to detect OS of the node. The command "{command}" executed at {host_description} returned a non-zero exit code.\n\t\t\t\t\t============================================================================\n\t\t\t\t\tStderr:\n{stderr}\n\t\t\t\t\t============================================================================\n\t\t\t\t\tStdout:\n{stdout}\n\t\t\t\t\t============================================================================\n\t\t\t\t\t1. If this happened because of a network issue, re-run the migration tool.\n\t\t\t\t\t2. To investigate the issue, execute an HCL request and look at the result:\n\t\t\t\t\t2.1. Log in to the PPA management node.\n\t\t\t\t\t2.2. Create an XML file with an HCL request (/tmp/tmp-hcl for example):\n\t\t\t\t\t{hcl_script}\n\t\t\t\t\t2.3. Run the command "/usr/local/pem/bin/pleskd_ctl -f /usr/local/pem/etc/pleskd.props processHCL /tmp/tmp-hcl {host_id}"\n\t\t\t\t\t2.4. If node OS is Windows, expect error message \'{windows_pattern}\', otherwise expect no error messages\n\t\t\t\t\t'
FAILED_EXECUTE_COMMAND_COMMAND_AT_HOST = '\n\t\t\t\tFailed to execute the command "{command}" at {host}: pleskd_ctl returned a non-zero exit code when executing HCL request. \n\t\t\t\t============================================================================\n\t\t\t\tStderr:\n{stderr}\n\t\t\t\t============================================================================\n\t\t\t\tStdout:\n{stdout}\n\t\t\t\t============================================================================\n\t\t\t\t1. If this happened because of a network issue, re-run the migration tool.\n\t\t\t\t2. To investigate the issue, execute an HCL request and look at the result:\n\t\t\t\t2.1. Log in to the PPA management node.\n\t\t\t\t2.2. Create an XML file with an HCL request (/tmp/tmp-hcl for example):\n\t\t\t\t{hcl_script}\n\t\t\t\t2.3. Run the command "/usr/local/pem/bin/pleskd_ctl -f /usr/local/pem/etc/pleskd.props processHCL /tmp/tmp-hcl {host_id}" \n\t\t\t\t'
COMMAND_COMMAND_STRWHERE_RETURNED_NONZERO_EXIT = '\n\t\t\t\tThe command "{command_str}"{where} returned a non-zero exit code.\n\t\t\t\t============================================================================\n\t\t\t\tStderr:\n{stderr}\n\t\t\t\t============================================================================\n\t\t\t\tStdout:\n{stdout}\n\t\t\t\t============================================================================\n\t\t\t\t1. If this happened because of a network issue, re-run the migration tool.\n\t\t\t\t2. Ensure that the host is up and there are no firewall rules that may block winexe connection to the host.\n\t\t\t\t3. To investigate the issue:\n\t\t\t\t- login to the host and run the command:\n\t\t\t\t{command_str}\n\t\t\t\t- try to run the command with winexe from the current host:\n\t\t\t\t{full_command_str}\n\t\t\t'
FAILED_DETECT_OS_NODE_COMMAND_COMMAND = '\n\t\t\t\t\tFailed to detect OS of the node. The command "{command}" executed at {host_description} returned a non-zero exit code. \n\t\t\t\t\t============================================================================\n\t\t\t\t\tStderr:\n{stderr}\n\t\t\t\t\t============================================================================\n\t\t\t\t\tStdout:\n{stdout}\n\t\t\t\t\t============================================================================\n\t\t\t\t\t1. If this happened because of a network issue, re-run the migration tool.\n\t\t\t\t\t2. To investigate the issue, execute an HCL request and look at the result:\n\t\t\t\t\t2.1. Log in to the PPA management node.\n\t\t\t\t\t2.2. Create an XML file with an HCL request (/tmp/tmp-hcl for example):\n\t\t\t\t\t{hcl_script}\n\t\t\t\t\t2.3. Run the command "/usr/local/pem/bin/pleskd_ctl -f /usr/local/pem/etc/pleskd.props processHCL /tmp/tmp-hcl {host_id}"\n\t\t\t\t\t2.4. If node OS is Windows, expect error message \'{windows_pattern}\', otherwise expect no error messages\n\t\t\t\t\t'
UNABLE_UPLOAD_FILE_CONTENTS_S_DIRECTORY = 'Unable to upload file contents to %s: directory for temporary files was not specified to WinexeRunner'
TRY_CONNECT_SAMBA_SHARE_C_S = u'Try to connect to samba share C$ on %s.'
COMMAND_S_FAILED_EXECUTE_S_ERROR = u"Command '%s' failed to execute with '%s' error. Please check that credentials for server '%s' are correct in config.ini"
# ================  common/parallels/common/ip_mapping.py ===============
LINE_S_INVALID_SOURCE_IP_ADDRESS = "Line #%s: invalid source IP address '%s'. Specify valid IPv4 or IPv6 address."
LINE_S_TARGET_IP_ADDRESS_S = "Line #%s: target IP address '%s' does not exist on target server."
LINE_S_SOURCE_IP_ADDRESS_S = "Line #%s: source IP address '%s' was already specified before."
LINE_S_IP_ADDRESSES_DIFFERENT_TYPES = 'Line #%s: IP addresses of different types can not be mapped. Specify either both IPv4 addresses, or both IPv6 addresses.'
LINE_S_INVALID_TARGET_IP_ADDRESS = "Line #%s: invalid target IP address '%s'. Specify valid IPv4 or IPv6 address."
# ================  common/parallels/common/migrator.py ===============
SKIP_CHECKING_LOG_PRIORITY_OPTION = u'Skip checking log priority option.'
MIGRATION_TOOLS_WERE_UPDATED_LATEST_VERSION = u'The migration tools were updated to the latest version, please re-run it with the last command and arguments'
CHECK_DISK_SPACE_REQUIREMENTS_FOR_S = 'Check disk space requirements for %s'
FAILED_SET_SECURITY_POLICY_SOME_TARGET = u"Failed to set security policy on some of target nodes: %s\nRestoration of customers/users/resellers with weak passwords might be failed by Windows security policy.\nSet 'PasswordComplexity' value to '0' with help of 'secedit' utility and re-run migration tool.\nRestore required security policy after migration."
FAILED_DETECT_DATABASES_SUBSCRIPTION = u'Failed to detect databases of subscription.'
FAILED_MIGRATE_SOME_OBJECTS_SEE_LOG = u'Failed to migrate some objects. See log above for details'
FAILED_CHECK_CONNECTIONS_BETWEEN_SOURCE_AND_1 = 'Failed to check connections between source and the destination mail server nodes'
REPEAT_MIGRATION_FOR_THESE_SUBSCRIPTIONS_ONLY = u'To repeat migration for these subscriptions only, run migrator in the following way:\n'
THERE_IS_NO_RESELLER_NAMED_S = u'There is no reseller named %s in PPA, skipped retrieving its plans'
CHECK_MYSQL_MAX_ALLOWED_PACKET = u'Check MySQL max allowed packet'
DETAILED_RESELLER_MIGRATION_STATUS = u'Detailed Reseller Migration Status'
BILLING_DATA_MIGRATION_IS_AVAILABLE_ONLY_1 = u'Billing data migration is available only when migrating from Parallels H-Sphere'
FAILED_FIND_SUBSCRIPTION_BY_NAME_1 = 'Failed to find subscription by name'
CHECK_MYSQL_MAX_ALLOWED_PACKET_1 = u'Check MySQL max allowed packet'
FAILED_GET_INFORMATION_ABOUT_PPA_MAIN = u'Failed to get information about PPA main license key: %s. License pre-migration checks will be skipped.'
FAILED_RESTORE_SECURITY_POLICY_SOME_TARGET = "\n\t\t\t\t\tFailed to restore security policy on some of target nodes: %s\n\t\t\t\t\tRestore 'PasswordComplexity' value with help of 'secedit' utility manually \n\t\t\t\t\ton all target Windows servers involved into migration.\n\t\t\t\t"
GET_TARGET_PANELS_RESELLERS_FOR_CONFLICT = u"Get target panel's resellers for conflict resolution"
FAILED_COPY_CONTENT_DATABASE_S_MIGRATION = u"Failed to copy content of database '%s': migration of databases from Windows to Unix is not allowed"
ERRORS_OCCURRED_WHILE_CONNECTING_S = 'Errors occurred while connecting to %s.'
UNABLE_RETRIVE_ROW_BACKUP_S = 'Unable to retrive row backup "%s"'
FAILED_COPY_CONTENT_DATABASE_S_1 = u"Failed to copy content of database '%s'"
MIGRATION_TOOL_NOT_ENOUGH_INFORMATION_TRANSFER = 'Migration tool has not enough information to transfer the subscriptions correctly. Please supply a transfer list.'
UNABLE_RETRIVE_SOURCE_NODE_ID_S = 'Unable to retrive source node with id "%s"'
PLESK_LICENSES_READY_PROVIDE_PPA_SERVICE = u'Plesk licenses on ready to provide PPA service nodes are ok'
SUMMARY_1 = u'******************** Summary ********************'
ALL_THEM_ARE_LISTED_IN_S = u'All of them are listed in "%s".\n'
PLEASE_CHECK_THAT_PPA_SERVICE_NODE = "Please check that:\n* PPA service node is running.\n* The pem service is running on the node. To start the service on a Linux node, run '/etc/init.d/pem start', on a Windows node, run 'net start pem'.\n* There are no firewall rules that block communication between the PPA management node and that service node.\n* Errors might be caused by a temporary network issue. In such a case, just re-run the migration tool."
GET_TARGET_PANELS_SUBSCRIPTIONS_SITES_AND = u"Get target panel's subscriptions, sites and site aliases for conflict resolution"
S_DATABASE_S_DOES_NOT_EXIST = "%s database '%s' does not exist on target. Its content will not be copied."
UNABLE_RETRIVE_ROW_BACKUP_S_1 = 'Unable to retrive row backup "%s"'
PLEASE_REVIEW_PREMIGRATION_TREE_ABOVE_AND_1 = u"Please review pre-migration tree above and fix the errors. You can also use --ignore-pre-migration-errors command-line option if you're sure what you are doing."
FAILED_REFRESH_COMPONENTS_LIST_FOR_WINDOWS = u'Failed to refresh components list for Windows service nodes: %s. See debug.log for more details.'
FAILED_FIND_SUBSCRIPTION_BY_NAME = 'Failed to find subscription by name'
TRANSFERRED_DOMAINS_DNS_ISSUES = u'Transferred Domains DNS Issues'
SKIP_COPY_DATABASE_DUE_TO_CONFLICT = (
	u"Skip copy database '{db_name}' from {db_type} server "
	u"as there is some conflict (run 'panel-migrator check' command to see conflict details)"
)
TRANSFERRED_DOMAINS_FUNCTIONAL_ISSUES = "Transferred Domains' Functional Issues"
WEBSPACE_REMOVE_SCHEDULED_PLEASE_CHECK_PPA = u'Webspace remove has been scheduled. Please check PPA task manager and wait till all related tasks are complete'
SKIP_CHECKING_PANEL_MIGRATOR_UPDATES = u'Skip checking panel migrator updates'
SAVED_PANEL_OBJECTS_FILE_PPAYAML = u"Saved panel objects to file 'ppa.yaml:"
UNABLE_CONTINUE_MIGRATION_UNTIL_THERE_ARE = u"Unable to continue migration until there are no issues at 'error' level in pre-migration checks. "
PPA_LICENSE_IS_MISSING_INVALID_PLEASE = u'PPA license is missing or invalid, please fix'
TRANSFERRED_DOMAINS_DATABASE_ISSUES = u'Transferred Domains Database Issues'
SUBSCRIPTION_DOES_NOT_EXIST_TARGET_PANEL = u'Subscription does not exist on target panel or was not provisioned. All transfer operations for that subscription will be skipped.'
THERE_ARE_NONUTF_CHARACTERS_IN_MIGRATION = 'There are non-UTF-8 characters in the migration list. Convert the migration list file to UTF-8 encoding.'
UNABLE_RETRIVE_CONVERTED_BACKUP_S_1 = 'Unable to retrive converted backup "%s"'
OPERATION_FINISHED_SUCCESSFULLY_FOR_S_OUT_1 = u"Operation finished successfully for %s out of %s subscriptions\nTo verify that the transfer completed correctly, run 'panel-migrator test-all config.ini'.\nThis command will check the operation of web, mail, DNS, database, FTP/SSH/RDP services for each transferred domain."
PPA_MODEL_FILE_NOT_FOUND_DID = u"PPA model file not found, did you call 'convert' command?"
UNABLE_COPY_CONTENT_DATABASE_S_SUBSCRIPTION = u"Unable to copy content of database '%s' on subscription '%s'. Trying to copy content again."
CHECK_PPA_TASK_MANAGER_FOR_FAILED = u'Check PPA task manager for failed tasks.'
REPORT_WAS_SAVED_INTO_FILE_S = 'The report was saved into the file %s'
INVALID_TARGET_PANEL_IS_SPECIFIED_IN = "\n\t\t\t\tInvalid target panel is specified in config.ini in 'target-type' option of '[GLOBAL]' section. \n\t\t\t\tSpecify one of: \n\t\t\t\t- 'plesk', if you are going to migrate to Parallels Plesk\n\t\t\t\t- 'ppa', if you are going to migrate to Parallels Plesk Automation\n\t\t\t\t- 'ppa-web-sn', if you are going to move webspace between Parallels Plesk Automation\n\t\t\t\t- 'pvps', if you are going to migrate to dedicated Parallels Plesk\n\t\t\t\t  Shared Hosting Web Nodes\n\t\t\t"
FAILED_FIND_DOMAIN_S_IN_CONVERTED = "Failed to find domain '%s' in converted backup"
FAILED_REFRESH_COMPONENTS_LIST_FOR_S = u'Failed to refresh components list for %s: %s. See debug.log for more details.'
THERE_ARE_INFRASTRUCTURE_ISSUES_THAT_SHOULD = u'There are infrastructure issues that should be fixed prior to the next migration steps. Migration is stopped, please check and fix the issues listed above and then run transfer-accounts command again. '
CONNECTIONS_BETWEEN_SOURCE_AND_DESTINATION_DATABASE = u'Connections between source and the destination database server nodes'
CHECK_CONNECTIONS_TARGET_NODES = u'Check connections to target nodes'
FAILED_CHECK_CONNECTIONS_DATABASE_SERVERS = 'Failed to check connections to database servers.'
S_INSUFFICIENT_FREE_DISK_SPACE_FOR = u"%s has insufficient free disk space for migration. Migration is stopped. Free some disk space, then run 'transfer-accounts' command again. "
CHECK_CONNECTIONS_TARGET_NODES_1 = u'Check connections on target nodes'
OPERATION_FINISHED_SUCCESSFULLY_FOR_S_OUT = u'Operation finished successfully for %s out of %s resellers'
RESTART_IIS_FOR_IDN_DOMAINS_S = u'Restart IIS for IDN domains on %s.'
DNS_FORWARDING_WAS_SUCCESSFULLY_SET_UP = u'DNS forwarding was successfully set up'
WEBMAIL_IP_ADDRESS_S_SPECIFIED_IN = "Webmail IP address '%s' specified in 'webmail-ip' option of '[ppa]' is not valid IP v4. Please specify valid IP v4 address."
DNS_FORWARDING_WAS_SUCCESSFULLY_UNDONE = u'DNS forwarding was successfully undone'
GET_TARGET_PANELS_CUSTOMERS_FOR_CONFLICT = u"Get target panel's customers for conflict resolution"
INTERNAL_ERROR_S_MIGRATION_TOOL_SKIP = 'Internal error: %s.\nMigration tool will skip corresponding infrastructure checks and proceed to the next migration steps.'
FAILED_COPY_CONTENT_DATABASE_S_MIGRATION_1 = u"Failed to copy content of database '%s': migration of databases from Unix to Windows is not allowed"
BILLING_DATA_MIGRATION_IS_AVAILABLE_ONLY = u'Billing data migration is available only when migrating from Parallels H-Sphere'
TRANSFERRED_DOMAINS_MAIL_ISSUES = u'Transferred Domains Mail Issues'
GET_TARGET_PANELS_AUXILIARY_USERS_AND = u"Get target panel's auxiliary users and roles for conflict resolution"
CHECK_LOG_PRIORITY_TARGET_PLESK_NODE = u'Check log priority on target Plesk node'
FAILED_CHECK_SERVICES_S_CHECK_DEBUGLOG = u'Failed to check services: %s. Check debug.log for more details. Still migration will proceed to the next steps.'
UNABLE_READ_MIGRATION_LIST_FILE = 'Unable to read migration list file.'
THERE_WERE_SOME_ERRORS_WHILE_READING = u'There were some error(s) while reading migration list file. Please review and fix them: \n'
ALL_SUBSCRIPTIONS_ARE_FAILED_MIGRATE_STOPPING = u'All subscriptions are failed to migrate, stopping.'
RESOLVE_ISSUE_DATABASE_CREATION_CREATE_DATABASE = 'Resolve the issue with database creation or create database on target panel, then run copy-db-content command for that subscription to copy database contents.'
ESTIMATED_PAYMENTS_COMPARISON_IS_AVAILABLE_ONLY = u'Estimated payments comparison is available only when migrating from Parallels H-Sphere'
FAILED_SYNCHRONIZE_SUBSCRIPTIONS_PLANS = 'Failed to synchronize subscriptions with plans'
RESOURCE_LIMITS_TRANSFER_IS_AVAILABLE_ONLY = u'Resource limits transfer is available only when migrating from Parallels H-Sphere'
DISK_SPACE_REQUIREMENTS_FOR_S_ARE = 'Disk space requirements for %s are met'
FIX_INCONSISTENCIES_LISTED_ABOVE_AND_RERUN = 'Fix the inconsistencies listed above and re-run migration tool when all of them are fixed'
AT_LEAST_ONE_DNS_SERVER_SHOULD = u"At least one DNS server should exist for domain '%s'"
FAILED_CHECK_CONNECTIONS_BETWEEN_SOURCE_AND = 'Failed to check connections between source and the destination web server nodes'
FAILED_CHECK_CONNECTIONS_BETWEEN_SOURCE_AND_2 = 'Failed to check connections between source and the destination database server nodes'
ERROR_WHILE_CHECKING_TARGET_PANEL_CONFIGURATION = u"Error while checking target panel configuration and connections: '%s'"
WEBSPACE_ID_SPECIFIED_BY_WEBSPACEID_OPTION = u"Webspace ID specified by '--webspace-id' option should be valid integer"
IF_YOU_WANT_SKIP_INFRASTRUCTURE_CHECKS = u'If you want to skip infrastructure checks pass --skip-infrastructure-checks command line option'
GET_TARGET_PANELS_SERVICE_TEMPLATES_FOR = u"Get target panel's service templates for conflict resolution"
CONNECTIONS_BETWEEN_SOURCE_AND_DESTINATION_WEB = u'Connections between source and the destination web server nodes'
PPA_NS_SERVER_HOSTNAME_MUST_NOT = u"PPA NS server hostname must not be empty (check 'hostname' parameter in [ppa] section of config file)"
CONNECTIONS_BETWEEN_SOURCE_AND_DESTINATION_MAIL = u'Connections between source and the destination mail server nodes'
FAILED_SYNCRONIZE_SUBSCRIPTION_PLAN = 'Failed to syncronize subscription with plan'
FAILED_SUSPEND_SUBSCRIPTION = u'Failed to suspend subscription.'
NEW_VERSION_MIGRATION_TOOLS_ALREADY_EXISTS = u'A new version of migration tools already exists: %s is installed, %s is available. Updating to the new version...'
FIX_SERVICE_TEMPLATE_SUBSCRIPTION_IS_ASSIGNED_1 = u'Fix service template subscription is assigned to, so databases are provisioned to Unix servers'
THERE_IS_INCONSISTENCY_IN_PPA_WEBSPACE = "\n\t\t\t\t\tThere is inconsistency in PPA: webspace '{webspace_name}' ({webspace_id}) doesn't have corresponding subscription.\n\t\t\t\t\tThe inconsistency must be fixed before migration.\n\t\t\t\t\tIf you don't need that webspace in PPA and want to replace it with webspace from source panel\n\t\t\t\t\trun '{util_name} remove-webspace config.ini --webspace-id {webspace_id}' command to clean up hung webspace from PPA.\n\t\t\t\t\t"
CHECK_PLESK_VERSION_MAIN_TARGET_NODE = u'Check Plesk version of the main target node'
FAILED_PERFORM_INFRASTRUCTURE_CHECKS_S_CHECK = u'Failed to perform infrastructure checks: %s. Check debug.log for more details. Still migration will proceed to the next steps.'
UNABLE_RETRIVE_CONVERTED_BACKUP_S = 'Unable to retrive converted backup "%s"'
THERE_IS_NO_PLESK_LICENSE_AT = u'There is no Plesk license at %s, please fix'
UNABLE_CAT_S_FILE_MOST_PROBABLY = u'Unable to cat %s file. Most probably this file is absent.'
PLEASE_REVIEW_PREMIGRATION_TREE_ABOVE_AND = u"Please review pre-migration tree above and fix the errors. You can also use --ignore-pre-migration-errors command-line option if you're sure what you are doing."
FIX_SERVICE_TEMPLATE_SUBSCRIPTION_IS_ASSIGNED = u'Fix service template subscription is assigned to, so databases are provisioned to Windows servers'
PLEASE_CHANGE_VALUE_S_OPTION_IN = u"Please change value of '%s' option in %s section in '%s' file on PPA management node to '0'. If you want to debug PPA and run migration tool specify 'skip-log-priority-check' option in [GLOBAL] section of config file of migration tool,  but migration tool can hang in this case."
GET_TARGET_PANELS_SUBSCRIPTIONS_AND_WEBSPACES = u"Get target panel's subscriptions and webspaces for conflict resolution"
CHECK_SERVICES_TARGET_SERVERS = u'check services on target servers'
SUMMARY = u'******************** Summary ********************'
FAILED_CHECK_DISK_SPACE_REQUIREMENTS = 'Failed to check disk space requirements.'
FAILED_COPY_CONTENT_DATABASE_S = u"Failed to copy content of database '%s'"
UNABLE_COPY_CONTENT_DATABASE_S_SUBSCRIPTION_1 = u"Unable to copy content of database '%s' on subscription '%s'. Trying to copy content again."
UNABLE_CONTINUE_MIGRATION_UNTIL_THERE_ARE_1 = u"Unable to continue migration until there are no issues at 'error' level in pre-migration checks. "
FAILED_CHECK_DISK_SPACE_REQUIREMENTS_FOR = u'Failed to check disk space requirements for %s: %s. Check debug.log for more details. Still migration will proceed to the next steps.'
ONLY_MIGRATION_EXTERNAL_MSSQL_DATABASE_SERVER = u"Only migration to external MSSQL database server is supported, migration to other types of external database servers is not supported. Database '{db.name}' cannot be migrated to the database server {target_host}:{target_port}"
FAILED_RESTORE_SECURITY_POLICY_TARGET_NODE = "\n\t\t\t\t\t\t\tFailed to restore security policy on target node %s: %s\n\t\t\t\t\t\t\tRestore 'PasswordComplexity' value with help of 'secedit' utility manually on the node\n\t\t\t\t\t\t"
FAILED_CHECK_MYSQL_REQUIREMENTS = 'Failed to check MySQL requirements.'
FAILED_MIGRATE_SOME_RESELLERS_SEE_LOG = u'Failed to migrate some resellers. See log above for details'
# ================  common/parallels/common/migrated_subscription.py ===============
FAILED_FIND_CLIENT_THAT_OWNS_SUBSCRIPTION = "Failed to find client that owns subscription '%s'"
FAILED_FIND_SUBSCRIPTION_BY_NAME_2 = 'Failed to find subscription by name'
# ================  common/parallels/common/windows_rsync.py ===============
STOP_RSYNC_IF_IT_IS_RUNNING = 'Stop rsync if it is running, then start'
RSYNC_IS_ALREADY_INSTALLED_SERVER_SKIP = u"Rsync is already installed on server, skip installation.If you want to reinstall it, stop it with stop.bat script, remove '%s' directory and then restart migration"
CONFIGURE_RSYNC_SERVER_RSYNCDCONF_AND_RSYNCDSECRETS = 'Configure rsync server (rsyncd.conf and rsyncd.secrets)'
UNABLE_SET_VHOSTS_DIR_RSYNC_SERVER = 'Unable to set vhosts_dir: rsync server at %s is not configured yet'
TRY_RESTART_SERVER_AND_RETRY = ', try to restart server and retry'
# ================  common/parallels/common/imapsync.py ===============
TOOL_IMAPSYNC_WAS_INSTALLED_SUCCESSFULLY = u"Tool 'imapsync' was installed successfully"
MAIL_CONTENT_NOT_COPIED_IMAPSYNC_TOOL = "Mail content will not be copied: 'imapsync' tool required to copy mail content can not be automatically installed on your OS. Please install it manually and then restart copy mail content by 'panel-migrator copy-mail-content' command"
INSTALL_IMAPSYNC_TOOL_COPY_MAIL_CONTENT = u"Install 'imapsync' tool to copy mail content"
MAIL_CONTENT_NOT_COPIED_FAILED_INSTALL = "Mail content will not be copied: failed to install 'imapsync' tool required to copy mail content.\nReason: %s\nPlease install 'imapsync' tool manually and then restart copy mail content by 'panel-migrator copy-mail-content' command"
# ================  common/parallels/common/migrator_config.py ===============
PPA_API_DOES_NOT_WORK_OVER = "PPA API does not work over IPv6, so please change IPv6 (%s) to IPv4 in config file in PPA's section"
WINDOWS_USERNAME_IS_NOT_SPECIFIED_FOR = "\t\t\tWindows username is not specified for server '%s'. Please\n\t\t\tspecify it with 'windows-username' option of corresponding section\n\t\t\t'[%s]' in config.ini"
SSHKEY_FILE_SPECIFIED_IN_SECTION_S = u"ssh-key file specified in section '%s' of configuration file does not exist"
IF_NOT_SPECIFIED_NONE_IS_SPECIFIED = u" If not specified, or 'none' is specified, local execution is considered."
INVALID_VALUE_FOR_ACTIONRUNNER_OPTION_PLEASE = "Invalid value for 'action-runner' option. Please specify one of: %s"
WINDOWS_PASSWORD_IS_NOT_SPECIFIED_FOR = "\t\t\tWindows password is not specified for server '%s'. Please\n\t\t\tspecify it with 'windows-password' option of corresponding section\n\t\t\t'[%s]' in config.ini"
INVALID_VALUE_S_IS_SPECIFIED_FOR = u"Invalid value '%s' is specified for 'multithreading-status' options. Allowed values: %s"
# ================  common/parallels/common/global_context.py ===============
UNABLE_RETRIEVE_SOURCE_INFO_S = 'Unable to retrieve source info "%s"'
# ================  common/parallels/common/hosting_check/__init__.py ===============
MAKE_SURE_THAT_WEB_HOSTING_IS = u'Make sure that web hosting is configured for this webspace in the target panel.'
TARGET_PANEL_WEBSPACE_S_IS_NOT = u'The target panel webspace %s is not associated with a web IP address. Unable to check the site %s in the target panel.'
# ================  common/parallels/common/hosting_check/config.py ===============
EXTERNALDNSSERV_OPTION_IN_GLOBAL_SECTION_CONFIG = "'external-dns-servers' option in [GLOBAL] section of config file of migration tool contains invalid value: '%s'. Valid IPv4 address should be specified in order for all DNS checks to be performed."
# ================  common/parallels/common/hosting_check/reporting.py ===============
ALL_TRANSFERRED_DOMAINS_ARE_WORKING_CORRECTLY = u'All transferred domains are working correctly.'
REPORT_WAS_SAVED_INTO_FILE_S_1 = 'The report was saved into the file %s'
SUMMARY_2 = u'******************** Summary ********************'
ALL_SERVICES_ARE_WORKING_CORRECTLY = u'All services are working correctly.'
# ================  common/parallels/common/hosting_check/entity_source/mail.py ===============
SKIPPED_CHECKING_MAILBOXES_SUBSCRIPTION_S_BECAUSE_1 = u'Skipped checking mailboxes of the subscription %s because it has no mail service'
SKIPPED_CHECKING_MAILBOXES_SUBSCRIPTION_S_BECAUSE = u'Skipped checking mailboxes of the subscription %s because it is suspended'
SKIPPED_CHECKING_MAIL_SERVICE_DOMAIN_S = u'Skipped checking mail service of the domain %s because it is suspended'
SUBSCRIPTION_S_IS_NOT_PRESENTED_MAIL = "Subscription '%s' is not presented on mail server, do not check mail for it"
# ================  common/parallels/common/hosting_check/entity_source/web.py ===============
SKIPPED_CHECKING_SITE_S_SUBSCRIPTION_S = u'Skipped checking site %s of subscription %s because this site is disabled'
SKIPPED_CHECKING_SITES_SUBSCRIPTION_S_BECAUSE = u'Skipped checking the sites of the subscription %s because this subscription is disabled'
RESOLVE_INCONSISTENCY_SOURCE_SERVER = u'Resolve the inconsistency on the source server.'
SKIPPED_CHECKING_SITE_S_SUBSCRIPTION_S_1 = u'Skipped checking site %s of subscription %s because this site is in maintenance'
SKIPPED_CHECKING_SITES_DOMAIN_S_BECAUSE = u'Skipped checking the sites of the domain %s because it has no web hosting'
SETTINGS_DOMAIN_S_SOURCE_SERVER_ARE = u'The settings of the domain %s on the source server are inconsistent: web hosting is configured for this domain, but the domain is not associated with an IP address.'
# ================  common/parallels/common/hosting_check/entity_source/dns.py ===============
SKIP_CHECKING_DOMAIN_S_BECAUSE_IT = "Skip checking of domain '%s' because it is in slave mode"
SKIP_CHECKING_DOMAIN_S_BECAUSE_IT_1 = "Skip checking of domain '%s' because it has no DNS zone or DNS zone is disabled"
# ================  common/parallels/common/hosting_check/utils/runner_adapter.py ===============
CAN_NOT_EXECUTE_COMMANDS_CONNECTION_THAT = 'Can not execute commands on connection that is not open'
CAN_NOT_UPLOAD_FILES_COMMANDS_CONNECTION = 'Can not upload files commands on connection that is not open'
CAN_NOT_OPEN_CONNECTION_WHICH_IS = 'Can not open connection which is already open'
CAN_NOT_EXECUTE_COMMANDS_CONNECTION_THAT_1 = 'Can not execute commands on connection that is not open'
CAN_NOT_CLOSE_CONNECTION_THAT_IS = 'Can not close connection that is not open'
# ================  common/parallels/common/workflow/shared_hosting_workflow.py ===============
CHECKING_WHETHER_SERVICE_OPERATE_PROPERLY = 'Checking whether service operate properly'
CHECK_WHETHER_IMAP_SMTP_AND_POP = 'Check whether IMAP, SMTP and POP3 authentication work for mailboxes of the transferred domains'
CHECK_LICENSES_TARGET_SERVERS = 'Check licenses on target servers'
CHECK_INFRASTRUCTURE_CONNECTIONS_AND_DISK_SPACE = 'Check infrastructure (connections and disk space)'
CHECK_DISK_SPACE_REQUIREMENTS_FOR_MAIN = 'Check disk space requirements for main target server'
FETCH_INFORMATION_FROM_SOURCE_PANEL = 'Fetch information from source panel'
CONVERT_HOSTING_SETTINGS_TARGET_PANEL_FORMAT = 'Convert hosting settings to target panel format'
COPY_WEB_FILES_AND_SYNC_WEB = 'Copy web files and sync web assets'
CHECK_THAT_SERVICES_AND_TRANSFERRED_DOMAINS = 'Check that the services and transferred domains are working correctly'
RESTORE_SECURITY_POLICY_WINDOWS_NODES = 'Restore security policy on Windows nodes'
CHECK_LICENSES_TARGET_SERVERS_1 = 'Check licenses on target servers'
CHECKING_WHETHER_TRANSFERRED_WEBSITES_OPERATE_PROPERLY = 'Checking whether the transferred websites operate properly'
CHECK_THAT_DNS_QUERIES_FOR_TRANSFERRED = "Check that the DNS queries for transferred domains' records are ok"
SET_SECURITY_POLICY_WINDOWS_NODES = 'Set security policy on Windows nodes'
FETCH_INFORMATION_FROM_TARGET_SERVERS = 'Fetch information from target servers'
RESTORE_LOGINS_SYSTEM_USERS = 'Restore logins of system users'
CHECK_CONFLICTS_FOR_CLIENTS_SUBSCRIPTIONS_RESELLER = 'Check conflicts for clients, subscriptions, reseller, plans'
SYNCHRONIZE_SUBSCRIPTIONS_PLANS = 'Synchronize subscriptions with plans'
CONVERT_CLIENTS_AND_SUBSCRIPTIONS = 'Convert clients and subscriptions'
REFRESH_COMPONENTS_LIST_TARGET_WINDOWS_SERVERS = 'Refresh components list on target Windows servers'
CHECK_WHETHER_DATABASES_WERE_COPIED_CORRECTLY = 'Check whether the databases were copied correctly'
CONVERT_CLIENTS_AND_SUBSCRIPTIONS_1 = 'Convert clients and subscriptions'
COPY_WEB_DATABASE_AND_MAIL_CONTENT = 'Copy web, database and mail content'
COUNT_MIGRATION_STATISTICS_PRINT_REPORT = 'Count migration statistics, print report'
RESTORE_STATUS_SUSPENDED_CLIENTS_AND_SUBSCRIPTIONS = 'Restore status of suspended clients and subscriptions'
# ================  common/parallels/common/workflow/base_workflow.py ===============
CAN_NOT_REPLACE_SHARED_ACTION_SHARED = "Can not replace shared action: shared action with ID '%s' not found in workflow"
MIGRATOR_INTERNAL_ERROR_ENTRY_POINT_ID = "Migrator internal error. Entry point with ID '%s' does not exist. Check entry point ID spelling, or add entry point with such ID to workflow."
MIGRATOR_INTERNAL_ERROR_SHARED_ACTION_ID = "Migrator internal error. Shared action with ID '%s' does not exist. Check action ID spelling, or add shared action with such ID to workflow."
CAN_NOT_REPLACE_ENTRY_POINT_S = "Can not replace entry point '%s' which does not exist"
ENTRY_POINT_S_ALREADY_EXISTS = "Entry point '%s' already exists"
# ================  common/parallels/common/workflow/runner/by_subscription.py ===============
EXCEPTION_IN_SUBSCRIPTION_THREAD = 'Exception in subscription thread:'
NO_NEED_EXECUTE_ACTION_CONTINUE_NEXT = 'No need to execute action, continue to the next one'
CHECKING_WHETHER_IT_IS_REQUIRED_EXECUTE = 'Checking whether it is required to execute action'
EXIT_SUBSCRIPTION_ACTION_BLOCK = 'Exit subscription action block'
ENTER_SUBSCRIPTION_ACTION_BLOCK = 'Enter subscription action block'
INTERNAL_ERROR_IN_SUBSCRIPTION_THREAD_S = u"Internal error in subscription thread: %s. Subscription '%s' migration stopped."
S_TRY_REPEAT_OPERATION_ONCE_MORE = '%s. Try to repeat operation once more.'
USER_INTERRUPT_REQUESTED_FORCING_STOP_MIGRATION = 'User interrupt requested, forcing stop migration'
S_CAUSE_S_THAT_IS_CRITICAL = u'%s\nCause: %s\nThat is a critical error, migration was stopped.'
MIGRATION_FOR_THAT_SUBSCRIPTION_IS_CONSIDERED = '\nMigration for that subscription is considered completely failed. No further actions are performed for it.'
USER_INTERRUPT_REQUESTED_TRYING_STOP_MIGRATION = 'User interrupt requested, trying to stop migration gracefully:\nfinish all running operations for each of migrated subscription\nTo force interrupt, press Ctrl+C again, but it may lead to unpredictable results'
RUN_GROUP_ACTIONS_S_WORKERS = 'Run group of actions with %s workers'
END_PROCESSING_SUBSCRIPTION_S = "END Processing subscription '%s'"
# ================  common/parallels/common/workflow/runner/by_layer.py ===============
CAN_NOT_RUN_COMMON_ACTION_IN = "Can not run common action in subscription's actions queue"
S_TRY_REPEAT_OPERATION_ONCE_MORE_1 = '%s. Try to repeat operation once more.'
INVALID_ACTION_S_S_IS_NOT = "Invalid action '%s': %s is not a subclass of CompoundAction, SubscriptionAction or BaseAction"
FINISH_PROCESSING_SUBSCRIPTION_S = "Finish processing subscription '%s'"
RUN_SUBSCRIPTION_ACTION_CLASS_S = 'Run subscription action class %s'
START_PROCESSING_SUBSCRIPTION_S = "Start processing subscription '%s'"
# ================  common/parallels/common/content/mail/psamailbackup.py ===============
SKIP_COPYING_MAIL_CONTENT_FOR_DOMAIN = u'Skip copying mail content for the domain %s which has no mail hosting'
# ================  common/parallels/common/content/mail/rsync.py ===============
SOURCE_MAIL_SERVER_IS_NOT_DEFINED = "Source mail server is not defined for subscription '%s', do not copy mail content"
RSYNC_FAILED_COPY_MAIL_CONTENT_FROM_1 = u'Rsync failed to copy mail content from the source (%s) to the target server (%s): %s\n1. This could happen because of a network connection issue. Retry copying the mail content with the help of the "copy-mail-content" command.\n2. Check whether rsync is installed and configured on the source server.'
FAILED_RECALCULATE_MAIL_DIRECTORY_SIZE_MAIL = 'Failed to recalculate mail directory size. Mail usage may become incorrect after migration'
SKIP_COPYING_MAIL_CONTENT_FOR_DOMAIN_1 = u'Skip copying mail content for the domain %s which has no mail hosting'
SKIP_COPYING_MAIL_CONTENT_FOR_DOMAIN_2 = u'Skip copying mail content for the domain %s which has no mailboxes'
RSYNC_FAILED_COPY_MAIL_CONTENT_FROM = u'Rsync failed to copy mail content from the source (%s) to the target server (%s): %s\n1. This could happen because of a network connection issue. Retry copying the mail content with the help of the "copy-mail-content" command.\n2. Check whether rsync is installed and configured on the source server.'
SUBSCRIPTION_S_IS_NOT_PRESENTED_MAIL_1 = "Subscription '%s' is not presented on mail server, do not copy mail content"
# ================  common/parallels/common/content/mail/imapsync.py ===============
UNABLE_COPY_MAIL_CONTENT_S_DOMAIN = u"Unable to copy mail content on '%s' domain: mail service is disabled due to domain is disabled. "
MIGRATE_MAIL_CONTENT_MAILBOXS_ACTIVATE_DOMAIN = u"To migrate mail content of the mailboxs:\n1) Activate domain on both source panel and target PPA.\n2) Run 'copy-mail-content' migration tool's command for the subscription.\n3) Suspend domain on both source panel and target PPA if necessary.\n"
MAILBOX_EMPTY_PASSWORD_EMAIL_S_SKIPPING = u'Mailbox has empty password on E-mail %s, skipping it'
FAILED_CHECK_WHETHER_SUBSCRIPTION_S_IS = u'Failed to check whether the subscription %s is suspended: %s. The migration tool will proceed with copying mail content even if the subscription is suspended.'
CHANGE_MAILBOX_PASSWORD_AND_RUN_TOOL = u'Change the mailbox password and run the tool with the copy-mail-content command.'
MAIL_SERVICE_SUBSCRIPTION_IS_DISABLED_MIGRATION = u'Mail service on subscription is disabled. The migration tool is not able to migrate mail content of subscriptions as POP3/IMAP services are disabled for such subscriptions.'
ENABLE_MAIL_SERVICE_SOURCE_PANEL_FOR = u"Enable mail service on source panel for subscription to migrate mail content and run 'copy-mail-content' migration tool's command for the subscription."
UNABLE_COPY_MAIL_CONTENT_MAILBOX_PASSWORD = u"Unable to copy mail content: The mailbox password can't be retrieved from Plesk. "
MIGRATE_MAIL_CONTENT_SUBSCRIPTION_ACTIVATE_IT = u"To migrate mail content of the subscription:\n1) Activate it on both source panel and target PPA.\n2) Run 'copy-mail-content' migration tool's command for the subscription.\n3) Suspend it on both source panel and target PPA if necessary.\n"
MAILBOX_IS_DISABLED_EMAIL_S_SKIPPING = u'Mailbox is disabled on E-mail %s, skipping it'
SUBSCRIPTION_NO_MAILBOXES_SO_THERE_IS = 'Subscription has no mailboxes, so there is nothing to copy with imapsync'
RESOLVE_ERRORS_AND_RUN_TOOL_COPYMAILCONTENT = u'Resolve the errors and run the tool with the copy-mail-content command. For detailed log see {mailsync_log}. '
SUBSCRIPTION_IS_SUSPENDED_S_MIGRATION_TOOL = u'The subscription is suspended on %s. The migration tool is not able to migrate mail content of suspended subscriptions as POP3/IMAP services are disabled for such subscriptions.'
SUBSCRIPTION_S_IS_NOT_PRESENTED_MAIL_2 = "Subscription '%s' is not presented on mail server, do not copy mail content"
COPY_CONTENT_MAILBOX_EMAIL_S_FOR = u"Copy content of mailbox on E-mail '%s'. For details see %s in migration session directory"
BOTH_SOURCE_PANEL_AND_TARGET_PANEL = u'both source panel and target panel'
# ================  common/parallels/common/converter/dns.py ===============
SUBSCRIPTION_S_NO_IP_ADDRESSES_TARGET = u"Subscription '%s' has no IP addresses on target system. DNS records won't be changed"
# ================  common/parallels/common/converter/business_objects/clients.py ===============
CLIENT_LOGIN_IS_PRESENTED_IN_MIGRATION = u"Client '{login}' is presented in migration list, but is presented neither on source Plesk(s) nor in PPA."
CREATE_RESELLER_IN_DESTINATION_PANEL_MAP = u'Create this reseller in destination panel, or map client to some existing reseller or administrator'
CLIENT_IS_MAPPED_AN_UNEXISTING_RESELLER = u"Client is mapped to an unexisting reseller '%s'"
CONVERT_CLIENTS_FROM_TARGET_PANEL = u'Convert clients from target panel'
EITHER_REMOVE_DIFFERENCE_IF_BOTH_ACCOUNTS = u"Either remove the difference (if both accounts belong to the same client) or change the client's username (if these are the different clients)."
CONVERT_CLIENTS_FROM_SOURCE_PANEL = u'Convert clients from source panel'
# ================  common/parallels/common/converter/business_objects/resellers.py ===============
CONVERT_RESELLERS_FROM_SOURCE_PANEL = u'Convert resellers from source panel'
RESELLER_LOGIN_IS_PRESENTED_IN_MIGRATION = u"Reseller '{login}' is presented in migration list, but is presented neither on the source panel, nor in the target panel."
EITHER_REMOVE_DIFFERENCE_IF_BOTH_ACCOUNTS_1 = u"Either remove the difference (if both accounts belong to the same reseller) or change the reseller's username (if these are the different resellers)."
NEW_PASSWORD_GENERATED_FOR_RESELLER_S = u"A new password has been generated for the reseller '%s': '%s'. You can change the password after data transfer is finished."
ALL_RESELLER_DATA_CHECKED_RESELLER_INCLUDING = u"All reseller data of the checked reseller (including clients and their subscriptions) will be transferred to the target panel under a single reseller. In this case, ensure that combined resources of all accounts do not exceed the limits. If you want migrator to create separate accounts, change the reseller's username."
UNABLE_RETRIEVE_RESELLERS_PASSWORD_AS_IT = u"Unable to retrieve the reseller's password as it is stored in the encrypted form"
CONVERT_RESELLERS_FROM_TARGET_PANEL = u'Convert resellers from target panel'
# ================  common/parallels/common/converter/business_objects/plans.py ===============
PLAN_S_EXISTS_MULTIPLE_PANELS_PLAN = "Plan '%s' exists on multiple panels. Plan from '%s' will be used"
PLAN_S_SPECIFIED_IN_MIGRATION_LIST = "Plan '%s' specified in migration list file does not exist"
ADDON_PLAN_S_EXISTS_MULTIPLE_PANELS = "Addon plan '%s' exists on multiple panels. Plan from '%s' will be used"
ADDON_PLAN_S_SPECIFIED_IN_MIGRATION = "Addon plan '%s' specified in migration list file does not exist"
# ================  common/parallels/common/converter/business_objects/common.py ===============
EITHER_CHANGE_CONFLICTING_NAMES_EXCLUDE_SUBSCRIPTION = u'Either change the conflicting names, or exclude this subscription from transfer using the migration list file.'
ALL_SUBSCRIPTIONS_CUSTOMER_TRANSFERRED_EXISTING_CUSTOMERS = u"All subscriptions of this customer will be transferred to existing customer's account. If you want to transfer the subscriptions to a new customer account, change the client's username."
WEBSPACE_S_ALREADY_EXISTS = u"The webspace '%s' already exists"
EITHER_REMOVE_DIFFERENCE_IF_BOTH_ACCOUNTS_3 = u"Either remove the difference (if both accounts belong to the same customer) or change the customer's username (if these are the different customers)."
EITHER_REMOVE_DIFFERENCE_IF_BOTH_ACCOUNTS_2 = u"Either remove the difference (if both accounts belong to the same customer) or change the customer's username (if these are the different customers)."
EITHER_RENAME_ONE_SUBSCRIPTIONS_IF_YOU = u'Either rename one of the subscriptions (if you want to transfer both of them) or exclude one of the subscriptions from the migration list file.'
CUSTOMER_SAME_USERNAME_BUT_DIFFERENT_CONTACT_1 = u'A customer with the same username but different contact data already exists in the destination panel. The list of differences:\n%s'
CUSTOMER_SAME_USERNAME_BUT_DIFFERENT_CONTACT = u'A customer with the same username but different contact data already exists on another server. The list of differences:\n%s'
NEW_PASSWORD_GENERATED_FOR_CUSTOMER_S = u"A new password has been generated for the customer '%s': '%s'. You can change the password after data transfer is finished."
CONTACT_NAME_FIRST_NAME_LAST_NAME = u"the Contact Name (First Name + Last Name) parameter of a customer in the destination panel: '%s', the contact name of the verified customer: '%s'"
UNABLE_RETRIEVE_CUSTOMERS_PASSWORD_AS_IT = u"Unable to retrieve the customer's password as it is stored in the encrypted form"
CUSTOMER_SAME_USER_NAME_ALREADY_EXISTS = u'A customer with the same user name already exists in destination panel'
NAME_S_S_IN_SUBSCRIPTION_CONFLICTS_3 = u"The name of %s '%s' in this subscription conflicts with the name of %s '%s' which exists in subscription '%s' on the other server"
ALL_SUBSCRIPTIONS_BOTH_CUSTOMERS_TRANSFERRED_SAME = u'All subscriptions of both customers will be transferred to the same account. If you want to transfer the subscriptions under separate customer accounts, change the username of one of the customers.'
SUBSCRIPTION_S_ALREADY_EXISTS_OTHER_SERVER = u"A subscription '%s' already exists on the other server '%s'"
EITHER_RENAME_SUBSCRIPTION_S_S_EXCLUDE_1 = u"Either rename this subscription or the %s '%s' or exclude this subscription from transfer using the migration list file."
NAME_S_S_IN_SUBSCRIPTION_CONFLICTS = u"The name of the %s '%s' in this subscription conflicts with the name of destination panel webspace '%s'"
NAME_S_S_IN_SUBSCRIPTION_CONFLICTS_2 = u"The name of %s '%s' in this subscription conflicts with the name of %s '%s' which already exists in a subscription '%s'"
CUSTOMER_SAME_USERNAME_ALREADY_EXISTS_ANOTHER = u'A customer with the same username already exists on another server'
NAME_S_S_IN_SUBSCRIPTION_CONFLICTS_1 = u"The name of the %s '%s' in this subscription conflicts with the name of subscription '%s' which exists on the other server '%s'"
EXISTING_WEBSPACE_OVERWRITTEN_INCLUDING_HOSTING_SETTINGS = u'The existing webspace will be overwritten (including hosting settings, site content, databases, and so on).\nIf you want to transfer the subscription into a separate webspace, rename this subscription or the existing webspace.'
S_S_ALREADY_EXISTS_IN_PPA = u"A %s '%s' already exists in PPA within the '%s' subscription"
EITHER_RENAME_SUBSCRIPTION_S_S_EXCLUDE = u"Either rename this subscription or the %s '%s' or exclude this subscription from transfer using the migration list file."
S_S_ALREADY_EXISTS_OTHER_SERVER = u"A %s '%s' already exists on the other server within the '%s' subscription"
CONTACT_NAME_CUSTOMER_ANOTHER_SERVER_S = u"the contact name of a customer on another server: '%s', the contact name of the checked customer: '%s'"
# ================  common/parallels/common/utils/database_utils.py ===============
RSYNC_FAILED_COPY_DATABASE_DUMP_FROM_1 = u'Rsync failed to copy a database dump from the source (%s) to the target server (%s): %s\n1. This could happen because of a network connection issue. Retry copying the database content with the help of the copy-db-content command.\n2. Check whether rsync is installed on the source server.'
RSYNC_FAILED_COPY_DATABASE_DUMP_FROM = u'Rsync failed to copy a database dump from the source (%s) to the target server (%s): %s\n1. This could happen because of a network connection issue. Retry copying the database content with the help of the copy-db-content command.\n2. Check whether rsync is installed on the source server.'
RESTORE_DATABASE_DUMP_TARGET_SERVER = u'Restore database dump on target server'
SERVER_IS_NOT_PROPERLY_CONFIGURED_TARGET = '{server} is not properly configured on target server: credentials (login or password)are not set.\nPlease configure the server, then proceed with migration.'
COPY_DATABASE_DUMP_FROM_SOURCE_TARGET = u'Copy database dump from source to target server with rsync'
MYSQL_CLIENT_BINARY_WAS_NOT_FOUND = u"mysql client binary was not found on %s, database '%s' of subscription will not be copied.Make sure that: \n1) MySQL is installed on service node.\n2) MySQL 'bin' directory is added to PATH environment variable, so MySQL client can be simplystarted with 'mysql' command.\n3) If (1) and (2) are ok, restart 'pem' service with 'net stop pem'and then 'net start pem' commands.\nPlease check migration tool documentation for more details"
DATABASE_UNSUPPORTED_TYPE_AND_HENCE_NOT = u'Database has unsupported type and hence will not be copied'
PG_DUMP_UTILITY_IS_NOT_INSTALLED = "\n\t\t\t\t'pg_dump' utility is not installed on '%s' server.\n\t\t\t\tMake sure that:\n\t\t\t\t1) All external PostgreSQL servers (other than Plesk servers) are specified in\n\t\t\t\tconfig.ini in 'external-postgresql-servers' option, and 'pg_dump' utility is\n\t\t\t\tinstalled on them.\n\t\t\t\tOR\n\t\t\t\t2) 'pg_dump' is installed on all servers that have domains with\n\t\t\t\tPostgreSQL databases. Once the problem is fixed, run 'copy-db-content'\n\t\t\t\tmigration tool command to transfer only the databases."
CANNOT_TRANSFER_DATABASE_OF_UNSUPPORTED_TYPE = u"Cannot transfer a database with unsupported type '%s'"
FAILED_GET_LIST_DATABASES_MSSQL_DATABASE = 'Failed to get list of databases on MSSQL database server %s:%s'
# ================  common/parallels/common/utils/migration_progress.py ===============
PERSUBSCRIPTION_MIGRATION_WAS_NOT_STARTED_YET = 'Per-subscription migration was not started yet, common actions are executing'
SUBSCRIPTION_MIGRATION_STATUS = 'Subscription migration status:\n'
# ================  common/parallels/common/utils/restore_hosting_utils.py ===============
FAILED_REMOVE_BACKUP_FILE_FROM_TARGET = u'Failed to remove backup file from target Plesk, exception:'
RESTORATION_SUBSCRIPTION_FAILED_RESTORATION_TASK_STOPPED = u'Restoration of subscription failed: restoration task stopped. Check debug.log and PMM restoration logs for more details'
RESTORATION_SUBSCRIPTION_FAILED_TIMED_OUT_WAITING = u'Restoration of subscription failed: timed out waiting for the restore task. Check debug.log and PMM restoration logs for more details'
RETRIEVING_RESTORATION_LOG_S = u'Retrieving the restoration log "%s"'
RESTORATION_SUBSCRIPTION_FAILED_NO_TASK_ID = u'Restoration of subscription failed: no task ID was returned by pmmcli. Check debug.log and PMM restoration logs for more details.Output of pmmcli utility:\n%s'
EXCEPTION_WHILE_PARSING_XML_MOST_PROBABLY = u'Exception while parsing XML (most probably could be ignored):'
POLL_PLESK_FOR_RESTORATION_TASK_STATUS = u'Poll Plesk for restoration task status, attempt #%s'
FAILED_IMPORT_BACKUP_XML_CAN_NOT = u'Failed to import backup XML: can not find backup id. Output of pmmcli utility:\n%s'
DISABLE_APS_MAIL_PROVISIONING_FLAG_IS = 'Disable APS mail provisioning flag is not implemented for Windows hosting settings restoration'
INITIALLY_WAIT_FOR_PMM_DEPLOYER_START = 'Initially wait for PMM deployer to start'
WAITING_FOR_RESTORE_TASK_FINISH_CHECK = u'Waiting for restore task to finish, check interval: %s seconds, maximum check attempts %s'
RESTORATION_SUBSCRIPTION_FAILED_NO_RESTORATION_STATUS = u'Restoration of subscription failed: no restoration status log is available. Check debug.log and PMM restoration logs for moredetails'
WAITING_FOR_PLESK_RESTORE_TASK_FINISH = 'Waiting for Plesk restore task to finish'
# ================  common/parallels/common/utils/plesk_api_utils.py ===============
FAILED_S_IIS_DEDICATED_APPLICATION_POOL = u'Failed to %s IIS dedicated application pool, see debug log for more details'
# ================  common/parallels/common/utils/plesk_cli_runner.py ===============
PROVIDED_CLIGATE_AUTH_IS_NOT_SUPPORTED = 'Provided CLIGate auth is not supported'
# ================  common/parallels/common/utils/rsync_pool.py ===============
UNABLE_GET_RSYNC_SOURCE_SERVER_OBJECT = 'Unable to get rsync: source server object or source server ip should be specified'
# ================  common/parallels/common/utils/migrator_utils.py ===============
ALLOW_PPA_PLESK_API_SHOWING_PLAIN = u'allow PPA Plesk API showing plain passwords'
ERROR_WHILE_COPYING_VIRTUAL_HOSTS_CONTENT = "Error while copying virtual host's content: virtual host's directory '%s' does not exist on source server '%s'"
CHANGE_FILE_PERMISSIONS_ACCORDING_USER_MAP = u'Change file permissions according to user map'
DISABLE_PPA_PLESK_API_SHOWING_PLAIN = u'disable PPA Plesk API showing plain passwords'
ERROR_WHILE_COPYING_CONTENT_DIRECTORY_S = "Error while copying content: directory '%s' does not exist on source server '%s'"
CHANGE_FILE_PERMISSIONS_ACCORDING_GROUP_MAP = u'Change file permissions according to group map'
# ================  common/parallels/common/utils/ssh_utils.py ===============
UNABLE_OPEN_CHANNEL_SSH_CONNECTION_S = u"Unable to open channel on SSH connection to '%s'"
SUCCESSFULLY_CONNECTED_S_BY_SSH = "Successfully connected to '%s' by SSH"
SSH_CONNECTION_S_WAS_UNEXPECTEDLY_CLOSED = 'The SSH connection to %s was unexpectedly closed, reconnecting'
UNABLE_CONNECT_HOST_BY_SSH_EXCEPTION = u"Unable to connect to '{host}' by SSH: {exception}.\nEnsure that the server is up and there are no firewall rules that may block SSH connections to the server, then re-run migration tool."
SSH_CONNECTION_S_WAS_UNEXPECTEDLY_CLOSED_1 = 'The SSH connection to %s was unexpectedly closed, reconnecting'
PARAMETER_ENV_IS_NOT_SUPPORTED_2 = u"The parameter 'env' is not supported"
# ================  common/parallels/common/utils/windows_agent_pool.py ===============
SHUTDOWN_WINDOWS_AGENT_AT_S = "Shutdown Windows agent at '%s'"
# ================  common/parallels/common/utils/ssl_keys.py ===============
IS_FILE_INDICATING_THAT_SSL_CERTIFICATES = 'This is a file indicating that SSL certificates and keys used by migration tools were generated successfully. Remove that file if you want to regenerate them. '
# ================  common/parallels/common/utils/plesk_utils.py ===============
FAILED_DETECT_PLESK_DATA_DIRECTORY = u'Failed to detect Plesk data directory'
PLESK_FOR_UNIX_CONFIGURATION_VARIABLE_S = u"Plesk for Unix configuration variable '%s' has value '%s'"
FAILED_DETECT_PLESK_VIRTUAL_HOSTS_DIRECTORY = u'Failed to detect Plesk virtual hosts directory'
UNABLE_RETRIVE_CREDENTIALS_FOR_S_DATABASE = 'Unable to retrive credentials for %s database server with host %s via %s'
INCONSISTENCY_DATABASE_MULTIPLE_OWNERS = (
	"Panel server '{server}' has inconsistency in its database. "
	"Customer's database '{db_name}' of type '{db_type}' on host '{db_host}' "
	"is owned by more than 1 webspace: {webspaces}"
)
INCONSISTENCY_DB_USER_MULTIPLE_OWNERS = (
	"Panel server '{server}' has inconsistency in its database. "
	"Database user {db_user} of type '{db_type}' on host '{db_host}' is owned by more than 1 webspace: {webspaces}"
)
PLESK_VIRTUAL_HOSTS_DIRECTORY_IS_S = u'Plesk virtual hosts directory is "%s"'
FAILED_DETECT_PLESK_BASE_DIRECTORY = u'Failed to detect Plesk base directory'
# ================  common/parallels/common/utils/poa_utils.py ===============
HOST_ID_FOR_IP_S_NOT = u"Host ID for IP '%s' not found, is it registered in PPA?"
DUMPING_FULL_HCL_IN_LOG_IS = 'Dumping full HCL in log is skipped, reduced HCL will be logged'
# ================  common/parallels/common/utils/windows_utils.py ===============
INTERNAL_ERROR_TRYING_EXECUTE_COMMAND_THAT = "Internal error: trying to execute command that contains national symbols on Windows server. Command's Python repr is: %r."
# ================  common/parallels/common/utils/ssh_key_pool.py ===============
SSH_KEY_POOL_IS_READ_ONLY = 'SSH key pool is read only as it was cleaned up'
# ================  common/parallels/common/utils/imported_backups.py ===============
INTERNAL_ERROR_FAILED_FIND_IMPORTED_BACKUP = "Internal error: failed to find imported backup for specified backup object. Probable reason is that backup was never imported to target panel's PMM repository"
FAILED_FIND_IMPORTED_BACKUP_XML_FILE = u'Failed to find imported backup XML file for subscription'
# ================  common/parallels/common/utils/file_permissions.py ===============
CHANGE_PERMISSIONS_ACCORDING_FOLLOWING_RULES_S = 'Change permissions according to the following rules: %s'
# ================  common/parallels/common/utils/steps_profiler.py ===============
PROFILING_RESULTS = '***************** Profiling results *****************\n'
TOTAL_TIME_OUTSIDE_MIGRATOR_API_CALLS = 'Total time outside migrator (API calls, external command executions, waitings, ...): %s\n'
# ================  common/parallels/common/utils/unix_utils.py ===============
FAILED_DETECT_OS_INVALID_OUTPUT_S_1 = u"Failed to detect OS: invalid output '%s'"
FAILED_DETECT_OS_INVALID_OUTPUT_S_2 = u"Failed to detect OS: invalid output '%s'"
FAILED_DETECT_OS_INVALID_OUTPUT_S = u"Failed to detect OS: invalid output '%s'"
# ================  common/parallels/common/utils/windows_agent_remote_object.py ===============
EXCEPTION_WHEN_CLOSING_SOCKET = 'Exception when closing socket: '
EXCEPTION_WHEN_TRYING_DEPLOY_AND_START_1 = 'Exception when trying to deploy and start panel migrator transfer agent, most likely agent failed to deploy, print manual deploy instructions. Exception: '
DEPLOY_PANEL_MIGRATOR_TRANSFER_AGENT_AT = "Deploy panel migrator transfer agent at '%s'"
TRY_START_PANEL_MIGRATOR_TRANSFER_AGENT = 'Try to start panel migrator transfer agent. If it was not deployed, this will fail'
TRY_STOP_PANEL_MIGRATOR_TRANSFER_AGENT = 'Try to stop panel migrator transfer agent if it is already running, but is broken for some reason, or has different SSL keys'
SSL_IS_DISABLED_FOR_AGENT_AT = "SSL is disabled for agent at '%s'"
EXCEPTION_WHEN_TRYING_STOP_PANEL_MIGRATOR = 'Exception when trying to stop panel migrator transfer agent, most likely it could be ignored: '
SSL_IS_ENABLED_FOR_AGENT_AT = "SSL is enabled for agent at '%s'"
TRY_CONNECT_AGENT_AT_S = "Try to connect to agent at '%s'"
EXCEPTION_WHEN_TRYING_START_PANEL_MIGRATOR = 'Exception when trying to start panel migrator transfer agent, most likely agent was not deployed, and the exception could be ignored: '
START_PANEL_MIGRATOR_TRANSFER_AGENT_AT = "Start panel migrator transfer agent at '%s'"
CONNECTION_FAILED_MOST_LIKELY_THAT_PANEL = 'Connection failed, most likely that panel migrator transfer agent is not installed or running.'
EXCEPTION_WHEN_TRYING_DEPLOY_AND_START = 'Exception when trying to deploy and start panel migrator transfer agent, most likely agent failed to deploy, print manual deploy instructions. Exception: '
PACK_AGENT_INTO_SELFEXTRACTABLE_ARCHIVE = 'Pack agent into self-extractable archive'
DEPLOY_AND_START_PANEL_MIGRATOR_TRANSFER = "Deploy and start panel migrator transfer agent at '%s'"
# ================  common/parallels/common/utils/unique_name_generator.py ===============
UNIQUE_NAME_SUFFIX_IS_TOO_LONG = 'Unique name suffix is too long'
# ================  common/parallels/common/utils/windows_thirdparty.py ===============
UNABLE_GET_THIRDPARTIES_DIR_IT_IS = 'Unable to get thirdparties dir: it is available on Windows only'
UNABLE_GET_PANEL_MIGRATOR_TRANSFER_AGENT = 'Unable to get panel migrator transfer agent directory: it is available on Windows only'
MODULE_DEFINES_PATH_MIGRATORS_THIRDPARY_UTILS = "This module defines path to migrator's thirdpary utils for Windows"
# ================  common/parallels/common/utils/pmm/agent.py ===============
PACK_DUMP_XML_INTO_DUMP_ARCHIVE = u'Pack dump XML into dump archive'
RUN_PMM_AGENT_CREATE_DUMP_XML = u'Run PMM agent to create dump XML'
RUN_PMM_AGENT_CREATE_SHALLOW_DUMP = u'Run PMM agent to create shallow dump XML'
RUN_PMM_AGENT_CREATE_CAPABILITY_DUMP = u'Run PMM agent to create capability dump XML'
# ================  common/parallels/common/utils/pmm/windows_agent.py ===============
UTILS_PMM_WINDOWS_AGENT_CREATE_MIGRATION_DUMP = "Creating migration dump '{dump_path}'"
UTILS_PMM_WINDOWS_AGENT_CREATE_CAPABILITY_DUMP = "Creating capability dump '{dump_path}'"
UTILS_PMM_WINDOWS_AGENT_CREATE_SHALLOW_DUMP = "Creating shallow migration dump '{dump_path}'"
DOWNLOADING_MIGRATION_DUMP_S = "Downloading migration dump '%s'"
UNABLE_USE_PANEL_MIGRATOR_AGENT_SERVER = u'Unable to use Panel Migrator Agent: {server} does not meet requrements.\nPlease unsure that:\n1) Microsoft .NET Framework version 4 is installed\n\n'
CONVERT_PLESK_DUMP_PLESK_FORMAT = u'Convert Plesk 8 dump to Plesk 9 format.'
# ================  common/parallels/common/utils/pmm/restore_result.py ===============
ERROR_WHILE_PARSING_PLESK_RESTORE_XML = u'Error while parsing Plesk restore XML'
# ================  common/parallels/common/utils/pmm/pmmcli.py ===============
REMOVE_BACKUP_FILE_S_FROM_TARGET_1 = u'Remove backup file %s from target Plesk'
REMOVE_BACKUP_FILE_S_FROM_TARGET = u'Remove backup file %s from target Plesk'
IMPORT_BACKUP_TARGET_PANEL_PMM_REPOSITORY = u'Import backup to target panel PMM repository.'
# ================  common/parallels/common/import_api/utils.py ===============
SOME_FIELDS_ARE_EMPTY_CONTAIN_AN = u'Some fields are empty or contain an improper value'
# ================  common/parallels/common/actions/shutdown_windows_agents.py ===============
SHUTDOWN_REMOTE_WINDOWS_AGENTS = 'Shutdown remote Windows agents'
FAILED_SHUTDOWN_REMOTE_WINDOWS_AGENTS = 'Failed to shutdown remote Windows agents'
# ================  common/parallels/common/actions/quick_check_cli_options.py ===============
CHECK_THAT_COMMAND_LINE_OPTIONS_ARE = 'Check that command line options are correct'
FAILED_CHECK_THAT_COMMAND_LINE_OPTIONS = 'Failed to check that command line options are correct'
MIGRATION_LIST_FILE_S_SPECIFIED_MIGRATIONLISTFI = "Migration list file '%s' specified with --migration-list-file option does not exist. Check that correct path to migration list is specified."
IP_MAPPING_FILE_S_SPECIFIED_IPMAPPINGFILE = "IP mapping file '%s' specified with --ip-mapping-file option does not exist. Check that correct path to IP mapping file is specified."
# ================  common/parallels/common/actions/shutdown_windows_rsync_servers.py ===============
FAILED_SHUTDOWN_WINDOWS_RSYNC_SERVERS = 'Failed to shutdown Windows rsync servers'
SHUTDOWN_WINDOWS_RSYNC_SERVERS = 'Shutdown Windows rsync servers'
# ================  common/parallels/common/actions/import_plans_not_supported.py ===============
SERVICE_PLANS_SERVICE_TEMPLATES_IMPORT_IS = u'Service plans (service templates) import is not supported for current target panel. Create plans (templates) manually before starting subscription transfer.'
FAILED_CHECK_IF_TARGET_PANEL_SUPPORTS = 'Failed to check if target panel supports plans import'
CHECK_IF_TARGET_PANEL_SUPPORTS_PLANS = 'Check if target panel supports plans import'
# ================  common/parallels/common/actions/close_ssh_connections.py ===============
FAILED_CLOSE_SSH_CONNECTIONS = 'Failed to close SSH connections'
# ================  common/parallels/common/actions/read_ip_mapping.py ===============
IP_MAPPING_FILE_S_DOES_NOT = "IP mapping file '%s' does not exist. Please specify correct location of IP mapping file in --ip-mapping-file option"
FAILED_READ_IP_MAPPING_FILE = 'Failed to read IP mapping file'
# ================  common/parallels/common/actions/print_subscription_status.py ===============
PRINT_SUBSCRIPTION_MIGRATION_STATUS = 'Print subscription migration status'
SUBSCRIPTION_MIGRATION_FINISHED_HERE_IS_STATUS = 'Subscription migration finished, here is a status:\n'
SUBSCRIPTION_MIGRATED_SUCCESSFULLY = u'Subscription migrated successfully'
FAILED_PRINT_SUBSCRIPTION_MIGRATION_STATUS = 'Failed to print subscription migration status'
# ================  common/parallels/common/actions/remove_ssh_keys.py ===============
FAILED_REMOVE_TEMPORARY_SSH_KEYS = 'Failed to remove temporary SSH keys'
# ================  common/parallels/common/actions/migration_list/check_migration_list_not_exists_for_generation.py ===============
MIGRATION_LIST_FILE_S_ALREADY_EXISTS_1 = u"Migration list file '%s' already exists, overwrite it"
MIGRATION_LIST_FILE_S_ALREADY_EXISTS = u"Migration list file '%s' already exists. To overwrite it, use --overwrite option"
FAILED_CHECK_IF_MIGRATION_LIST_FILE = 'Failed to check if migration list file already exists'
CHECK_IF_MIGRATION_LIST_FILE_ALREADY = 'Check if migration list file already exists'
# ================  common/parallels/common/actions/migration_list/generate.py ===============
FAILED_GENERATE_MIGRATION_LIST_FILE = 'Failed to generate migration list file'
MIGRATION_LIST_FILE_TEMPLATE_IS_SAVED = u"Migration list file template is saved to '%s'"
BROWSING_SERVICE_TEMPLATES_WHICH_COULD_USED = u'Browsing service templates which could be used for migration'
CHECKING_IF_WEBSPACES_EXIST_IN_TARGET = u'Checking, if webspaces exist in the target panel'
# ================  common/parallels/common/actions/migration_list/check_migration_list_exists_for_migration.py ===============
FAILED_CHECK_IF_MIGRATION_LIST_FILE_1 = 'Failed to check if migration list file exists'
CHECK_IF_MIGRATION_LIST_FILE_EXISTS = 'Check if migration list file exists'
MIGRATION_LIST_IS_NOT_DEFINED_PLEASE = u'\n\t\t\t\tA migration list is not defined. Please either:\n\t\t\t\t(*) Put the correct migration list to \'%s\', or\n\t\t\t\t(*) Specify its location with "--migration-list-file" command-line option.\n\n\t\t\t\tThe migration list defines the list of object (client accounts, domains) that should\n\t\t\t\tbe transferred from the source server. To generate the migration list sample, run the following command:\n\t\t\t\t# %s generate-migration-list config.ini\n\n\t\t\t\tPlease check the migration tool documentation for more details.\n\t\t\t'
# ================  common/parallels/common/actions/apache_restart_interval/restore.py ===============
RESTORE_OLD_APACHE_RESTART_INTERVAL_VALUE = 'Restore old Apache restart interval value'
FAILED_RESTORE_OLD_APACHE_RESTART_INTERVAL = 'Failed to restore the old Apache restart interval value: %s'
RESTORE_APACHE_RESTART_INTERVAL = 'Restore Apache restart interval'
# ================  common/parallels/common/actions/apache_restart_interval/set.py ===============
MIGRATION_TOOL_DETECTED_THAT_OLD_APACHE = 'The migration tool has detected that the old Apache restart interval was not completely restored, probably because the tool was terminated abnormally. The tool will restore this interval (%s) upon completing the transfer.'
FAILED_SET_APACHE_RESTART_INTERVAL_VALUE = 'Failed to set Apache restart interval value to %s seconds'
SET_APACHE_RESTART_INTERVAL_S_SECONDS = 'Set Apache restart interval to %s seconds'
# ================  common/parallels/common/actions/content/web/fix_unix_vhost_permissions.py ===============
FAILED_FIX_PERMISSIONS_FOR_VHOST_DIRECTORY = "Failed to fix permissions for vhost directory of subscription '%s'"
FIX_PERMISSIONS_FOR_VHOST_DIRECTORY = 'Fix permissions for vhost directory'
# ================  common/parallels/common/actions/content/web/copy_windows_content_base.py ===============
RSYNC_FAILED_COPY_FILES_FROM_SOURCE = u'Rsync failed to copy files from the source (%s) to the target server (%s): %s\nThis could happen because of a network connection issue.\n\t\t\t\tRetry copying the files with the help of the "copy-content" command.'
FILE_DIRECTORY_S_SUBSCRIPTION_S_DOES = "File or directory '%s' of subscription '%s' does not exist on source server %s, so it won't be transferred"
FAILED_COPY_WEB_FILES_FOR_SUBSCRIPTION = "Failed to copy web files for subscription '%s'"
COPY_WEB_CONTENT_FAILED_FOR_SUBSCRIPTION = "Copy web content failed for subscription '%s': file or directory '%s' does not exist on source server %s"
COPY_WEB_FILES_FROM_WINDOWS_SERVERS = 'Copy web files from Windows servers'
# ================  common/parallels/common/actions/content/web/copy_unix_content_base.py ===============
FAILED_COPY_WEB_FILES_FOR_SUBSCRIPTION_1 = "Failed to copy web files for subscription '%s'"
COPY_WEB_FILES_FROM_UNIX_SERVERS = 'Copy web files from Unix servers'
RSYNC_FAILED_COPY_FILES_FROM_SOURCE_1 = u'Rsync failed to copy files from the source (%s) to the target server (%s): %s\n1. This could happen because of a network connection issue.\n\t\t\t\t\t\tRetry copying the files with the help of the "copy-content" command.\n2. Check whether rsync is installed and configured on the source server.'
# ================  common/parallels/common/actions/content/mail/copy_content.py ===============
FAILED_COPY_MAIL_CONTENT_SUBSCRIPTION_MOST = u"Failed to copy mail content of subscription. Most probably that happens because of a network-related issue. Please check network connections between source and target servers, then re-copymail content with the help of 'copy-mail-content' command"
# ================  common/parallels/common/actions/content/database/copy_database_content.py ===============
FAILED_COPY_DATABASE_CONTENT_SUBSCRIPTION_MOST = u"Failed to copy database content of subscription. Most probably that happens because of a network-related issue. Please check network connections between source and target servers, then re-copydatabase content with the help of 'copy-db-content' command"
# ================  common/parallels/common/actions/backup/unpack.py ===============
EXTRACTING_FILES_FROM_BACKUP_S_S = u"Extracting files from backup '%s' to '%s'"
# ================  common/parallels/common/actions/backup/save_converted.py ===============
FAILED_SAVE_CONVERTED_BACKUP_FILE = 'Failed to save converted backup to file'
# ================  common/parallels/common/actions/backup/create_converted.py ===============
FAILED_CREATE_CONVERTED_BACKUPS = 'Failed to create converted backups'
# ================  common/parallels/common/actions/backup/remove_content.py ===============
REMOVE_CONTENT_NODES_FROM_BACKUPS = 'Remove content nodes from backups'
UNABLE_REMOVE_CONTENT_NODES_FROM_BACKUPS = 'Unable to remove content nodes from backups'
# ================  common/parallels/common/actions/base/compound_action.py ===============
FAILED_FIND_ACTION_S_AFTER_WHICH = "Failed to find action '%s' after which we should insert another action"
FAILED_FIND_ACTION_S_BEFORE_WHICH = "Failed to find action '%s' before which we should insert another action"
# ================  common/parallels/common/actions/restore/auxusers.py ===============
SKIPPED_CREATING_AN_EXISTING_AUXUSER = 'Skipped creating an existing auxuser '
FAILED_CREATE_AUXILIARY_USER_PLESK_API = u'Failed to create auxiliary user with Plesk API.'
# ================  common/parallels/common/actions/restore/import_clients_and_subscriptions.py ===============
CONCRETE_IMPORT_CLIENTS_AND_SUBSCRIPTIONS_ACTIONS = "Concrete import clients and subscriptions actions are not defined for target panel '%s'"
IMPORT_CLIENTS_AND_SUBSCRIPTIONS = 'Import clients and subscriptions'
# ================  common/parallels/common/actions/restore/auxuser_roles.py ===============
SKIPPED_CREATING_AN_EXISTING_ROLE = 'Skipped creating an existing role '
FAILED_RESTORE_AUXUSER_ROLES = 'Failed to restore auxuser roles'
SKIPPED_CREATING_DEFAULT_ROLE = 'Skipped creating a default role '
FAILED_CREATE_AUXILIARY_USER_ROLE_PLESK_2 = u'Failed to create auxiliary user role with Plesk API.'
# ================  common/parallels/common/actions/restore/plesk/import_subscriptions.py ===============
FAILED_CREATE_SUBSCRIPTION_S_IN_TARGET = "Failed to create subscription '%s' in target panel"
PARALLEL_CREATION_SUBSCRIPTIONS_MAY_FAIL_ACQUIRE = 'Parallel creation of subscriptions may fail, acquire lock'
CREATE_SUBSCRIPTION_IN_TARGET_PANEL = 'Create subscription in target panel'
SUBSCRIPTION_ALREADY_EXISTS_BUT_NO_HOSTING = 'Subscription already exists, but has no hosting. Enable virtual hosting.'
RELEASE_LOCK_FOR_CREATION_SUBSCRIPTIONS_OPERATION = 'Release lock for creation of subscriptions operation'
# ================  common/parallels/common/actions/restore/plesk/import_clients.py ===============
CREATE_CLIENT_S_OWNED_BY_ADMINISTRATOR = u"Create client '%s' owned by administrator"
CREATE_CLIENT_S_OWNED_BY_RESELLER = u"Create client '%s' owned by reseller '%s'"
FAILED_CREATE_CLIENT_IN_TARGET_PANEL = u'Failed to create client in target panel'
CREATE_CLIENTS_IN_TARGET_PANEL = 'Create clients in target panel'
CLIENT_LOGIN_S_ALREADY_EXISTS_SKIP = "Client with login '%s' already exists, skip creating"
FAILED_CREATE_CLIENTS_TARGET_PANEL_MIGRATION = 'Failed to create clients on target panel, migration can not proceed to the next steps'
# ================  common/parallels/common/actions/utils/multithreading_properties.py ===============
INVALID_COMBINATION_MULTITHREADING_OPTIONS = 'Invalid combination of multithreading options'
# ================  common/parallels/common/actions/hosting_analyser/analyse.py ===============
ANALYSING_HOSTING_OS_RESOURCE_USAGE_AND = 'Analysing hosting OS resource usage and webspaces content'
FAILED_ANALYSE_MIGRATION_NODES = 'Failed to analyse migration nodes'
# ================  common/parallels/common/actions/hosting_settings/restore_subscription_hosting_settings.py ===============
FAILED_RESTORE_HOSTING_SETTINGS_SUBSCRIPTION_S = "Failed to restore hosting settings of subscription '%s'"
RESTORE_HOSTING_SETTINGS_SUBSCRIPTION = 'Restore hosting settings of subscription'
# ================  common/parallels/common/actions/hosting_settings/transfer_error_documents.py ===============
TRANSFER_CUSTOM_ERROR_DOCUMENTS_SITE_S = u"Transfer custom error documents of site '%s' and its virtual directories"
SKIP_TRANSFER_CUSTOM_ERROR_DOCUMENTS_FOR = u"Skip transfer custom error documents for site '%s' of subscription '%s' as is has no virtual hosting"
RESTORE_ERROR_DOCUMENTS_VIRTUAL_DIRECTORY_S = "Restore error documents of virtual directory '%s'"
SKIP_TRANSFER_CUSTOM_ERROR_DOCUMENTS_TYPES = u"Skip transfer custom error documents types for subscription '%s' as is has no virtual hosting"
TRANSFER_CUSTOM_ERROR_DOCUMENTS = 'Transfer custom error documents'
RESTORE_ERROR_DOCUMENTS_VIRTUAL_HOSTS_ROOT = "Restore error documents of virtual host's root"
FAILED_TRANSFER_CUSTOM_ERROR_DOCUMENTS_FOR = "Failed to transfer custom error documents for subscription '%s'"
# ================  common/parallels/common/actions/hosting_settings/restore_sysuser_logins.py ===============
THERE_IS_NO_SYSTEM_USER_LOGIN = 'There is no system user login in backup, skip changing'
FAILED_RESTORE_SUBSCRIPTION_SYSTEM_USERS_LOGIN = u"Failed to restore subscription system user's login."
THERE_IS_NO_SYSTEM_USER_LOGIN_1 = 'There is no system user login on target system, skip changing'
UNABLE_RESTORE_ORIGINAL_USERNAME_S_FOR = u"Unable to restore the original username ('%s') for the system user of the subscription %s: it does not conform to the PPA rules. For this reason, the subscription owner will not be able to log in to FTP under the original username."
UNABLE_RESTORE_ORIGINAL_USERNAME_FOR_SYSTEM = u'Unable to restore the original username for the system user of the subscription %s: a system user named %s is already present in PPA. For this reason, the subscription owner will not be able to log in to FTP under the original username.'
FAILED_RESTORE_LOGIN_SYSTEM_USER_FOR = "Failed to restore login of system user for subscription '%s'"
NOTIFY_SUBSCRIPTION_OWNER_NEW_FTP_USERNAME = u'Notify the subscription owner of the new FTP username: %s. The subscription owner can change this username using the PPA Hosting Panel.'
RESTORE_LOGINS_SYSTEM_USERS_1 = 'Restore logins of system users'
NOTIFY_SUBSCRIPTION_OWNER_NEW_FTP_USERNAME_1 = u'Notify the subscription owner of the new FTP username: %s. The subscription owner can change this username using the PPA Hosting Panel.'
# ================  common/parallels/common/actions/hosting_settings/remove_imported_backups.py ===============
REMOVE_IMPORTED_BACKUP_DUMPS_FROM_TARGET = "Remove imported backup dumps from target panel's repository"
FAILED_REMOVE_IMPORTED_BACKUP_DUMPS_TARGET = "Failed to remove imported backup dumps to target panel's repository"
# ================  common/parallels/common/actions/hosting_settings/verify.py ===============
FOLLOWING_SITES_SUBSCRIPTION_WERE_NOT_RESTORED = u'The following sites of subscription were not restored - they do not exist on target panel: %s'
SUBSCRIPTION_WAS_NOT_RESTORED_IT_DOES = u'Subscription was not restored: it does not exist on target panel'
CHECK_THAT_EACH_SITE_SUBSCRIPTION_WAS = u'Check that each site of subscription was restored and exists in target panel'
FAILED_VERIFY_THAT_HOSTING_SETTINGS_WERE = "Failed to verify that hosting settings were restored for subscription '%s'"
VERIFY_THAT_HOSTING_SETTINGS_WERE_RESTORED = 'Verify that hosting settings were restored'
CHECK_IF_SUBSCRIPTION_WAS_RESTORED_IT = u'Check if subscription was restored: it should exist in target panel'
# ================  common/parallels/common/actions/hosting_settings/transfer_mime_types.py ===============
SKIP_TRANSFER_MIME_TYPES_FOR_SITE = u"Skip transfer MIME types for site '%s' of subscription '%s' as it has no virtual hosting"
SKIP_TRANSFER_MIME_TYPES_FOR_SUBSCRIPTION = u"Skip transfer MIME types for subscription '%s' as is has no virtual hosting"
TRANSFER_MIME_TYPES_SITE_S_AND = u"Transfer MIME types of site '%s' and its virtual directories"
TRANSFER_MIME_TYPES_FOR_SITES_SUBSCRIPTION = u"Transfer MIME types for sites of subscription '%s'"
RESTORE_MIME_TYPES_VIRTUAL_HOSTS_ROOT = "Restore MIME types of virtual host's root"
FAILED_TRANSFER_MIME_TYPES_FOR_SUBSCRIPTION = "Failed to transfer MIME types for subscription '%s'"
RESTORE_MIME_TYPES_VIRTUAL_DIRECTORY_S = "Restore MIME types of virtual directory '%s'"
# ================  common/parallels/common/actions/hosting_settings/import_backups.py ===============
FAILED_IMPORT_BACKUP_DUMPS_TARGET_PANELS = "Failed to import backup dumps to target panel's repository"
IMPORT_BACKUP_DUMPS_TARGET_PANELS_REPOSITORY = "Import backup dumps to target panel's repository"
UPLOAD_BACKUP_DUMP_S_TARGET_NODE = u"Upload backup dump '%s' to target node"
IMPORT_BACKUP_DUMP_TARGET_PANELS_REPOSITORY = u"Import backup dump to target panel's repository"
CREATE_MAPPING_DOMAIN_NAME_BACKUP_XML = u'Create mapping of domain name to backup XML file name'
# ================  common/parallels/common/actions/hosting_settings/transfer_virtual_directories.py ===============
TRANSFER_VIRTUAL_DIRECTORIES_SITE_S = u"Transfer virtual directories of site '%s'"
FAILED_TRANSFER_VIRTUAL_DIRECTORIES_FOR_SUBSCRIPTION = "Failed to transfer virtual directories for subscription '%s'"
NO_VIRTUAL_DIRECTORIES_INFORMATION_FOR_SITE = u"No virtual directories information for site '%s', won't transfer them"
SKIP_TRANSFER_VIRTUAL_DIRECTORIES_FOR_SUBSCRIPTION = u"Skip transfer virtual directories for subscription '%s' as is has no virtual hosting"
SKIP_TRANSFER_VIRTUAL_DIRECTORIES_FOR_SITE = u"Skip transfer virtual directories for site '%s' of subscription '%s' as is has no virtual hosting"
# ================  common/parallels/common/actions/hosting_settings/reset_hosting_for_nohosting_subscription.py ===============
RESET_HOSTING_FOR_SUBSCRIPTIONS_WITHOUT_HOSTING = 'Reset hosting for subscriptions without hosting'
FAILED_RESET_HOSTING_FOR_SUBSCRIPTIONS_WITHOUT = "Failed to reset hosting for subscriptions without hosting '%s'"
# ================  common/parallels/common/actions/hosting_settings/restore_catch_all_smartermail_assimilate.py ===============
RESTORE_CATCHALL_SETTINGS_FOR_SMARTERMAIL_ASSIMILATION = 'Restore catch-all settings for SmarterMail assimilation mode'
EXPECTED_EXACTLY_ONE_SUBSCRIPTION_GOT_S = 'Expected exactly one subscription, got %s'
FAILED_RESTORE_CATCHALL_SETTINGS_FOR_SMARTERMAIL = "Failed to restore catch-all settings for SmarterMail assimilation mode for subscription '%s'"
# ================  common/parallels/common/actions/hosting_settings/convert/change_sysuser_password.py ===============
CHANGE_NONVALID_SYSTEM_USER_PASSWORD = 'Change non-valid system user password'
SYSTEM_USER_S_TRANSFERRED_ANOTHER_PASSWORD = u"The system user '%s' will be transferred with another password: '%s'. You can change the password for the corresponding system/FTP/web user in PPA once the content transfer is finished."
PASSWORD_SYSTEM_USER_S_DOES_NOT = u"Password of system user '%s' does not meet PPA requirements."
FAILED_CHANGE_NONVALID_SYSTEM_USER_PASSWORDS = "Failed to change non-valid system user passwords for subscription '%s'"
# ================  common/parallels/common/actions/hosting_settings/convert/change_sysuser_login.py ===============
CHANGE_LOGINS_SYSTEM_USERS_IN_BACKUP = 'Change logins of system users in backup'
FAILED_CHANGE_LOGIN_SYSTEM_USER_FOR = "Failed to change login of system user for subscription '%s'"
FAILED_RESTORE_SUBSCRIPTION_SYSTEM_USERS_LOGIN_1 = u"Failed to restore subscription system user's login."
# ================  common/parallels/common/actions/hosting_settings/convert/remove_maillists.py ===============
FAILED_REMOVE_MAILLISTS_FOR_SUBSCRIPTION_S = "Failed to remove maillists for subscription '%s'"
# ================  common/parallels/common/actions/hosting_settings/convert/remove_subscription_default_db_server.py ===============
REMOVE_DEFAULT_DATABASE_SERVER_FROM_BACKUP = 'Remove default database server from backup'
FAILED_REMOVE_DEFAULT_DATABASE_SERVERS_FOR = "Failed to remove default database servers for subscription '%s'"
# ================  common/parallels/common/actions/hosting_settings/convert/cleanup_xml_for_ppa.py ===============
FAILED_CLEANUP_BACKUP_XML_FOR_PPA = 'Failed to cleanup backup XML for PPA'
# ================  common/parallels/common/actions/hosting_settings/convert/change_webmail_to_horde.py ===============
SUBSCRIPTION_S_WEBMAIL_THAT_DOES_NOT = u"Subscription '%s' has webmail that does not support in PPA, so it's changed to horde."
FAILED_CHANGE_WEBMAIL_FOR_SUBSCRIPTION_S = "Failed to change webmail for subscription '%s'"
CHANGE_WEBMAIL_FROM_OLD_WEBMAILS_HORDE = 'Change webmail from old webmails to Horde'
# ================  common/parallels/common/actions/hosting_settings/convert/remove_disabled_mailsystem_without_resource.py ===============
REMOVE_DISABLED_MAILSYSTEM_WITHOUT_RESOURCE_IN = 'Remove disabled mailsystem without resource in backup'
FAILED_REMOVE_DISABLED_MAILSYSTEM_FOR_SUBSCRIPTION = "Failed to remove disabled mailsystem for subscription '%s'"
SUBSCRIPTION_S_DISABLED_MAIL_AND_SERVICE = u"Subscription '%s' has disabled mail and service template does not have mail\nresource, so mailsystem node was removed."
# ================  common/parallels/common/actions/hosting_settings/convert/change_smartermail_password.py ===============
MAIL_USER_S_TRANSFERRED_ANOTHER_PASSWORD = u"The mail user '%s' will be transferred with another password: '%s'."
FAILED_CHANGE_SMARTERMAIL_PASSWORDS_FOR_SUBSCRIPTION = "Failed to change SmarterMail passwords for subscription '%s'"
PASSWORD_MAIL_USER_S_DOES_NOT = u"Password of mail user '%s' does not meet Windows mail server requirements."
CHANGE_SMARTERMAIL_PASSWORDS_IN_BACKUPS = 'Change SmarterMail passwords in backups'
# ================  common/parallels/common/actions/hosting_settings/convert/change_catch_all_redirect.py ===============
FAILED_CHANGE_CATCH_ALL_REDIRECT_FOR = "Failed to change catch all redirect for subscription '%s'"
CHANGE_SERVER_CATCHALL_REDIRECT_DISCART = 'Change server catch-all redirect to discart'
# ================  common/parallels/common/actions/hosting_settings/convert/remove_subscription_to_plan_relation.py ===============
REMOVE_RELATION_PLANS_AND_SUBSCRIPTIONS_FROM = 'Remove relation of plans and subscriptions from backup'
FAILED_REMOVE_RELATION_PLANS_AND_SUBSCRIPTION = "Failed to remove relation of plans and subscription for '%s'"
# ================  common/parallels/common/actions/hosting_settings/convert/change_subscription_ips.py ===============
CANNOT_FIND_TARGET_IP_FOR_SUBSTITUTION = u"Cannot find a target IP for substitution in the subscription '%s'"
FAILED_CHANGE_IPS_FOR_SUBSCRIPTION_S = "Failed to change IPs for subscription '%s'"
# ================  common/parallels/common/actions/hosting_settings/convert/remove_domain_keys.py ===============
FAILED_REMOVE_DOMAIN_KEYS_FOR_SUBSCRIPTION = "Failed to remove domain keys for subscription '%s'"
REMOVE_DOMAINS_KEYS_FROM_BACKUP = 'Remove domains keys from backup'
# ================  common/parallels/common/actions/hosting_settings/convert/remove_smartermail_unsupported_features.py ===============
REMOVE_FEATURES_THAT_ARE_NOT_SUPPORTED = 'Remove features that are not supported by SmarerMail from backup'
FAILED_REMOVE_FEATURES_THAT_ARE_NOT = "Failed to remove features that are not supported by SmarerMail for subscription '%s'"
# ================  common/parallels/common/actions/hosting_settings/convert/remove_subscription_limits_and_permissions.py ===============
FAILED_REMOVE_LIMITS_AND_PERMISSIONS_FOR = "Failed to remove limits and permissions for subscription '%s'"
REMOVE_LIMITS_AND_PERMISSIONS_FROM_BACKUP = 'Remove limits and permissions from backup'
# ================  common/parallels/common/actions/hosting_settings/convert/remap_databases.py ===============
FAILED_REMAP_DATABASE_SERVERS_FOR_SUBSCRIPTION = "Failed to remap database servers for subscription '%s'"
CHANGE_DATABASE_SERVERS_IN_BACKUPS = 'Change database servers in backups'
CHANGE_DATABASE_SERVER_LOCATION_FOR_DATABASE = 'Change database server location for database users'
CHANGE_DATABASE_SERVER_LOCATION_FOR_DATABASES = 'Change database server location for databases'
# ================  common/parallels/common/actions/hosting_settings/convert/dns.py ===============
DNS_CONVERSION_IS_IMPLEMENTED_ONLY_FOR = 'DNS conversion is implemented only for Plesk and PPA'
FAILED_CONVERT_DNS_RECORDS_FOR_SUBSCRIPTION = "Failed to convert DNS records for subscription '%s'"
# ================  common/parallels/common/actions/hosting_settings/convert/fix_windows_php53_isapi.py ===============
FAILED_SWITCH_PHP_ISAPI_PHP_FASTCGI = "Failed Switch PHP 5.3/ISAPI to PHP 5.3/FastCGI for Windows domains in backup for subscription '%s'"
SWITCH_PHP_ISAPI_PHP_FASTCGI_FOR = 'Switch PHP 5.3/ISAPI to PHP 5.3/FastCGI for Windows domains in backup'
# ================  common/parallels/common/actions/hosting_settings/convert/remove_subscription_external_id.py ===============
FAILED_REMOVE_EXTERNAL_IDS_FOR_SUBSCRIPTION = "Failed to remove external IDs for subscription '%s'"
DELETE_SUBSCRIPTIONS_EXTERNAL_ID = u"Delete subscriptions' external ID"
REMOVE_EXTERNAL_IDS_FROM_BACKUP = 'Remove external IDs from backup'
# ================  common/parallels/common/actions/hosting_settings/convert/ppa/dns.py ===============
IT_IS_STRONGLY_RECOMMENDED_REVIEW_DNS_2 = u'It is strongly recommended to review DNS zone records after migration. In general case changing CNAME to A record would solve the problem.'
MOST_PROBABLY_IT_IS_NOT_PROBLEM_1 = u'Most probably it is not a problem, but it is recommended to review DNS zone records after migration'
DUPLICATE_DNS_RECORD_R_NOT_ADDED = u'Duplicate DNS record %r will not be added again'
CUSTOM_RECORD_S_REFERS_ONE_SOURCE = u"Custom record '%s' refers to one of source Plesk IP addresses, but the IP does not match source subscriptions's service IPs. "
CUSTOM_RECORD_S_REFERS_ONE_HOST = u'Custom record (%s) refers to one of host IP addresses and could break operability of DNS. It was not migrated'
SEEMS_THAT_DOMAIN_S_DISABLED_WEB = u"Seems that domain '%s' has disabled web hosting, which makes Plesk not to put domain IP in backup. Run workaround - determine IP address by DNS records"
CONVERT_DNS_RECORDS_FOR_S_ZONE = u"Convert DNS records for '%s' zone"
MOST_PROBABLY_IT_IS_NOT_PROBLEM = u'Most probably it is not a problem, but it is recommended to review DNS zone records after migration'
RECORDS_FROM_SOURCE_SERVER_WERE_MIGRATED = u'Records from source server were migrated, records instantiated by PPA template are not added to DNS zone'
CUSTOM_RECORD_OLD_RECORD_REFERS_ONE = u"Custom record '{old_record}' refers to one of host IP addresses. The record was removed as corresponding service does not exist on target subscription"
DOMAIN_AXFR_RECORD_R_ALLOWING_EXTERNAL = u"This domain has AXFR record (%r) allowing external DNS server(s) to transfer its zone. After transferring this domain to PPA, an external DNS server will still be able to transfer zone from Plesk server, but the zone transferred will not contain subdomains' records. The subdomains' records will be held in subdomains' own zones, and must be transferred with these zones. Allowing transfer of subdomain zones from Plesk server is not implemented in migration."
IT_IS_STRONGLY_RECOMMENDED_REVIEW_DNS_1 = u'It is strongly recommended to review DNS zone records after migration'
FAILED_ENCODE_NAME_S_IN_IDNA = "Failed to encode name '%s' in IDNA"
IT_IS_RECOMMENDED_REVIEW_DNS_ZONE_1 = u'It is recommended to review DNS zone records after migration'
IT_IS_RECOMMENDED_REVIEW_DNS_ZONE_2 = u'It is recommended to review DNS zone records after migration'
IT_IS_RECOMMENDED_REVIEW_DNS_ZONE_3 = u'It is recommended to review DNS zone records after migration'
IT_IS_RECOMMENDED_REVIEW_DNS_ZONE_4 = u'It is recommended to review DNS zone records after migration'
STANDARD_DNS_RECORD_R_REMOVED = u'The standard DNS record %r will be removed'
IT_IS_STRONGLY_RECOMMENDED_REVIEW_DNS = u'It is strongly recommended to review DNS zone records after migration'
REMOVE_BAD_NS_RECORD_S_THAT = "Remove bad NS record '%s' that does not have corresponding A record"
MOST_PROBABLY_RECORD_IS_RELATED_SERVICE = u'Most probably this record is related to {service_name} service. The record was removed as service does not exist on target subscription'
IT_IS_RECOMMENDED_REVIEW_DNS_ZONE = u'It is recommended to review DNS zone records after migration'
CUSTOM_RECORD_OLD_RECORD_REFERS_ONE_2 = u"Custom record '{old_record}' refers to one of source Plesk IP addresses, but the IP does not match source subscriptions's service IPs. "
CNAME_DNS_RECORD_S_WONT_MIGRATED = u"CNAME DNS record '%s' won't be migrated to PPA. "
CUSTOM_RECORD_OLD_RECORD_REFERS_ONE_1 = u"Custom record '{old_record}' refers to one of source Plesk IP addresses, but the IP does not match source subscriptions's service IPs. "
FAILED_CONVERT_DNS_RECORDS_FOR_SUBSCRIPTION_1 = "Failed to convert DNS records for subscription '%s'"
CUSTOM_CNAME_RECORD_OLD_RECORD_REFERS = u"Custom CNAME record '{old_record}' refers to domain name. It is considered that the record is related to {service_name} service. The record was removed as the service does not exist on target subscription"
CONFIGURE_THOSE_EXTERNAL_DNS_SERVERS_TRANSFER = u"Configure those external DNS server(s) to transfer the subdomains' zones from PPA DNS server(s)."
DNS_ZONE_IN_PPA_AN_NS = u'DNS zone in PPA has an NS record with such source, but according to RFC 1912, CNAME record cannot coexist with other records with the same source'
# ================  common/parallels/common/actions/hosting_settings/convert/plesk/dns.py ===============
FAILED_CONVERT_DNS_RECORDS_FOR_SUBSCRIPTION_2 = "Failed to convert DNS records for subscription '%s'"
# ================  common/parallels/common/actions/hosting_settings/check/maillists.py ===============
SUBSCRIPTION_SOME_MAIL_LISTS_MAIL_LISTS = u'Subscription has some mail list(s). Mail lists are not supported by PPA.'
FAILED_CHECK_FOR_MAILLISTS_FOR_SUBSCRIPTION = "Failed to check for maillists for subscription '%s'"
# ================  common/parallels/common/actions/hosting_settings/check/check_database_conflicts.py ===============
ACTION_CHECK_DATABASE_CONFLICTS_DESCRIPTION = (
	u'Check database conflicts, when database or database user already exists but owned by another subscription'
)
ACTION_CHECK_DATABASE_CONFLICTS_FAILURE = u"Failed to check database conflicts for subscription '%s'"
DATABASE_EXISTS_ISSUE = (
	u"Database '{db_name}' of type '{db_type}' of subscription can not be migrated: "
	u"database with such name already exists on "
	u"target server and is owned by another subscription '{target_owner_subscription}'"
)
DATABASE_EXISTS_SOLUTION = (
	u'Rename database either on source or on target to make database name unique.'
	u'Other possible way is to migrate subscription to another database server '
	u'(attach new external database server, specify it in service plan the subscription is assigned to)'
)
DATABASE_USER_EXISTS_ISSUE = (
	u"Database '{db_name}' of type '{db_type}' of subscription can not be migrated: "
	u"database user of the database with name '{db_user}' already exists on "
	u"target server and is owned by another subscription '{target_owner_subscription}'. "
)
DATABASE_USER_EXISTS_SOLUTION = (
	u"Migrating database in such situation may lead to invalid ownership "
	u"of database tables. Rename database user on source or on target to make database user name unique. "
	u"Other possible way is to migrate subscription to another database server "
	u"(attach new external database server, specify it in service plan the subscription is assigned to)"
)
# ================  common/parallels/common/actions/hosting_settings/check/email_empty_password.py ===============
FAILED_CHECK_FOR_EMPTY_PASSWORDS_MAILBOXES = "Failed to check for empty passwords of mailboxes for subscription '%s'"
SET_PASSWORD_FOR_S_MAILUSER_SOURCE = "Set password for '%s' mailuser on source panel."
CONTENT_CAN_NOT_MIGRATED_FOR_S = u"Content can not be migrated for '%s' mailuser because of empty password of mailuser."
CHECK_EMPTY_PASSWORDS_MAILBOXES = 'Check empty passwords of mailboxes'
# ================  common/parallels/common/actions/hosting_settings/check/catch_all_redirect.py ===============
CHECK_CATCHALL_REDIRECTS_ANOTHER_SERVER = 'Check catch-all redirects to another server'
ALL_MAIL_THAT_IS_SENT_NONEXISTENT = 'All mail that is sent to nonexistent users will be rejected by PPA mail server.'
SOURCE_SERVER_ALL_MAIL_THAT_WAS = u"On the source server, all mail that was sent to nonexistent mail users was redirected to external mail server '%s'. PPA does not support such option."
FAILED_CHECK_CATCH_ALL_REDIRECTS_FOR = "Failed to check catch all redirects for subscription '%s'"
# ================  common/parallels/common/actions/dns/timings/set_dns_timings_not_supported.py ===============
FAILED_CHECK_IF_SOURCE_PANEL_SUPPORTS = 'Failed to check if source panel supports setting DNS timings'
SETTING_LOW_DNS_TIMINGS_IS_NOT = u'Setting low DNS timings is not supported by this type of migration. Set them manually in the configurations of DNS zones, or just wait for about two TTL intervals when migrating.'
CHECK_IF_SOURCE_PANEL_SUPPORTS_SETTING = 'Check if source panel supports setting DNS timings'
# ================  common/parallels/common/actions/dns/forwarding/undo_dns_forwarding_not_supported.py ===============
FAILED_CHECK_IF_SOURCE_PANEL_SUPPORTS_1 = 'Failed to check if source panel supports DNS forwarding'
CHECK_IF_SOURCE_PANEL_SUPPORTS_DNS = 'Check if source panel supports DNS forwarding'
DNS_FORWARDING_IS_NOT_SUPPORTED_FOR = u'DNS forwarding is not supported for this type of migration. Switch IP addresses of DNS servers manually at registar.'
# ================  common/parallels/common/actions/dns/forwarding/check_target_panel_supports_forwarding.py ===============
FAILED_CHECK_IF_TARGET_PANEL_SUPPORTS_1 = 'Failed to check if target panel supports DNS forwarding'
DNS_FORWARDING_IS_NOT_SUPPORTED_WHEN = u'\t\t\t\tDNS forwarding is not supported when migrating to Parallels\n\t\t\t\tPlesk Panel. Switch IP addresses of DNS servers manually at\n\t\t\t\tregistar.'
CHECK_IF_TARGET_PANEL_SUPPORTS_DNS = 'Check if target panel supports DNS forwarding'
# ================  common/parallels/common/actions/dns/forwarding/set_dns_forwarding_not_supported.py ===============
CHECK_IF_SOURCE_PANEL_SUPPORTS_DNS_1 = 'Check if source panel supports DNS forwarding'
FAILED_CHECK_IF_SOURCE_PANEL_SUPPORTS_2 = 'Failed to check if source panel supports DNS forwarding'
DNS_FORWARDING_IS_NOT_SUPPORTED_FOR_1 = u'DNS forwarding is not supported for this type of migration. Switch IP addresses of DNS servers manually at registar.'
# ================  common/parallels/common/connections/checker.py ===============
UNABLE_LOGIN_S_SSH_SERVICE_DUE = u"Unable to login to %s SSH service due to incorrect login/password specified in config file.\nSet valid credentials in 'ssh-username' and 'ssh-password' options in corresponding section in config file and re-run migration tool."
LICENSE_KEY_EXPIRED_SOURCE_PLESK_SERVER = u"The license key has expired on the source Plesk server '%s' (%s).\nTo continue with migration, you need to install a valid license key, and then re-run the migration tool."
UNABLE_LOGIN_PLESK_API_SERVICE_DUE = u"Unable to login to Plesk API service due to incorrect login/password specified in config file.\nSet valid credentials in 'panel-username' and 'panel-password' options in [%s] section in config file and re-run migration tool."
CHECK_SSH_CONNECTION_FOR_S_SERVER = u'Check SSH connection for %s server'
# ================  common/parallels/common/connections/ssh/connection_pool.py ===============
ALL_SSH_CONNECTIONS_WERE_ALREADY_CLOSED = 'All SSH connections were already closed'
# ================  common/parallels/common/connections/ssh/server_connection/lazy_open.py ===============
CLOSE_SSH_CONNECTION_S = 'Close SSH connection to the %s'
# ================  common/parallels/common/connections/ssh/server_connection/nested_context.py ===============
CLOSE_SSH_CONNECTION_S_1 = 'Close SSH connection to the %s'
SSH_CONNECTION_S_IS_ALREADY_OPENED = 'SSH connection to the %s is already opened'
# ================  common/parallels/common/plesk_backup/data_model.py ===============
DOMAIN_NAME_S_NOT_FOUND = "Domain with name '%s' not found"
DOMAIN_NAME_S_NOT_FOUND_1 = "Domain with name '%s' not found"
# ================  common/parallels/common/plesk_backup/file_adapters.py ===============
OPENED_ZIP_FILE_FROM_FILEOBJECT = 'Opened a zip file from a fileobject'
FILE_ADAPTERS_THAT_ALLOW_READ_PLESK = '\nFile adapters that allow to read Plesk backup files (including backup XML files) \nfrom Plesk backup archives of different versions and OSes\n'
OPENED_TAR_FILE_FROM_FILEOBJECT = 'Opened a tar file from a fileobject'
# ================  common/parallels/common/plesk_backup/plesk_backup_xml.py ===============
READING_DUMP_FROM_TAR_ARCHIVE_S = 'Reading dump from a TAR archive %s'
PLESK_DOESNT_SUPPORT_RESELLERS_1 = u"Plesk 8 doesn't support resellers"
READING_DUMP_FROM_ZIP_ARCHIVE_S = 'Reading dump from a ZIP archive %s'
EXPECTED_HAVE_ONE_NO_DOMAINUSER_NODES = u"Expected to have one or no domainuser nodes in Plesk backup XML for client '%s'"
DISCARD_PATH_R_AS_HAVING_UNKNOWN = 'Discard path %r as having unknown type/purpose and being not needed.'
READING_DUMP_FROM_PLESK_BACKUP_FILE = 'Reading dump from Plesk 8 backup file %s'
PLESK_DOESNT_SUPPORT_RESELLERS = u"Plesk 8 doesn't support resellers"
FAILED_FIND_SUBSCRIPTION_S_IN_BACKUP = "Failed to find subscription '%s' in backup file"
SAVING_FILEOBJECT_USING_S_FORMAT = 'Saving a fileobject using %s format'
# ================  common/parallels/common/cli/common_cli.py ===============
S_PLEASE_FIX_MIGRATION_TOOL_CONFIGURATION = u"%s. Please fix migration tool configuration file ('%s') and run migration tool again."
SHOW_HELP_INTERNAL_COMMANDS = u'Show help on internal commands'
ADVANCED_COMMANDS_ARE_EXECUTED_AS_SEPARATE = u'The advanced commands are executed as separate steps of the commands listed in the main section, but can be invoked separately for problem resolution or more granular migration process. Advanced commands:'
START_PYTHON_SCRIPT_IN_MIGRATOR_ENVIRONMENT = u'Start Python script in migrator environment'
ERROR_OCCURRED_WHILE_WORKING_FOLLOWING_STRING = u'Error occurred while working with the following string: %r'
INTERNAL_COMMANDS_ARE_INTENDED_USE_BY = u'The internal commands are intended to use by migration tool developers. Internal commands:'
INTERNAL_MIGRATOR_ERROR_CAUSED_BY_UNICODE = u"Internal migrator error caused by unicode string processing: '%s', migration is aborted. See the traceback and the string that caused failure in debug log."
SHOW_HELP_ADVANCED_COMMANDS = u'Show help on advanced commands'
INTERNAL_MIGRATOR_ERROR_S_MIGRATION_IS = u"Internal migrator error: '%s', migration is aborted. See the traceback in debug log for more information."
PATH_PANEL_MIGRATOR_CONFIGURATION_FILE_SEE = u'\nPath to Panel Migrator configuration file.\nSee http://docs.python.org/library/logging.config.html#configuration-file-format for configure logging.'
MIGRATION_STOPPED_BY_USER_REQUEST = 'Migration stopped by user request'
START_PYTHON_INTERPRETER_IN_MIGRATOR_ENVIRONMENT = u'Start Python interpreter in migrator environment'
AVAILABLE_VARIABLES_MIGRATOR_OPTIONS = u'Available variables: migrator, options.'
FAILED_READ_CONFIGURATION_FILE_THERE_IS = u"Failed to read configuration file: there is no section '[%s]'. Please fix migration tool configuration file ('%s') and run migration tool again."
# ================  common/parallels/common/cli/migration_cli.py ===============
IGNORE_PREMIGRATION_ERRORS_AND_CONTINUE_MIGRATION = u'Ignore pre-migration errors and continue migration even if there are some of them. Do not use it, it is left for use by support only.'
SWITCH_STRICT_MODE_IN_WHICH_NEW = u'Switch to the strict mode in which new webspaces are created using only the resources required for the transfer of the corresponding subscriptions.'
DO_NOT_CHECK_ANY_LICENSES_PPA = u'Do not check any licenses on PPA'
CHECK_THAT_SERVICES_ARE_WORKING_CORRECTLY = u'Check that services are working correctly.'
DO_NOT_CHECK_SERVICES_FOR_ANY = u'Do not check services for any issues that may affect migration'
FORCE_FETCHING_DATA_FROM_SOURCE_PANELS = u'Force fetching data from source panels, do not use already fetched data.'
CHECK_PLESK_LICENSES_ASSIGNED_PPA_NODES = u'Check Plesk licenses assigned to PPA nodes'
ANALYSE_SOURCE_AND_DESTINATION_NODES_FOR = u'Analyse source and destination nodes for using effective migration strategy'
DOWNLOAD_CONFIGURATION_DATA_FROM_SOURCE_PLESK = u'Download configuration data from source Plesk servers'
TRANSFER_WEB_PRESENSE_BUILDER_SITES = u'Transfer Web Presense Builder sites'
COPY_HOSTING_CONTENT_DESTINATION_SERVERS = u'Copy hosting content to destination servers'
IMPORT_RESELLERS_NOTE_THAT_ONLY_CONTACT = u'Import resellers. Note that only contact data is imported, and you should assign resellers to resellers plans manually'
CHECK_IF_BILLING_DATA_CAN_SUCCESSFULLY = u'Check if billing data can be successfully transferred from H-Sphere'
UNDO_DNS_FORWARDING_ALL_SOURCE_PLESK = u'Undo DNS forwarding on all source Plesk servers'
TRANSFER_BILLING_DATA_FROM_HSPHERE = u'Transfer billing data from H-Sphere'
RESTORE_SUSPENDED_STATUS_FOR_SUBSCRIPTIONS_WHICH = u'Restore suspended status for the subscriptions, which were suspended in the originating system'
DO_NOT_CHECK_THAT_DNS_QUERIES = u'Do not check that DNS queries for the transferred domains are correctly forwarded to PPA DNS servers'
SET_LOW_DNS_TIMING_VALUES_TTL = u'Set low DNS timing values (TTL, refresh, retry, etc). This operation should be done in advance to insure quick transition to the new DNS server. Low DNS timing values are set for all domains on source Plesk servers.'
DO_NOT_USE_RELOAD_SOURCE_DATA = u'Do not use reload source data if it was already fetched. '
VERIFY_THAT_SUBSCRIPTIONS_DOMAINS_AND_HOSTING = u'Verify that subscriptions, domains and hosting settings were restored'
CHECK_THAT_SYSTEM_USERS_ARE_TRANSFERRED = u'Check that system users are transferred correctly (access by FTP, SSH and RDP is checked).'
GENERATE_MIGRATION_LIST_FILE_FILE_COULD = u"Generate migration list file. This file could be used to migrate only a specified set of plans and subscriptions, and to map subscriptions to plans. Comment out all objects that you don't want to be migrated"
CONFIGURE_ORIGINAL_PLESK_HOSTING_SETTINGS_IN = u'Configure original Plesk hosting settings in PPA'
MIGRATION_LIST_FILENAME_DEFAULT_VALUE_IS = u'Migration list filename, default value is $session_dir/migration-list'
SUSPEND_ACCOUNTS_IN_HSPHERE_EVEN_IF = u'Suspend the accounts in H-Sphere even if H-Sphere is configured to delete the suspended accounts'
IGNORE_ERRORS_FETCHSOURCE_STAGE_HSPHERE_MIGRATION = u'Ignore errors on fetch-source stage of H-Sphere migration'
CHECK_INFRASTRUCTURE_CONNECTIONS_BETWEEN_NODES_DISK = u'Check infrastructure (connections between nodes, disk space requirements) for common issues that can make copy web, mail or database content stages to fail'
MIGRATOR_FROM_PARALLELS_PLESKS_PARALLELS_PLESK = u'Migrator from Parallels Plesk(s) to Parallels Plesk Automation'
IP_MAPPING_FILENAME_FILE_CONTAINS_SOURCE = u'IP mapping filename. This file contains source IP to target IP mapping.'
CONVERT_PLESK_DATA_FILES_PPA_FORMAT = u'Convert Plesk data files to PPA format'
SOURCE_TYPE_S_SPECIFIED_IN_SOURCETYPE = u"Source type '%s' specified in 'source-type' option of '[GLOBAL]' section of configuration file is not supported. Supported types: 'plesk', 'expand', 'hsphere', 'pbas', 'confixx', 'ppcpl'"
CHECK_THAT_DATABASE_SERVICE_WORKS_FINE = u'Check that the database service works fine for transferred domains.'
DO_NOT_CHECK_DISK_SPACE_REQUIREMENTS = u'Do not check disk space requirements for the main node'
RETURN_LIST_AVAILABLE_OPTIONS = u'Return list of available options'
IMPORT_CLIENTS_USERS_AND_SUBSCRIPTIONS_INTO = u'Import clients, users and subscriptions into PPA'
CHECK_THAT_DNS_QUERIES_FOR_TRANSFERRED_1 = u"Check that the DNS queries for transferred domains' records are ok."
CHECK_THAT_MAIL_SERVICE_WORKS_FINE = u'Check that the mail service works fine for transferred domains: check login to all transferred mailboxes by IMAP and SMTP.'
CONVERT_PLESK_HOSTING_SETTINGS_ACCORDING_PPA = u'Convert Plesk hosting settings according to PPA subscription settings'
DO_NOT_CHECK_INFRASTRUCTURE_FOR_ANY = u'Do not check infrastructure for any issues that may affect migration'
CHECK_THAT_TRANSFERRED_DOMAINS_ARE_WORKING = u'Check that the transferred domains are working correctly: test web sites, DNS, mail and FTP'
OVERWRITE_FILE_IF_IT_ALREADY_EXISTS = u'Overwrite file if it already exists'
CHECK_THAT_WEB_SITES_TRANSFERRED_DOMAINS = u'Check that the web sites of the transferred domains are working correctly.'
UNPACK_ALL_PLESK_BACKUPS_SESSION_DIRUNPACKED = u'Unpack all Plesk backups to $session_dir/unpacked directory'
CREATE_BACKUP_FROM_LIGHT_BACKUP = u'Create full Plesk backup from light backup format (YAML/JSON)'
CHECK_FOR_POTENTIAL_MIGRATION_ISSUES = u'Check for potential migration issues'
TRANSFER_ACCOUNT_RESOURCE_LIMITS_AND_USAGE = u'Transfer account resource limits and usage from H-Sphere'
CHECK_MAIN_NODE_DISK_SPACE_REQUIREMENTS = u'Check main node disk space requirements'

FAILED_TO_DETECT_ARCH = u"Failed to detect OS architecture for {server}. Assuming 64-bit.\nReason: {reason}"
