]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Switch to the oslo_utils.fileutils
authorSergey Vilgelm <sergey@vilgelm.info>
Wed, 8 Jul 2015 12:51:14 +0000 (15:51 +0300)
committerSergey Vilgelm <sergey@vilgelm.info>
Wed, 15 Jul 2015 05:09:26 +0000 (08:09 +0300)
fileutils is graduated in the oslo.utils library.

Implements: blueprint graduate-fileutils[1]
[1] https://blueprints.launchpad.net/oslo-incubator/+spec/graduate-fileutils

Depends-On: I51ba9076e1fbc16145ee2311f47b7768c16dcb20 (requirements)

Change-Id: I933d02aa48260069149d16caed02b020296b943a

doc/source/devref/neutron_api.rst
neutron/agent/linux/external_process.py
neutron/openstack/common/fileutils.py [deleted file]
neutron/tests/unit/agent/linux/test_external_process.py
openstack-common.conf
requirements.txt

index 6479b6d8b791a7567e07892aaa62d253ad7884e1..e8eb32ac51a4980d83d43ca75f688fdf597bc0fd 100644 (file)
@@ -33,3 +33,9 @@ incompatible changes that could or are known to trigger those breakages.
   - commit: 6e693fc91dd79cfbf181e3b015a1816d985ad02c
   - solution: switch using oslo_service.* namespace; stop using ANY neutron.openstack.* contents.
   - severity: low (plugins must not rely on that subtree).
+
+* change: oslo.utils.fileutils adopted.
+
+  - commit: I933d02aa48260069149d16caed02b020296b943a
+  - solution: switch using oslo_utils.fileutils module; stop using neutron.openstack.fileutils module.
+  - severity: low (plugins must not rely on that subtree).
index f3ac93a7f09f4eccdc67b485f22f77b5b0fb4a3f..7c437631852e4b56772297c3435e0333ccc8212e 100644 (file)
@@ -21,12 +21,12 @@ import eventlet
 from oslo_concurrency import lockutils
 from oslo_config import cfg
 from oslo_log import log as logging
+from oslo_utils import fileutils
 
 from neutron.agent.common import config as agent_cfg
 from neutron.agent.linux import ip_lib
 from neutron.agent.linux import utils
 from neutron.i18n import _LE
-from neutron.openstack.common import fileutils
 
 LOG = logging.getLogger(__name__)
 
