def create_update_commands(): # TODO: ensure that this method is called by taskmanager # and not directly by XMLRPC # Creating root context ctx = SecurityContext() ctx.userid = 'root' # Get active computer manager computer_manager = ComputerManager().getManagerName() if computer_manager == 'inventory': dyngroup_pattern = '%d==inventory::Hardware/OperatingSystem==%s' elif computer_manager == 'glpi': dyngroup_pattern = '%d==glpi::Operating system==%s' else: logging.getLogger().error( 'Update module: Unsupported computer manager %s' % computer_manager) return False # Get all enabled os_classes os_classes = updateDatabase().get_os_classes({'filters': {'enabled': 1}}) # Create update command for enabled os_classes for os_class in os_classes['data']: patterns = os_class['pattern'].split('||') request = [] equ_bool = [] for i in xrange(len(patterns)): request.append(dyngroup_pattern % (i + 1, patterns[i])) equ_bool.append(str(i + 1)) request = '||'.join(request) equ_bool = 'OR(%s)' % ','.join(equ_bool) targets = ComputerManager().getComputersList(ctx, { 'request': request, 'equ_bool': equ_bool }).keys() # Fetching all targets for uuid in targets: machine_id = int(uuid.lower().replace('uuid', '')) updates = updateDatabase().get_eligible_updates_for_host( machine_id) update_list = [update['uuid'] for update in updates] # Create update command for this host with update_list create_update_command(ctx, [uuid], update_list) return True
def create_update_commands(): # TODO: ensure that this method is called by taskmanager # and not directly by XMLRPC # Creating root context ctx = SecurityContext() ctx.userid = 'root' # Get active computer manager computer_manager = ComputerManager().getManagerName() if computer_manager == 'inventory': dyngroup_pattern = '%d==inventory::Hardware/OperatingSystem==%s' elif computer_manager == 'glpi': dyngroup_pattern = '%d==glpi::Operating system==%s' else: logging.getLogger().error( 'Update module: Unsupported computer manager %s' % computer_manager) return False # Get all enabled os_classes os_classes = updateDatabase().get_os_classes({'filters': {'enabled': 1}}) # Create update command for enabled os_classes for os_class in os_classes['data']: patterns = os_class['pattern'].split('||') request = [] equ_bool = [] for i in xrange(len(patterns)): request.append(dyngroup_pattern % (i + 1, patterns[i])) equ_bool.append(str(i + 1)) request = '||'.join(request) equ_bool = 'OR(%s)' % ','.join(equ_bool) targets = ComputerManager().getComputersList( ctx, { 'request': request, 'equ_bool': equ_bool}).keys() # Fetching all targets for uuid in targets: machine_id = int(uuid.lower().replace('uuid', '')) updates = updateDatabase().get_eligible_updates_for_host( machine_id) update_list = [update['uuid'] for update in updates] # Create update command for this host with update_list create_update_command(ctx, [uuid], update_list) return True
def create_update_commands(): # TODO: ensure that this method is called by taskmanager # and not directly by XMLRPC # Creating root context ctx = SecurityContext() ctx.userid = 'root' targets = _get_updatable_computers(ctx) # Fetching all targets for uuid in targets: machine_id = int(uuid.lower().replace('uuid', '')) updates = updateDatabase().get_eligible_updates_for_host(machine_id) update_list = [update['uuid'] for update in updates] # Create update command for this host with update_list create_update_command(ctx, [uuid], update_list) return True
def create_update_commands(): # TODO: ensure that this method is called by taskmanager # and not directly by XMLRPC # Creating root context ctx = SecurityContext() ctx.userid = 'root' targets = _get_updatable_computers(ctx) # Fetching all targets for uuid in targets: machine_id = int(uuid.lower().replace('uuid', '')) updates = updateDatabase().get_eligible_updates_for_host( machine_id) update_list = [update['uuid'] for update in updates] # Create update command for this host with update_list create_update_command(ctx, [uuid], update_list) return True