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.

169 lines
8.3 KiB

  1. #-*- coding: utf-8 -*-
  2. # Copyright 2010-2013 Calculate Ltd. http://www.calculate-linux.org
  3. #
  4. # Licensed under the Apache License, Version 2.0 (the "License");
  5. # you may not use this file except in compliance with the License.
  6. # You may obtain a copy of the License at
  7. #
  8. # http://www.apache.org/licenses/LICENSE-2.0
  9. #
  10. # Unless required by applicable law or agreed to in writing, software
  11. # distributed under the License is distributed on an "AS IS" BASIS,
  12. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. # See the License for the specific language governing permissions and
  14. # limitations under the License.
  15. import sys
  16. from calculate.lib.datavars import VariableError,DataVarsError,DataVars
  17. from calculate.core.server.func import WsdlBase
  18. from calculate.install.install import InstallError
  19. from calculate.update.update import Update,UpdateError
  20. from calculate.update.package_tools import GitError
  21. from utils.cl_update import ClUpdateAction
  22. from utils.cl_update_profile import ClUpdateProfileAction
  23. from utils.cl_setup_update import ClSetupUpdateAction
  24. from calculate.lib.cl_lang import setLocalTranslate,getLazyLocalTranslate
  25. setLocalTranslate('cl_update3',sys.modules[__name__])
  26. __ = getLazyLocalTranslate(_)
  27. class Wsdl(WsdlBase):
  28. methods = [
  29. #
  30. # Обновить текущую конфигурацию системы (world,ревизия)
  31. #
  32. {
  33. # идентификатор метода
  34. 'method_name': "update",
  35. # категория метода
  36. 'category': __('Update'),
  37. # заголовок метода
  38. 'title': __("Update the System"),
  39. # иконка для графической консоли
  40. 'image': 'software-properties,preferences-desktop',
  41. # метод присутствует в графической консоли
  42. 'gui': True,
  43. # консольная команда
  44. 'command': 'cl-update',
  45. # права для запуска метода
  46. 'rights': ['update'],
  47. # объект содержащий модули для действия
  48. 'logic': {'Update': Update},
  49. # описание действия
  50. 'action': ClUpdateAction,
  51. # объект переменных
  52. 'datavars': "update",
  53. 'native_error': (VariableError, DataVarsError,
  54. InstallError, UpdateError, GitError),
  55. # значения по умолчанию для переменных этого метода
  56. 'setvars': {'cl_action!': 'sync'},
  57. # описание груп (список лямбда функций)
  58. 'groups': [
  59. lambda group: group(_("Update the system"),
  60. normal=(),
  61. expert=(
  62. 'cl_update_sync_only_set',
  63. 'cl_update_other_set',
  64. 'cl_update_pretend_set',
  65. 'cl_update_sync_rep',
  66. 'cl_update_emergelist_set',
  67. 'cl_update_world',
  68. 'cl_update_egencache_force',
  69. 'cl_update_eixupdate_force',
  70. 'cl_update_wait_another_set',
  71. 'cl_update_branch',
  72. 'cl_update_autocheck_schedule_set',
  73. 'cl_templates_locate',
  74. 'cl_verbose_set', 'cl_dispatch_conf'),
  75. next_label=_("Update"))]},
  76. #
  77. # Сменить профиль
  78. #
  79. {
  80. # идентификатор метода
  81. 'method_name': "update_profile",
  82. # категория метода
  83. 'category': __('Update'),
  84. # заголовок метода
  85. 'title': __("Change the Profile"),
  86. # иконка для графической консоли
  87. 'image': 'preferences-system',
  88. # метод присутствует в графической консоли
  89. 'gui': True,
  90. # консольная команда
  91. 'command': 'cl-update-profile',
  92. # права для запуска метода
  93. 'rights': ['change_profile'],
  94. # объект содержащий модули для действия
  95. 'logic': {'Update': Update},
  96. # описание действия
  97. 'action': ClUpdateProfileAction,
  98. # объект переменных
  99. 'datavars': "update",
  100. 'native_error': (VariableError, DataVarsError,
  101. InstallError, UpdateError, GitError),
  102. # значения по умолчанию для переменных этого метода
  103. 'setvars': {'cl_action!': 'update_profile'},
  104. # описание груп (список лямбда функций)
  105. 'groups': [
  106. lambda group: group(_("Repository"),
  107. brief=('cl_update_profile_repo_name',),
  108. hide=('cl_update_profile_rep',
  109. 'cl_update_profile_sync_set'),
  110. normal=('cl_update_profile_rep',),
  111. expert=('cl_update_profile_sync_set',
  112. 'cl_update_profile_branch')),
  113. lambda group: group(_("Profile"),
  114. normal=('cl_update_profile_system',
  115. 'cl_update_world'),
  116. expert=('cl_update_templates_locate',
  117. 'cl_verbose_set',
  118. 'cl_dispatch_conf'),
  119. hide=('cl_update_templates_locate',
  120. 'cl_verbose_set',
  121. 'cl_dispatch_conf'),
  122. brief=('cl_update_profile_system',
  123. 'cl_update_profile_linux_fullname',
  124. 'cl_update_profile_depend_data')
  125. )],
  126. 'brief': {'next': __("Perform"),
  127. 'name': __("Set the profile")}},
  128. #
  129. # Настроить автопроверку обновлений
  130. #
  131. {
  132. # идентификатор метода
  133. 'method_name': "setup_update",
  134. # категория метода
  135. 'category': __('Configuration'),
  136. # заголовок метода
  137. 'title': __("Updates"),
  138. # иконка для графической консоли
  139. 'image': 'calculate-update',
  140. # метод присутствует в графической консоли
  141. 'gui': True,
  142. # консольная команда
  143. 'command': 'cl-setup-update',
  144. # права для запуска метода
  145. 'rights': ['update'],
  146. # объект содержащий модули для действия
  147. 'logic': {'Update': Update},
  148. # описание действия
  149. 'action': ClSetupUpdateAction,
  150. # объект переменных
  151. 'datavars': "update",
  152. 'native_error': (VariableError, DataVarsError,
  153. InstallError, UpdateError, GitError),
  154. # значения по умолчанию для переменных этого метода
  155. 'setvars': {'cl_action!': 'merge'},
  156. # описание груп (список лямбда функций)
  157. 'groups': [
  158. lambda group: group(_("Updates autocheck settings"),
  159. normal=('cl_update_autocheck_set',
  160. 'cl_update_autocheck_interval'),
  161. next_label=_("Perform"))]},
  162. ]