You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
calculate-utils-3-console-gui/libs_crutch/core/wsdl_core.py

796 lines
39 KiB

# -*- coding: utf-8 -*-
# Copyright 2011-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.lib.cl_lang import setLocalTranslate, getLazyLocalTranslate
_ = lambda x: x
setLocalTranslate('cl_core3', sys.modules[__name__])
__ = getLazyLocalTranslate(_)
from . import setup_package
from . import server.certificate as certificate
from . import server.groups as groups
from . import server.request as request
from . import set_vars
from .backup import Backup, BackupError
from calculate.core.utils.cl_backup import ClBackupAction
from calculate.core.utils.cl_backup_restore import ClBackupRestoreAction
from calculate.core.server.func import WsdlBase
from calculate.core.utils.cl_core_setup import ClCoreSetupAction
from calculate.core.utils.cl_core_patch import ClCorePatchAction
from calculate.core.utils.cl_config import ClConfigAction
from calculate.core.utils.cl_core_dispatch import ClCoreDispatchAction
from calculate.core.utils.cl_core_view_cert import ClCoreViewCert
from calculate.core.utils.cl_core_group import (
ClCoreGroupShow, ClCoreGroupMod, ClCoreGroupAdd, ClCoreGroupDel)
from calculate.core.utils.cl_core_request import (
ClCoreRequestShow, ClCoreRequestConfirm, ClCoreRequestDel)
from calculate.core.utils.cl_core_variables import (ClCoreVariables,
ClCoreVariablesShow)
from calculate.core.utils.cl_core_custom import ClCoreCustomAction
from calculate.core.utils.cl_core_restart import ClCoreRestartAction
from calculate.core.variables.action import Actions
class Wsdl(WsdlBase):
methods = [
#
# Настройка пакета во время установки (cl-core-setup)
#
{
# идентификатор метода
'method_name': "core_setup",
# категория метода
'category': __('Configuration'),
# заголовок метода
'title': __("Configure a Package"),
# иконка для графической консоли
'image': 'calculate-core-setup,'
'preferences-desktop-default-applications',
# метод присутствует в графической консоли
'gui': True,
# консольная команда
'command': 'cl-core-setup',
# права для запуска метода
'rights': ['setup_package'],
# объект содержащий модули для действия
'logic': {'UpdateConfigs': setup_package.UpdateConfigs},
# описание действия
'action': ClCoreSetupAction,
# объект переменных
'datavars': "core",
'native_error': (VariableError, DataVarsError,
setup_package.SetupPackageError),
# значения по умолчанию для переменных этого метода
'setvars': {'cl_action!': 'merge', 'cl_verbose_set': "on"},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(_("Configure a package"),
normal=('cl_core_pkg_name',),
expert=('cl_core_pkg_category',
'cl_core_pkg_version_opt',
'cl_core_pkg_slot_opt',
'cl_core_pkg_path',
'cl_core_arch_machine',
'cl_templates_locate',
'cl_core_pkg_system_set',
'cl_core_pkg_desktop_set',
'cl_core_pkg_root_set',
'cl_verbose_set',
'cl_dispatch_conf'),
next_label=_("Run"))]},
#
# Патч исходников пакета (cl-core-patch)
#
{
# идентификатор метода
'method_name': "core_patch",
# категория метода
'category': __('Configuration'),
# заголовок метода
'title': __("Patch"),
# иконка для графической консоли
'image': None,
# метода нет в графической консоли
'gui': False,
# консольная команда
'command': 'cl-core-patch',
# права для запуска метода
'rights': ['configure'],
# объект содержащий модули для действия
'logic': {'UpdateConfigs': setup_package.UpdateConfigs},
# описание действия
'action': ClCorePatchAction,
# объект переменных
'datavars': "core",
'native_error': (VariableError, DataVarsError,
setup_package.SetupPackageError),
# значения по умолчанию для переменных этого метода
'setvars': {'cl_action!': 'patch',
'cl_protect_use_set!': 'off'},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(_("Configure a package"),
normal=('cl_core_pkg_name',),
expert=('cl_core_pkg_category',
'cl_core_pkg_version',
'cl_core_pkg_slot',
'cl_core_pkg_path',
'cl_core_arch_machine',
'cl_templates_locate',
'cl_verbose_set'),
next_label=_("Run"))]},
#
# Обновление конфигурационных файлов (cl-dispatch-conf)
#
{
# идентификатор метода
'method_name': "core_dispatch",
# категория метода
'category': __('Update '),
# заголовок метода
'title': __("Update Settings"),
# иконка для графической консоли
'image': 'calculate-core-dispatch,edit-find-replace,computer',
# метод в графической консоли
'gui': True,
# консольная команда
'command': 'cl-dispatch-conf',
# права для запуска метода
'rights': ['configure'],
# объект содержащий модули для действия
'logic': {'UpdateConfigs': setup_package.UpdateConfigs},
# описание действия
'action': ClCoreDispatchAction,
# объект переменных
'datavars': "core",
'native_error': (VariableError, DataVarsError,
setup_package.SetupPackageError),
# значения по умолчанию для переменных этого метода
'setvars': {'cl_action!': 'dispatch'},
# описание груп (список лямбда функций)
'groups': []},
#
# Отобразить сертификаты
#
{
# идентификатор метода
'method_name': "core_view_cert",
# категория метода
'category': __('Utilities'),
# заголовок метода
'title': __("Show Certificates"),
# иконка для графической консоли
'image': 'calculate-core-view-cert,certificate-server,'
'application-certificate',
# метод в графической консоли
'gui': True,
# консольная команда
'command': 'cl-core-view-cert',
# права для запуска метода
'rights': ['certificates'],
# объект содержащий модули для действия
'logic': {'Certificate': certificate.Certificate},
# описание действия
'action': ClCoreViewCert,
# объект переменных
'datavars': "core",
'native_error': (VariableError, DataVarsError),
# значения по умолчанию для переменных этого метода
'setvars': {
'cl_page_max!': lambda dv: len(dv.Get('cl_list_cert_id'))},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(_("Certificates"),
normal=('cl_page_count', 'cl_page_offset'),
next_label=_("Next"))]},
#
# Отобразить детали сертификата
#
{
# идентификатор метода
'method_name': "core_detail_view_cert",
# категория метода
# 'category':__('Utilities'),
# заголовок метода
'title': __("Certificate Details"),
# иконка для графической консоли
'image': None,
# метод в графической консоли
'gui': True,
# права для запуска метода
'rights': ['certificates'],
# объект содержащий модули для действия
'logic': {},
# описание действия
'action': None,
# объект переменных
'datavars': "core",
'native_error': (VariableError, DataVarsError),
# значения по умолчанию для переменных этого метода
'setvars': {},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(_("Certificate details"),
normal=('cl_cert_id', 'cl_cert_groups',
'cl_cert_perms'),
custom_buttons=[('but0', _("Back"),
"core_view_cert",
"button")])]},
#
# Группы
#
{
# идентификатор метода
'method_name': "core_group_show",
# категория метода
'category': __('Utilities'),
# заголовок метода
'title': __("Show Groups"),
# иконка для графической консоли
'image': 'calculate-core-group-show,user-group-properties,'
'view-certificate-import,application-certificate',
# метод в графической консоли
'gui': True,
# консольная команда
'command': 'cl-core-group-show',
# права для запуска метода
'rights': ['core_group'],
# объект содержащий модули для действия
'logic': {'Groups': groups.Groups},
# описание действия
'action': ClCoreGroupShow,
# объект переменных
'datavars': "core",
'native_error': (VariableError, DataVarsError),
# значения по умолчанию для переменных этого метода
'setvars': {
'cl_page_max!': lambda dv: len(dv.Choice('cl_core_group'))},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(_("Groups"),
normal=('cl_page_count', 'cl_page_offset'),
next_label=_("Next"))]},
#
# Отобразить детали группы
#
{
# идентификатор метода
'method_name': "core_detail_group",
# категория метода
# 'category':__('Utilities'),
# заголовок метода
'title': __("Group Details"),
# иконка для графической консоли
'image': None,
# метод в графической консоли
'gui': True,
# права для запуска метода
'rights': ['core_group'],
# объект содержащий модули для действия
'logic': {},
# описание действия
'action': None,
# объект переменных
'datavars': "core",
'native_error': (VariableError, DataVarsError),
# значения по умолчанию для переменных этого метода
'setvars': {},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(_("Group details"),
normal=(
'cl_core_group',
'cl_core_group_rights'),
custom_buttons=[('but0', _("Back"),
"core_group_show",
"button"),
('but1', _("Change"),
"core_group_mod",
"button"),
('but2', _("Delete"),
"core_group_del",
"button")])]},
#
# Изменить группу
#
{
# идентификатор метода
'method_name': "core_group_mod",
# категория метода
# 'category':__('Utilities'),
# заголовок метода
'title': __("Modify Group"),
# иконка для графической консоли
'image': None,
# метод в графической консоли
'gui': True,
# консольная команда
'command': 'cl-core-groupmod',
# права для запуска метода
'rights': ['core_group'],
# объект содержащий модули для действия
'logic': {'Groups': groups.Groups},
# описание действия
'action': ClCoreGroupMod,
# объект переменных
'datavars': "core",
'native_error': (VariableError, DataVarsError),
# значения по умолчанию для переменных этого метода
'setvars': {'cl_action!': 'modify'},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(_("Modify group"),
normal=(
'cl_core_group',
'cl_core_group_rights'),
next_label=_("Done"),
custom_buttons=[('but2', _("Confirm"),
'core_change_group',
"button")])]},
#
# Добавить группу
#
{
# идентификатор метода
'method_name': "core_group_add",
# категория метода
# 'category':__('Utilities'),
# заголовок метода
'title': __("Add a Group"),
# иконка для графической консоли
'image': None,
# метод в графической консоли
'gui': True,
# консольная команда
'command': 'cl-core-groupadd',
# права для запуска метода
'rights': ['core_group'],
# объект содержащий модули для действия
'logic': {'Groups': groups.Groups},
# описание действия
'action': ClCoreGroupAdd,
# объект переменных
'datavars': "core",
'native_error': (VariableError, DataVarsError),
# значения по умолчанию для переменных этого метода
'setvars': {'cl_action!': 'add'},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(_("Add a group"),
normal=(
'cl_core_group',
'cl_core_group_rights'),
next_label=_("Add"))]},
#
# Удалить группу
#
{
# идентификатор метода
'method_name': "core_group_del",
# категория метода
# 'category':__('Utilities'),
# заголовок метода
'title': __("Delete the Group"),
# иконка для графической консоли
'image': None,
# метод в графической консоли
'gui': True,
# консольная команда
'command': 'cl-core-groupdel',
# права для запуска метода
'rights': ['core_group'],
# объект содержащий модули для действия
'logic': {'Groups': groups.Groups},
# описание действия
'action': ClCoreGroupDel,
# объект переменных
'datavars': "core",
'native_error': (VariableError, DataVarsError),
# значения по умолчанию для переменных этого метода
'setvars': {'cl_action!': 'delete'},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(_("Delete the group"),
normal=('cl_core_group',),
next_label=_("Delete"))]},
#
# Запрос на сертификат
#
{
# идентификатор метода
'method_name': "core_request_show",
# категория метода
'category': __('Utilities'),
# заголовок метода
'title': __("Show Requests"),
# иконка для графической консоли
'image': 'calculate-core-request-show,view-certificate-import,'
'application-certificate',
# метод в графической консоли
'gui': True,
# консольная команда
'command': 'cl-core-request-show',
# права для запуска метода
'rights': ['request'],
# объект содержащий модули для действия
'logic': {'Request': request.Request},
# описание действия
'action': ClCoreRequestShow,
# объект переменных
'datavars': "core",
'native_error': (VariableError, DataVarsError),
# значения по умолчанию для переменных этого метода
'setvars': {
'cl_page_max!': lambda dv: len(dv.Get('cl_list_req_id'))},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(_("Show requests"),
normal=('cl_page_count', 'cl_page_offset'),
next_label=_("Next"))]},
#
# Отобразить детали запроса
#
{
# идентификатор метода
'method_name': "core_detail_request",
# категория метода
# 'category':__('Utilities'),
# заголовок метода
'title': __("Request Details"),
# иконка для графической консоли
'image': None,
# метод в графической консоли
'gui': True,
# права для запуска метода
'rights': ['request'],
# объект содержащий модули для действия
'logic': {},
# описание действия
'action': None,
# объект переменных
'datavars': "core",
'native_error': (VariableError, DataVarsError),
# значения по умолчанию для переменных этого метода
'setvars': {},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(_("Group details"),
normal=('cl_req_id', 'cl_req_user_name',
'cl_req_ip',
'cl_req_mac', 'cl_req_date',
'cl_req_location',
'cl_req_group'),
custom_buttons=[('but0', _("Back"),
"core_request_show",
"button"),
('but1', _("Confirm"),
"core_request_confirm",
"button"),
('but2', _("Delete"),
"core_request_del",
"button")])]},
#
# Удалить запрос
#
{
# идентификатор метода
'method_name': "core_request_del",
# категория метода
# 'category':__('Utilities'),
# заголовок метода
'title': __("Delete the Request"),
# иконка для графической консоли
'image': None,
# метод в графической консоли
'gui': True,
# консольная команда
'command': 'cl-core-request-del',
# права для запуска метода
'rights': ['request'],
# объект содержащий модули для действия
'logic': {'Request': request.Request},
# описание действия
'action': ClCoreRequestDel,
# объект переменных
'datavars': "core",
'native_error': (VariableError, DataVarsError),
# значения по умолчанию для переменных этого метода
'setvars': {'cl_action!': 'delete'},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(_("Delete the request"),
normal=('cl_req_id',),
next_label=_("Delete"))]},
#
# Подтвердить запрос
#
{
# идентификатор метода
'method_name': "core_request_confirm",
# категория метода
# 'category':__('Utilities'),
# заголовок метода
'title': __("Confirm the Request"),
# иконка для графической консоли
'image': None,
# метод в графической консоли
'gui': True,
# консольная команда
'command': 'cl-core-request-confirm',
# права для запуска метода
'rights': ['request'],
# объект содержащий модули для действия
'logic': {'Request': request.Request},
# описание действия
'action': ClCoreRequestConfirm,
# объект переменных
'datavars': "core",
'native_error': (VariableError, DataVarsError),
# значения по умолчанию для переменных этого метода
'setvars': {'cl_action!': 'confirm'},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(_("Delete the request"),
normal=('cl_req_id', 'cl_req_group'),
next_label=_("Delete"))]},
#
# установить переменные
#
{
# идентификатор метода
'method_name': "core_variables",
# категория метода
'category': __('Utilities'),
# заголовок метода
'title': __("Setup Variables"),
# иконка для графической консоли
'image': 'calculate-core-variables,applications-versioncontrol,'
'text-x-preview,text-x-makefile',
# метод в графической консоли
'gui': True,
# консольная команда
'command': 'cl-core-variables',
# права для запуска метода
'rights': ['setup_variables'],
# объект содержащий модули для действия
'logic': {'Variables': set_vars.Variables},
# описание действия
'action': ClCoreVariables,
# объект переменных
'datavars': "core",
'native_error': (VariableError, DataVarsError),
# значения по умолчанию для переменных этого метода
'setvars': {},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(_("Setup variables"),
normal=('cl_variable_data',),
next_label=_("Save"))]},
#
# отобразить переменные
#
{
# идентификатор метода
'method_name': "core_variables_show",
# категория метода
'category': __('Utilities'),
# заголовок метода
'title': __("View Variables"),
# иконка для графической консоли
'image': None,
# метод в графической консоли
'gui': False,
# консольная команда
'command': 'cl-core-variables-show',
# права для запуска метода
'rights': ['configure'],
# объект содержащий модули для действия
'logic': {'Variables': set_vars.Variables},
# описание действия
'action': ClCoreVariablesShow,
# объект переменных
'datavars': "core",
'native_error': (VariableError, DataVarsError),
# значения по умолчанию для переменных этого метода
'setvars': {},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(_("Setup variables"),
normal=(
'cl_variable_filter',
'cl_variable_show'),
next_label=_("Show"))]},
#
# Выполнить настройку пакета (cl-config)
#
{
# идентификатор метода
'method_name': "core_config",
# категория метода
'category': __('Configuration'),
# заголовок метода
'title': __("Config"),
# иконка для графической консоли
'image': None,
# метода нет в графической консоли
'gui': False,
# консольная команда
'command': 'cl-config',
# права для запуска метода
'rights': ['configure'],
# объект содержащий модули для действия
'logic': {'UpdateConfigs': setup_package.UpdateConfigs},
# описание действия
'action': ClConfigAction,
# объект переменных
'datavars': "core",
'native_error': (VariableError, DataVarsError,
setup_package.SetupPackageError),
# значения по умолчанию для переменных этого метода
'setvars': {'cl_action!': 'config', 'cl_verbose_set': "on"},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(_("Configure a package"),
normal=('cl_core_pkg_name',),
expert=('cl_core_pkg_category',
'cl_core_pkg_version_opt',
'cl_core_pkg_slot_opt',
'cl_templates_locate',
'cl_verbose_set'),
next_label=_("Run"))]},
#
# отобразить переменные
#
{
# идентификатор метода
'method_name': "core_custom",
# категория метода
'category': __('Utilities'),
# заголовок метода
'title': __("Custom Action"),
# иконка для графической консоли
'image': 'calculate-core-custom,gnome-desktop-config,desktop-config',
# метод в графической консоли
'gui': True,
# консольная команда
'command': 'cl-core-custom',
# права для запуска метода
'rights': ['custom_configure'],
# объект содержащий модули для действия
'logic': {'UpdateConfigs': setup_package.UpdateConfigs},
# описание действия
'action': ClCoreCustomAction,
# объект переменных
'datavars': "core",
'native_error': (VariableError, DataVarsError),
# значения по умолчанию для переменных этого метода
'setvars': {'cl_verbose_set': "on", 'cl_human_edit_set': "on"},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(_("Custom action"),
normal=(
'ac_custom_name', 'cl_human_edit_set',
'cl_verbose_set'),
expert=(
'ur_core_login', 'cl_core_arch_machine',
'cl_templates_locate',
'cl_dispatch_conf'),
next_label=_("Run"))]},
#
# перезапустить сервис calculate core
#
{
# идентификатор метода
'method_name': "core_restart",
# категория метода
'category': __('Utilities'),
# заголовок метода
'title': __("Restart calculate-core"),
# иконка для графической консоли
'image': 'calculate-core-restart,view-refresh',
# метод в графической консоли
'gui': True,
# консольная команда
'command': 'cl-core-restart',
# права для запуска метода
'rights': ['core_restart'],
# объект содержащий модули для действия
'logic': {'UpdateConfigs': setup_package.UpdateConfigs},
# описание действия
'action': ClCoreRestartAction,
# объект переменных
'datavars': "core",
'native_error': (VariableError, DataVarsError),
# значения по умолчанию для переменных этого метода
'setvars': {'cl_action!': 'restart'},
# описание груп (список лямбда функций)
'groups': []},
#
# создание резервной копии настроек
#
{
# идентификатор метода
'method_name': "backup",
# категория метода
'category':__('Backup'),
# заголовок метода
'title': __("Backup"),
# иконка для графической консоли
'image': 'calculate-backup',
# метод в графической консоли
'gui': True,
# консольная команда
'command': 'cl-backup',
# права для запуска метода
'rights': ['backup'],
# объект содержащий модули для действия
'logic': {'Backup': Backup},
# описание действия
'action': ClBackupAction,
# объект переменных
'datavars': "core",
'native_error': (BackupError, VariableError, DataVarsError),
# значения по умолчанию для переменных этого метода
'setvars': {'cl_action!': Actions.Backup},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(_("System backup"),
normal=('cl_backup_verbose_set',),
next_label=_("Run"))]},
#
# восстановление настроек из резервной копии
#
{
# идентификатор метода
'method_name': "backup_restore",
# категория метода
'category':__('Backup'),
# заголовок метода
'title': __("Restore"),
# иконка для графической консоли
'image': 'calculate-backup-restore',
# метод в графической консоли
'gui': True,
# консольная команда
'command': 'cl-backup-restore',
# права для запуска метода
'rights': ['backup'],
# объект содержащий модули для действия
'logic': {'Backup': Backup},
# описание действия
'action': ClBackupRestoreAction,
# объект переменных
'datavars': "core",
'native_error': (BackupError, VariableError, DataVarsError),
# значения по умолчанию для переменных этого метода
'setvars': {'cl_action!': Actions.BackupRestore,
'core.cl_backup_action': Actions.Restore},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(_("System restore"),
normal=('cl_backup_verbose_set',),
brief=('cl_backup_file', 'cl_backup_time'),
next_label=_("Run"))],
'brief': {'next': __("Run"),
'name': __("System restore")}},
]