#-*- coding: utf-8 -*- # Copyright 2015 Calculate Ltd. 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. import sys from calculate.lib.datavars import VariableError, DataVarsError, DataVars from calculate.core.server.func import WsdlBase from calculate.install.install import InstallError, Install from calculate.update.emerge_parser import EmergeError from .builder import Builder from calculate.update.update import Update, UpdateError from .datavars import BuilderError from .variables.action import Actions as BuilderActions from calculate.lib.utils.portage import GitError from utils.cl_builder_prepare import ClBuilderPrepareAction from utils.cl_builder_profile import ClBuilderProfileAction from utils.cl_builder_break import ClBuilderBreakAction from utils.cl_builder_update import ClBuilderUpdateAction from utils.cl_builder_restore import ClBuilderRestoreAction from utils.cl_builder_image import ClBuilderImageAction from calculate.lib.cl_lang import setLocalTranslate,getLazyLocalTranslate setLocalTranslate('cl_builder3',sys.modules[__name__]) __ = getLazyLocalTranslate(_) class Wsdl(WsdlBase): methods = [ # # Подготовить систему для сборки # { # идентификатор метода 'method_name': Builder.Method.Prepare, # категория метода 'category': __('Builder'), # заголовок метода Подготовить новую сборку 'title': __("Prepare the New Build"), # иконка для графической консоли 'image': 'starred,rating,gtk-about', # метод присутствует в графической консоли 'gui': True, # консольная команда 'command': 'cl-builder-prepare', # права для запуска метода 'rights': ['build'], # объект содержащий модули для действия 'logic': {'Builder': Builder, 'Install': Install}, # описание действия 'action': ClBuilderPrepareAction, # объект переменных 'datavars': "builder", 'native_error': (VariableError, DataVarsError, InstallError, BuilderError, GitError), # значения по умолчанию для переменных этого метода 'setvars': {'cl_action!': BuilderActions.Prepare, 'cl_dispatch_conf_default': 'usenew'}, # описание груп (список лямбда функций) 'groups': [ # Подготовить новую сборку lambda group: group(_("Prepare the New Build"), # Исходный образ (Source image) normal=('cl_builder_source_filename',), # Идентификатор сборки (Build ID) expert=(# Место сборки # (Build location) 'cl_builder_disk_dev', # Использовать слои для сборки # Use layers for build 'cl_builder_layered_set', 'cl_builder_new_id', 'cl_templates_locate', 'cl_verbose_set', 'cl_dispatch_conf'), hide=('cl_templates_locate', 'cl_verbose_set', 'cl_builder_disk_dev', 'cl_builder_new_id', 'cl_dispatch_conf'), brief=('cl_builder_source_filename', 'cl_builder_profile_name', 'cl_builder_disk_dev', 'cl_builder_new_id', 'cl_builder_layered_set', 'cl_builder_disk_size', ), next_label=_("Next"))], 'brief': {'next': __("Perform"), 'name': __("Prepare the New Build")}, }, { # идентификатор метода 'method_name': Builder.Method.Break, # категория метода 'category': __('Builder'), # заголовок метода 'title': __("Break the Build"), # иконка для графической консоли 'image': 'edit-clear', # метод присутствует в графической консоли 'gui': True, # консольная команда 'command': 'cl-builder-break', # права для запуска метода 'rights': ['build'], # объект содержащий модули для действия 'logic': {'Builder': Builder, 'Install': Install}, # описание действия 'action': ClBuilderBreakAction, # объект переменных 'datavars': "builder", 'native_error': (VariableError, DataVarsError, InstallError, BuilderError, GitError), # значения по умолчанию для переменных этого метода 'setvars': {'cl_action!': BuilderActions.Break}, # описание груп (список лямбда функций) 'groups': [ lambda group: group(_("Break the Build"), normal=('cl_builder_prepared_id', 'cl_builder_clear_set'), next_label=_("Perform"))] }, { # идентификатор метода 'method_name': Builder.Method.Update, # категория метода 'category': __('Builder'), # заголовок метода 'title': __("Update the Build"), # иконка для графической консоли 'image': 'software-update-available,system-run', # метод присутствует в графической консоли 'gui': True, # консольная команда 'command': 'cl-builder-update', # права для запуска метода 'rights': ['build'], # объект содержащий модули для действия 'logic': {'Builder': Builder, 'Install': Install}, # описание действия 'action': ClBuilderUpdateAction, # объект переменных 'datavars': "builder", 'native_error': (VariableError, DataVarsError, InstallError, BuilderError, GitError), # значения по умолчанию для переменных этого метода 'setvars': {'cl_action!': BuilderActions.Update, 'cl_dispatch_conf_default': 'usenew'}, # описание груп (список лямбда функций) 'groups': [ lambda group: group( _("Update the Build"), normal=('cl_builder_prepared_id',), expert=( 'update.cl_update_sync_only_set', 'update.cl_update_other_set', 'update.cl_update_pretend_set', 'cl_builder_sync_rep', 'update.cl_update_emergelist_set', 'update.cl_update_world', 'update.cl_update_egencache_force', 'update.cl_update_eixupdate_force', 'cl_builder_rebuild_changed_set', 'update.cl_update_skip_rb_set', 'update.cl_update_binhost_recheck_set', 'update.cl_update_cleanpkg_set', 'cl_builder_branch_data', 'cl_templates_locate', 'cl_verbose_set', 'cl_dispatch_conf'), hide=('cl_templates_locate', 'cl_verbose_set', 'cl_dispatch_conf'), next_label=_("Next"))], 'brief': {'next': __("Perform"), 'name': __("Update the Build")} }, { # идентификатор метода 'method_name': Builder.Method.Restore, # категория метода 'category': __('Builder'), # заголовок метода 'title': __("Restore the Build"), # иконка для графической консоли 'image': 'document-revert-rtl,bookmark-new-list,document-revert', # метод присутствует в графической консоли 'gui': True, # консольная команда 'command': 'cl-builder-restore', # права для запуска метода 'rights': ['build'], # объект содержащий модули для действия 'logic': {'Builder': Builder, 'Install': Install}, # описание действия 'action': ClBuilderRestoreAction, # объект переменных 'datavars': "builder", 'native_error': (VariableError, DataVarsError, InstallError, BuilderError, GitError), # значения по умолчанию для переменных этого метода 'setvars': {'cl_action!': BuilderActions.Restore}, # описание груп (список лямбда функций) 'groups': [ lambda group: group(_("Break the Build"), normal=('cl_builder_broken_id',), expert=('cl_templates_locate', 'cl_verbose_set', 'cl_dispatch_conf'), next_label=_("Perform"))], }, { # идентификатор метода 'method_name': Builder.Method.Image, # категория метода 'category': __('Builder'), # заголовок метода 'title': __("Create the Image"), # иконка для графической консоли 'image': 'media-optical,media-optical-data', # метод присутствует в графической консоли 'gui': True, # консольная команда 'command': 'cl-builder-image', # права для запуска метода 'rights': ['build'], # объект содержащий модули для действия 'logic': {'Builder': Builder, 'Install': Install}, # описание действия 'action': ClBuilderImageAction, # объект переменных 'datavars': "builder", 'native_error': (VariableError, DataVarsError, EmergeError, InstallError, BuilderError, GitError), # значения по умолчанию для переменных этого метода 'setvars': {'cl_action!': BuilderActions.Image, 'cl_dispatch_conf_default': 'usenew'}, # описание груп (список лямбда функций) 'groups': [ lambda group: group(_("Create the Image"), normal=('cl_builder_prepared_id', 'cl_builder_image_filename', ), brief=('cl_builder_prepared_id', 'os_builder_linux_fullname', 'os_builder_linux_shortname', 'os_builder_linux_subname', 'os_builder_linux_system', 'os_builder_linux_ver', 'os_builder_linux_build', 'cl_builder_image_filename', 'cl_builder_videodrv_set', 'cl_builder_compress', 'cl_builder_isohybrid_set', 'cl_builder_keep_tree_set', 'cl_builder_prelink_set', 'cl_builder_prepare_free_size', 'cl_builder_image_free_size' ), hide=('cl_templates_locate', 'cl_verbose_set', 'cl_dispatch_conf' 'cl_builder_prepared_id', 'cl_builder_image_filename', 'cl_builder_videodrv_set', 'cl_builder_compress', 'cl_builder_keep_tree_set', 'cl_builder_isohybrid_set', 'cl_builder_prelink_set', ), expert=( # Включить проприетарные видео драйвера # Include proprietary video drivers 'cl_builder_videodrv_set', 'cl_builder_compress', 'cl_builder_keep_tree_set', 'cl_builder_isohybrid_set', 'cl_builder_prelink_set', 'cl_templates_locate', 'cl_verbose_set', 'cl_dispatch_conf'), next_label=_("Next")),], 'brief': {'next': __("Perform"), 'name': __("Create the Image")} }, # # Сменить профиль # { # идентификатор метода 'method_name': Builder.Method.Profile, # категория метода 'category': __('Builder'), # заголовок метода 'title': __("Change the Build Profile"), # иконка для графической консоли 'image': 'notification-display-brightness-full,gtk-dialog-info,' 'help-hint', # метод присутствует в графической консоли 'gui': True, # консольная команда 'command': 'cl-builder-profile', # права для запуска метода 'rights': ['builder'], # объект содержащий модули для действия 'logic': {'Builder': Builder}, # описание действия 'action': ClBuilderProfileAction, # объект переменных 'datavars': "builder", 'native_error': (VariableError, DataVarsError, UpdateError, InstallError, BuilderError, GitError), # значения по умолчанию для переменных этого метода 'setvars': {'cl_action!': BuilderActions.ChangeProfile, 'update.cl_update_world_default': 'rebuild'}, # описание груп (список лямбда функций) 'groups': [ lambda group: group(_("Repository"), brief=('cl_builder_profile_repo_name',), hide=('cl_builder_profile_url', 'update.cl_update_profile_sync_set'), normal=('cl_builder_prepared_id', 'cl_builder_profile_url',), expert=('update.cl_update_profile_sync_set',)), lambda group: group(_("Profile"), normal=('cl_builder_profile_system_shortname', 'update.cl_update_world'), expert=('update.cl_update_skip_setup_set', 'cl_builder_templates_locate', 'cl_verbose_set', 'cl_dispatch_conf'), hide=('cl_builder_templates_locate', 'cl_verbose_set', 'cl_dispatch_conf'), brief=('cl_builder_profile_linux_fullname', 'cl_builder_profile_depend_data') )], 'brief': {'next': __("Perform"), 'name': __("Set the Profile")}}, ]