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()
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()
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
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('/')