示例#1
0
 def _rename_schedule(self, source, destination, force=0):
     source_sched = self._get_schedule_node(source)
     if not force and source_sched.get_meta().get('immutable'):
         err_msg = 'Runtime renaming of schedule %s is not supported' % source_sched.name
         raise EImmutable(err_msg)
     new_name = destination.split('/')[-1]
     orig_sched_path = source_sched.as_node_url()
     cd = source_sched.configuration()
     cd['name'] = new_name
     source_sched.configure(cd)
     try:
         PERSISTANCE_MANAGER.move_sched(orig_sched_path,
                                        source_sched.as_node_url(),
                                        serialize_node(source_sched), True)
     except:
         msglog.exception()
示例#2
0
 def _rename_schedule(self, source, destination, force=0):
     source_sched = self._get_schedule_node(source)
     if not force and source_sched.get_meta().get('immutable'):
         err_msg = 'Runtime renaming of schedule %s is not supported' % source_sched.name
         raise EImmutable(err_msg)
     new_name = destination.split('/')[-1]
     orig_sched_path = source_sched.as_node_url()
     cd = source_sched.configuration()
     cd['name'] = new_name
     source_sched.configure(cd)
     try:
         PERSISTANCE_MANAGER.move_sched(
             orig_sched_path,
             source_sched.as_node_url(),
             serialize_node(source_sched),
             True
             )
     except:
         msglog.exception()
示例#3
0
     if self._is_rename(source, destination):
         return self._rename_schedule(source, destination, force)
     source_sched = self._get_schedule_node(source)
     source_sched.set_override(True)
     orig_sched_path = source_sched.as_node_url()
     dest_sched = self._get_schedule_node(destination)
     if dest_sched.has_child(source_sched.name):
         raise ENameInUse(source_sched.name)
     dest_sched_path = dest_sched.as_node_url()
     cd = source_sched.configuration()
     cd['parent'] = dest_sched
     source_sched.configure(cd)
     try:
         PERSISTANCE_MANAGER.move_sched(
             orig_sched_path, 
             dest_sched.as_node_url(), 
             serialize_node(source_sched)
             )
     except:
         msglog.exception()
     if dest_sched is self:
         source_sched.set_override(True)
     source_sched.stop()
     source_sched.start()
     self.event_generate(
         ScheduleMovedEvent(self, source_sched, orig_sched_path, dest_sched_path)
         )
         
 def _is_rename(self, source, destination):
     if is_node(source):
         return source is destination
示例#4
0
            return
        if self._is_rename(source, destination):
            return self._rename_schedule(source, destination, force)
        source_sched = self._get_schedule_node(source)
        source_sched.set_override(True)
        orig_sched_path = source_sched.as_node_url()
        dest_sched = self._get_schedule_node(destination)
        if dest_sched.has_child(source_sched.name):
            raise ENameInUse(source_sched.name)
        dest_sched_path = dest_sched.as_node_url()
        cd = source_sched.configuration()
        cd['parent'] = dest_sched
        source_sched.configure(cd)
        try:
            PERSISTANCE_MANAGER.move_sched(orig_sched_path,
                                           dest_sched.as_node_url(),
                                           serialize_node(source_sched))
        except:
            msglog.exception()
        if dest_sched is self:
            source_sched.set_override(True)
        source_sched.stop()
        source_sched.start()
        self.event_generate(
            ScheduleMovedEvent(self, source_sched, orig_sched_path,
                               dest_sched_path))

    def _is_rename(self, source, destination):
        if is_node(source):
            return source is destination
        s_elements = source.split('/')