Rush has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/405366 )

Change subject: openstack: nova-network and neutron nova::common split
......................................................................

openstack: nova-network and neutron nova::common split

These two paths will not coexist in the same deployment,
and will not exist side by side long term so I am splitting
the configuration rather than mix them with template logic
or other logic branching for the same manifests.

Bug: T171494
Change-Id: Iba0aecdfaa1e35c24dbc13a27d0459ce570abe3b
---
C modules/openstack/manifests/nova/common/neutron.pp
R modules/openstack/manifests/nova/common/nova_network.pp
A modules/openstack/templates/liberty/nova/common/neutron/api-paste.ini.erb
A modules/openstack/templates/liberty/nova/common/neutron/nova.conf.erb
R modules/openstack/templates/liberty/nova/common/nova_network/api-paste.ini.erb
R modules/openstack/templates/liberty/nova/common/nova_network/nova.conf.erb
A modules/profile/manifests/openstack/base/nova/common/neutron.pp
R modules/profile/manifests/openstack/base/nova/common/nova_network.pp
M modules/profile/manifests/openstack/labtest/nova/common.pp
M modules/profile/manifests/openstack/labtestn/nova/common.pp
M modules/profile/manifests/openstack/main/nova/common.pp
M modules/role/manifests/wmcs/openstack/labtestn/control.pp
12 files changed, 190 insertions(+), 84 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/puppet 
refs/changes/66/405366/1