diff --git a/neutron/openstack/common/fileutils.py b/neutron/openstack/common/fileutils.py
deleted file mode 100644 (file)
index 1191ce8..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-# Copyright 2011 OpenStack Foundation.
-# All Rights Reserved.
-#
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-
-import contextlib
-import errno
-import logging
-import os
-import stat
-import tempfile
-
-from oslo_utils import excutils
-
-LOG = logging.getLogger(__name__)
-
-_FILE_CACHE = {}
-DEFAULT_MODE = stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO
-
-
-def ensure_tree(path, mode=DEFAULT_MODE):
-    """Create a directory (and any ancestor directories required)
-
-    :param path: Directory to create
-    :param mode: Directory creation permissions
-    """
-    try:
-        os.makedirs(path, mode)
-    except OSError as exc:
-        if exc.errno == errno.EEXIST:
-            if not os.path.isdir(path):
-                raise
-        else:
-            raise
-
-
-def read_cached_file(filename, force_reload=False):
-    """Read from a file if it has been modified.
-
-    :param force_reload: Whether to reload the file.
-    :returns: A tuple with a boolean specifying if the data is fresh
-              or not.
-    """
-    global _FILE_CACHE
-
-    if force_reload:
-        delete_cached_file(filename)
-
-    reloaded = False
-    mtime = os.path.getmtime(filename)
-    cache_info = _FILE_CACHE.setdefault(filename, {})
-
-    if not cache_info or mtime > cache_info.get('mtime', 0):
-        LOG.debug("Reloading cached file %s", filename)
-        with open(filename) as fap:
-            cache_info['data'] = fap.read()
-        cache_info['mtime'] = mtime
-        reloaded = True
-    return (reloaded, cache_info['data'])
-
-
-def delete_cached_file(filename):
-    """Delete cached file if present.
-
-    :param filename: filename to delete
-    """
-    global _FILE_CACHE
-
-    if filename in _FILE_CACHE:
-        del _FILE_CACHE[filename]
-
-
-def delete_if_exists(path, remove=os.unlink):
-    """Delete a file, but ignore file not found error.
-
-    :param path: File to delete
-    :param remove: Optional function to remove passed path
-    """
-
-    try:
-        remove(path)
-    except OSError as e:
-        if e.errno != errno.ENOENT:
-            raise
-
-
-@contextlib.contextmanager
-def remove_path_on_error(path, remove=delete_if_exists):
-    """Protect code that wants to operate on PATH atomically.
-    Any exception will cause PATH to be removed.
-
-    :param path: File to work with
-    :param remove: Optional function to remove passed path
-    """
-
-    try:
-        yield
-    except Exception:
-        with excutils.save_and_reraise_exception():
-            remove(path)
-
-
-def file_open(*args, **kwargs):
-    """Open file
-
-    see built-in open() documentation for more details
-
-    Note: The reason this is kept in a separate module is to easily
-    be able to provide a stub module that doesn't alter system
-    state at all (for unit tests)
-    """
-    return open(*args, **kwargs)
-
-
-def write_to_tempfile(content, path=None, suffix='', prefix='tmp'):
-    """Create temporary file or use existing file.
-
-    This util is needed for creating temporary file with
-    specified content, suffix and prefix. If path is not None,
-    it will be used for writing content. If the path doesn't
-    exist it'll be created.
-
-    :param content: content for temporary file.
-    :param path: same as parameter 'dir' for mkstemp
-    :param suffix: same as parameter 'suffix' for mkstemp
-    :param prefix: same as parameter 'prefix' for mkstemp
-
-    For example: it can be used in database tests for creating
-    configuration files.
-    """
-    if path:
-        ensure_tree(path)
-
-    (fd, path) = tempfile.mkstemp(suffix=suffix, dir=path, prefix=prefix)
-    try:
-        os.write(fd, content)
-    finally:
-        os.close(fd)
-    return path
index db84de21e4b0c7010e64dad0776445f161f0b16d..68df1a7dcd75ca658a6c953f1303fe87d8142be6 100644 (file)
@@ -103,7 +103,7 @@ class TestProcessManager(base.BaseTestCase):
         self.execute_p = mock.patch('neutron.agent.common.utils.execute')
         self.execute = self.execute_p.start()
         self.delete_if_exists = mock.patch(
-            'neutron.openstack.common.fileutils.delete_if_exists').start()
+            'oslo_utils.fileutils.delete_if_exists').start()
         self.ensure_dir = mock.patch.object(
             utils, 'ensure_dir').start()
 
index fbc952c8faef3d81f9188e0ece5e73cdd915dae6..082a4a4fa95f8814fbd44f55decf7764e62cbf36 100644 (file)
@@ -1,7 +1,6 @@
 [DEFAULT]
 # The list of modules to copy from oslo-incubator.git
 module=cache
-module=fileutils
 # The following module is not synchronized by update.sh script since it's
 # located in tools/ not neutron/openstack/common/. Left here to make it
 # explicit that we still ship code from incubator here
index ff8e0d6077954ef90bd568019c956a7ae4228d55..6f8aa529761a83be7ae27ae94e21a2a3254074eb 100644 (file)
@@ -34,7 +34,7 @@ oslo.policy>=0.5.0 # Apache-2.0
 oslo.rootwrap>=2.0.0 # Apache-2.0
 oslo.serialization>=1.4.0 # Apache-2.0
 oslo.service>=0.1.0 # Apache-2.0
-oslo.utils>=1.6.0 # Apache-2.0
+oslo.utils>=1.9.0 # Apache-2.0
 
 python-novaclient>=2.22.0