]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - 3rdparty/modules/neutron/manifests/server/notifications.pp
try again, with puppetforge modules, correctly included now
[dsa-puppet.git] / 3rdparty / modules / neutron / manifests / server / notifications.pp
diff --git a/3rdparty/modules/neutron/manifests/server/notifications.pp b/3rdparty/modules/neutron/manifests/server/notifications.pp
new file mode 100644 (file)
index 0000000..8cfb6d7
--- /dev/null
@@ -0,0 +1,112 @@
+# 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.
+#
+# == Class: neutron::server::notifications
+#
+# Configure Notification System Options
+#
+# === Parameters
+#
+# [*notify_nova_on_port_status_changes*]
+#   (optional) Send notification to nova when port status is active.
+#   Defaults to true
+#
+# [*notify_nova_on_port_data_changes*]
+#   (optional) Send notifications to nova when port data (fixed_ips/floatingips)
+#   change so nova can update its cache.
+#   Defaults to true
+#
+# [*send_events_interval*]
+#   (optional) Number of seconds between sending events to nova if there are
+#   any events to send.
+#   Defaults to '2'
+#
+# [*nova_url*]
+#   (optional) URL for connection to nova (Only supports one nova region
+#   currently).
+#   Defaults to 'http://127.0.0.1:8774/v2'
+#
+# [*nova_admin_auth_url*]
+#   (optional) Authorization URL for connection to nova in admin context.
+#   Defaults to 'http://127.0.0.1:35357/v2.0'
+#
+# [*nova_admin_username*]
+#   (optional) Username for connection to nova in admin context
+#   Defaults to 'nova'
+#
+# [*nova_admin_tenant_name*]
+#   (optional) The name of the admin nova tenant
+#   Defaults to 'services'
+#
+# [*nova_admin_tenant_id*]
+#   (optional) The UUID of the admin nova tenant.  If provided this takes
+#   precedence over nova_admin_tenant_name.
+#
+# [*nova_admin_password*]
+#   (required) Password for connection to nova in admin context.
+#
+# [*nova_region_name*]
+#   (optional) Name of nova region to use. Useful if keystone manages more than
+#   one region.
+#   Defaults to 'RegionOne'
+#
+
+class neutron::server::notifications (
+  $notify_nova_on_port_status_changes = true,
+  $notify_nova_on_port_data_changes   = true,
+  $send_events_interval               = '2',
+  $nova_url                           = 'http://127.0.0.1:8774/v2',
+  $nova_admin_auth_url                = 'http://127.0.0.1:35357/v2.0',
+  $nova_admin_username                = 'nova',
+  $nova_admin_tenant_name             = 'services',
+  $nova_admin_tenant_id               = undef,
+  $nova_admin_password                = false,
+  $nova_region_name                   = 'RegionOne',
+) {
+
+  # Depend on the specified keystone_user resource, if it exists.
+  Keystone_user <| title == 'nova' |> -> Class[neutron::server::notifications]
+
+  if ! $nova_admin_password {
+    fail('nova_admin_password must be set.')
+  }
+
+  if ! ( $nova_admin_tenant_id or $nova_admin_tenant_name ) {
+    fail('You must provide either nova_admin_tenant_name or nova_admin_tenant_id.')
+  }
+
+  neutron_config {
+    'DEFAULT/notify_nova_on_port_status_changes': value => $notify_nova_on_port_status_changes;
+    'DEFAULT/notify_nova_on_port_data_changes':   value => $notify_nova_on_port_data_changes;
+    'DEFAULT/send_events_interval':               value => $send_events_interval;
+    'DEFAULT/nova_url':                           value => $nova_url;
+    'DEFAULT/nova_admin_auth_url':                value => $nova_admin_auth_url;
+    'DEFAULT/nova_admin_username':                value => $nova_admin_username;
+    'DEFAULT/nova_admin_password':                value => $nova_admin_password, secret => true;
+    'DEFAULT/nova_region_name':                   value => $nova_region_name;
+  }
+
+  if $nova_admin_tenant_id {
+    neutron_config {
+      'DEFAULT/nova_admin_tenant_id': value => $nova_admin_tenant_id;
+    }
+  } else {
+    nova_admin_tenant_id_setter {'nova_admin_tenant_id':
+      ensure           => present,
+      tenant_name      => $nova_admin_tenant_name,
+      auth_url         => $nova_admin_auth_url,
+      auth_username    => $nova_admin_username,
+      auth_password    => $nova_admin_password,
+      auth_tenant_name => $nova_admin_tenant_name,
+    }
+  }
+}