Changeset e60c643 in trunk


Ignore:
Timestamp:
2020-11-18T15:57:38Z (5 years ago)
Author:
Jean-Paul Calderone <exarkun@…>
Branches:
master
Children:
aedac9d
Parents:
dc611bf
Message:

Make configutil.write_config atomic and also make it take a FilePath?

Location:
src/allmydata
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified src/allmydata/test/test_configutil.py

    rdc611bf re60c643  
    1616import os.path
    1717
     18from twisted.python.filepath import (
     19    FilePath,
     20)
    1821from twisted.trial import unittest
    1922
     
    5659        # test that set_config can mutate an existing option
    5760        configutil.set_config(config, "node", "nickname", "Alice!")
    58         configutil.write_config(tahoe_cfg, config)
     61        configutil.write_config(FilePath(tahoe_cfg), config)
    5962
    6063        config = configutil.get_config(tahoe_cfg)
     
    6467        descriptor = "Twas brillig, and the slithy toves Did gyre and gimble in the wabe"
    6568        configutil.set_config(config, "node", "descriptor", descriptor)
    66         configutil.write_config(tahoe_cfg, config)
     69        configutil.write_config(FilePath(tahoe_cfg), config)
    6770
    6871        config = configutil.get_config(tahoe_cfg)
  • TabularUnified src/allmydata/util/configutil.py

    rdc611bf re60c643  
    6060
    6161def write_config(tahoe_cfg, config):
    62     with open(tahoe_cfg, "w") as f:
    63         config.write(f)
     62    """
     63    Write a configuration to a file.
     64
     65    :param FilePath tahoe_cfg: The path to which to write the config.
     66
     67    :param ConfigParser config: The configuration to write.
     68
     69    :return: ``None``
     70    """
     71    tmp = tahoe_cfg.temporarySibling()
     72    # FilePath.open can only open files in binary mode which does not work
     73    # with ConfigParser.write.
     74    with open(tmp.path, "wt") as fp:
     75        config.write(fp)
     76    tmp.moveTo(tahoe_cfg)
    6477
    6578def validate_config(fname, cfg, valid_config):
Note: See TracChangeset for help on using the changeset viewer.