def write_test(self):
     with tempfile.NamedTemporaryFile(mode="wt") as testconfig:
         scf = SimpleConfigFile()
         scf.set(('key1', 'value1'))
         scf.write(testconfig.name)
         testconfig.flush()
         self.assertEqual(open(testconfig.name).read(), 'KEY1=value1\n')
 def write(self, filename=None, use_tmp=False):
     if self._dirty or filename:
         # ifcfg-rh is using inotify IN_CLOSE_WRITE event so we don't use
         # temporary file for new configuration
         ifcfglog.debug("IfcfgFile.write %s:\n%s", self.filename, self.__str__())
         SimpleConfigFile.write(self, filename, use_tmp=use_tmp)
         self._dirty = False
 def read_test(self):
     with tempfile.NamedTemporaryFile(mode="wt") as testconfig:
         scf = SimpleConfigFile()
         open(testconfig.name, 'w').write('KEY1="value1"\n')
         testconfig.flush()
         scf.read(testconfig.name)
         self.assertEqual(scf.get('key1'), 'value1')
Beispiel #4
0
 def test_read(self):
     with tempfile.NamedTemporaryFile(mode="wt") as testconfig:
         scf = SimpleConfigFile()
         open(testconfig.name, 'w').write('KEY1="value1"\n')
         testconfig.flush()
         scf.read(testconfig.name)
         assert scf.get('key1') == 'value1'
Beispiel #5
0
 def read_test(self):
     with tempfile.NamedTemporaryFile() as testconfig:
         scf = SimpleConfigFile()
         open(testconfig.name, 'w').write('KEY1="value1"\n')
         testconfig.flush()
         scf.read(testconfig.name)
         self.assertEqual(scf.get('key1'), 'value1')
 def write(self, filename=None, use_tmp=False):
     if self._dirty or filename:
         # ifcfg-rh is using inotify IN_CLOSE_WRITE event so we don't use
         # temporary file for new configuration
         ifcfglog.debug("IfcfgFile.write %s:\n%s", self.filename,
                        self.__str__())
         SimpleConfigFile.write(self, filename, use_tmp=use_tmp)
         self._dirty = False
 def unset(self, *args):
     for key in args:
         if self.get(key):
             self._dirty = True
             break
     else:
         return
     ifcfglog.debug("IfcfgFile.unset %s: %s", self.filename, args)
     SimpleConfigFile.unset(self, *args)
 def set(self, *args):
     for (key, data) in args:
         if self.get(key) != data:
             break
     else:
         return
     ifcfglog.debug("IfcfgFile.set %s: %s", self.filename, args)
     SimpleConfigFile.set(self, *args)
     self._dirty = True
 def unset(self, *args):
     for key in args:
         if self.get(key):
             self._dirty = True
             break
     else:
         return
     ifcfglog.debug("IfcfgFile.unset %s: %s", self.filename, args)
     SimpleConfigFile.unset(self, *args)
 def set(self, *args):
     for (key, data) in args:
         if self.get(key) != data:
             break
     else:
         return
     ifcfglog.debug("IfcfgFile.set %s: %s", self.filename, args)
     SimpleConfigFile.set(self, *args)
     self._dirty = True
    def read_write_test(self):
        with tempfile.NamedTemporaryFile(mode="wt") as testconfig:
            testconfig.write(self.TEST_CONFIG)
            testconfig.flush()

            scf = SimpleConfigFile()
            scf.read(testconfig.name)
            scf.write(testconfig.name)
            testconfig.flush()
            self.assertEqual(open(testconfig.name).read(), self.TEST_CONFIG)
    def append_test(self):
        with tempfile.NamedTemporaryFile(mode="wt") as testconfig:
            testconfig.write(self.TEST_CONFIG)
            testconfig.flush()

            keys = [("NEWKEY", "NEWKEY=froboz")]
            simple_replace(testconfig.name, keys)

            config = SimpleConfigFile(testconfig.name)
            config.read()
            self.assertEqual(config.get("NEWKEY"), "froboz")
