Uploaded image for project: 'Puppet'
  1. Puppet
  2. PUP-10415

puppet-apply: Could not set 'file' on ensure: Is a directory @ io_fread

    XMLWordPrintable

Details

    • Bug
    • Status: Closed
    • Normal
    • Resolution: Duplicate
    • PUP 6.14.0
    • None
    • None
    • None
    • Needs Assessment
    • Needs Assessment

    Description

      Puppet Version: 6.14.0
      Puppet Server Version: n/a
      OS Name/Version: CentOS 5/6/7

      Given a simple module with a directory to deploy via the file resource. Puppet is no longer able to copy out files if the target directory does not exist.

      Desired Behavior:

      Deploying a module's source directory using the `file` resource no longer works with `puppet apply`.

      Actual Behavior:

      6.13.0 results:

      Notice: /Stage[main]/Zabbixagent/File[/usr/local/libexec/zabbix/discover_ssl_interface.sh]/ensure: defined content as '{md5}d80441a366c9f5785292dafe8d45375e'
      Notice: /Stage[main]/Zabbixagent/File[/usr/local/libexec/zabbix/ssl_cert_info.sh]/ensure: defined content as '{md5}d41e50e79ed0fe1c96dac40931e641a2'
      

      6.14.0 results:

      Error: Could not set 'file' on ensure: Is a directory @ io_fread - /etc/puppetlabs/code/environments/production/modules/zabbixagent/files/localscripts
      Error: Could not set 'file' on ensure: Is a directory @ io_fread - /etc/puppetlabs/code/environments/production/modules/zabbixagent/files/localscripts
      Wrapped exception:
      Is a directory @ io_fread - /etc/puppetlabs/code/environments/production/modules/zabbixagent/files/localscripts
      Error: /Stage[main]/Zabbixagent/File[/usr/local/libexec/zabbix/discover_ssl_interface.sh]/ensure: change from 'absent' to 'file' failed: Could not set 'file' on ensure: Is a directory @ io_fread - /etc/puppetlabs/code/environments/production/modules/zabbixagent/files/localscripts
      Error: Could not set 'file' on ensure: Is a directory @ io_fread - /etc/puppetlabs/code/environments/production/modules/zabbixagent/files/localscripts
      Error: Could not set 'file' on ensure: Is a directory @ io_fread - /etc/puppetlabs/code/environments/production/modules/zabbixagent/files/localscripts
      Wrapped exception:
      Is a directory @ io_fread - /etc/puppetlabs/code/environments/production/modules/zabbixagent/files/localscripts
      Error: /Stage[main]/Zabbixagent/File[/usr/local/libexec/zabbix/ssl_cert_info.sh]/ensure: change from 'absent' to 'file' failed: Could not set 'file' on ensure: Is a directory @ io_fread - /etc/puppetlabs/code/environments/production/modules/zabbixagent/files/localscripts
      

      Interestingly, upgrading to 6.14.0 after successful run with 6.13.0, runs successfully until the target path directory is removed. Issue is reproducible by removing the target directory.

      Examples:

      Run puppet agent with --test --trace --debug
      Note, this appears to require a module to use the puppet:// urls. It doesn't appear to be an issue with file:// urls.

      `puppet module install ...`
      `puppet-apply --test examples/site.pp`

          file { '/usr/local/libexec/zabbix/':
            recurse => true,
            mode    => '0755',
            owner   => 'root',
            group   => 'root',
            purge   => true,
            force   => true,
            source  => 'puppet:///modules/zabbixagent/localscripts',
          }
       

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              dekimsey Daniel Kimsey
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Zendesk Support