diff options
| -rw-r--r-- | ChangeLog | 1 | ||||
| -rw-r--r-- | cloudinit/config/cc_resizefs.py | 16 | ||||
| -rw-r--r-- | cloudinit/config/cc_set_passwords.py | 2 | ||||
| -rw-r--r-- | cloudinit/config/cc_ssh_import_id.py | 2 | ||||
| -rw-r--r-- | cloudinit/distros/__init__.py | 2 | ||||
| -rw-r--r-- | cloudinit/distros/arch.py | 2 | ||||
| -rw-r--r-- | cloudinit/distros/debian.py | 2 | ||||
| -rw-r--r-- | cloudinit/distros/freebsd.py | 7 | ||||
| -rw-r--r-- | cloudinit/distros/gentoo.py | 2 | ||||
| -rw-r--r-- | cloudinit/sources/helpers/openstack.py | 1 | ||||
| -rw-r--r-- | tests/unittests/test_data.py | 9 | ||||
| -rw-r--r-- | tests/unittests/test_datasource/test_nocloud.py | 1 | ||||
| -rw-r--r-- | tests/unittests/test_runs/test_merge_run.py | 2 | ||||
| -rwxr-xr-x | tools/build-on-freebsd | 1 | 
14 files changed, 28 insertions, 22 deletions
| @@ -31,6 +31,7 @@   - Datasource: fix broken logic to provide hostname if datasource does not     provide one   - Improved and less verbose logging. + - resizefs: first check that device is writable.  0.7.5:   - open 0.7.5   - Add a debug log message around import failures diff --git a/cloudinit/config/cc_resizefs.py b/cloudinit/config/cc_resizefs.py index b9655749..7e796228 100644 --- a/cloudinit/config/cc_resizefs.py +++ b/cloudinit/config/cc_resizefs.py @@ -98,12 +98,12 @@ def handle(name, cfg, _cloud, log, args):      (devpth, fs_type, mount_point) = result -    # Ensure the path is a block device.      info = "dev=%s mnt_point=%s path=%s" % (devpth, mount_point, resize_what)      log.debug("resize_info: %s" % info)      container = util.is_container() +    # Ensure the path is a block device.      if (devpth == "/dev/root" and not os.path.exists(devpth) and              not container):          devpth = rootdev_from_cmdline(util.get_cmdline()) @@ -117,14 +117,22 @@ def handle(name, cfg, _cloud, log, args):      except OSError as exc:          if container and exc.errno == errno.ENOENT:              log.debug("Device '%s' did not exist in container. " -                      "cannot resize: %s" % (devpth, info)) +                      "cannot resize: %s", devpth, info)          elif exc.errno == errno.ENOENT: -            log.warn("Device '%s' did not exist. cannot resize: %s" % -                     (devpth, info)) +            log.warn("Device '%s' did not exist. cannot resize: %s", +                     devpth, info)          else:              raise exc          return +    if not os.access(devpth, os.W_OK): +        if container: +            log.debug("'%s' not writable in container. cannot resize: %s", +                      devpth, info) +        else: +            log.warn("'%s' not writable. cannot resize: %s", devpth, info) +        return +      if not stat.S_ISBLK(statret.st_mode) and not stat.S_ISCHR(statret.st_mode):          if container:              log.debug("device '%s' not a block device in container." diff --git a/cloudinit/config/cc_set_passwords.py b/cloudinit/config/cc_set_passwords.py index 24e33915..4ca85e21 100644 --- a/cloudinit/config/cc_set_passwords.py +++ b/cloudinit/config/cc_set_passwords.py @@ -132,7 +132,7 @@ def handle(_name, cfg, cloud, log, args):                                                       'PasswordAuthentication',                                                       pw_auth)) -        lines = [str(e) for e in new_lines] +        lines = [str(l) for l in new_lines]          util.write_file(ssh_util.DEF_SSHD_CFG, "\n".join(lines))          try: diff --git a/cloudinit/config/cc_ssh_import_id.py b/cloudinit/config/cc_ssh_import_id.py index 76c1663d..2d480d7e 100644 --- a/cloudinit/config/cc_ssh_import_id.py +++ b/cloudinit/config/cc_ssh_import_id.py @@ -85,7 +85,7 @@ def import_ssh_ids(ids, user, log):          return      try: -        _check = pwd.getpwnam(user) +        pwd.getpwnam(user)      except KeyError as exc:          raise exc diff --git a/cloudinit/distros/__init__.py b/cloudinit/distros/__init__.py index 9c9211fe..2599d9f2 100644 --- a/cloudinit/distros/__init__.py +++ b/cloudinit/distros/__init__.py @@ -861,5 +861,5 @@ def set_etc_timezone(tz, tz_file=None, tz_conf="/etc/timezone",      util.write_file(tz_conf, str(tz).rstrip() + "\n")      # This ensures that the correct tz will be used for the system      if tz_local and tz_file: -        util.copy(tz_file, self.tz_local_fn) +        util.copy(tz_file, tz_local)      return diff --git a/cloudinit/distros/arch.py b/cloudinit/distros/arch.py index 9f11b89c..005a0dd4 100644 --- a/cloudinit/distros/arch.py +++ b/cloudinit/distros/arch.py @@ -159,7 +159,7 @@ class Distro(distros.Distro):          return hostname      def set_timezone(self, tz): -        set_etc_timezone(tz=tz, tz_file=self._find_tz_file(tz)) +        distros.set_etc_timezone(tz=tz, tz_file=self._find_tz_file(tz))      def package_command(self, command, args=None, pkgs=None):          if pkgs is None: diff --git a/cloudinit/distros/debian.py b/cloudinit/distros/debian.py index 7cf4a9ef..010be67d 100644 --- a/cloudinit/distros/debian.py +++ b/cloudinit/distros/debian.py @@ -131,7 +131,7 @@ class Distro(distros.Distro):          return "127.0.1.1"      def set_timezone(self, tz): -        set_etc_timezone(tz=tz, tz_file=self._find_tz_file(tz)) +        distros.set_etc_timezone(tz=tz, tz_file=self._find_tz_file(tz))      def package_command(self, command, args=None, pkgs=None):          if pkgs is None: diff --git a/cloudinit/distros/freebsd.py b/cloudinit/distros/freebsd.py index 42ef2290..cff10387 100644 --- a/cloudinit/distros/freebsd.py +++ b/cloudinit/distros/freebsd.py @@ -37,6 +37,7 @@ class Distro(distros.Distro):      login_conf_fn = '/etc/login.conf'      login_conf_fn_bak = '/etc/login.conf.orig'      resolv_conf_fn = '/etc/resolv.conf' +    ci_sudoers_fn = '/usr/local/etc/sudoers.d/90-cloud-init-users'      def __init__(self, name, cfg, paths):          distros.Distro.__init__(self, name, cfg, paths) @@ -219,10 +220,6 @@ class Distro(distros.Distro):              util.logexc(LOG, "Failed to lock user %s", name)              raise e -    # TODO: -    def write_sudo_rules(self, name, rules, sudo_file=None): -        LOG.debug("[write_sudo_rules] Name: %s", name) -      def create_user(self, name, **kwargs):          self.add_user(name, **kwargs) @@ -267,7 +264,7 @@ class Distro(distros.Distro):                  if 'dns-nameservers' in info:                      nameservers.extend(info['dns-nameservers'])                  if 'dns-search' in info: -                    searchservers.extend(info['dns-search']) +                    searchdomains.extend(info['dns-search'])              else:                  ifconfig = 'DHCP' diff --git a/cloudinit/distros/gentoo.py b/cloudinit/distros/gentoo.py index c4b02de1..45c2e658 100644 --- a/cloudinit/distros/gentoo.py +++ b/cloudinit/distros/gentoo.py @@ -138,7 +138,7 @@ class Distro(distros.Distro):          return hostname      def set_timezone(self, tz): -        set_etc_timezone(tz=tz, tz_file=self._find_tz_file(tz)) +        distros.set_etc_timezone(tz=tz, tz_file=self._find_tz_file(tz))      def package_command(self, command, args=None, pkgs=None):          if pkgs is None: diff --git a/cloudinit/sources/helpers/openstack.py b/cloudinit/sources/helpers/openstack.py index 61c61570..7b27621c 100644 --- a/cloudinit/sources/helpers/openstack.py +++ b/cloudinit/sources/helpers/openstack.py @@ -421,6 +421,7 @@ class MetadataReader(BaseReader):          if self._versions is not None:              return self.os_versions          found = [] +        version_path = self._path_join(self.base_path, "openstack")          content = self._path_read(version_path)          for line in content.splitlines():              line = line.strip() diff --git a/tests/unittests/test_data.py b/tests/unittests/test_data.py index 41d0dc29..fd6bd8a1 100644 --- a/tests/unittests/test_data.py +++ b/tests/unittests/test_data.py @@ -106,7 +106,7 @@ class TestConsumeUserData(helpers.FilesystemMockingTestCase):          initer.read_cfg()          initer.initialize()          initer.fetch() -        _iid = initer.instancify() +        initer.instancify()          initer.update()          initer.cloudify().run('consume_data',                                initer.consume_data, @@ -145,7 +145,7 @@ class TestConsumeUserData(helpers.FilesystemMockingTestCase):          initer.read_cfg()          initer.initialize()          initer.fetch() -        _iid = initer.instancify() +        initer.instancify()          initer.update()          initer.cloudify().run('consume_data',                                initer.consume_data, @@ -221,7 +221,7 @@ run:          initer.read_cfg()          initer.initialize()          initer.fetch() -        _iid = initer.instancify() +        initer.instancify()          initer.update()          initer.cloudify().run('consume_data',                                initer.consume_data, @@ -256,7 +256,7 @@ vendor_data:          initer.read_cfg()          initer.initialize()          initer.fetch() -        _iid = initer.instancify() +        initer.instancify()          initer.update()          initer.cloudify().run('consume_data',                                initer.consume_data, @@ -264,7 +264,6 @@ vendor_data:                                freq=PER_INSTANCE)          mods = stages.Modules(initer)          (_which_ran, _failures) = mods.run_section('cloud_init_modules') -        _cfg = mods.cfg          vendor_script = initer.paths.get_ipath_cur('vendor_scripts')          vendor_script_fns = "%s%s/part-001" % (new_root, vendor_script)          self.assertTrue(os.path.exists(vendor_script_fns)) diff --git a/tests/unittests/test_datasource/test_nocloud.py b/tests/unittests/test_datasource/test_nocloud.py index 8bcc026c..e9235951 100644 --- a/tests/unittests/test_datasource/test_nocloud.py +++ b/tests/unittests/test_datasource/test_nocloud.py @@ -57,7 +57,6 @@ class TestNoCloudDataSource(MockerTestCase):              pass          def my_find_devs_with(*args, **kwargs): -            _f = (args, kwargs)              raise PsuedoException          self.apply_patches([(util, 'find_devs_with', my_find_devs_with)]) diff --git a/tests/unittests/test_runs/test_merge_run.py b/tests/unittests/test_runs/test_merge_run.py index 32b41925..977adb34 100644 --- a/tests/unittests/test_runs/test_merge_run.py +++ b/tests/unittests/test_runs/test_merge_run.py @@ -33,7 +33,7 @@ class TestMergeRun(helpers.FilesystemMockingTestCase):          initer.initialize()          initer.fetch()          initer.datasource.userdata_raw = ud -        _iid = initer.instancify() +        initer.instancify()          initer.update()          initer.cloudify().run('consume_data',                                initer.consume_data, diff --git a/tools/build-on-freebsd b/tools/build-on-freebsd index 23bdf487..65d783f7 100755 --- a/tools/build-on-freebsd +++ b/tools/build-on-freebsd @@ -17,6 +17,7 @@ pkgs="     py27-prettytable     py27-requests py27-six     python py27-cheetah +   py27-jsonpointer py27-jsonpatch  "  [ -f "$depschecked" ] || pkg install ${pkgs} || fail "install packages"  touch $depschecked | 