Beispiel #13
0
    def replace_test(self):
        with tempfile.NamedTemporaryFile(mode="wt") as testconfig:
            testconfig.write(self.TEST_CONFIG)
            testconfig.flush()

            keys = [("BOOT", "BOOT=never")]
            simple_replace(testconfig.name, keys)

            config = SimpleConfigFile(testconfig.name)
            config.read()
            self.assertEqual(config.get("BOOT"), "never")
Beispiel #14
0
    def append_test(self):
        with tempfile.NamedTemporaryFile(mode="wt") as testconfig:
            testconfig.write(self.TEST_CONFIG)
            testconfig.flush()

            keys = [("NEWKEY", "NEWKEY=froboz")]
            simple_replace(testconfig.name, keys)

            config = SimpleConfigFile(testconfig.name)
            config.read()
            self.assertEqual(config.get("NEWKEY"), "froboz")
    def replace_test(self):
        with tempfile.NamedTemporaryFile(mode="wt") as testconfig:
            testconfig.write(self.TEST_CONFIG)
            testconfig.flush()

            keys = [("BOOT", "BOOT=never")]
            simple_replace(testconfig.name, keys)

            config = SimpleConfigFile(testconfig.name)
            config.read()
            self.assertEqual(config.get("BOOT"), "never")
    def no_append_test(self):
        with tempfile.NamedTemporaryFile(mode="wt") as testconfig:
            testconfig.write(self.TEST_CONFIG)
            testconfig.flush()

            keys = [("BOOT", "BOOT=sometimes"), ("NEWKEY", "NEWKEY=froboz")]
            simple_replace(testconfig.name, keys, add=False)

            config = SimpleConfigFile(testconfig.name)
            config.read()
            self.assertEqual(config.get("BOOT"), "sometimes")
            self.assertEqual(config.get("NEWKEY"), "")
    def execute(self, storage, ksdata, instClass, users, payload):
        """ Execute the addon

        :param storage: Blivet storage object
        :param ksdata: Kickstart data object
        :param instClass: Anaconda installclass object
        :param users: Anaconda users object
        :param payload: object managing packages and environment groups
                        for the installation
        """
        if not self.enabled:
            return

        log.info("Executing docker addon")
        # This gets called after installation, before initramfs regeneration and kickstart %post scripts.
        execWithRedirect("mount", ["-o", "bind", getSysroot()+"/var/lib/docker", "/var/lib/docker"])
        execWithRedirect("mount", ["-o", "bind", getSysroot()+"/etc/docker", "/etc/docker"])

        # Start up the docker daemon
        log.debug("Starting docker daemon")
        docker_cmd = ["docker", "daemon"]
        if ksdata.selinux.selinux:
            docker_cmd += ["--selinux-enabled"]

        # Add storage specific arguments to the command
        docker_cmd += self.storage.docker_cmd(storage, ksdata, instClass, users)

        docker_cmd += ["--ip-forward=false", "--iptables=false"]
        docker_cmd += self.extra_args
        docker_proc = startProgram(docker_cmd, stdout=open("/tmp/docker-daemon.log", "w"), reset_lang=True)

        log.debug("Running docker commands")
        script = AnacondaKSScript(self.content, inChroot=False, logfile="/tmp/docker-addon.log")
        script.run("/")

        # Kill the docker process
        log.debug("Shutting down docker daemon")
        docker_proc.kill()

        log.debug("Writing docker configs")
        self.storage.write_configs(storage, ksdata, instClass, users)

        # Rewrite the OPTIONS entry with the extra args and/or storage specific changes
        try:
            docker_cfg = SimpleConfigFile(getSysroot()+"/etc/sysconfig/docker")
            docker_cfg.read()
            options = self.storage.options(docker_cfg.get("OPTIONS"))
            if self.save_args:
                log.info("Adding extra args to docker OPTIONS")
                options += " " + " ".join(self.extra_args)
            docker_cfg.set(("OPTIONS", options))
            docker_cfg.write()
        except IOError as e:
            log.error("Error updating OPTIONS in /etc/sysconfig/docker: %s", e)

        # Copy the log files to the system
        dstdir = "/var/log/anaconda/"
        os.makedirs(dstdir, exist_ok=True)
        for l in ["docker-daemon.log", "docker-addon.log"]:
            shutil.copy2("/tmp/"+l, dstdir+l)
