Package entropy :: Package client :: Package services :: Package system :: Module methods

Source Code for Module entropy.client.services.system.methods

  1  # -*- coding: utf-8 -*- 
  2  """ 
  3   
  4      @author: Fabio Erculiani <lxnay@sabayonlinux.org> 
  5      @contact: lxnay@sabayonlinux.org 
  6      @copyright: Fabio Erculiani 
  7      @license: GPL-2 
  8   
  9      B{Entropy Client Services Base Mixin Interfaces}. 
 10   
 11  """ 
 12  from __future__ import with_statement 
 13  from entropy.i18n import _ 
 14   
15 -class BaseMixin:
16
17 - def __init__(self, SystemManagerClientInstance):
18 self.Manager = SystemManagerClientInstance 19 self.available_commands = { 20 'get_available_commands': { 21 'desc': _("Get a list of remotely available commands"), 22 'params': [], 23 'call': self.get_available_commands, 24 'private': True, 25 }, 26 'get_queue': { 27 'desc': _("Get current queue content"), 28 'params': [ 29 ('extended',bool,_('Extended results'),False,) 30 ], 31 'call': self.get_queue, 32 'private': True, 33 }, 34 'get_queue_item_by_id': { 35 'desc': _("Get queue item using its queue unique identifier"), 36 'params': [('queue_id',int,_('Queue Identifier'),True,)], 37 'call': self.get_queue_item_by_id, 38 'private': True, 39 }, 40 'get_queue_id_stdout': { 41 'desc': _("Get queue stdout/stderr using its queue unique identifier"), 42 'params': [('queue_id',int,_('Queue Identifier'),True,)], 43 'call': self.get_queue_id_stdout, 44 'private': True, 45 }, 46 'get_queue_id_stdout': { 47 'desc': _("Get queued command result using its queue unique identifier"), 48 'params': [('queue_id',int,_('Queue Identifier'),True,)], 49 'call': self.get_queue_id_result, 50 'private': True, 51 }, 52 'remove_queue_ids': { 53 'desc': _("Remove queued commands using their queue unique identifiers"), 54 'params': [('queue_ids',list,_('Queue Identifiers'),True,)], 55 'call': self.remove_queue_ids, 56 'private': True, 57 }, 58 'pause_queue': { 59 'desc': _("Toggle queue pause (True/False)"), 60 'params': [('do_pause',bool,_('Pause or not'),True,)], 61 'call': self.pause_queue, 62 'private': True, 63 }, 64 'kill_processing_queue_id': { 65 'desc': _("Kill a running process through its queue id"), 66 'params': [('queue_id',int,_('Queue Identifier'),True,)], 67 'call': self.kill_processing_queue_id, 68 'private': True, 69 }, 70 'swap_items_in_queue': { 71 'desc': _("Swap items in queue using their queue ids"), 72 'params': [ 73 ('queue_id1',int,_('Queue Identifier'),True,), 74 ('queue_id2',int,_('Queue Identifier'),True,) 75 ], 76 'call': self.swap_items_in_queue, 77 'private': True, 78 }, 79 'get_pinboard_data': { 80 'desc': _("Get pinboard content"), 81 'params': [], 82 'call': self.get_pinboard_data, 83 'private': True, 84 }, 85 'add_to_pinboard': { 86 'desc': _("Add item to pinboard"), 87 'params': [ 88 ('note',basestring,_('Note'),True,), 89 ('extended_text',basestring,_('Extended text'),True,) 90 ], 91 'call': self.add_to_pinboard, 92 'private': True, 93 }, 94 'remove_from_pinboard': { 95 'desc': _("Remove item from pinboard"), 96 'params': [('pinboard_ids',list,_('Pinboard identifiers'),True,)], 97 'call': self.remove_from_pinboard, 98 'private': True, 99 }, 100 'set_pinboard_items_done': { 101 'desc': _("Set pinboard items status (done/not done)"), 102 'params': [ 103 ('pinboard_ids',list,_('Pinboard identifiers'),True,), 104 ('done_status',bool,_('Done status'),True,), 105 ], 106 'call': self.set_pinboard_items_done, 107 'private': True, 108 }, 109 'write_to_running_command_pipe': { 110 'desc': _("Write to a remote running command stdin"), 111 'params': [ 112 ('queue_id',int,_('Queue Identifier'),True,), 113 ('write_to_stdout',bool,_('Write to stdout?'),True,), 114 ('txt',basestring,_('Text'),True,), 115 ], 116 'call': self.write_to_running_command_pipe, 117 'private': True, 118 }, 119 }
120
121 - def get_available_commands(self):
122 return self.Manager.do_cmd(False, "available_commands", [], {})
123
124 - def get_queue(self, extended = False):
125 return self.Manager.do_cmd(True, "get_queue", [extended], {})
126
127 - def get_queue_item_by_id(self, queue_id):
128 return self.Manager.do_cmd(True, "get_queue_item_by_id", [queue_id], {})
129
130 - def get_queue_id_stdout(self, queue_id, last_bytes = 0):
131 return self.Manager.do_cmd(True, "get_queue_id_stdout", [queue_id, last_bytes], {})
132
133 - def get_queue_id_result(self, queue_id):
134 return self.Manager.do_cmd(True, "get_queue_id_result", [queue_id], {})
135
136 - def remove_queue_ids(self, queue_ids):
137 return self.Manager.do_cmd(True, "remove_queue_ids", [queue_ids], {})
138
139 - def pause_queue(self, do_queue):
140 return self.Manager.do_cmd(True, "pause_queue", [do_queue], {})
141
142 - def kill_processing_queue_id(self, queue_id):
143 return self.Manager.do_cmd(True, "kill_processing_queue_id", [queue_id], {})
144
145 - def swap_items_in_queue(self, queue_id1, queue_id2):
146 return self.Manager.do_cmd(True, "swap_items_in_queue", [queue_id1,queue_id2], {})
147
148 - def get_pinboard_data(self):
149 return self.Manager.do_cmd(True, "get_pinboard_data", [], {})
150
151 - def add_to_pinboard(self, note, extended_text):
152 return self.Manager.do_cmd(True, "add_to_pinboard", [note,extended_text], {})
153
154 - def remove_from_pinboard(self, pinboard_ids):
155 return self.Manager.do_cmd(True, "remove_from_pinboard", [pinboard_ids], {})
156
157 - def set_pinboard_items_done(self, pinboard_ids, done_status):
158 return self.Manager.do_cmd(True, "set_pinboard_items_done", [pinboard_ids,done_status], {})
159
160 - def write_to_running_command_pipe(self, queue_id, write_to_stdout, txt):
161 return self.Manager.do_cmd(True, "write_to_running_command_pipe", [queue_id, write_to_stdout, txt], {})
162 163
164 -class Repository(BaseMixin):
165
166 - def __init__(self, *args, **kwargs):
167 BaseMixin.__init__(self, *args, **kwargs) 168 self.available_commands.update({ 169 'sync_spm': { 170 'desc': _("Update Spm Repository (emerge --sync)"), 171 'params': [], 172 'call': self.sync_spm, 173 'private': False, 174 }, 175 'compile_atoms': { 176 'desc': _("Compile specified atoms with specified parameters"), 177 'params': [ 178 ('atoms',list,_('Atoms'),True,), 179 ('pretend',bool,_('Pretend'),False,), 180 ('oneshot',bool,_('Oneshot'),False,), 181 ('verbose',bool,_('Verbose'),False,), 182 ('nocolor',bool,_('No color'),False,), 183 ('fetchonly',bool,_('Fetch only'),False,), 184 ('buildonly',bool,_('Build only'),False,), 185 ('nodeps',bool,_('No dependencies'),False,), 186 ('custom_use',basestring,_('Custom USE'),False,), 187 ('ldflags',basestring,_('Custom LDFLAGS'),False,), 188 ('cflags',basestring,_('Custom CFLAGS'),False,), 189 ], 190 'call': self.compile_atoms, 191 'private': False, 192 }, 193 'spm_remove_atoms': { 194 'desc': _("Remove specified atoms with specified parameters"), 195 'params': [ 196 ('atoms',list,_('Atoms'),True,), 197 ('pretend',bool,_('Pretend'),False,), 198 ('verbose',bool,_('Verbose'),False,), 199 ('nocolor',bool,_('No color'),False,), 200 ], 201 'call': self.spm_remove_atoms, 202 'private': False, 203 }, 204 'get_spm_categories_updates': { 205 'desc': _("Get SPM updates for the specified categories"), 206 'params': [('categories',list,_('Categories'),True,)], 207 'call': self.get_spm_categories_updates, 208 'private': False, 209 }, 210 'get_spm_categories_installed': { 211 'desc': _("Get SPM installed packages for the specified categories"), 212 'params': [('categories',list,_('Categories'),True,)], 213 'call': self.get_spm_categories_installed, 214 'private': False, 215 }, 216 'enable_uses_for_atoms': { 217 'desc': _("Enable USE flags for the specified atoms"), 218 'params': [ 219 ('atoms',list,_('Atoms'),True,), 220 ('useflags',list,_('USE flags'),True,) 221 ], 222 'call': self.enable_uses_for_atoms, 223 'private': False, 224 }, 225 'disable_uses_for_atoms': { 226 'desc': _("Disable USE flags for the specified atoms"), 227 'params': [ 228 ('atoms',list,_('Atoms'),True,), 229 ('useflags',list,_('USE flags'),True,) 230 ], 231 'call': self.disable_uses_for_atoms, 232 'private': False, 233 }, 234 'get_spm_atoms_info': { 235 'desc': _("Get info for the specified atoms"), 236 'params': [('atoms',list,_('Atoms'),True,)], 237 'call': self.get_spm_atoms_info, 238 'private': False, 239 }, 240 'run_spm_info': { 241 'desc': _("Run SPM info command"), 242 'params': [], 243 'call': self.run_spm_info, 244 'private': False, 245 }, 246 'run_custom_shell_command': { 247 'desc': _("Run custom shell command"), 248 'params': [ 249 ('command',basestring,_('Command'),True,) 250 ], 251 'call': self.run_custom_shell_command, 252 'private': False, 253 }, 254 'get_spm_glsa_data': { 255 'desc': _("Get Spm security updates information"), 256 'params': [ 257 ('list_type',basestring,_('List type (affected,new,all)'),True,) 258 ], 259 'call': self.get_spm_glsa_data, 260 'private': False, 261 }, 262 'get_available_repositories': { 263 'desc': _("Get information about available Entropy repositories"), 264 'params': [], 265 'call': self.get_available_repositories, 266 'private': False, 267 }, 268 'set_default_repository': { 269 'desc': _("Set default Entropy Server repository"), 270 'params': [ 271 ('repoid',basestring,_('Repository Identifier'),True,) 272 ], 273 'call': self.set_default_repository, 274 'private': False, 275 }, 276 'get_available_entropy_packages': { 277 'desc': _("Get available packages inside the specified repository"), 278 'params': [ 279 ('repoid',basestring,_('Repository Identifier'),True,) 280 ], 281 'call': self.get_available_entropy_packages, 282 'private': False, 283 }, 284 'get_entropy_idpackage_information': { 285 'desc': _("Get idpackage metadata using its idpackage in the specified repository"), 286 'params': [ 287 ('idpackage',int,_('Package Identifier'),True,), 288 ('repoid',basestring,_('Repository Identifier'),True,) 289 ], 290 'call': self.get_entropy_idpackage_information, 291 'private': False, 292 }, 293 'remove_entropy_packages': { 294 'desc': _("Remove the specified Entropy package matches (idpackage,repoid)"), 295 'params': [ 296 ('matched_atoms',list,_('Matched atoms'),True,) 297 ], 298 'call': self.remove_entropy_packages, 299 'private': False, 300 }, 301 'search_entropy_packages': { 302 'desc': _("Search Entropy packages using a defined set of search types in the specified repository"), 303 'params': [ 304 ('search_type',basestring,_('Search type'),True,), 305 ('search_string',basestring,_('Search string'),True,), 306 ('repoid',basestring,_('Repository Identifier'),True,) 307 ], 308 'call': self.search_entropy_packages, 309 'private': False, 310 }, 311 'move_entropy_packages_to_repository': { 312 'desc': _("Move or copy a package from a repository to another"), 313 'params': [ 314 ('idpackages',list,_('Package identifiers'),True,), 315 ('from_repo',basestring,_('From repository'),True,), 316 ('to_repo',basestring,_('To repository'),True,), 317 ('do_copy',bool,_('Copy instead of move?'),False,) 318 ], 319 'call': self.search_entropy_packages, 320 'private': False, 321 }, 322 'scan_entropy_packages_database_changes': { 323 'desc': _("Scan Spm package changes and retrieve a list of action that should be run on the repositories"), 324 'params': [], 325 'call': self.scan_entropy_packages_database_changes, 326 'private': False, 327 }, 328 'run_entropy_database_updates': { 329 'desc': _("Run Entropy database updates"), 330 'params': [ 331 ('to_add',list,_('Matches to add from Spm'),True,), 332 ('to_remove',list,_('Matches to remove from repository database'),True,), 333 ('to_inject',list,_('Matches to inject on repository database'),True,), 334 ], 335 'call': self.run_entropy_database_updates, 336 'private': False, 337 }, 338 'run_entropy_dependency_test': { 339 'desc': _("Run Entropy dependency test"), 340 'params': [], 341 'call': self.run_entropy_dependency_test, 342 'private': False, 343 }, 344 'run_entropy_library_test': { 345 'desc': _("Run Entropy library test"), 346 'params': [], 347 'call': self.run_entropy_library_test, 348 'private': False, 349 }, 350 'run_entropy_treeupdates': { 351 'desc': _("Run Entropy tree updates"), 352 'params': [ 353 ('repoid',basestring,_('Repository Identifier'),True,), 354 ], 355 'call': self.run_entropy_treeupdates, 356 'private': False, 357 }, 358 'scan_entropy_mirror_updates': { 359 'desc': _("Scan for Mirror updates and retrieve a list of action that should be run"), 360 'params': [ 361 ('repositories',list,_('list of repository identifiers'),True,), 362 ], 363 'call': self.scan_entropy_mirror_updates, 364 'private': False, 365 }, 366 'run_entropy_mirror_updates': { 367 'desc': _("Run Mirror updates for the provided repositories and its data"), 368 'params': [ 369 ('repository_data',dict,_('composed repository data'),True,), 370 ], 371 'call': self.run_entropy_mirror_updates, 372 'private': False, 373 }, 374 'run_entropy_checksum_test': { 375 'desc': _("Run Entropy packages digest verification test"), 376 'params': [ 377 ('repoid',basestring,_('Repository Identifier'),True,), 378 ('mode',basestring,_('Check mode'),False,), 379 ], 380 'call': self.run_entropy_mirror_updates, 381 'private': False, 382 }, 383 'get_notice_board': { 384 'desc': _("Get repository notice board"), 385 'params': [('repoid',basestring,_('Repository Identifier'),True,),], 386 'call': self.get_notice_board, 387 'private': False, 388 }, 389 'remove_notice_board_entries': { 390 'desc': _("Remove notice board entry"), 391 'params': [ 392 ('repoid',basestring,_('Repository Identifier'),True,), 393 ('entry_ids',list,_('Entry Identifiers'),True,), 394 ], 395 'call': self.remove_notice_board_entries, 396 'private': False, 397 }, 398 'add_notice_board_entry': { 399 'desc': _("Add notice board entry"), 400 'params': [ 401 ('repoid',basestring,_('Repository Identifier'),True,), 402 ('title',basestring,_('Title'),True,), 403 ('notice_text',basestring,_('Text'),True,), 404 ('link',basestring,_('Notice link'),True,), 405 ], 406 'call': self.add_notice_board_entry, 407 'private': False, 408 }, 409 })
410
411 - def sync_spm(self):
412 return self.Manager.do_cmd(True, "sync_spm", [], {})
413
414 - def compile_atoms(self, atoms, pretend = False, oneshot = False, verbose = True, nocolor = True, fetchonly = False, buildonly = False, nodeps = False, custom_use = '', ldflags = '', cflags = ''):
415 return self.Manager.do_cmd( 416 True, 417 "compile_atoms", 418 [atoms], 419 { 420 'pretend': pretend, 421 'oneshot': oneshot, 422 'verbose': verbose, 423 'nocolor': nocolor, 424 'fetchonly': fetchonly, 425 'buildonly': buildonly, 426 'nodeps': nodeps, 427 'custom_use': custom_use, 428 'ldflags': ldflags, 429 'cflags': cflags, 430 } 431 )
432
433 - def spm_remove_atoms(self, atoms, pretend = True, verbose = True, nocolor = True):
434 return self.Manager.do_cmd( 435 True, 436 "spm_remove_atoms", 437 [atoms], 438 { 439 'pretend': pretend, 440 'verbose': verbose, 441 'nocolor': nocolor, 442 } 443 )
444
445 - def get_spm_categories_updates(self, categories):
446 return self.Manager.do_cmd(True, "get_spm_categories_updates", [categories], {})
447
448 - def get_spm_categories_installed(self, categories):
449 return self.Manager.do_cmd(True, "get_spm_categories_installed", [categories], {})
450
451 - def enable_uses_for_atoms(self, atoms, useflags):
452 return self.Manager.do_cmd(True, "enable_uses_for_atoms", [atoms,useflags], {})
453
454 - def disable_uses_for_atoms(self, atoms, useflags):
455 return self.Manager.do_cmd(True, "disable_uses_for_atoms", [atoms,useflags], {})
456
457 - def get_spm_atoms_info(self, atoms):
458 return self.Manager.do_cmd(True, "get_spm_atoms_info", [atoms], {})
459
460 - def run_spm_info(self):
461 return self.Manager.do_cmd(True, "run_spm_info", [], {})
462
463 - def run_custom_shell_command(self, command):
464 return self.Manager.do_cmd(True, "run_custom_shell_command", [command], {})
465
466 - def get_spm_glsa_data(self, list_type = "affected"):
467 return self.Manager.do_cmd(True, "get_spm_glsa_data", [list_type], {})
468
470 return self.Manager.do_cmd(True, "get_available_repositories", [], {})
471
472 - def set_default_repository(self, repoid):
473 return self.Manager.do_cmd(True, "set_default_repository", [repoid], {})
474
475 - def get_available_entropy_packages(self, repoid):
476 return self.Manager.do_cmd(True, "get_available_entropy_packages", [repoid], {})
477
478 - def get_entropy_idpackage_information(self, idpackage, repoid):
479 return self.Manager.do_cmd(True, "get_entropy_idpackage_information", [idpackage,repoid], {})
480
481 - def remove_entropy_packages(self, matched_atoms):
482 return self.Manager.do_cmd(True, "remove_entropy_packages", [matched_atoms], {})
483
484 - def search_entropy_packages(self, search_type, search_string, repoid):
485 return self.Manager.do_cmd(True, "search_entropy_packages", [search_type,search_string,repoid], {})
486
487 - def move_entropy_packages_to_repository(self, idpackages, from_repo, to_repo, do_copy = False):
488 return self.Manager.do_cmd(True, "move_entropy_packages_to_repository", [idpackages,from_repo,to_repo, do_copy], {})
489
491 return self.Manager.do_cmd(True, "scan_entropy_packages_database_changes", [], {})
492
493 - def run_entropy_database_updates(self, to_add, to_remove, to_inject):
494 return self.Manager.do_cmd(True, "run_entropy_database_updates", [to_add,to_remove,to_inject], {})
495
497 return self.Manager.do_cmd(True, "run_entropy_dependency_test", [], {})
498
499 - def run_entropy_library_test(self):
500 return self.Manager.do_cmd(True, "run_entropy_library_test", [], {})
501
502 - def run_entropy_treeupdates(self, repoid):
503 return self.Manager.do_cmd(True, "run_entropy_treeupdates", [repoid], {})
504
505 - def scan_entropy_mirror_updates(self, repositories):
506 return self.Manager.do_cmd(True, "scan_entropy_mirror_updates", [repositories], {})
507
508 - def run_entropy_mirror_updates(self, repository_data):
509 return self.Manager.do_cmd(True, "run_entropy_mirror_updates", [repository_data], {})
510
511 - def run_entropy_checksum_test(self, repoid, mode = "local"):
512 return self.Manager.do_cmd(True, "run_entropy_checksum_test", [repoid, mode], {})
513
514 - def get_notice_board(self, repoid):
515 return self.Manager.do_cmd(True, "get_notice_board", [repoid], {})
516
517 - def remove_notice_board_entries(self, repoid, entry_ids):
518 return self.Manager.do_cmd(True, "remove_notice_board_entries", [repoid,entry_ids], {})
519
520 - def add_notice_board_entry(self, repoid, title, notice_text, link):
521 return self.Manager.do_cmd(True, "add_notice_board_entry", [repoid,title,notice_text,link], {})
522