
In Nova cells v1 has been deprecated since Ocata but we have no notices about it. This adds warnings about it being deprecated and will be removed. The functionality in nova::cells when passing create_cells parameter is broken and has therefore been removed and instead outputs a warning and is deprecated. A known issue has been added to the release notes to inform about this. It's probably safe to say that nobody is using it since it has been broken since we switched over to transport_url for rabbit, it's also safe to probably assume that no deployments that run cell v1 right now will be running a later version of Nova. Closes-Bug: 1687395 Change-Id: I564fc4f43a752b051280dce095a52ca4d477fb09
93 lines
2.3 KiB
Ruby
93 lines
2.3 KiB
Ruby
#
|
|
# Copyright (C) 2013 eNovance SAS <licensing@enovance.com>
|
|
#
|
|
# Author: Emilien Macchi <emilien.macchi@enovance.com>
|
|
# Francois Charlier <francois.charlier@enovance.com>
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
#
|
|
#
|
|
# nova_cells provider
|
|
#
|
|
# CELL v1 IS DEPRECATED AND WILL BE REMOVED
|
|
#
|
|
|
|
require File.join(File.dirname(__FILE__), '..','..','..', 'puppet/provider/nova')
|
|
|
|
Puppet::Type.type(:nova_cells).provide(
|
|
:nova_manage,
|
|
:parent => Puppet::Provider::Nova
|
|
) do
|
|
|
|
desc "Manage nova cells"
|
|
|
|
def self.instances
|
|
begin
|
|
cells_list = nova_manage_request("cell", "list")
|
|
rescue Exception => e
|
|
if e.message =~ /No cells defined/
|
|
return []
|
|
else
|
|
raise(e)
|
|
end
|
|
end
|
|
cells_list.split("\n")[1..-1].collect do |net|
|
|
if net =~ /^(\S+)\s+(\S+)/
|
|
new(:name => $2 )
|
|
end
|
|
end.compact
|
|
end
|
|
|
|
|
|
def create
|
|
optional_opts = []
|
|
{
|
|
:name => '--name',
|
|
:cell_type => '--cell_type',
|
|
:rabbit_username => '--username',
|
|
:rabbit_password => '--password',
|
|
:rabbit_hosts => '--hostname',
|
|
:rabbit_port => '--port',
|
|
:rabbit_virtual_host => '--virtual_host',
|
|
:weight_offset => '--woffset',
|
|
:weight_scale => '--wscale'
|
|
|
|
}.each do |param, opt|
|
|
if resource[param]
|
|
optional_opts.push(opt).push(resource[param])
|
|
end
|
|
end
|
|
|
|
nova_manage_request('cell', 'create',
|
|
optional_opts
|
|
)
|
|
end
|
|
|
|
def exists?
|
|
begin
|
|
cells_list = nova_manage_request("cell", "list")
|
|
return cells_list.split("\n")[1..-1].detect do |n|
|
|
n =~ /^(\S+)\s+(#{resource[:cells].split('/').first})/
|
|
end
|
|
rescue
|
|
return false
|
|
end
|
|
end
|
|
|
|
|
|
def destroy
|
|
nova_manage_request("cell", "delete", resource[:name])
|
|
end
|
|
|
|
end
|