Make sure DHCP and Metadata agents are dead
Change-Id: I37968533075dc8c4045f7a2e61279a89b8e54a50
This commit is contained in:
parent
5c17cbe4f2
commit
e3574ed3ff
116
deployment_scripts/puppet/manifests/midonet-disable-services.pp
Normal file
116
deployment_scripts/puppet/manifests/midonet-disable-services.pp
Normal file
@ -0,0 +1,116 @@
|
||||
# Copyright 2016 Midokura, SARL.
|
||||
#
|
||||
# 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.
|
||||
notice('MODULAR: midonet-disable-services.pp')
|
||||
include ::stdlib
|
||||
|
||||
# Extract hiera data
|
||||
$net_metadata = hiera_hash('network_metadata')
|
||||
|
||||
$node = get_node_by_fqdn($net_metadata, $::fqdn)
|
||||
|
||||
$roles = $node['node_roles']
|
||||
|
||||
$ovs_agent_name = $operatingsystem ? {
|
||||
'CentOS' => 'neutron-openvswitch-agent',
|
||||
'Ubuntu' => 'neutron-plugin-openvswitch-agent',
|
||||
}
|
||||
|
||||
$l3_agent_name = $operatingsystem ? {
|
||||
'CentOS' => 'neutron-l3-agent',
|
||||
'Ubuntu' => 'neutron-l3-agent'
|
||||
}
|
||||
|
||||
$dhcp_agent_name = $operatingsystem ? {
|
||||
'CentOS' => 'neutron-dhcp-agent',
|
||||
'Ubuntu' => 'neutron-dhcp-agent'
|
||||
}
|
||||
|
||||
$metadata_agent_name = $operatingsystem ? {
|
||||
'CentOS' => 'neutron-metadata-agent',
|
||||
'Ubuntu' => 'neutron-metadata-agent'
|
||||
}
|
||||
|
||||
if member($roles, 'primary-controller') {
|
||||
|
||||
exec {'stop-dhcp-agent':
|
||||
command => 'crm resource stop clone_neutron-dhcp-agent',
|
||||
path => '/usr/bin:/usr/sbin',
|
||||
onlyif => 'crm resource status clone_neutron-dhcp-agent'
|
||||
} ->
|
||||
exec {'stop-metadata-agent':
|
||||
command => 'crm resource stop clone_neutron-metadata-agent',
|
||||
path => '/usr/bin:/usr/sbin',
|
||||
onlyif => 'crm resource status clone_neutron-metadata-agent'
|
||||
} ->
|
||||
exec {'delete-metadata-agent':
|
||||
command => 'crm configure delete clone_neutron-metadata-agent',
|
||||
path => '/usr/bin:/usr/sbin',
|
||||
onlyif => 'crm resource status clone_neutron-metadata-agent'
|
||||
}->
|
||||
exec {'delete-dhcp-agent':
|
||||
command => 'crm configure delete clone_neutron-dhcp-agent',
|
||||
path => '/usr/bin:/usr/sbin',
|
||||
onlyif => 'crm resource status clone_neutron-dhcp-agent'
|
||||
}->
|
||||
exec {'stop-dhcp-agent-N':
|
||||
command => 'crm resource stop neutron-dhcp-agent',
|
||||
path => '/usr/bin:/usr/sbin',
|
||||
onlyif => 'crm resource status neutron-dhcp-agent'
|
||||
} ->
|
||||
exec {'stop-metadata-agent-N':
|
||||
command => 'crm resource stop neutron-metadata-agent',
|
||||
path => '/usr/bin:/usr/sbin',
|
||||
onlyif => 'crm resource status neutron-metadata-agent'
|
||||
} ->
|
||||
exec {'delete-metadata-agent-N':
|
||||
command => 'crm configure delete neutron-metadata-agent',
|
||||
path => '/usr/bin:/usr/sbin',
|
||||
onlyif => 'crm resource status neutron-metadata-agent'
|
||||
}->
|
||||
exec {'delete-dhcp-agent-N':
|
||||
command => 'crm configure delete neutron-dhcp-agent',
|
||||
path => '/usr/bin:/usr/sbin',
|
||||
onlyif => 'crm resource status neutron-dhcp-agent'
|
||||
}->
|
||||
exec {'stop-l3-agent':
|
||||
command => 'crm resource stop p_neutron-l3-agent',
|
||||
path => '/usr/bin:/usr/sbin',
|
||||
onlyif => 'crm resource status p_neutron-l3-agent'
|
||||
} ->
|
||||
exec {'delete-l3-agent':
|
||||
command => 'crm configure delete p_neutron-l3-agent',
|
||||
path => '/usr/bin:/usr/sbin',
|
||||
onlyif => 'crm resource status p_neutron-l3-agent'
|
||||
}->
|
||||
service {$dhcp_agent_name:
|
||||
ensure => stopped,
|
||||
enable => false
|
||||
}->
|
||||
|
||||
service {$metadata_agent_name:
|
||||
ensure => stopped,
|
||||
enable => false
|
||||
}
|
||||
} else {
|
||||
|
||||
service {$dhcp_agent_name:
|
||||
ensure => stopped,
|
||||
enable => false
|
||||
}
|
||||
|
||||
service {$metadata_agent_name:
|
||||
ensure => stopped,
|
||||
enable => false
|
||||
}
|
||||
}
|
@ -61,8 +61,7 @@ class {'::neutron':
|
||||
base_mac => 'fa:16:3e:00:00:00',
|
||||
allow_overlapping_ips => true,
|
||||
mac_generation_retries => '32',
|
||||
dhcp_lease_duration => '600',
|
||||
dhcp_agents_per_network => '2',
|
||||
dhcp_agent_notification => false,
|
||||
report_interval => '10',
|
||||
rabbit_user => $rabbit_hash['user'],
|
||||
rabbit_host => ['localhost'],
|
||||
|
@ -0,0 +1,19 @@
|
||||
module Puppet::Parser::Functions
|
||||
newfunction(:get_node_by_fqdn, :type => :rvalue, :doc => <<-EOS
|
||||
Return a node (node names are keys) that match the fqdn.
|
||||
example:
|
||||
get_node_by_fqdn($network_metadata_hash, 'test.function.com')
|
||||
EOS
|
||||
) do |args|
|
||||
errmsg = "get_node_by_fqdn($network_metadata_hash, $fqdn)"
|
||||
n_metadata, fqdn = args
|
||||
raise(Puppet::ParseError, "#{errmsg}: 1st argument should be a hash") if !n_metadata.is_a?(Hash)
|
||||
raise(Puppet::ParseError, "#{errmsg}: 1st argument should be a valid network_metadata hash") if !n_metadata.has_key?('nodes')
|
||||
raise(Puppet::ParseError, "#{errmsg}: 2nd argument should be an string") if !fqdn.is_a?(String)
|
||||
nodes = n_metadata['nodes']
|
||||
# Using unrequired node_property bellow -- is a workaround for ruby 1.8
|
||||
mynode = nodes.reject {|node_name, node_property| fqdn != node_property['fqdn']}
|
||||
raise(Puppet::ArgumentError, "#{errmsg}: No matching node found") if mynode.empty?
|
||||
return mynode.values[0]
|
||||
end
|
||||
end
|
@ -533,7 +533,6 @@
|
||||
- id: enable_nova_compute_service
|
||||
type: skipped
|
||||
|
||||
|
||||
# POST-DEPLOYMENT TASKS
|
||||
|
||||
# The task configure_default_route reinstalls openvswitch-switch
|
||||
@ -651,8 +650,6 @@
|
||||
- tunnel-zones-midonet
|
||||
reexecute_on:
|
||||
- deploy_changes
|
||||
required_for:
|
||||
- openstack-network-end
|
||||
version: 2.0.0
|
||||
type: puppet
|
||||
parameters:
|
||||
@ -894,6 +891,24 @@
|
||||
condition:
|
||||
yaql_exp: "$.midonet.mem = true and $.midonet.mem_insights = true"
|
||||
|
||||
# Kill the unneccessary agents the hard way
|
||||
- id: openstack-network-disable-services
|
||||
role:
|
||||
- primary-controller
|
||||
- controller
|
||||
requires:
|
||||
- post_deployment_start
|
||||
reexecute_on:
|
||||
- deploy_changes
|
||||
required_for:
|
||||
- post_deployment_end
|
||||
version: 2.0.0
|
||||
type: puppet
|
||||
parameters:
|
||||
puppet_manifest: puppet/manifests/midonet-disable-services.pp
|
||||
puppet_modules: "puppet/modules/:/etc/puppet/modules/"
|
||||
timeout: 1440
|
||||
|
||||
# In the end..
|
||||
|
||||
# Grab the Old Astute.yaml and save it somewhere so we can parse it
|
||||
|
Loading…
Reference in New Issue
Block a user