# -*- coding: utf-8 -*- # Copyright 2010-2016 Mir Calculate. http://www.calculate-linux.org # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. from __future__ import absolute_import import sys from calculate.lib.datavars import VariableError, DataVarsError from calculate.install.distr import DistributiveError from . import install from calculate.lib.cl_lang import setLocalTranslate, getLazyLocalTranslate, _ setLocalTranslate('cl_install3', sys.modules[__name__]) __ = getLazyLocalTranslate(_) from calculate.core.server.func import WsdlBase from calculate.lib.utils.partition import VolumesError from calculate.install.utils.cl_install import ClInstallAction from calculate.install.utils.cl_setup import ( ClSetupLocaleAction, ClSetupVideoAction, ClSetupSystemAction, ClSetupBootAction, ClSetupNetworkAction, ClSetupAudioAction, ClSetupSessionAction, ClSetupThemesAction) class Wsdl(WsdlBase): methods = [{ # идентификатор метода 'method_name': "install", # категория метода 'category': __("Installation"), # заголовок метода 'title': __("System Install"), # иконка для графической консоли 'image': ('calculate-install,system-installer,applications-other,' 'drive-harddisk'), # метод присутствует в графической консоли 'gui': True, # консольная команда 'command': 'cl-install', # права для запуска метода 'rights': ['install'], # объект содержащий модули для действия 'logic': {'Install': install.Install}, # описание действия 'action': ClInstallAction, # объект переменных 'datavars': "install", 'native_error': (VariableError, DistributiveError, VolumesError, DataVarsError, install.InstallError), # значения по умолчанию для переменных этого метода 'setvars': {'cl_action!': 'system', 'cl_chroot_status!': 'off', 'cl_install_type': 'hdd', 'cl_dispatch_conf': 'usenew'}, # описание груп (список лямбда функций) 'groups': [ lambda group: group(_("Language and locale"), image="welcome", normal=('os_install_locale_lang', 'os_install_clock_timezone'), expert=('os_install_locale_keyboard_layout', 'os_install_clock_type',)), lambda group: group(_("Distribution"), normal=('cl_image_filename',), hide=('cl_image_linux_shortname', 'cl_image_arch_machine', 'cl_image_new_only'), expert=('cl_image_linux_shortname', 'cl_image_arch_machine', 'cl_image_new_only')), lambda group: group(_("Installation type"), normal=('cl_autopartition_set',), hide=('cl_autopartition_set', 'cl_autopartition_root_size', 'cl_autopartition_root_format', 'cl_autopartition_calculate_format', 'cl_autopartition_swap_size',), brief=('cl_autopartition_brief_set',), expert=('cl_autopartition_scheme', 'cl_autopartition_root_format', 'cl_autopartition_calculate_format', 'cl_autopartition_table', 'cl_autopartition_root_size', 'cl_autopartition_swap_size', 'cl_autopartition_device'), expert_label=_( "Click to select partitions to be created") ), lambda group: group(_("Layout"), normal=('os_location_data',), hide=('os_location_data', 'os_install_mbr', 'os_install_uefi'), brief_force=('os_location_brief_data', 'os_install_bootloader'), brief=('os_install_uefi',), expert=('cl_uuid_set', 'os_install_mbr', 'os_install_uefi')), lambda group: group(_("Network settings"), normal=( 'cl_network_migrate_set',), expert=('os_install_net_conf', 'os_install_net_data', 'os_install_net_fqdn', 'os_install_ntp', 'os_install_net_dns', 'os_install_net_dns_search', 'os_install_net_route_data'), expert_label=_( "Click to select network settings") ), lambda group: group(_("Users"), normal=( 'cl_migrate_root_pwd_plain', 'cl_grub_passwd_set', 'cl_migrate_data', 'cl_autologin'), expert=('cl_install_home_crypt_set',), hide=('cl_migrate_data',), brief=('cl_migrate_data_brief',)), lambda group: group(_("Audio"), normal=('os_audio',), expert=('os_audio_default',)), lambda group: group(_("Video"), normal=('os_install_x11_video_drv', 'os_install_x11_composite', 'os_install_x11_resolution_preferred', 'os_install_grub_terminal'), expert=('os_install_fb_resolution_preferred',)), lambda group: group(_("Update"), normal=('cl_install_autocheck_set', 'cl_install_autocheck_interval', 'cl_install_cleanpkg_set', 'cl_install_other_set'), expert=('cl_install_update_pkg_set',))], # действие выводит информацию перед запуском 'brief': {'next': __("Run"), 'image': 'finish', 'name': __("Start installing")}}, # установка на Flash { 'method_name': "install_flash", 'category': __("Installation"), 'title': __("Flash Install"), 'image': ('calculate-install-flash,' 'drive-removable-media-usb-pendrive,' 'drive-removable-media-usb,media-flash'), 'command': 'cl-install-flash', 'gui': True, 'rights': ['install'], 'logic': {'Install': install.Install}, 'action': ClInstallAction, 'datavars': "install", 'native_error': (VariableError, DistributiveError, VolumesError, DataVarsError, install.InstallError), 'setvars': {'cl_action!': 'system', 'cl_chroot_status!': 'off', 'cl_install_type': 'flash', 'cl_protect_use_set!': 'off', 'cl_autopartition_set!': 'off', 'cl_dispatch_conf': 'usenew'}, 'groups': [ lambda group: group(_("Flash install"), normal=('cl_image_filename', 'os_install_disk_single', 'os_install_format_single_set'), next_label=_("Run"))], 'brief': {'next': __("Run"), 'name': __("Start installing")}}, # PXE установка { 'method_name': "install_pxe", 'category': __("Installation"), 'title': __("PXE Install"), 'image': ('calculate-install-pxe,gnome-network-properties,' 'network-server,' 'preferences-desktop-remote-desktop'), 'command': 'cl-install-pxe', 'gui': True, 'rights': ['installpxe'], 'logic': {'Install': install.Install}, 'action': ClInstallAction, 'datavars': "install", 'native_error': (VariableError, DistributiveError, DataVarsError, install.InstallError), 'setvars': {'cl_action!': 'system', 'os_install_pxe': 'on', 'cl_protect_use_set!': 'off', 'cl_dispatch_conf': 'usenew'}, # действие выводит информацию перед запуском 'brief': {'next': __("Installation"), 'image': 'finish', 'name': __("Start installing")}, 'groups': [ lambda group: group(_("PXE install"), normal=('cl_image_filename',), expert=('os_install_pxe_path', 'os_install_pxe_ip'), next_label=_("Run"))]}, # настройка загрузки системы { 'method_name': "setup_boot", 'category': __("Configuration"), 'title': __("Boot"), 'image': 'calculate-setup-boot,stock_save,drive-harddisk', 'command': 'cl-setup-boot', 'gui': True, 'rights': ['setupboot'], 'logic': {'Install': install.Install}, 'action': ClSetupBootAction, 'datavars': "install", 'native_error': ( VariableError, DataVarsError, install.InstallError), 'setvars': {'cl_action!': 'merge', 'cl_merge_pkg!': [None], 'cl_merge_set!': "on", 'cl_setup': 'boot'}, 'groups': [ lambda group: group(_("Boot"), normal=( 'os_install_mbr', 'os_install_uefi', 'os_install_grub_terminal', 'cl_grub_pwd', 'cl_grub_remove_pwd_set', ), expert=( 'cl_templates_locate', 'cl_dispatch_conf', 'cl_verbose_set'), next_label=_("Save"))]}, { # настройка сети 'method_name': "setup_network", 'category': __("Configuration"), 'title': __("Network"), 'image': 'calculate-setup-network,network-workgroup,' 'network-idle,preferences-system-network', 'command': 'cl-setup-network', 'gui': True, 'rights': ['setupnetwork'], 'logic': {'Install': install.Install}, 'action': ClSetupNetworkAction, 'datavars': "install", 'native_error': ( VariableError, DataVarsError, install.InstallError), 'setvars': {'cl_action!': 'merge', 'cl_merge_pkg!': [None], 'cl_network_migrate_set': 'off', 'cl_merge_set!': "on", 'cl_setup': 'network'}, 'groups': [ lambda group: group(_("Network"), normal=('os_install_net_conf', 'os_install_net_data', 'os_install_net_fqdn', 'os_install_ntp'), expert=('os_install_net_dns', 'os_install_net_dns_search', 'os_install_net_route_data', 'cl_templates_locate', 'cl_dispatch_conf', 'cl_verbose_set'), next_label=_("Save"))]}, { # перенастройка системы 'method_name': "setup_system", 'category': __("Configuration"), 'title': __("System"), 'image': 'calculate-setup-system,run-build,applications-ide,' 'system-run,system,computer', 'command': 'cl-setup-system', 'gui': True, 'rights': ['setupsystem'], 'logic': {'Install': install.Install}, 'action': ClSetupSystemAction, 'datavars': "install", 'native_error': ( VariableError, DataVarsError, install.InstallError), 'setvars': {'cl_action!': 'merge', 'cl_live': 'off'}, 'groups': [ lambda group: group(_("Update system settings"), normal=('cl_live', 'cl_network_configure_set'), expert=( 'cl_templates_locate', 'cl_dispatch_conf', 'cl_verbose_set'), next_label=_("Save"))]}, { # настройка видео 'method_name': "setup_video", 'category': __("Configuration"), 'title': __("Video"), 'image': 'calculate-setup-video,system-config-display,' 'video-display,gnome-multimedia', 'command': 'cl-setup-video', 'gui': True, 'rights': ['setupvideo'], 'logic': {'Install': install.Install}, 'action': ClSetupVideoAction, 'datavars': "install", 'native_error': ( VariableError, DataVarsError, install.InstallError), 'setvars': {'cl_action!': 'merge', 'cl_merge_pkg!': [None], 'cl_merge_set!': "on", 'cl_setup': 'video'}, 'groups': [ lambda group: group( _("Video"), normal=('os_install_x11_video_drv', 'os_install_x11_resolution_preferred', 'os_install_x11_composite'), expert=( 'os_install_fb_resolution_preferred', 'cl_templates_locate', 'cl_dispatch_conf', 'cl_verbose_set'), next_label=_("Save"))]}, { # настройка звука 'method_name': "setup_audio", 'category': __("Configuration"), 'title': __("Audio"), 'image': 'calculate-setup-audio,audio-card', 'command': 'cl-setup-audio', 'gui': True, 'rights': ['setupaudio'], 'logic': {'Install': install.Install}, 'action': ClSetupAudioAction, 'datavars': "install", 'native_error': ( VariableError, DataVarsError, install.InstallError), 'setvars': {'cl_action!': 'merge', 'cl_merge_pkg!': [None], 'cl_merge_set!': "on", 'cl_setup': 'audio'}, 'groups': [ lambda group: group(_("Audio"), normal=('os_audio',), expert=( 'os_audio_default', 'cl_templates_locate', 'cl_dispatch_conf', 'cl_verbose_set'), next_label=_("Save"))]}, { # настройка локали 'method_name': "setup_locale", 'category': __("Configuration"), 'title': __("Locale"), 'image': 'calculate-setup-locale,locale,preferences-desktop-locale', 'command': 'cl-setup-locale', 'gui': True, 'rights': ['setuplocale'], 'logic': {'Install': install.Install}, 'action': ClSetupLocaleAction, 'datavars': "install", 'native_error': ( VariableError, DataVarsError, install.InstallError), 'setvars': {'cl_action!': 'merge', 'cl_merge_pkg!': [None], 'cl_merge_set!': "on", 'cl_setup': 'locale'}, 'groups': [ lambda group: group(_("Locale"), normal=('os_install_locale_lang', 'os_install_clock_timezone'), expert=( 'os_install_locale_keyboard_layout', 'os_install_clock_type', 'cl_templates_locate', 'cl_dispatch_conf', 'cl_verbose_set'), next_label=_("Save"))]}, { # настройка локали 'method_name': "setup_session", 'category': __("Configuration"), 'title': __("Session"), 'image': 'calculate-setup-session,system-lock-screen', 'command': 'cl-setup-session', 'gui': True, 'rights': ['setupsession'], 'logic': {'Install': install.Install}, 'action': ClSetupSessionAction, 'datavars': "install", 'native_error': ( VariableError, DataVarsError, install.InstallError), 'setvars': {'cl_action!': 'merge', 'cl_merge_pkg!': [None], 'cl_merge_set!': "on", 'cl_setup': 'session'}, 'groups': [ lambda group: group(_("Session"), normal=('cl_autologin', 'cl_install_home_crypt_set'), expert=( 'cl_templates_locate', 'cl_dispatch_conf', 'cl_verbose_set'), next_label=_("Save"))]}, { # настройка тем 'method_name': "setup_theme", 'category': None, 'title': __("Themes"), 'image': None, 'command': 'cl-setup-themes', 'gui': True, 'rights': ['setupthemes'], 'logic': {'Install': install.Install}, 'action': ClSetupThemesAction, 'datavars': "install", 'native_error': ( VariableError, DataVarsError, install.InstallError), 'setvars': {'cl_action!': 'merge', 'cl_merge_pkg!': [None], 'cl_merge_set!': "on", 'cl_setup': 'themes'}, 'groups': [ lambda group: group(_("Session"), normal=(), expert=( 'cl_templates_locate', 'cl_dispatch_conf', 'cl_verbose_set'), next_label=_("Save"))]} ]