Beispiel #18
0
 def write_new_keys_test(self):
     from pyanaconda.simpleconfig import SimpleConfigFile
     scf = SimpleConfigFile()
     scf.read(self.PATH)
     scf.set(("key1", "value1"))
     scf.write("/tmp/file")
     self.assertEqual(
         open("/tmp/file").read(), self.CONTENT + "KEY1=value1\n")
Beispiel #19
0
    def execute(self, storage, ksdata, instClass, users):
        """ Execute the addon

        :param storage: Blivet storage object
        :param ksdata: Kickstart data object
        :param instClass: Anaconda installclass object
        :param users: Anaconda users object
        """
        log.info("Executing docker addon")
        # This gets called after installation, before initramfs regeneration and kickstart %post scripts.
        execWithRedirect("mount", ["-o", "bind", getSysroot()+"/var/lib/docker", "/var/lib/docker"])
        execWithRedirect("mount", ["-o", "bind", getSysroot()+"/etc/docker", "/etc/docker"])

        # Start up the docker daemon
        log.debug("Starting docker daemon")
        dm_fs = "dm.fs=%s" % self.fstype
        pool_name = "dm.thinpooldev=/dev/mapper/%s-docker--pool" % self.vgname
        docker_cmd = ["docker", "daemon"]
        if ksdata.selinux.selinux:
            docker_cmd += ["--selinux-enabled"]
        docker_cmd += ["--storage-driver", "devicemapper",
                      "--storage-opt", dm_fs,
                      "--storage-opt", pool_name, "--ip-forward=false", "--iptables=false"]
        docker_cmd += self.extra_args
        docker_proc = startProgram(docker_cmd, stdout=open("/tmp/docker-daemon.log", "w"), reset_lang=True)

        log.debug("Running docker commands")
        script = AnacondaKSScript(self.content, inChroot=False, logfile="/tmp/docker-addon.log")
        script.run("/")

        # Kill the docker process
        log.debug("Shutting down docker daemon")
        docker_proc.kill()

        log.debug("Writing docker configs")
        with open(getSysroot()+"/etc/sysconfig/docker-storage", "w") as fp:
            fp.write('DOCKER_STORAGE_OPTIONS="--storage-driver devicemapper '
                     '--storage-opt %s --storage-opt %s"\n' % (dm_fs, pool_name))

        with open(getSysroot()+"/etc/sysconfig/docker-storage-setup", "a") as fp:
            fp.write("VG=%s\n" % self.vgname)

        # Rewrite the OPTIONS entry with the extra args, if requested.
        if self.extra_args and self.save_args:
            try:
                docker_cfg = SimpleConfigFile(getSysroot()+"/etc/sysconfig/docker")
                docker_cfg.read()
                options = docker_cfg.get("OPTIONS")+" " + " ".join(self.extra_args)
                docker_cfg.set(("OPTIONS", options))
                docker_cfg.write()
            except IOError as e:
                log.error("Error updating OPTIONS in /etc/sysconfig/docker: %s", e)

        # Copy the log files to the system
        dstdir = "/var/log/anaconda/"
        os.makedirs(dstdir, exist_ok=True)
        for l in ["docker-daemon.log", "docker-addon.log"]:
            shutil.copy2("/tmp/"+l, dstdir+l)
Beispiel #20
0
    def read_write__perms_test(self):
        with tempfile.NamedTemporaryFile(mode="wt") as testconfig:
            testconfig.write(self.TEST_CONFIG)
            testconfig.flush()

            # Change original file's permissions
            os.chmod(testconfig.name, 0o0764)

            scf = SimpleConfigFile()
            scf.read(testconfig.name)
            scf.write(testconfig.name)
            testconfig.flush()

            # Write uses a tmpfile and renames it in place
            # Make sure the permissions are still 0764
            self.assertEqual(os.stat(testconfig.name).st_mode, 0o100764)
