X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=3rdparty%2Fmodules%2Fneutron%2Flib%2Fpuppet%2Fprovider%2Fneutron_router%2Fneutron.rb;fp=3rdparty%2Fmodules%2Fneutron%2Flib%2Fpuppet%2Fprovider%2Fneutron_router%2Fneutron.rb;h=0000000000000000000000000000000000000000;hb=6e1426dc77fb4e5d51f07c187c6f2219431dc31e;hp=fa5f7f02af5febf9c816096c19285cbfa9ba5168;hpb=87423ba664cd5f2bb462ebadd08b1a90d0fe1c8d;p=mirror%2Fdsa-puppet.git diff --git a/3rdparty/modules/neutron/lib/puppet/provider/neutron_router/neutron.rb b/3rdparty/modules/neutron/lib/puppet/provider/neutron_router/neutron.rb deleted file mode 100644 index fa5f7f02a..000000000 --- a/3rdparty/modules/neutron/lib/puppet/provider/neutron_router/neutron.rb +++ /dev/null @@ -1,138 +0,0 @@ -require File.join(File.dirname(__FILE__), '..','..','..', - 'puppet/provider/neutron') - -Puppet::Type.type(:neutron_router).provide( - :neutron, - :parent => Puppet::Provider::Neutron -) do - desc <<-EOT - Neutron provider to manage neutron_router type. - - Assumes that the neutron service is configured on the same host. - EOT - - commands :neutron => 'neutron' - - mk_resource_methods - - def self.instances - list_neutron_resources('router').collect do |id| - attrs = get_neutron_resource_attrs('router', id) - new( - :ensure => :present, - :name => attrs['name'], - :id => attrs['id'], - :admin_state_up => attrs['admin_state_up'], - :external_gateway_info => attrs['external_gateway_info'], - :status => attrs['status'], - :tenant_id => attrs['tenant_id'] - ) - end - end - - def self.prefetch(resources) - instances_ = instances - resources.keys.each do |name| - if provider = instances_.find{ |instance| instance.name == name } - resources[name].provider = provider - end - end - end - - def exists? - @property_hash[:ensure] == :present - end - - def create - opts = Array.new - - if @resource[:admin_state_up] == 'False' - opts << '--admin-state-down' - end - - if @resource[:tenant_name] - tenant_id = self.class.get_tenant_id(model.catalog, - @resource[:tenant_name]) - opts << "--tenant_id=#{tenant_id}" - elsif @resource[:tenant_id] - opts << "--tenant_id=#{@resource[:tenant_id]}" - end - - results = auth_neutron("router-create", '--format=shell', - opts, resource[:name]) - - if results =~ /Created a new router:/ - attrs = self.class.parse_creation_output(results) - @property_hash = { - :ensure => :present, - :name => resource[:name], - :id => attrs['id'], - :admin_state_up => attrs['admin_state_up'], - :external_gateway_info => attrs['external_gateway_info'], - :status => attrs['status'], - :tenant_id => attrs['tenant_id'], - } - - if @resource[:gateway_network_name] - results = auth_neutron('router-gateway-set', - @resource[:name], - @resource[:gateway_network_name]) - if results =~ /Set gateway for router/ - attrs = self.class.get_neutron_resource_attrs('router', - @resource[:name]) - @property_hash[:external_gateway_info] = \ - attrs['external_gateway_info'] - else - fail(<<-EOT -did not get expected message on setting router gateway, got #{results} -EOT - ) - end - end - else - fail("did not get expected message on router creation, got #{results}") - end - end - - def destroy - auth_neutron('router-delete', name) - @property_hash[:ensure] = :absent - end - - def gateway_network_name - if @gateway_network_name == nil and gateway_network_id - Puppet::Type.type('neutron_network').instances.each do |instance| - if instance.provider.id == gateway_network_id - @gateway_network_name = instance.provider.name - end - end - end - @gateway_network_name - end - - def gateway_network_name=(value) - if value == '' - auth_neutron('router-gateway-clear', name) - else - auth_neutron('router-gateway-set', name, value) - end - end - - def parse_gateway_network_id(external_gateway_info_) - match_data = /\{"network_id": "(.*?)"/.match(external_gateway_info_) - if match_data - match_data[1] - else - '' - end - end - - def gateway_network_id - @gateway_network_id ||= parse_gateway_network_id(external_gateway_info) - end - - def admin_state_up=(value) - auth_neutron('router-update', "--admin-state-up=#{value}", name) - end - -end