Issue #7770 has been updated by eric sorenson.

Status changed from Accepted to Needs More Information
Assignee set to Adam Gandelman
Target version changed from 3.1.0 to 3.x

Hi Adam -- a comment on this brought it to my attention -- were you able to try 
the workaround Dan Bode suggested in 
https://projects.puppetlabs.com/issues/7770#note-4  ?

I'm curious too if this problem is still applicable on Puppet 3, since we have 
the ability to pick up new capabilities partway through a run.

I’ve put this ticket’s status into “Needs more Information” and assigned it to 
you. Please either (a) update it with the information I’ve requested and 
re-assign it to me if you need more help, or (b) change the status to “Closed” 
if you were able to resolve the issue on your own.
----------------------------------------
Bug #7770: warning: Found multiple default providers
https://projects.puppetlabs.com/issues/7770#change-84650

Author: Adam Gandelman
Status: Needs More Information
Priority: Normal
Assignee: Adam Gandelman
Category: agent
Target version: 3.x
Affected Puppet version: 2.6.4
Keywords: 
Branch: 


Using a noop provider to work around suitability checks for commands from 
yet-to-be installed packages, causes a warning about multiple providers during 
runs when the package is actually installed.  If the package is not installed 
before the run, there are no warnings and the package is later installed.

<pre>
# lib/puppet/type/nova_admin.rb
Puppet::Type.newtype(:nova_admin) do
  @doc = "Manage createion/deletion of nova admin users."
  ensurable
  newparam(:name) do
    desc "The name of the admins."
  end
end
</pre>

<pre>
# lib/puppet/provider/nova_admin/default.pp
Puppet::Type.type(:nova_admin).provide(:default) do
  desc "This is a default provider that does nothing. This allows us to install 
nova-manage on the same puppet run where we want to use it."
  def create
    return false
  end
  def destroy
    return false
  end
  def exists?
    fail('This is just the default provider for nova_admin, all it does is 
fail')
  end
end
</pre>

<pre>
# lib/puppet/provider/nova_admin/nova_admin.pp
Puppet::Type.type(:nova_admin).provide(:admin) do
  desc "Manage nova admin user "
  commands :nova_manage => 'nova-manage'
  def exists?
    nova_manage("user", "list").match(/^#{resource[:name]}$/)
  end
  def create
    nova_manage("user", "admin", resource[:name])
  end
  def destroy
    nova_manage("user", "delete", resource[:name])
  end
end
</pre>

<pre>
# admin.pp
class nova::manage::admin ( $username ) {
  nova_admin{ $username:
    ensure => present,
    provider => 'admin',
    notify => Exec["nova-db-sync"],
    require => Class["nova::db"],
  }
}
</pre>

<pre>
warning: Found multiple default providers for nova_admin: admin, default; using 
admin
</pre>




-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-bugs?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to