Example #1
0
  def test_dirs(self):
    if autoplatform.platform == "windows":
      self.assertNotRaises(autoplatform.personaldir(), KeyError)
      self.assertNotRaises(autoplatform.systemdir(), KeyError)
    elif autoplatform.platform in ("linux", "mac"):
      personal = autoplatform.personaldir()
      self.assertTrue(personal.endswith(".automaton/") and
                        not os.path.isfile(personal))
      self.assertEqual(autoplatform.systemdir(), "/etc/automaton/")
    else:
      raise Exception("System platform not in accepted list of platforms.")

    self.assertTrue(os.path.isdir(autoplatform.localdir()))
    self.assertIsNone(
      autoplatform.get_existing_file(r"__\/|illegal", strict=True))
    self.assertIsNotNone(
      autoplatform.get_existing_file(r"__\/|illegal", strict=False))
Example #2
0
    def test_dirs(self):
        if autoplatform.platform == "windows":
            self.assertNotRaises(autoplatform.personaldir(), KeyError)
            self.assertNotRaises(autoplatform.systemdir(), KeyError)
        elif autoplatform.platform in ("linux", "mac"):
            personal = autoplatform.personaldir()
            self.assertTrue(
                personal.endswith(".automaton/")
                and not os.path.isfile(personal))
            self.assertEqual(autoplatform.systemdir(), "/etc/automaton/")
        else:
            raise Exception(
                "System platform not in accepted list of platforms.")

        self.assertTrue(os.path.isdir(autoplatform.localdir()))
        self.assertIsNone(
            autoplatform.get_existing_file(r"__\/|illegal", strict=True))
        self.assertIsNotNone(
            autoplatform.get_existing_file(r"__\/|illegal", strict=False))
Example #3
0
    def __init__(self, registrar):
        super(Schedule, self).__init__(registrar)
        self.settings = ConfigParser.SafeConfigParser()
        self.settings.read(utils.get_plugin_settings_paths(__name__))

        if not self.settings.has_option("Settings", "queue_file"):
            self.settings.set("Settings", "queue_file",
                              autoplatform.get_existing_file("schedule.queue"))
        else:
            if not os.access(self.settings.get("Settings", "queue_file"),
                             os.W_OK):
                self.settings.set("Settings", "queue_file", None)

        self.queue = PersistentPriorityQueue(
            storagefile=self.settings.get("Settings", "queue_file"))

        if (not self.settings.has_option("Settings", "queue_file")
                or self.settings.get("Settings", "queue_file") is None):
            logger.log(
                "Scheduler could not find an existing queue file and "
                "no write access to create a new one. Any scheduled tasks "
                "will disappear once server is stopped.")

        self.event = threading.Event()
        thread = threading.Thread(target=self._executionthread)
        thread.setDaemon(True)
        thread.start()

        self.registrar.register_service(
            "schedule",
            self.execute,
            grammar={
                "at": ["at"],
                "in": ["in"],
                "command": [],
            },
            usage=
            ("USAGE: schedule WHAT [at WHEN] | [in WHEN]\n"
             "Schedules a command to be run at a specific time, repeating if\n"
             "necessary."),
            namespace=__name__)
Example #4
0
  def __init__(self, registrar):
    super(Schedule, self).__init__(registrar)
    self.settings = ConfigParser.SafeConfigParser()
    self.settings.read(utils.get_plugin_settings_paths(__name__))

    if not self.settings.has_option("Settings", "queue_file"):
      self.settings.set("Settings", "queue_file",
        autoplatform.get_existing_file("schedule.queue"))
    else:
      if not os.access(self.settings.get("Settings", "queue_file"), os.W_OK):
        self.settings.set("Settings", "queue_file", None)

    self.queue = PersistentPriorityQueue(
      storagefile=self.settings.get("Settings", "queue_file"))

    if (not self.settings.has_option("Settings", "queue_file") or
        self.settings.get("Settings", "queue_file") is None):
      logger.log("Scheduler could not find an existing queue file and "
                 "no write access to create a new one. Any scheduled tasks "
                 "will disappear once server is stopped.")

    self.event = threading.Event()
    thread = threading.Thread(target=self._executionthread)
    thread.setDaemon(True)
    thread.start()

    self.registrar.register_service("schedule", self.execute,
      grammar={
        "at": ["at"],
        "in": ["in"],
        "command": [],
      },
      usage=("USAGE: schedule WHAT [at WHEN] | [in WHEN]\n"
            "Schedules a command to be run at a specific time, repeating if\n"
            "necessary."),
      namespace=__name__)