Replace optional_commands with commands in providers
Optional commands can be used to specify that a command may not exist when provider suitability is determined. This is because it may be installed during the same run where it needs to be used. Previously, an empty default provider was created just to prevent failures when provider suitability was determined. This also required that the provider be explicitly overridden when the type is used. Using optional_commands instead of command reduces the amount of required code. It allows the default providers to be removed as well as the explicit provider attributes. This changed has been implemented for the following types: - nova_manage - nova_network - nova_admin
This commit is contained in:
parent
807a437471
commit
bcca7bedc4
@ -1,16 +0,0 @@
|
|||||||
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
|
|
@ -2,9 +2,7 @@ Puppet::Type.type(:nova_admin).provide(:nova_manage) do
|
|||||||
|
|
||||||
desc "Manage nova admin user"
|
desc "Manage nova admin user"
|
||||||
|
|
||||||
defaultfor :kernel => 'Linux'
|
optional_commands :nova_manage => 'nova-manage'
|
||||||
|
|
||||||
commands :nova_manage => 'nova-manage'
|
|
||||||
|
|
||||||
def exists?
|
def exists?
|
||||||
nova_manage("user", "list").match(/^#{resource[:name]}$/)
|
nova_manage("user", "list").match(/^#{resource[:name]}$/)
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
Puppet::Type.type(:nova_network).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
|
|
@ -2,9 +2,7 @@ Puppet::Type.type(:nova_network).provide(:nova_manage) do
|
|||||||
|
|
||||||
desc "Manage nova network"
|
desc "Manage nova network"
|
||||||
|
|
||||||
defaultfor :kernel => 'Linux'
|
optional_commands :nova_manage => 'nova-manage'
|
||||||
|
|
||||||
commands :nova_manage => 'nova-manage'
|
|
||||||
|
|
||||||
def exists?
|
def exists?
|
||||||
begin
|
begin
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
Puppet::Type.type(:nova_project).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_project, all it does is fail')
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
@ -2,9 +2,7 @@ Puppet::Type.type(:nova_project).provide(:nova_manage) do
|
|||||||
|
|
||||||
desc "Manage nova project"
|
desc "Manage nova project"
|
||||||
|
|
||||||
defaultfor :kernel => 'Linux'
|
optional_commands :nova_manage => 'nova-manage'
|
||||||
|
|
||||||
commands :nova_manage => 'nova-manage'
|
|
||||||
|
|
||||||
def exists?
|
def exists?
|
||||||
nova_manage("project", "list").match(/^#{resource[:name]}$/)
|
nova_manage("project", "list").match(/^#{resource[:name]}$/)
|
||||||
|
@ -7,7 +7,6 @@ define nova::manage::network ( $network, $available_ips ) {
|
|||||||
ensure => present,
|
ensure => present,
|
||||||
network => $network,
|
network => $network,
|
||||||
available_ips => $available_ips,
|
available_ips => $available_ips,
|
||||||
provider => 'nova_manage',
|
|
||||||
notify => Exec["nova-db-sync"],
|
notify => Exec["nova-db-sync"],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,6 @@ define nova::manage::project ( $owner ) {
|
|||||||
|
|
||||||
nova_project { $name:
|
nova_project { $name:
|
||||||
ensure => present,
|
ensure => present,
|
||||||
provider => 'nova_manage',
|
|
||||||
owner => $owner,
|
owner => $owner,
|
||||||
notify => Exec["nova-db-sync"],
|
notify => Exec["nova-db-sync"],
|
||||||
require => Nova::Manage::Admin[$owner],
|
require => Nova::Manage::Admin[$owner],
|
||||||
|
Loading…
Reference in New Issue
Block a user