Merge "Add interface_type parameter"
This commit is contained in:
commit
ee3e211489
@ -8,6 +8,7 @@ Puppet::Type.type(:vs_port).provide(:ovs) do
|
|||||||
|
|
||||||
has_feature :bonding
|
has_feature :bonding
|
||||||
has_feature :vlan
|
has_feature :vlan
|
||||||
|
has_feature :interface_type
|
||||||
|
|
||||||
commands :vsctl => 'ovs-vsctl'
|
commands :vsctl => 'ovs-vsctl'
|
||||||
|
|
||||||
@ -39,6 +40,10 @@ Puppet::Type.type(:vs_port).provide(:ovs) do
|
|||||||
:vlan_trunks,
|
:vlan_trunks,
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
|
if @resource.provider.class.feature?(:interface_type)
|
||||||
|
sync_properties += [:interface_type,
|
||||||
|
]
|
||||||
|
end
|
||||||
for prop_name in sync_properties
|
for prop_name in sync_properties
|
||||||
property = @resource.property(prop_name)
|
property = @resource.property(prop_name)
|
||||||
property.sync unless property.safe_insync?(property.retrieve)
|
property.sync unless property.safe_insync?(property.retrieve)
|
||||||
@ -64,6 +69,17 @@ Puppet::Type.type(:vs_port).provide(:ovs) do
|
|||||||
vsctl(*args)
|
vsctl(*args)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def interface_type
|
||||||
|
types = get_port_interface_column('type').uniq
|
||||||
|
types != nil ? types.join(' ') : :system
|
||||||
|
end
|
||||||
|
|
||||||
|
def interface_type=(value)
|
||||||
|
@resource.property(:interface).retrieve.each do |iface|
|
||||||
|
vsctl('set', 'Interface', iface, "type=#{value}")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def bond_mode
|
def bond_mode
|
||||||
get_port_column('bond_mode')
|
get_port_column('bond_mode')
|
||||||
end
|
end
|
||||||
|
@ -44,6 +44,20 @@ Puppet::Type.newtype(:vs_port) do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
newproperty(:interface_type, :required_features => :interface_type) do
|
||||||
|
desc "The type of network interface connected to this port.
|
||||||
|
|
||||||
|
Supported types are 'system', 'internal' and 'tap'. Currently the
|
||||||
|
interface configuration required for tunnel ports is not supported.
|
||||||
|
|
||||||
|
Currently all interfaces on a port are set to the same type. Bonding
|
||||||
|
configurations with different types on the same port are not supported."
|
||||||
|
|
||||||
|
defaultto :system
|
||||||
|
|
||||||
|
newvalues(:system, :internal, :tap)
|
||||||
|
end
|
||||||
|
|
||||||
newproperty(:bond_mode, :required_features => :bonding) do
|
newproperty(:bond_mode, :required_features => :bonding) do
|
||||||
desc "Interface bonding mode for this port.
|
desc "Interface bonding mode for this port.
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user