diff --git a/modules/openstack/manifests/nova/common.pp 
b/modules/openstack/manifests/nova/common/neutron.pp
similarity index 69%
copy from modules/openstack/manifests/nova/common.pp
copy to modules/openstack/manifests/nova/common/neutron.pp
index affa993..46073b1 100644
--- a/modules/openstack/manifests/nova/common.pp
+++ b/modules/openstack/manifests/nova/common/neutron.pp
@@ -1,36 +1,6 @@
-class openstack::nova::common(
+class openstack::nova::common::neutron(
     $version,
-    $nova_controller,
-    $nova_api_host,
-    $nova_api_host_ip,
-    $dmz_cidr,
-    $dhcp_domain,
-    $quota_floating_ips,
-    $dhcp_start,
-    $network_flat_interface,
-    $flat_network_bridge,
-    $fixed_range,
-    $network_public_interface,
-    $network_public_ip,
-    $zone,
-    $scheduler_pool,
-    $db_user,
-    $db_pass,
-    $db_host,
-    $db_name,
-    $ldap_user_pass,
-    $libvirt_type,
-    $live_migration_uri,
-    $glance_host,
-    $rabbit_user,
-    $rabbit_host,
-    $rabbit_pass,
-    $spice_hostname,
-    $keystone_auth_uri,
-    $keystone_admin_uri,
     ) {
-
-    $nova_controller_ip = ipresolve($nova_controller,4)
 
     $packages = [
         'unzip',
@@ -63,13 +33,13 @@
 
     file {
         '/etc/nova/nova.conf':
-            content => 
template("openstack/${version}/nova/common/nova.conf.erb"),
+            content => 
template("openstack/${version}/nova/common/neutron/nova.conf.erb"),
             owner   => 'nova',
             group   => 'nogroup',
             mode    => '0440',
             require => Package['nova-common'];
         '/etc/nova/api-paste.ini':
-            content => 
template("openstack/${version}/nova/common/api-paste.ini.erb"),
+            content => 
template("openstack/${version}/nova/common/neutron/api-paste.ini.erb"),
             owner   => 'nova',
             group   => 'nogroup',
             mode    => '0440',
diff --git a/modules/openstack/manifests/nova/common.pp 
b/modules/openstack/manifests/nova/common/nova_network.pp
similarity index 94%
rename from modules/openstack/manifests/nova/common.pp
rename to modules/openstack/manifests/nova/common/nova_network.pp
index affa993..fc1bf28 100644
--- a/modules/openstack/manifests/nova/common.pp
+++ b/modules/openstack/manifests/nova/common/nova_network.pp
@@ -1,4 +1,4 @@
-class openstack::nova::common(
+class openstack::nova::common::nova_network(
     $version,
     $nova_controller,
     $nova_api_host,
@@ -63,13 +63,13 @@
 
     file {
         '/etc/nova/nova.conf':
-            content => 
template("openstack/${version}/nova/common/nova.conf.erb"),
+            content => 
template("openstack/${version}/nova/common/nova_network/nova.conf.erb"),
             owner   => 'nova',
             group   => 'nogroup',
             mode    => '0440',
             require => Package['nova-common'];
         '/etc/nova/api-paste.ini':
-            content => 
template("openstack/${version}/nova/common/api-paste.ini.erb"),
+            content => 
template("openstack/${version}/nova/common/nova_network/api-paste.ini.erb"),
             owner   => 'nova',
             group   => 'nogroup',
             mode    => '0440',
diff --git 
a/modules/openstack/templates/liberty/nova/common/neutron/api-paste.ini.erb 
b/modules/openstack/templates/liberty/nova/common/neutron/api-paste.ini.erb
new file mode 100644
index 0000000..80e09dc
--- /dev/null
+++ b/modules/openstack/templates/liberty/nova/common/neutron/api-paste.ini.erb
@@ -0,0 +1,153 @@
+[DEFAULT]
+dhcpbridge_flagfile=/etc/nova/nova.conf
+dhcpbridge=/usr/bin/nova-dhcpbridge
+logdir=/var/log/nova
+state_path=/var/lib/nova
+lock_path=/var/lock/nova
+force_dhcp_release=True
+libvirt_use_virtio_for_bridges=True
+verbose=True
+ec2_private_dns_show_ip=True
+api_paste_config=/etc/nova/api-paste.ini
+enabled_apis=ec2,osapi_compute,metadata
+root@labtestvirt2003:~# cat /etc/nova/api-paste.ini
+############
+# Metadata #
+############
+[composite:metadata]
+use = egg:Paste#urlmap
+/: meta
+
+[pipeline:meta]
+pipeline = ec2faultwrap logrequest metaapp
+
+[app:metaapp]
+paste.app_factory = nova.api.metadata.handler:MetadataRequestHandler.factory
+
+#######
+# EC2 #
+#######
+
+# NOTE: this is now deprecated in favor of 
https://github.com/stackforge/ec2-api
+[composite:ec2]
+use = egg:Paste#urlmap
+/: ec2cloud
+
+[composite:ec2cloud]
+use = call:nova.api.auth:pipeline_factory
+noauth2 = ec2faultwrap logrequest ec2noauth cloudrequest validator ec2executor
+keystone = ec2faultwrap logrequest ec2keystoneauth cloudrequest validator 
ec2executor
+
+[filter:ec2faultwrap]
+paste.filter_factory = nova.api.ec2:FaultWrapper.factory
+
+[filter:logrequest]
+paste.filter_factory = nova.api.ec2:RequestLogging.factory
+
+[filter:ec2lockout]
+paste.filter_factory = nova.api.ec2:Lockout.factory
+
+[filter:ec2keystoneauth]
+paste.filter_factory = nova.api.ec2:EC2KeystoneAuth.factory
+
+[filter:ec2noauth]
+paste.filter_factory = nova.api.ec2:NoAuth.factory
+
+[filter:cloudrequest]
+controller = nova.api.ec2.cloud.CloudController
+paste.filter_factory = nova.api.ec2:Requestify.factory
+
+[filter:authorizer]
+paste.filter_factory = nova.api.ec2:Authorizer.factory
+
+[filter:validator]
+paste.filter_factory = nova.api.ec2:Validator.factory
+
+[app:ec2executor]
+paste.app_factory = nova.api.ec2:Executor.factory
+
+#############
+# OpenStack #
+#############
+
+[composite:osapi_compute]
+use = call:nova.api.openstack.urlmap:urlmap_factory
+/: oscomputeversions
+# starting in Liberty the v21 implementation replaces the v2
+# implementation and is suggested that you use it as the default. If
+# this causes issues with your clients you can rollback to the
+# *frozen* v2 api by commenting out the above stanza and using the
+# following instead::
+# /v1.1: openstack_compute_api_legacy_v2
+# /v2: openstack_compute_api_legacy_v2
+# if rolling back to v2 fixes your issue please file a critical bug
+# at - https://bugs.launchpad.net/nova/+bugs
+#
+# v21 is an exactly feature match for v2, except it has more stringent
+# input validation on the wsgi surface (prevents fuzzing early on the
+# API). It also provides new features via API microversions which are
+# opt into for clients. Unaware clients will receive the same frozen
+# v2 API feature set, but with some relaxed validation
+/v1.1: openstack_compute_api_v21_legacy_v2_compatible
+/v2: openstack_compute_api_v21_legacy_v2_compatible
+/v2.1: openstack_compute_api_v21
+
+# NOTE: this is deprecated in favor of 
openstack_compute_api_v21_legacy_v2_compatible
+[composite:openstack_compute_api_legacy_v2]
+use = call:nova.api.auth:pipeline_factory
+noauth2 = compute_req_id faultwrap sizelimit noauth2 legacy_ratelimit 
osapi_compute_app_legacy_v2
+keystone = compute_req_id faultwrap sizelimit authtoken keystonecontext 
legacy_ratelimit osapi_compute_app_legacy_v2
+keystone_nolimit = compute_req_id faultwrap sizelimit authtoken 
keystonecontext osapi_compute_app_legacy_v2
+
+[composite:openstack_compute_api_v21]
+use = call:nova.api.auth:pipeline_factory_v21
+noauth2 = compute_req_id faultwrap sizelimit noauth2 osapi_compute_app_v21
+keystone = compute_req_id faultwrap sizelimit authtoken keystonecontext 
osapi_compute_app_v21
+
+[composite:openstack_compute_api_v21_legacy_v2_compatible]
+use = call:nova.api.auth:pipeline_factory_v21
+noauth2 = compute_req_id faultwrap sizelimit noauth2 legacy_v2_compatible 
osapi_compute_app_v21
+keystone = compute_req_id faultwrap sizelimit authtoken keystonecontext 
legacy_v2_compatible osapi_compute_app_v21
+
+[filter:request_id]
+paste.filter_factory = oslo_middleware:RequestId.factory
+
+[filter:compute_req_id]
+paste.filter_factory = nova.api.compute_req_id:ComputeReqIdMiddleware.factory
+
+[filter:faultwrap]
+paste.filter_factory = nova.api.openstack:FaultWrapper.factory
+
+[filter:noauth2]
+paste.filter_factory = nova.api.openstack.auth:NoAuthMiddleware.factory
+
+[filter:legacy_ratelimit]
+paste.filter_factory = 
nova.api.openstack.compute.limits:RateLimitingMiddleware.factory
+
+[filter:sizelimit]
+paste.filter_factory = oslo_middleware:RequestBodySizeLimiter.factory
+
+[filter:legacy_v2_compatible]
+paste.filter_factory = nova.api.openstack:LegacyV2CompatibleWrapper.factory
+
+[app:osapi_compute_app_legacy_v2]
+paste.app_factory = nova.api.openstack.compute:APIRouter.factory
+
+[app:osapi_compute_app_v21]
+paste.app_factory = nova.api.openstack.compute:APIRouterV21.factory
+
+[pipeline:oscomputeversions]
+pipeline = faultwrap oscomputeversionapp
+
+[app:oscomputeversionapp]
+paste.app_factory = nova.api.openstack.compute.versions:Versions.factory
+
+##########
+# Shared #
+##########
+
+[filter:keystonecontext]
+paste.filter_factory = nova.api.auth:NovaKeystoneContext.factory
+
+[filter:authtoken]
+paste.filter_factory = keystonemiddleware.auth_token:filter_factory
diff --git 
a/modules/openstack/templates/liberty/nova/common/neutron/nova.conf.erb 
b/modules/openstack/templates/liberty/nova/common/neutron/nova.conf.erb
new file mode 100644
index 0000000..a2a354d
--- /dev/null
+++ b/modules/openstack/templates/liberty/nova/common/neutron/nova.conf.erb
@@ -0,0 +1,12 @@
+[DEFAULT]
+dhcpbridge_flagfile=/etc/nova/nova.conf
+dhcpbridge=/usr/bin/nova-dhcpbridge
+logdir=/var/log/nova
+state_path=/var/lib/nova
+lock_path=/var/lock/nova
+force_dhcp_release=True
+libvirt_use_virtio_for_bridges=True
+verbose=True
+ec2_private_dns_show_ip=True
+api_paste_config=/etc/nova/api-paste.ini
+enabled_apis=ec2,osapi_compute,metadata
diff --git a/modules/openstack/templates/liberty/nova/common/api-paste.ini.erb 
b/modules/openstack/templates/liberty/nova/common/nova_network/api-paste.ini.erb
similarity index 100%
rename from modules/openstack/templates/liberty/nova/common/api-paste.ini.erb
rename to 
modules/openstack/templates/liberty/nova/common/nova_network/api-paste.ini.erb
diff --git a/modules/openstack/templates/liberty/nova/common/nova.conf.erb 
b/modules/openstack/templates/liberty/nova/common/nova_network/nova.conf.erb
similarity index 100%
rename from modules/openstack/templates/liberty/nova/common/nova.conf.erb
rename to 
modules/openstack/templates/liberty/nova/common/nova_network/nova.conf.erb
diff --git a/modules/profile/manifests/openstack/base/nova/common/neutron.pp 
b/modules/profile/manifests/openstack/base/nova/common/neutron.pp
new file mode 100644
index 0000000..1d96102
--- /dev/null
+++ b/modules/profile/manifests/openstack/base/nova/common/neutron.pp
@@ -0,0 +1,9 @@
+class profile::openstack::base::nova::common::neutron(
+    $version = hiera('profile::openstack::base::version'),
+    ) {
+
+    class {'::openstack::nova::common::neutron':
+        version                  => $version,
+    }
+    contain '::openstack::nova::common::neutron'
+}
diff --git a/modules/profile/manifests/openstack/base/nova/common.pp 
b/modules/profile/manifests/openstack/base/nova/common/nova_network.pp
similarity index 94%
rename from modules/profile/manifests/openstack/base/nova/common.pp
rename to modules/profile/manifests/openstack/base/nova/common/nova_network.pp
index dfc76de..336b9cf 100644
--- a/modules/profile/manifests/openstack/base/nova/common.pp
+++ b/modules/profile/manifests/openstack/base/nova/common/nova_network.pp
@@ -1,4 +1,4 @@
-class profile::openstack::base::nova::common(
+class profile::openstack::base::nova::common::nova_network(
     $version = hiera('profile::openstack::base::version'),
     $nova_controller = hiera('profile::openstack::base::nova_controller'),
     $nova_api_host = hiera('profile::openstack::base::nova_api_host'),
@@ -31,7 +31,7 @@
     $keystone_auth_uri = "http://${nova_controller}:${public_port}";
     $nova_api_host_ip = ipresolve($nova_api_host,4)
 
-    class {'::openstack::nova::common':
+    class {'::openstack::nova::common::nova_network':
         version                  => $version,
         nova_controller          => $nova_controller,
         nova_api_host            => $nova_api_host,
@@ -62,5 +62,5 @@
         keystone_auth_uri        => $keystone_auth_uri,
         keystone_admin_uri       => $keystone_admin_uri,
     }
-    contain '::openstack::nova::common'
+    contain '::openstack::nova::common::nova_network'
 }
diff --git a/modules/profile/manifests/openstack/labtest/nova/common.pp 
b/modules/profile/manifests/openstack/labtest/nova/common.pp
index 5595c86..0f7d1e4 100644
--- a/modules/profile/manifests/openstack/labtest/nova/common.pp
+++ b/modules/profile/manifests/openstack/labtest/nova/common.pp
@@ -22,7 +22,7 @@
     ) {
 
     require ::profile::openstack::labtest::cloudrepo
-    class {'::profile::openstack::base::nova::common':
+    class {'::profile::openstack::base::nova::common::nova_network':
         version                  => $version,
         nova_controller          => $nova_controller,
         nova_api_host            => $nova_api_host,
@@ -44,5 +44,5 @@
         rabbit_pass              => $rabbit_pass,
         spice_hostname           => $spice_hostname,
     }
-    contain '::profile::openstack::base::nova::common'
+    contain '::profile::openstack::base::nova::common::nova_network'
 }
diff --git a/modules/profile/manifests/openstack/labtestn/nova/common.pp 
b/modules/profile/manifests/openstack/labtestn/nova/common.pp
index 49b878d..322a8eb 100644
--- a/modules/profile/manifests/openstack/labtestn/nova/common.pp
+++ b/modules/profile/manifests/openstack/labtestn/nova/common.pp
@@ -1,48 +1,10 @@
 class profile::openstack::labtestn::nova::common(
     $version = hiera('profile::openstack::labtestn::version'),
-    $nova_controller = hiera('profile::openstack::labtestn::nova_controller'),
-    $nova_api_host = hiera('profile::openstack::labtestn::nova_api_host'),
-    $dmz_cidr = hiera('profile::openstack::labtestn::nova::dmz_cidr'),
-    $dhcp_domain = hiera('profile::openstack::labtestn::nova::dhcp_domain'),
-    $dhcp_start = hiera('profile::openstack::labtestn::nova::dhcp_start'),
-    $quota_floating_ips = 
hiera('profile::openstack::labtestn::nova::quota_floating_ips'),
-    $network_flat_interface = 
hiera('profile::openstack::labtestn::nova::network_flat_interface'),
-    $flat_network_bridge = 
hiera('profile::openstack::labtestn::nova::flat_network_bridge'),
-    $fixed_range = hiera('profile::openstack::labtestn::nova::fixed_range'),
-    $network_public_interface = 
hiera('profile::openstack::labtestn::nova::network_public_interface'),
-    $network_public_ip = 
hiera('profile::openstack::labtestn::nova::network_public_ip'),
-    $zone = hiera('profile::openstack::labtestn::nova::zone'),
-    $scheduler_pool = 
hiera('profile::openstack::labtestn::nova::scheduler_pool'),
-    $db_pass = hiera('profile::openstack::labtestn::nova::db_pass'),
-    $db_host = hiera('profile::openstack::labtestn::nova::db_host'),
-    $ldap_user_pass = hiera('profile::openstack::labtestn::ldap_user_pass'),
-    $live_migration_uri = 
hiera('profile::openstack::labtestn::nova::live_migration_uri'),
-    $rabbit_pass = hiera('profile::openstack::labtestn::nova::rabbit_pass'),
-    $spice_hostname = hiera('profile::openstack::labtestn::spice_hostname'),
     ) {
 
     require ::profile::openstack::labtestn::cloudrepo
-    class {'::profile::openstack::base::nova::common':
-        version                  => $version,
-        nova_controller          => $nova_controller,
-        nova_api_host            => $nova_api_host,
-        dmz_cidr                 => $dmz_cidr,
-        dhcp_domain              => $dhcp_domain,
-        quota_floating_ips       => $quota_floating_ips,
-        dhcp_start               => $dhcp_start,
-        network_flat_interface   => $network_flat_interface,
-        flat_network_bridge      => $flat_network_bridge,
-        fixed_range              => $fixed_range,
-        network_public_interface => $network_public_interface,
-        network_public_ip        => $network_public_ip,
-        zone                     => $zone,
-        scheduler_pool           => $scheduler_pool,
-        db_pass                  => $db_pass,
-        db_host                  => $db_host,
-        ldap_user_pass           => $ldap_user_pass,
-        live_migration_uri       => $live_migration_uri,
-        rabbit_pass              => $rabbit_pass,
-        spice_hostname           => $spice_hostname,
+    class {'::profile::openstack::base::nova::common::neutron':
+        version => $version,
     }
-    contain '::profile::openstack::base::nova::common'
+    contain '::profile::openstack::base::nova::common::neutron'
 }
diff --git a/modules/profile/manifests/openstack/main/nova/common.pp 
b/modules/profile/manifests/openstack/main/nova/common.pp
index e135aa9..a65054f 100644
--- a/modules/profile/manifests/openstack/main/nova/common.pp
+++ b/modules/profile/manifests/openstack/main/nova/common.pp
@@ -22,7 +22,7 @@
     ) {
 
     require ::profile::openstack::main::cloudrepo
-    class {'profile::openstack::base::nova::common':
+    class {'profile::openstack::base::nova::common::nova_network':
         version                  => $version,
         nova_controller          => $nova_controller,
         nova_api_host            => $nova_api_host,
diff --git a/modules/role/manifests/wmcs/openstack/labtestn/control.pp 
b/modules/role/manifests/wmcs/openstack/labtestn/control.pp
index 32b444f..00e3b57 100644
--- a/modules/role/manifests/wmcs/openstack/labtestn/control.pp
+++ b/modules/role/manifests/wmcs/openstack/labtestn/control.pp
@@ -4,7 +4,7 @@
     include ::profile::openstack::labtestn::rabbitmq
     include ::profile::openstack::labtestn::keystone::service
     include ::profile::openstack::labtestn::glance
-    include ::profile::openstack::labtestn::nova::common
+    include ::profile::openstack::labtestn::nova::common::neutron
     include ::profile::openstack::labtestn::nova::conductor::service
     include ::profile::openstack::labtestn::nova::scheduler::service
     include ::profile::openstack::labtestn::nova::api::service

-- 
To view, visit https://gerrit.wikimedia.org/r/405366
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iba0aecdfaa1e35c24dbc13a27d0459ce570abe3b
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Rush <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to