Beispiel #21
0
 def write_new_keys_test(self):
     from pyanaconda.simpleconfig import SimpleConfigFile
     scf = SimpleConfigFile()
     scf.read(self.PATH)
     scf.set(("key1", "value1"))
     scf.write("/tmp/file")
     self.assertEqual(open("/tmp/file").read(),
                      self.CONTENT+"KEY1=value1\n")
Beispiel #22
0
    def test_write_new_keys(self):
        with tempfile.NamedTemporaryFile(mode="wt") as testconfig:
            testconfig.write(self.TEST_CONFIG)
            testconfig.flush()

            scf = SimpleConfigFile()
            scf.read(testconfig.name)
            scf.set(("key1", "value1"))
            scf.write(testconfig.name)
            testconfig.flush()

            assert open(testconfig.name).read() == self.TEST_CONFIG+"KEY1=value1\n"
Beispiel #23
0
    def write_new_keys_test(self):
        with tempfile.NamedTemporaryFile() as testconfig:
            testconfig.write(self.TEST_CONFIG)
            testconfig.flush()

            scf = SimpleConfigFile()
            scf.read(testconfig.name)
            scf.set(("key1", "value1"))
            scf.write(testconfig.name)
            testconfig.flush()

            self.assertEqual(open(testconfig.name).read(),
                             self.TEST_CONFIG+"KEY1=value1\n")
Beispiel #24
0
 def test_write(self):
     with tempfile.NamedTemporaryFile(mode="wt") as testconfig:
         scf = SimpleConfigFile()
         scf.set(('key1', 'value1'))
         scf.write(testconfig.name)
         testconfig.flush()
         assert open(testconfig.name).read() == 'KEY1=value1\n'
Beispiel #25
0
 def write_test(self):
     with tempfile.NamedTemporaryFile() as testconfig:
         scf = SimpleConfigFile()
         scf.set(('key1', 'value1'))
         scf.write(testconfig.name)
         testconfig.flush()
         self.assertEqual(open(testconfig.name).read(), 'KEY1=value1\n')
Beispiel #26
0
    def comment_test(self):
        with tempfile.NamedTemporaryFile() as testconfig:
            testconfig.write(self.TEST_CONFIG)
            testconfig.flush()

            config = SimpleConfigFile(testconfig.name)
            config.read()
            self.assertEqual(config.get("ESSID"), "Example Network #1")
            self.assertEqual(config.get("ESSID2"), "Network #2")
            self.assertEqual(config.get("COMMENT"), "Save this string")
            self.assertEqual(str(config), self.TEST_CONFIG)
Beispiel #27
0
    def test_comment(self):
        with tempfile.NamedTemporaryFile(mode="wt") as testconfig:
            testconfig.write(self.TEST_CONFIG)
            testconfig.flush()

            config = SimpleConfigFile(testconfig.name)
            config.read()
            assert config.get("ESSID") == "Example Network #1"
            assert config.get("ESSID2") == "Network #2"
            assert config.get("COMMENT") == "Save this string"
            assert str(config) == self.TEST_CONFIG
Beispiel #28
0
    def run(self):
        if self._selinux_mode == SELinuxMode.DEFAULT:
            log.debug("Use SELinux default configuration.")
            return

        if self._selinux_mode not in self.SELINUX_STATES:
            log.error("Unknown SELinux state for %s.", self._selinux_mode)
            return

        try:
            selinux_cfg = SimpleConfigFile(os.path.join(self._sysroot, self.SELINUX_CONFIG_PATH))
            selinux_cfg.read()
            selinux_cfg.set(("SELINUX", self.SELINUX_STATES[self._selinux_mode]))
            selinux_cfg.write()
        except OSError as msg:
            log.error("SELinux configuration failed: %s", msg)
    def write_new_keys_test(self):
        with tempfile.NamedTemporaryFile(mode="wt") as testconfig:
            testconfig.write(self.TEST_CONFIG)
            testconfig.flush()

            scf = SimpleConfigFile()
            scf.read(testconfig.name)
            scf.set(("key1", "value1"))
            scf.write(testconfig.name)
            testconfig.flush()

            self.assertEqual(open(testconfig.name).read(),
                             self.TEST_CONFIG+"KEY1=value1\n")
