Exemplo n.º 1
0
 def update_node(self, node):
     with SchedulerTransaction(self, self.impersonator.token):
         if node.get('num_cores'):
             self.run_process('qmgr -c "set node %s np = %s"' %
                              (node['name'], str(node['num_cores'])))
         if node.get('other'):
             self.run_process('qmgr -c "set node %s properties = %s"' %
                              (node['name'], node['other']))
         return self.get_nodes()
Exemplo n.º 2
0
    def update_cache(self):
        with SchedulerTransaction(self.scheduler, self.service_token):
            nodes = self.scheduler.get_nodes()
            disk_usage = self.scheduler.get_disk_usage()
            status = SchedulerStatus(nodes, disk_usage)
            jobs = self.scheduler.get_jobs()

        self.cache.set("status", status.to_JSON())
        self.cache.set("jobs", jobs.pickle())                
Exemplo n.º 3
0
    def update_queue(self, queue):
        with SchedulerTransaction(self, self.impersonator.token):
            max_nodes = 1
            max_procs = 1
            def_nodes = 1
            def_procs = 1

            for section in queue.settings_sections:
                for setting in section.settings:
                    #set access controls - values come as csv
                    if setting.name in ["acl_groups", "acl_users"]:
                        values = setting.value.split(",")
                        if len(values) == 1 and values[0] == "":
                            self.run_process(
                                'qmgr -c "set queue %s %s = temp"' %
                                (queue.queue_name, setting.name))
                            self.run_process(
                                'qmgr -c "set queue %s %s -= temp"' %
                                (queue.queue_name, setting.name))
                        else:
                            for index, value in enumerate(values):
                                value = value.strip()
                                if index == 0:
                                    self.run_process(
                                        'qmgr -c "set queue %s %s = %s"' %
                                        (queue.queue_name, setting.name,
                                         value))
                                else:
                                    self.run_process(
                                        'qmgr -c "set queue %s %s += %s"' %
                                        (queue.queue_name, setting.name,
                                         value))
                    elif setting.name == "resources_max.nodes":
                        max_nodes = setting.value
                    elif setting.name == "resources_max.ncpus":
                        max_procs = setting.value
                    elif setting.name == "resources_default.nodes":
                        def_nodes = setting.value
                    elif setting.name == "resources_default.ncpus":
                        def_procs = setting.value

                    self.run_process(
                        'qmgr -c "set queue %s %s = %s"' %
                        (queue.queue_name, setting.name, str(setting.value)))

            self.run_process(
                'qmgr -c "set queue %s resources_max.nodes = %s:ppn=%s"' %
                (queue.queue_name, str(max_nodes), str(max_procs)))
            self.run_process(
                'qmgr -c "set queue %s resources_default.nodes = %s:ppn=%s"' %
                (queue.queue_name, def_nodes, def_procs))

            return self.get_queues()
Exemplo n.º 4
0
def _run_job(scheduler, job_name, job_dir, script_name, output_log, error_log, settings, hold, commands):
    with SchedulerTransaction(scheduler, scheduler.impersonator.token):
        script = scheduler.create_job_script(
            job_name, 
            job_dir, 
            script_name, 
            output_log, 
            error_log, 
            settings, 
            hold, 
            commands
        )
        job_id = scheduler.execute_job_script(script)
    return jsonify({"job_id": job_id})
Exemplo n.º 5
0
 def delete_node(self, id):
     with SchedulerTransaction(self, self.impersonator.token):
         self.run_process('qmgr -c "delete node %s"' % id)
         return self.get_nodes()
Exemplo n.º 6
0
 def add_node(self, node):
     with SchedulerTransaction(self, self.impersonator.token):
         self.run_process('qmgr -c "create node %s"' % node['name'])
         return self.update_node(node)
Exemplo n.º 7
0
 def delete_queue(self, queue_name):
     with SchedulerTransaction(self, self.impersonator.token):
         self.run_process('qmgr -c "delete queue %s"' % queue_name)
         return self.get_queues()