fuel_plugin: Working version on Montreal POD
[ovsnfv.git] / fuel-plugin-ovsnfv / deployment_scripts / puppet / modules / ovsdpdk / manifests / postinstall_ovs_dpdk.pp
index 4a23a89..a3fd60f 100755 (executable)
@@ -6,6 +6,7 @@ class ovsdpdk::postinstall_ovs_dpdk (
   $plugin_dir               = $::ovsdpdk::params::plugin_dir,
   $nova_conf                = $::ovsdpdk::params::nova_conf,
   $openvswitch_service_name = $::ovsdpdk::params::openvswitch_service_name,
+  $ml2_conf                 = $::ovsdpdk::params::ml2_conf,
   $ml2_ovs_conf             = $::ovsdpdk::params::ml2_ovs_conf,
   $neutron_l3_conf          = $::ovsdpdk::params::neutron_l3_conf,
   $openvswitch_agent        = $::ovsdpdk::params::openvswitch_agent,
@@ -16,59 +17,132 @@ class ovsdpdk::postinstall_ovs_dpdk (
   package {'crudini': ensure => installed }
 
   if $compute == 'True' {
-         # adapt configuration files
-         exec {'adapt_nova_conf':
-           command => "${plugin_dir}/files/set_vcpu_pin.sh ${nova_conf}",
-           path    => ['/usr/bin','/bin'],
-           user    => root,
-           onlyif  => "test -f ${nova_conf}",
-           require => Package['crudini'],
-         }
-
-         exec {'adapt_ml2_conf':
-           command => "sudo crudini --set ${ml2_ovs_conf} ovs datapath_type ${ovs_datapath_type}",
-           path    => ['/usr/bin','/bin'],
-           user    => root,
-           onlyif  => "test -f ${ml2_ovs_conf}",
-           require => Package['crudini'],
-         }
-
-         exec {'adapt_neutron_l3':
-           command => "sudo crudini --set ${neutron_l3_conf} DEFAULT external_network_bridge br-ex",
-           path    => ['/usr/bin','/bin'],
-           user    => root,
-           onlyif  => "test -f ${neutron_l3_conf}",
-           require => Package['crudini'],
-         }
-
-
-         service {"${openvswitch_service_name}": ensure => 'running' }
-
-         # restart OVS to synchronize ovsdb-server with ovs-vswitchd needed
-         # due to several new --no-wait entries
-         exec {'restart_ovs':
-           command => "/usr/sbin/service ${openvswitch_service_name} restart",
-           user    => root,
-           require => Service["${openvswitch_service_name}"],
-         }
-
-         exec { "${plugin_dir}/files/configure_bridges.sh ${ovs_datapath_type}":
-        user    => root,
-        require => Exec['restart_ovs'],
-      }
+    # adapt configuration files
+    exec {'adapt_nova_conf':
+      command => "${plugin_dir}/files/set_vcpu_pin.sh ${nova_conf}",
+      path    => ['/usr/bin','/bin'],
+      user    => root,
+      onlyif  => "test -f ${nova_conf}",
+      require => Package['crudini'],
+    }
+
+    exec {'adapt_ml2_conf_datapath':
+      command => "sudo crudini --set ${ml2_ovs_conf} ovs datapath_type ${ovs_datapath_type}",
+      path    => ['/usr/bin','/bin'],
+      user    => root,
+      onlyif  => "test -f ${ml2_ovs_conf}",
+      require => Package['crudini'],
+    }
+
+    exec {'adapt_neutron_l3':
+      command => "sudo crudini --set ${neutron_l3_conf} DEFAULT external_network_bridge br-ex",
+      path    => ['/usr/bin','/bin'],
+      user    => root,
+      onlyif  => "test -f ${neutron_l3_conf}",
+      require => Package['crudini'],
+    }
+
+
+    service {"${openvswitch_service_name}": ensure => 'running' }
+
+    # restart OVS to synchronize ovsdb-server with ovs-vswitchd needed
+    # due to several new --no-wait entries
+    exec {'restart_ovs':
+      command => "/usr/sbin/service ${openvswitch_service_name} restart",
+      user    => root,
+      require => Service["${openvswitch_service_name}"],
+    }
+
+    exec { "${plugin_dir}/files/configure_bridges.sh ${ovs_datapath_type}":
+      user    => root,
+      require => Exec['restart_ovs'],
+    }
+
+    service { 'libvirtd': ensure => running }
+
+    exec {'libvirtd_disable_tls':
+      command => "sudo crudini --set /etc/libvirt/libvirtd.conf '' listen_tls 0",
+      path    => ['/usr/bin','/bin'],
+      user    => root,
+      require => Package['crudini'],
+      notify  => Service['libvirtd'],
+    }
+
+    exec {'restart_nova_compute':
+      command => "/usr/sbin/service nova-compute restart",
+      user    => root,
+      require => [ Exec['libvirtd_disable_tls'], Service['libvirtd'] ],
+    }
+  }
+
+  exec {'adapt_ml2_conf_mechanism_driver':
+    command => "sudo crudini --set ${ml2_conf} ml2 mechanism_drivers ovsdpdk",
+    path    => ['/usr/bin','/bin'],
+    user    => root,
+    onlyif  => "test -f ${ml2_conf}",
+    require => Package['crudini'],
+  }
+
+  exec {'adapt_ml2_conf_security_group':
+    command => "sudo crudini --set ${ml2_conf} securitygroup firewall_driver neutron.agent.firewall.NoopFirewallDriver",
+    path    => ['/usr/bin','/bin'],
+    user    => root,
+    onlyif  => "test -f ${ml2_conf}",
+    require => Package['crudini'],
   }
 
   if $controller == 'True' {
     service {'neutron-server':
-       ensure => 'running',
+      ensure => 'running',
+    }
+
+    exec {'append_NUMATopologyFilter':
+      command => "sudo crudini --set ${nova_conf} DEFAULT scheduler_default_filters RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,NUMATopologyFilter",
+      path    => ['/usr/bin','/bin'],
+      user    => root,
+      onlyif  => "test -f ${nova_conf}",
+      require => Package['crudini'],
+    }
+
+    exec { 'remove_old_agent':
+      command => "${plugin_dir}/files/remove_agent.sh $adminrc_user $adminrc_password $adminrc_tenant $adminrc_hostname",
+      user      => 'root',
+      logoutput => 'true',
+      timeout   => 0,
+      require   => [ Service['neutron-server'], Exec['append_NUMATopologyFilter'] ],
+    }
+
+    exec {'restart_neutron_server':
+      command => "/usr/sbin/service neutron-server restart",
+      user    => root,
+      require => Exec['remove_old_agent'],
     }
+
+    exec {'restart_nova_scheduler':
+      command => "/usr/sbin/service nova-scheduler restart",
+      user    => root,
+      require => Exec['remove_old_agent'],
+    }
+
   }
 
   if $compute == 'True' {
-         service {"${openvswitch_agent}":
-           ensure  => 'running',
-           require => [ Exec['restart_ovs'], Service["${openvswitch_service_name}"] ],
-         }
+    exec { 'patch_ovs_agent':
+      command => "cp ${plugin_dir}/files/neutron-plugin-openvswitch-agent.conf /etc/init/neutron-plugin-openvswitch-agent.conf",
+      path    => ['/usr/bin','/bin'],
+      user    => root,
+    }
+
+    service {"${openvswitch_agent}":
+      ensure  => 'running',
+      require => [ Exec['restart_ovs'], Service["${openvswitch_service_name}"], Exec['patch_ovs_agent'] ],
+    }
+
+    exec { "ovs-vsctl --no-wait set Open_vSwitch . other_config:pmd-cpu-mask=${ovs_pmd_core_mask}":
+      path    => ['/usr/bin','/bin'],
+      user    => root,
+      require => Service["${openvswitch_agent}"],
+    }
   }
 
 }