Beispiel #30
0
    def test_read_write(self):
        with tempfile.NamedTemporaryFile(mode="wt") as testconfig:
            testconfig.write(self.TEST_CONFIG)
            testconfig.flush()

            scf = SimpleConfigFile()
            scf.read(testconfig.name)
            scf.write(testconfig.name)
            testconfig.flush()
            assert open(testconfig.name).read() == self.TEST_CONFIG
Beispiel #31
0
    def read_write_test(self):
        with tempfile.NamedTemporaryFile() as testconfig:
            testconfig.write(self.TEST_CONFIG)
            testconfig.flush()

            scf = SimpleConfigFile()
            scf.read(testconfig.name)
            scf.write(testconfig.name)
            testconfig.flush()
            self.assertEqual(open(testconfig.name).read(), self.TEST_CONFIG)
Beispiel #32
0
    def no_use_tmp_test(self):
        with tempfile.NamedTemporaryFile(mode="w+t") as testconfig:
            # Write a starting file and keep the handle open
            testconfig.write("KEY1=value1\n")
            testconfig.flush()
            testconfig.seek(0)

            # Overwrite the value and write a new file
            scf = SimpleConfigFile()
            scf.read(testconfig.name)
            scf.set(('key1', 'value2'))
            scf.write(testconfig.name, use_tmp=False)

            # Check the new contents
            self.assertEqual(open(testconfig.name).read(), 'KEY1=value2\n')

            # Check that the original file handle points to the replaced contents
            self.assertEqual(testconfig.read(), 'KEY1=value2\n')
Beispiel #33
0
    def test_use_tmp(self):
        with tempfile.NamedTemporaryFile(mode="w+t") as testconfig:
            # Write a starting file and keep the handle open
            testconfig.write("KEY1=value1\n")
            testconfig.flush()
            testconfig.seek(0)

            # Overwrite the value and write a new file
            scf = SimpleConfigFile()
            scf.read(testconfig.name)
            scf.set(('key1', 'value2'))
            scf.write(testconfig.name, use_tmp=True)

            # Check the new contents
            assert open(testconfig.name).read() == 'KEY1=value2\n'

            # Check that the original file handle still points to the old contents
            assert testconfig.read() == 'KEY1=value1\n'
    def comment_test(self):
        with tempfile.NamedTemporaryFile(mode="wt") as testconfig:
            testconfig.write(self.TEST_CONFIG)
            testconfig.flush()

            config = SimpleConfigFile(testconfig.name)
            config.read()
            self.assertEqual(config.get("ESSID"), "Example Network #1")
            self.assertEqual(config.get("ESSID2"), "Network #2")
            self.assertEqual(config.get("COMMENT"), "Save this string")
            self.assertEqual(str(config), self.TEST_CONFIG)
Beispiel #35
0
    def test_use_tmp_multifs(self):
        # Open a file on a non-default filesystem
        with tempfile.NamedTemporaryFile(dir='/dev/shm', mode='w+t') as testconfig:
            # Write a starting file and keep the handle open
            testconfig.write("KEY1=value1\n")
            testconfig.flush()
            testconfig.seek(0)

            # Overwrite the value and write a new file
            scf = SimpleConfigFile()
            scf.read(testconfig.name)
            scf.set(('key1', 'value2'))
            scf.write(testconfig.name, use_tmp=True)

            # Check the new contents
            self.assertEqual(open(testconfig.name).read(), 'KEY1=value2\n')

            # Check that the original file handle still points to the old contents
            self.assertEqual(testconfig.read(), 'KEY1=value1\n')
Beispiel #36
0
    def no_append_test(self):
        with tempfile.NamedTemporaryFile(mode="wt") as testconfig:
            testconfig.write(self.TEST_CONFIG)
            testconfig.flush()

            keys = [("BOOT", "BOOT=sometimes"), ("NEWKEY", "NEWKEY=froboz")]
            simple_replace(testconfig.name, keys, add=False)

            config = SimpleConfigFile(testconfig.name)
            config.read()
            self.assertEqual(config.get("BOOT"), "sometimes")
            self.assertEqual(config.get("NEWKEY"), "")
