<h5 dir="auto">ISSUE TYPE</h5>
<ul dir="auto">
<li>Bug Report</li>
</ul>
<h5 dir="auto">COMPONENT NAME</h5>
<ul dir="auto">
<li>role</li>
</ul>
<h5 dir="auto">ANSIBLE VERSION</h5>

<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="ansible 2.3.0.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = Default w/overrides
  python version = 2.7.13 (default, Dec 21 2016, 07:16:46) [GCC 6.2.1 20160830]"><pre class="notranslate"><code class="notranslate">ansible 2.3.0.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = Default w/overrides
  python version = 2.7.13 (default, Dec 21 2016, 07:16:46) [GCC 6.2.1 20160830]
</code></pre></div>
<h5 dir="auto">CONFIGURATION</h5>

<h5 dir="auto">OS / ENVIRONMENT</h5>

<p dir="auto">Arch Linux</p>
<h5 dir="auto">SUMMARY</h5>

<p dir="auto">Roles where the directory <code class="notranslate">roles/${role_name}</code> exists but if empty are silently ignored.</p>
<h5 dir="auto">STEPS TO REPRODUCE</h5>

<ol start="0" dir="auto">
<li>Be <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lrvick/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/lrvick">@lrvick</a></li>
<li>Forget to run <code class="notranslate">git submodules update --init</code></li>
<li>Call a playbook that uses role from the missing submodules</li>
</ol>
<h5 dir="auto">EXPECTED RESULTS</h5>

<p dir="auto">Ansible warns about the role being empty.</p>
<h5 dir="auto">ACTUAL RESULTS</h5>

<p dir="auto">Missing roles are silently ignored.</p>
<h5 dir="auto">ISSUE TYPE</h5>

<ul dir="auto">
<li>Feature Idea</li>
</ul>
<h5 dir="auto">COMPONENT NAME</h5>
<p dir="auto">"Playbook roles"</p>
<h5 dir="auto">ANSIBLE VERSION</h5>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="$ ansible --version
ansible 2.0.1.0
  config file = ..../ansible.cfg
  configured module search path = Default w/o overrides"><pre class="notranslate"><code class="notranslate">$ ansible --version
ansible 2.0.1.0
  config file = ..../ansible.cfg
  configured module search path = Default w/o overrides
</code></pre></div>
<h5 dir="auto">CONFIGURATION</h5>

<h5 dir="auto">OS / ENVIRONMENT</h5>

<p dir="auto">N/A</p>
<h5 dir="auto">SUMMARY</h5>

<p dir="auto">We have some git submodule in the roles repository, and sometimes we don't update our git clone submodules, which make some failures.</p>
<h5 dir="auto">STEPS TO REPRODUCE</h5>

<p dir="auto">A teammate adds a new "role submodule"<br>
git pull (creates an empty directory for the new submodule)<br>
running a playbook that includes this new role does nothing, since roles is an empty directory</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="&lt;!--- Paste example playbooks or commands between quotes --&gt;"><pre class="notranslate"><code class="notranslate">&lt;!--- Paste example playbooks or commands between quotes --&gt;
</code></pre></div>

<h5 dir="auto">EXPECTED RESULTS</h5>

<p dir="auto">ansible-playbook should warn about that empty role, or maybe fail because a role that does nothing should not exists.</p>
<h5 dir="auto">ACTUAL RESULTS</h5>

<p dir="auto">role is "ignored"</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="&lt;!--- Paste verbatim command output between quotes --&gt;"><pre class="notranslate"><code class="notranslate">&lt;!--- Paste verbatim command output between quotes --&gt;
</code></pre></div>