Beispiel #37
0
    def execute(self):
        security_proxy = SECURITY.get_proxy()
        selinux = security_proxy.SELinux

        if selinux == SELINUX_DEFAULT:
            selinux_log.debug("Use SELinux default configuration.")
            return

        if selinux not in self.SELINUX_STATES:
            selinux_log.error("Unknown SELinux state for %s.", selinux)
            return

        try:
            selinux_cfg = SimpleConfigFile(util.getSysroot() +
                                           "/etc/selinux/config")
            selinux_cfg.read()
            selinux_cfg.set(("SELINUX", self.SELINUX_STATES[selinux]))
            selinux_cfg.write()
        except IOError as msg:
            selinux_log.error("SELinux configuration failed: %s", msg)
    def no_use_tmp_test(self):
        with tempfile.NamedTemporaryFile(mode="w+t") as testconfig:
            # Write a starting file and keep the handle open
            testconfig.write("KEY1=value1\n")
            testconfig.flush()
            testconfig.seek(0)

            # Overwrite the value and write a new file
            scf = SimpleConfigFile()
            scf.read(testconfig.name)
            scf.set(('key1', 'value2'))
            scf.write(testconfig.name, use_tmp=False)

            # Check the new contents
            self.assertEqual(open(testconfig.name).read(), 'KEY1=value2\n')

            # Check that the original file handle points to the replaced contents
            self.assertEqual(testconfig.read(), 'KEY1=value2\n')
    def use_tmp_multifs_test(self):
        # Open a file on a non-default filesystem
        with tempfile.NamedTemporaryFile(dir='/dev/shm', mode='w+t') as testconfig:
            # Write a starting file and keep the handle open
            testconfig.write("KEY1=value1\n")
            testconfig.flush()
            testconfig.seek(0)

            # Overwrite the value and write a new file
            scf = SimpleConfigFile()
            scf.read(testconfig.name)
            scf.set(('key1', 'value2'))
            scf.write(testconfig.name, use_tmp=True)

            # Check the new contents
            self.assertEqual(open(testconfig.name).read(), 'KEY1=value2\n')

            # Check that the original file handle still points to the old contents
            self.assertEqual(testconfig.read(), 'KEY1=value1\n')
Beispiel #40
0
    def execute(self):
        security_proxy = SECURITY.get_proxy()
        selinux = security_proxy.SELinux

        if selinux == SELINUX_DEFAULT:
            selinux_log.debug("Use SELinux default configuration.")
            return

        if selinux not in self.SELINUX_STATES:
            selinux_log.error("Unknown SELinux state for %s.", selinux)
            return

        try:
            selinux_cfg = SimpleConfigFile(util.getSysroot() + "/etc/selinux/config")
            selinux_cfg.read()
            selinux_cfg.set(("SELINUX", self.SELINUX_STATES[selinux]))
            selinux_cfg.write()
        except IOError as msg:
            selinux_log.error("SELinux configuration failed: %s", msg)
Beispiel #41
0
    def read_write__perms_test(self):
        with tempfile.NamedTemporaryFile(mode="wt") as testconfig:
            testconfig.write(self.TEST_CONFIG)
            testconfig.flush()

            # Change original file's permissions
            os.chmod(testconfig.name, 0o0764)

            scf = SimpleConfigFile()
            scf.read(testconfig.name)
            scf.write(testconfig.name)
            testconfig.flush()

            # Write uses a tmpfile and renames it in place
            # Make sure the permissions are still 0764
            self.assertEqual(os.stat(testconfig.name).st_mode, 0o100764)
Beispiel #42
0
 def remove_key_test(self):
     from pyanaconda.simpleconfig import SimpleConfigFile
     scf = SimpleConfigFile()
     scf.read(self.PATH)
     scf.unset("BOOT")
     scf.write("/tmp/file")
     scf.reset()
     scf.read("/tmp/file")
     self.assertEqual(scf.get("BOOT"), "")
Beispiel #43
0
 def unset_test(self):
     scf = SimpleConfigFile()
     scf.set(('key1', 'value1'))
     scf.unset(('key1'))
     self.assertEqual(scf.get('key1'), '')
Beispiel #44
0
 def set_and_get_test(self):
     """Setting and getting values"""
     scf = SimpleConfigFile()
     scf.set(('key1', 'value1'))
     self.assertEqual(scf.get('key1'), 'value1')
     scf.set(('KEY2', 'value2'))
     self.assertEqual(scf.get('key2'), 'value2')
     scf.set(('KEY3', 'value3'))
     self.assertEqual(scf.get('KEY3'), 'value3')
     scf.set(('key4', 'value4'))
     self.assertEqual(scf.get('KEY4'), 'value4')
Beispiel #45
0
 def read_write_test(self):
     from pyanaconda.simpleconfig import SimpleConfigFile
     scf = SimpleConfigFile()
     scf.read(self.PATH)
     scf.write("/tmp/file")
     self.assertEqual(open("/tmp/file").read(), self.CONTENT)
Beispiel #46
0
    def remove_key_test(self):
        with tempfile.NamedTemporaryFile() as testconfig:
            testconfig.write(self.TEST_CONFIG)
            testconfig.flush()

            scf = SimpleConfigFile()
            scf.read(testconfig.name)
            self.assertEqual(scf.get("BOOT"), "always")
            scf.unset("BOOT")
            scf.write(testconfig.name)
            testconfig.flush()
            scf.reset()
            scf.read(testconfig.name)
            self.assertEqual(scf.get("BOOT"), "")
    def remove_key_test(self):
        with tempfile.NamedTemporaryFile(mode="wt") as testconfig:
            testconfig.write(self.TEST_CONFIG)
            testconfig.flush()

            scf = SimpleConfigFile()
            scf.read(testconfig.name)
            self.assertEqual(scf.get("BOOT"), "always")
            scf.unset("BOOT")
            scf.write(testconfig.name)
            testconfig.flush()
            scf.reset()
            scf.read(testconfig.name)
            self.assertEqual(scf.get("BOOT"), "")
 def unset_test(self):
     scf = SimpleConfigFile()
     scf.set(('key1', 'value1'))
     scf.unset(('key1'))
     self.assertEqual(scf.get('key1'), '')
 def set_and_get_test(self):
     """Setting and getting values"""
     scf = SimpleConfigFile()
     scf.set(('key1', 'value1'))
     self.assertEqual(scf.get('key1'), 'value1')
     scf.set(('KEY2', 'value2'))
     self.assertEqual(scf.get('key2'), 'value2')
     scf.set(('KEY3', 'value3'))
     self.assertEqual(scf.get('KEY3'), 'value3')
     scf.set(('key4', 'value4'))
     self.assertEqual(scf.get('KEY4'), 'value4')
 def __init__(self, filename):
     SimpleConfigFile.__init__(self, always_quote=True, filename=filename)
     self._dirty = False
 def read(self, filename=None):
     self.reset()
     ifcfglog.debug("IfcfFile.read %s", self.filename)
     SimpleConfigFile.read(self)
     self._dirty = False
 def read(self, filename=None):
     self.reset()
     ifcfglog.debug("IfcfFile.read %s", self.filename)
     SimpleConfigFile.read(self)
     self._dirty = False
Beispiel #53
0
 def remove_key_test(self):
     from pyanaconda.simpleconfig import SimpleConfigFile
     scf = SimpleConfigFile()
     scf.read(self.PATH)
     scf.unset("BOOT")
     scf.write("/tmp/file")
     scf.reset()
     scf.read("/tmp/file")
     self.assertEqual(scf.get("BOOT"), "")
Beispiel #54
0
 def read_write_test(self):
     from pyanaconda.simpleconfig import SimpleConfigFile
     scf = SimpleConfigFile()
     scf.read(self.PATH)
     scf.write("/tmp/file")
     self.assertEqual(open("/tmp/file").read(), self.CONTENT)
 def __init__(self, filename):
     SimpleConfigFile.__init__(self, always_quote=True, filename=filename)
     self._dirty = False