diff --git a/ceilometer/compute/notifications/__init__.py b/ceilometer/compute/notifications/__init__.py deleted file mode 100644 index fac3ff286d..0000000000 --- a/ceilometer/compute/notifications/__init__.py +++ /dev/null @@ -1,41 +0,0 @@ -# -# Copyright 2013 Intel -# -# 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. - -from oslo_config import cfg -import oslo_messaging - -from ceilometer.agent import plugin_base - - -OPTS = [ - cfg.StrOpt('nova_control_exchange', - default='nova', - help="Exchange name for Nova notifications."), -] - - -cfg.CONF.register_opts(OPTS) - - -class ComputeNotificationBase(plugin_base.NotificationBase): - def get_targets(self, conf): - """Return a sequence of oslo_messaging.Target - - This sequence is defining the exchange and topics to be connected for - this plugin. - """ - return [oslo_messaging.Target(topic=topic, - exchange=conf.nova_control_exchange) - for topic in self.get_notification_topics(conf)] diff --git a/ceilometer/compute/notifications/instance.py b/ceilometer/compute/notifications/instance.py deleted file mode 100644 index 356fbea550..0000000000 --- a/ceilometer/compute/notifications/instance.py +++ /dev/null @@ -1,89 +0,0 @@ -# -# Copyright 2012 New Dream Network, LLC (DreamHost) -# Copyright 2013 eNovance -# -# 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. -"""Converters for producing compute sample messages from notification events. -""" - -import abc - -import six - -from ceilometer.agent import plugin_base -from ceilometer.compute import notifications -from ceilometer.compute import util -from ceilometer import sample - - -@six.add_metaclass(abc.ABCMeta) -class UserMetadataAwareInstanceNotificationBase( - notifications.ComputeNotificationBase): - """Consumes notifications containing instance user metadata.""" - - def process_notification(self, message): - instance_properties = self.get_instance_properties(message) - if isinstance(instance_properties.get('metadata'), dict): - src_metadata = instance_properties['metadata'] - del instance_properties['metadata'] - util.add_reserved_user_metadata(src_metadata, instance_properties) - return self.get_sample(message) - - def get_instance_properties(self, message): - """Retrieve instance properties from notification payload.""" - return message['payload'] - - @abc.abstractmethod - def get_sample(self, message): - """Derive sample from notification payload.""" - - -class InstanceScheduled(UserMetadataAwareInstanceNotificationBase, - plugin_base.NonMetricNotificationBase): - event_types = ['scheduler.run_instance.scheduled'] - - def get_instance_properties(self, message): - """Retrieve instance properties from notification payload.""" - return message['payload']['request_spec']['instance_properties'] - - def get_sample(self, message): - yield sample.Sample.from_notification( - name='instance.scheduled', - type=sample.TYPE_DELTA, - volume=1, - unit='instance', - user_id=None, - project_id=message['payload']['request_spec'] - ['instance_properties']['project_id'], - resource_id=message['payload']['instance_id'], - message=message) - - -class ComputeInstanceNotificationBase( - UserMetadataAwareInstanceNotificationBase): - """Convert compute.instance.* notifications into Samples.""" - event_types = ['compute.instance.*'] - - -class Instance(ComputeInstanceNotificationBase, - plugin_base.NonMetricNotificationBase): - def get_sample(self, message): - yield sample.Sample.from_notification( - name='instance', - type=sample.TYPE_GAUGE, - unit='instance', - volume=1, - user_id=message['payload']['user_id'], - project_id=message['payload']['tenant_id'], - resource_id=message['payload']['instance_id'], - message=message) diff --git a/ceilometer/exchange_control.py b/ceilometer/exchange_control.py index 717cdc1222..c8acc8faef 100644 --- a/ceilometer/exchange_control.py +++ b/ceilometer/exchange_control.py @@ -14,6 +14,12 @@ from oslo_config import cfg EXCHANGE_OPTS = [ + cfg.StrOpt('nova_control_exchange', + default='nova', + help="Exchange name for Nova notifications."), + cfg.StrOpt('neutron_control_exchange', + default='neutron', + help="Exchange name for Neutron notifications."), cfg.StrOpt('heat_control_exchange', default='heat', help="Exchange name for Heat notifications"), diff --git a/ceilometer/meter/data/meters.yaml b/ceilometer/meter/data/meters.yaml index 650b0309f8..77d247e424 100644 --- a/ceilometer/meter/data/meters.yaml +++ b/ceilometer/meter/data/meters.yaml @@ -287,529 +287,3 @@ metric: service_id: $.payload.service_id instance_type: $.payload.instance_type instance_type_id: $.payload.instance_type_id - - -# NOTE: non-metric meters are generally events/existence meters -# These are DEPRECATED in current release and expected to be -# REMOVED in the next upcoming release. -# - # Image - - name: "image" - event_type: - - "image.upload" - - "image.update" - - "image.delete" - type: "gauge" - unit: 'image' - volume: 1 - resource_id: $.payload.id - project_id: $.payload.owner - - - name: "image.upload" - event_type: - - "image.upload" - type: "gauge" - unit: 'image' - volume: 1 - resource_id: $.payload.id - project_id: $.payload.owner - - - name: "image.delete" - event_type: - - "image.delete" - type: "gauge" - unit: 'image' - volume: 1 - resource_id: $.payload.id - project_id: $.payload.owner - - - name: "image.update" - event_type: - - "image.update" - type: "gauge" - unit: 'image' - volume: 1 - resource_id: $.payload.id - project_id: $.payload.owner - - # Orchestration - - name: 'stack.create' - event_type: - - 'orchestration.stack.create.end' - type: 'delta' - unit: 'stack' - volume: 1 - user_id: _context_trustor_user_id - project_id: $.payload.tenant_id - resource_id: $.payload.stack_identity - - - name: 'stack.update' - event_type: - - 'orchestration.stack.update.end' - type: 'delta' - unit: 'stack' - volume: 1 - user_id: _context_trustor_user_id - project_id: $.payload.tenant_id - resource_id: $.payload.stack_identity - - - name: 'stack.delete' - event_type: - - 'orchestration.stack.delete.end' - type: 'delta' - unit: 'stack' - volume: 1 - user_id: _context_trustor_user_id - project_id: $.payload.tenant_id - resource_id: $.payload.stack_identity - - - name: 'stack.resume' - event_type: - - 'orchestration.stack.resume.end' - type: 'delta' - unit: 'stack' - volume: 1 - user_id: _context_trustor_user_id - project_id: $.payload.tenant_id - resource_id: $.payload.stack_identity - - - name: 'stack.suspend' - event_type: - - 'orchestration.stack.suspend.end' - type: 'delta' - unit: 'stack' - volume: 1 - user_id: _context_trustor_user_id - project_id: $.payload.tenant_id - resource_id: $.payload.stack_identity - - # Volume - - name: 'volume' - type: 'gauge' - unit: 'volume' - volume: 1 - event_type: - - 'volume.exists' - - 'volume.create.*' - - 'volume.delete.*' - - 'volume.resize.*' - - 'volume.attach.*' - - 'volume.detach.*' - - 'volume.update.*' - resource_id: $.payload.volume_id - user_id: $.payload.user_id - project_id: $.payload.tenant_id - - - name: 'volume.exists' - type: 'delta' - unit: 'volume' - volume: 1 - event_type: - - 'volume.exists' - resource_id: $.payload.volume_id - user_id: $.payload.user_id - project_id: $.payload.tenant_id - - - name: 'volume.create.start' - type: 'delta' - unit: 'volume' - volume: 1 - event_type: - - 'volume.create.start' - resource_id: $.payload.volume_id - user_id: $.payload.user_id - project_id: $.payload.tenant_id - - - name: 'volume.create.end' - type: 'delta' - unit: 'volume' - volume: 1 - event_type: - - 'volume.create.end' - resource_id: $.payload.volume_id - user_id: $.payload.user_id - project_id: $.payload.tenant_id - - - name: 'volume.delete.start' - type: 'delta' - unit: 'volume' - volume: 1 - event_type: - - 'volume.delete.start' - resource_id: $.payload.volume_id - user_id: $.payload.user_id - project_id: $.payload.tenant_id - - - name: 'volume.delete.end' - type: 'delta' - unit: 'volume' - volume: 1 - event_type: - - 'volume.delete.end' - resource_id: $.payload.volume_id - user_id: $.payload.user_id - project_id: $.payload.tenant_id - - - name: 'volume.update.end' - type: 'delta' - unit: 'volume' - volume: 1 - event_type: - - 'volume.update.end' - resource_id: $.payload.volume_id - user_id: $.payload.user_id - project_id: $.payload.tenant_id - - - name: 'volume.update.start' - type: 'delta' - unit: 'volume' - volume: 1 - event_type: - - 'volume.update.start' - resource_id: $.payload.volume_id - user_id: $.payload.user_id - project_id: $.payload.tenant_id - - - name: 'volume.resize.end' - type: 'delta' - unit: 'volume' - volume: 1 - event_type: - - 'volume.resize.end' - resource_id: $.payload.volume_id - user_id: $.payload.user_id - project_id: $.payload.tenant_id - - - name: 'volume.resize.start' - type: 'delta' - unit: 'volume' - volume: 1 - event_type: - - 'volume.resize.start' - resource_id: $.payload.volume_id - user_id: $.payload.user_id - project_id: $.payload.tenant_id - - - - name: 'volume.attach.end' - type: 'delta' - unit: 'volume' - volume: 1 - event_type: - - 'volume.attach.end' - resource_id: $.payload.volume_id - user_id: $.payload.user_id - project_id: $.payload.tenant_id - - - name: 'volume.attach.start' - type: 'delta' - unit: 'volume' - volume: 1 - event_type: - - 'volume.attach.start' - resource_id: $.payload.volume_id - user_id: $.payload.user_id - project_id: $.payload.tenant_id - - - name: 'volume.detach.end' - type: 'delta' - unit: 'volume' - volume: 1 - event_type: - - 'volume.detach.end' - resource_id: $.payload.volume_id - user_id: $.payload.user_id - project_id: $.payload.tenant_id - - - name: 'volume.detach.start' - type: 'delta' - unit: 'volume' - volume: 1 - event_type: - - 'volume.detach.start' - resource_id: $.payload.volume_id - user_id: $.payload.user_id - project_id: $.payload.tenant_id - - # Volume Snapshot - - name: 'snapshot' - type: 'gauge' - unit: 'snapshot' - volume: 1 - event_type: - - 'snapshot.exists' - - 'snapshot.create.*' - - 'snapshot.delete.*' - - resource_id: $.payload.snapshot_id - user_id: $.payload.user_id - project_id: $.payload.tenant_id - - - name: 'snapshot.exists' - type: 'delta' - unit: 'snapshot' - volume: 1 - event_type: - - 'snapshot.exists' - resource_id: $.payload.snapshot_id - user_id: $.payload.user_id - project_id: $.payload.tenant_id - - - name: 'snapshot.create.start' - type: 'delta' - unit: 'snapshot' - volume: 1 - event_type: - - 'snapshot.create.start' - resource_id: $.payload.snapshot_id - user_id: $.payload.user_id - project_id: $.payload.tenant_id - - - name: 'snapshot.create.end' - type: 'delta' - unit: 'snapshot' - volume: 1 - event_type: - - 'snapshot.create.end' - resource_id: $.payload.snapshot_id - user_id: $.payload.user_id - project_id: $.payload.tenant_id - - - name: 'snapshot.delete.start' - type: 'delta' - unit: 'snapshot' - volume: 1 - event_type: - - 'snapshot.delete.start' - resource_id: $.payload.snapshot_id - user_id: $.payload.user_id - project_id: $.payload.tenant_id - - - name: 'snapshot.delete.end' - type: 'delta' - unit: 'snapshot' - volume: 1 - event_type: - - 'snapshot.delete.end' - resource_id: $.payload.snapshot_id - user_id: $.payload.user_id - project_id: $.payload.tenant_id - - # Sahara - - name: 'cluster.create' - type: 'delta' - unit: 'cluster' - volume: 1 - event_type: - - 'sahara.cluster.create' - resource_id: $.payload.cluster_id - project_id: $.payload.project_id - - - name: 'cluster.update' - type: 'delta' - unit: 'cluster' - volume: 1 - event_type: - - 'sahara.cluster.update' - resource_id: $.payload.cluster_id - project_id: $.payload.project_id - - - name: 'cluster.delete' - type: 'delta' - unit: 'cluster' - volume: 1 - event_type: - - 'sahara.cluster.delete' - resource_id: $.payload.cluster_id - project_id: $.payload.project_id - - # Identity - - name: 'identity.user.created' - type: 'delta' - unit: 'user' - volume: 1 - event_type: - - 'identity.user.created' - resource_id: $.payload.resource_info - user_id: $.payload.initiator.id - - - name: 'identity.user.updated' - type: 'delta' - unit: 'user' - volume: 1 - event_type: - - 'identity.user.updated' - resource_id: $.payload.resource_info - user_id: $.payload.initiator.id - - - name: 'identity.user.deleted' - type: 'delta' - unit: 'user' - volume: 1 - event_type: - - 'identity.user.deleted' - resource_id: $.payload.resource_info - user_id: $.payload.initiator.id - - - name: 'identity.group.created' - type: 'delta' - unit: 'group' - volume: 1 - event_type: - - 'identity.group.created' - resource_id: $.payload.resource_info - user_id: $.payload.initiator.id - - - name: 'identity.group.updated' - type: 'delta' - unit: 'group' - volume: 1 - event_type: - - 'identity.group.updated' - resource_id: $.payload.resource_info - user_id: $.payload.initiator.id - - - name: 'identity.group.deleted' - type: 'delta' - unit: 'group' - volume: 1 - event_type: - - 'identity.group.deleted' - resource_id: $.payload.resource_info - user_id: $.payload.initiator.id - - - name: 'identity.project.created' - type: 'delta' - unit: 'project' - volume: 1 - event_type: - - 'identity.project.created' - resource_id: $.payload.resource_info - user_id: $.payload.initiator.id - - - name: 'identity.project.updated' - type: 'delta' - unit: 'project' - volume: 1 - event_type: - - 'identity.project.updated' - resource_id: $.payload.resource_info - user_id: $.payload.initiator.id - - - name: 'identity.project.deleted' - type: 'delta' - unit: 'project' - volume: 1 - event_type: - - 'identity.project.deleted' - resource_id: $.payload.resource_info - user_id: $.payload.initiator.id - - - name: 'identity.role.created' - type: 'delta' - unit: 'role' - volume: 1 - event_type: - - 'identity.role.created' - resource_id: $.payload.resource_info - user_id: $.payload.initiator.id - - - name: 'identity.role.updated' - type: 'delta' - unit: 'role' - volume: 1 - event_type: - - 'identity.role.updated' - resource_id: $.payload.resource_info - user_id: $.payload.initiator.id - - - name: 'identity.role.deleted' - type: 'delta' - unit: 'role' - volume: 1 - event_type: - - 'identity.role.deleted' - resource_id: $.payload.resource_info - user_id: $.payload.initiator.id - - - name: 'identity.role_assignment.created' - type: 'delta' - unit: 'role_assignment' - volume: 1 - event_type: - - 'identity.role_assignment.created' - resource_id: $.payload.role - user_id: $.payload.initiator.id - - - name: 'identity.role_assignment.deleted' - type: 'delta' - unit: 'role_assignment' - volume: 1 - event_type: - - 'identity.role_assignment.deleted' - resource_id: $.payload.role - user_id: $.payload.initiator.id - - - name: 'identity.authenticate.success' - type: 'delta' - unit: 'user' - volume: 1 - event_type: - - 'identity.authenticate' - resource_id: $.payload.initiator.id - user_id: $.payload.initiator.id - - - name: 'identity.authenticate.pending' - type: 'delta' - unit: 'user' - volume: 1 - event_type: - - 'identity.authenticate' - resource_id: $.payload.initiator.id - user_id: $.payload.initiator.id - - - name: 'identity.authenticate.failure' - type: 'delta' - unit: 'user' - volume: 1 - event_type: - - 'identity.authenticate' - resource_id: $.payload.initiator.id - user_id: $.payload.initiator.id - - - name: 'identity.trust.created' - type: 'delta' - unit: 'trust' - volume: 1 - event_type: - - 'identity.OS-TRUST:trust.created' - resource_id: $.payload.resource_info - user_id: $.payload.initiator.id - - - name: 'identity.trust.deleted' - type: 'delta' - unit: 'trust' - volume: 1 - event_type: - - 'identity.OS-TRUST:trust.deleted' - resource_id: $.payload.resource_info - user_id: $.payload.initiator.id - - - name: 'storage.api.request' - type: 'delta' - unit: 'request' - volume: 1 - event_type: - - 'objectstore.http.request' - resource_id: $.payload.target.id - user_id: $.payload.initiator.id - project_id: $.payload.initiator.project_id - - - name: '$.payload.name' - event_type: 'profiler.*' - type: 'gauge' - unit: 'trace' - volume: 1 - user_id: $.payload.user_id - project_id: $.payload.project_id - resource_id: '"profiler-" + $.payload.base_id' diff --git a/ceilometer/middleware.py b/ceilometer/middleware.py index 3901c3e2d3..b208a48967 100644 --- a/ceilometer/middleware.py +++ b/ceilometer/middleware.py @@ -19,15 +19,6 @@ import oslo_messaging from ceilometer.agent import plugin_base from ceilometer import sample -cfg.CONF.import_opt('nova_control_exchange', - 'ceilometer.compute.notifications') -cfg.CONF.import_opt('glance_control_exchange', - 'ceilometer.notification') -cfg.CONF.import_opt('neutron_control_exchange', - 'ceilometer.network.notifications') -cfg.CONF.import_opt('cinder_control_exchange', - 'ceilometer.notification') - OPTS = [ cfg.MultiStrOpt('http_control_exchanges', default=[cfg.CONF.nova_control_exchange, diff --git a/ceilometer/network/notifications.py b/ceilometer/network/notifications.py deleted file mode 100644 index 6a196abe3e..0000000000 --- a/ceilometer/network/notifications.py +++ /dev/null @@ -1,258 +0,0 @@ -# -# Copyright 2012 New Dream Network, LLC (DreamHost) -# -# 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. -"""Handler for producing network counter messages from Neutron notification - events. - -""" - -from oslo_config import cfg -import oslo_messaging - -from ceilometer.agent import plugin_base -from ceilometer import sample - -OPTS = [ - cfg.StrOpt('neutron_control_exchange', - default='neutron', - help="Exchange name for Neutron notifications."), -] - -cfg.CONF.register_opts(OPTS) - - -class NetworkNotificationBase(plugin_base.NotificationBase): - - resource_name = None - - @property - def event_types(self): - return [ - # NOTE(flwang): When the *.create.start notification sending, - # there is no resource id assigned by Neutron yet. So we ignore - # the *.create.start notification for now and only listen the - # *.create.end to make sure the resource id is existed. - '%s.create.end' % self.resource_name, - '%s.update.*' % self.resource_name, - '%s.exists' % self.resource_name, - # FIXME(dhellmann): Neutron delete notifications do - # not include the same metadata as the other messages, - # so we ignore them for now. This isn't ideal, since - # it may mean we miss charging for some amount of time, - # but it is better than throwing away the existing - # metadata for a resource when it is deleted. - # '%s.delete.start' % (self.resource_name), - ] - - def get_targets(self, conf): - """Return a sequence of oslo_messaging.Target - - This sequence is defining the exchange and topics to be connected for - this plugin. - """ - return [oslo_messaging.Target(topic=topic, - exchange=conf.neutron_control_exchange) - for topic in self.get_notification_topics(conf)] - - def process_notification(self, message): - counter_name = getattr(self, 'counter_name', self.resource_name) - unit_value = getattr(self, 'unit', self.resource_name) - - resource = message['payload'].get(self.resource_name) - if resource: - # NOTE(liusheng): In %s.update.start notifications, the id is in - # message['payload'] instead of resource itself. - if message['event_type'].endswith('update.start'): - resource['id'] = message['payload']['id'] - resources = [resource] - else: - resources = message['payload'].get(self.resource_name + 's', []) - - resource_message = message.copy() - for resource in resources: - resource_message['payload'] = resource - yield sample.Sample.from_notification( - name=counter_name, - type=sample.TYPE_GAUGE, - unit=unit_value, - volume=1, - user_id=resource_message['_context_user_id'], - project_id=resource_message['_context_tenant_id'], - resource_id=resource['id'], - message=resource_message) - event_type_split = resource_message['event_type'].split('.') - if len(event_type_split) > 2: - yield sample.Sample.from_notification( - name=counter_name - + "." + event_type_split[1], - type=sample.TYPE_DELTA, - unit=unit_value, - volume=1, - user_id=resource_message['_context_user_id'], - project_id=resource_message['_context_tenant_id'], - resource_id=resource['id'], - message=resource_message) - - -class Network(NetworkNotificationBase, plugin_base.NonMetricNotificationBase): - """Listen for Neutron network notifications. - - Handle network.{create.end|update.*|exists} notifications from neutron. - """ - resource_name = 'network' - - -class Subnet(NetworkNotificationBase, plugin_base.NonMetricNotificationBase): - """Listen for Neutron notifications. - - Handle subnet.{create.end|update.*|exists} notifications from neutron. - """ - resource_name = 'subnet' - - -class Port(NetworkNotificationBase, plugin_base.NonMetricNotificationBase): - """Listen for Neutron notifications. - - Handle port.{create.end|update.*|exists} notifications from neutron. - """ - resource_name = 'port' - - -class Router(NetworkNotificationBase, plugin_base.NonMetricNotificationBase): - """Listen for Neutron notifications. - - Handle router.{create.end|update.*|exists} notifications from neutron. - """ - resource_name = 'router' - - -class FloatingIP(NetworkNotificationBase, - plugin_base.NonMetricNotificationBase): - """Listen for Neutron notifications. - - Handle floatingip.{create.end|update.*|exists} notifications from neutron. - """ - resource_name = 'floatingip' - counter_name = 'ip.floating' - unit = 'ip' - - -class Pool(NetworkNotificationBase, plugin_base.NonMetricNotificationBase): - """Listen for Neutron notifications. - - Handle pool.{create.end|update.*|exists} notifications from neutron. - """ - resource_name = 'pool' - counter_name = 'network.services.lb.pool' - - -class Vip(NetworkNotificationBase, plugin_base.NonMetricNotificationBase): - """Listen for Neutron notifications. - - Handle vip.{create.end|update.*|exists} notifications from neutron. - """ - resource_name = 'vip' - counter_name = 'network.services.lb.vip' - - -class Member(NetworkNotificationBase, plugin_base.NonMetricNotificationBase): - """Listen for Neutron notifications. - - Handle member.{create.end|update.*|exists} notifications from neutron. - """ - resource_name = 'member' - counter_name = 'network.services.lb.member' - - -class HealthMonitor(NetworkNotificationBase, - plugin_base.NonMetricNotificationBase): - """Listen for Neutron notifications. - - Handle health_monitor.{create.end|update.*|exists} notifications - from neutron. - """ - resource_name = 'health_monitor' - counter_name = 'network.services.lb.health_monitor' - - -class Firewall(NetworkNotificationBase, plugin_base.NonMetricNotificationBase): - """Listen for Neutron notifications. - - Handle firewall.{create.end|update.*|exists} notifications from neutron. - """ - resource_name = 'firewall' - counter_name = 'network.services.firewall' - - -class FirewallPolicy(NetworkNotificationBase, - plugin_base.NonMetricNotificationBase): - """Listen for Neutron notifications. - - Handle firewall_policy.{create.end|update.*|exists} notifications - from neutron. - """ - resource_name = 'firewall_policy' - counter_name = 'network.services.firewall.policy' - - -class FirewallRule(NetworkNotificationBase, - plugin_base.NonMetricNotificationBase): - """Listen for Neutron notifications. - - Handle firewall_rule.{create.end|update.*|exists} notifications - from neutron. - """ - resource_name = 'firewall_rule' - counter_name = 'network.services.firewall.rule' - - -class VPNService(NetworkNotificationBase, - plugin_base.NonMetricNotificationBase): - """Listen for Neutron notifications. - - Handle vpnservice.{create.end|update.*|exists} notifications from neutron. - """ - resource_name = 'vpnservice' - counter_name = 'network.services.vpn' - - -class IPSecPolicy(NetworkNotificationBase, - plugin_base.NonMetricNotificationBase): - """Listen for Neutron notifications. - - Handle pool.{create.end|update.*|exists} notifications from neutron. - """ - resource_name = 'ipsecpolicy' - counter_name = 'network.services.vpn.ipsecpolicy' - - -class IKEPolicy(NetworkNotificationBase, - plugin_base.NonMetricNotificationBase): - """Listen for Neutron notifications. - - Handle ikepolicy.{create.end|update.*|exists} notifications from neutron. - """ - resource_name = 'ikepolicy' - counter_name = 'network.services.vpn.ikepolicy' - - -class IPSecSiteConnection(NetworkNotificationBase, - plugin_base.NonMetricNotificationBase): - """Listen for Neutron notifications. - - Handle ipsec_site_connection.{create.end|update.*|exists} - notifications from neutron. - """ - resource_name = 'ipsec_site_connection' - counter_name = 'network.services.vpn.connections' diff --git a/ceilometer/opts.py b/ceilometer/opts.py index abb780bf30..7394ffe64a 100644 --- a/ceilometer/opts.py +++ b/ceilometer/opts.py @@ -20,7 +20,6 @@ import ceilometer.api.app import ceilometer.cmd.polling import ceilometer.collector import ceilometer.compute.discovery -import ceilometer.compute.notifications import ceilometer.compute.util import ceilometer.compute.virt.inspector import ceilometer.compute.virt.libvirt.inspector @@ -40,7 +39,6 @@ import ceilometer.ipmi.pollsters import ceilometer.keystone_client import ceilometer.meter.notifications import ceilometer.middleware -import ceilometer.network.notifications import ceilometer.neutron_client import ceilometer.notification import ceilometer.nova_client @@ -61,14 +59,12 @@ def list_opts(): itertools.chain(ceilometer.agent.manager.OPTS, ceilometer.api.app.OPTS, ceilometer.cmd.polling.CLI_OPTS, - ceilometer.compute.notifications.OPTS, ceilometer.compute.util.OPTS, ceilometer.compute.virt.inspector.OPTS, ceilometer.compute.virt.libvirt.inspector.OPTS, ceilometer.dispatcher.OPTS, ceilometer.ipmi.notifications.ironic.OPTS, ceilometer.middleware.OPTS, - ceilometer.network.notifications.OPTS, ceilometer.nova_client.OPTS, ceilometer.objectstore.swift.OPTS, ceilometer.pipeline.OPTS, diff --git a/ceilometer/tests/functional/test_notification.py b/ceilometer/tests/functional/test_notification.py index 65a6dcc172..7f5cb286cc 100644 --- a/ceilometer/tests/functional/test_notification.py +++ b/ceilometer/tests/functional/test_notification.py @@ -25,7 +25,7 @@ import six from stevedore import extension import yaml -from ceilometer.compute.notifications import instance +from ceilometer.agent import plugin_base from ceilometer import messaging from ceilometer import notification from ceilometer.publisher import test as test_publisher @@ -83,6 +83,18 @@ TEST_NOTICE_PAYLOAD = { } +class _FakeNotificationPlugin(plugin_base.NotificationBase): + event_types = ['fake.event'] + + def get_targets(self, conf): + return [oslo_messaging.Target( + topic=topic, exchange=conf.nova_control_exchange) + for topic in self.get_notification_topics(conf)] + + def process_notification(self, message): + return [] + + class TestNotification(tests_base.BaseTestCase): def setUp(self): @@ -96,7 +108,7 @@ class TestNotification(tests_base.BaseTestCase): self.srv = notification.NotificationService(0) def fake_get_notifications_manager(self, pm): - self.plugin = instance.Instance(pm) + self.plugin = _FakeNotificationPlugin(pm) return extension.ExtensionManager.make_test_instance( [ extension.Extension('test', @@ -148,7 +160,7 @@ class TestNotification(tests_base.BaseTestCase): def test_unique_consumers(self, mock_listener): def fake_get_notifications_manager_dup_targets(pm): - plugin = instance.Instance(pm) + plugin = _FakeNotificationPlugin(pm) return extension.ExtensionManager.make_test_instance( [extension.Extension('test', None, None, plugin), extension.Extension('test', None, None, plugin)]) @@ -213,14 +225,12 @@ class BaseRealNotification(tests_base.BaseTestCase): self.CONF([], project='ceilometer', validate_default_values=True) self.setup_messaging(self.CONF, 'nova') - pipeline_cfg_file = self.setup_pipeline(['instance', 'memory']) + pipeline_cfg_file = self.setup_pipeline(['vcpus', 'memory']) self.CONF.set_override("pipeline_cfg_file", pipeline_cfg_file) self.expected_samples = 2 self.CONF.set_override("backend_url", None, group="coordination") - self.CONF.set_override("disable_non_metric_meters", False, - group="notification") ev_pipeline_cfg_file = self.setup_event_pipeline( ['compute.instance.*']) @@ -343,16 +353,6 @@ class TestRealNotification(BaseRealNotification): break self.assertEqual(self.expected_events, len(self.publisher.events)) - @mock.patch('ceilometer.publisher.test.TestPublisher') - def test_notification_disable_non_metrics(self, fake_publisher_cls): - self.CONF.set_override("disable_non_metric_meters", True, - group="notification") - # instance is a not a metric. we should only get back memory - self.expected_samples = 1 - fake_publisher_cls.return_value = self.publisher - self._check_notification_service() - self.assertEqual('memory', self.publisher.samples[0].name) - class TestRealNotificationHA(BaseRealNotification): @@ -488,7 +488,7 @@ class TestRealNotificationMultipleAgents(tests_base.BaseTestCase): 'sources': [{ 'name': 'test_pipeline', 'interval': 5, - 'meters': ['instance', 'memory'], + 'meters': ['vcpus', 'memory'], 'sinks': ['test_sink'] }], 'sinks': [{ diff --git a/ceilometer/tests/unit/compute/notifications/__init__.py b/ceilometer/tests/unit/compute/notifications/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/ceilometer/tests/unit/compute/notifications/test_instance.py b/ceilometer/tests/unit/compute/notifications/test_instance.py deleted file mode 100644 index fdd8e5121e..0000000000 --- a/ceilometer/tests/unit/compute/notifications/test_instance.py +++ /dev/null @@ -1,608 +0,0 @@ -# -# Copyright 2012 New Dream Network, LLC (DreamHost) -# Copyright 2013 eNovance -# -# 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. -"""Tests for converters for producing compute counter messages from -notification events. -""" -from oslotest import base - -from ceilometer.compute.notifications import instance -from ceilometer import sample - - -INSTANCE_CREATE_END = { - u'_context_auth_token': u'3d8b13de1b7d499587dfc69b77dc09c2', - u'_context_is_admin': True, - u'_context_project_id': u'7c150a59fe714e6f9263774af9688f0e', - u'_context_quota_class': None, - u'_context_read_deleted': u'no', - u'_context_remote_address': u'10.0.2.15', - u'_context_request_id': u'req-d68b36e0-9233-467f-9afb-d81435d64d66', - u'_context_roles': [u'admin'], - u'_context_timestamp': u'2012-05-08T20:23:41.425105', - u'_context_user_id': u'1e3ce043029547f1a61c1996d1a531a2', - u'event_type': u'compute.instance.create.end', - u'message_id': u'dae6f69c-00e0-41c0-b371-41ec3b7f4451', - u'payload': {u'created_at': u'2012-05-08 20:23:41', - u'deleted_at': u'', - u'disk_gb': 0, - u'display_name': u'testme', - u'fixed_ips': [{u'address': u'10.0.0.2', - u'floating_ips': [], - u'meta': {}, - u'type': u'fixed', - u'version': 4}], - u'image_ref_url': u'http://10.0.2.15:9292/images/UUID', - u'instance_id': u'9f9d01b9-4a58-4271-9e27-398b21ab20d1', - u'instance_type': u'm1.tiny', - u'instance_type_id': 2, - u'launched_at': u'2012-05-08 20:23:47.985999', - u'memory_mb': 512, - u'state': u'active', - u'state_description': u'', - u'tenant_id': u'7c150a59fe714e6f9263774af9688f0e', - u'user_id': u'1e3ce043029547f1a61c1996d1a531a2', - u'reservation_id': u'1e3ce043029547f1a61c1996d1a531a3', - u'vcpus': 1, - u'root_gb': 0, - u'ephemeral_gb': 0, - u'host': u'compute-host-name', - u'availability_zone': u'1e3ce043029547f1a61c1996d1a531a4', - u'os_type': u'linux?', - u'architecture': u'x86', - u'image_ref': u'UUID', - u'kernel_id': u'1e3ce043029547f1a61c1996d1a531a5', - u'ramdisk_id': u'1e3ce043029547f1a61c1996d1a531a6', - }, - u'priority': u'INFO', - u'publisher_id': u'compute.vagrant-precise', - u'timestamp': u'2012-05-08 20:23:48.028195', -} - -INSTANCE_DELETE_START = { - u'_context_auth_token': u'3d8b13de1b7d499587dfc69b77dc09c2', - u'_context_is_admin': True, - u'_context_project_id': u'7c150a59fe714e6f9263774af9688f0e', - u'_context_quota_class': None, - u'_context_read_deleted': u'no', - u'_context_remote_address': u'10.0.2.15', - u'_context_request_id': u'req-fb3c4546-a2e5-49b7-9fd2-a63bd658bc39', - u'_context_roles': [u'admin'], - u'_context_timestamp': u'2012-05-08T20:24:14.547374', - u'_context_user_id': u'1e3ce043029547f1a61c1996d1a531a2', - u'event_type': u'compute.instance.delete.start', - u'message_id': u'a15b94ee-cb8e-4c71-9abe-14aa80055fb4', - u'payload': {u'created_at': u'2012-05-08 20:23:41', - u'deleted_at': u'', - u'disk_gb': 0, - u'display_name': u'testme', - u'image_ref_url': u'http://10.0.2.15:9292/images/UUID', - u'instance_id': u'9f9d01b9-4a58-4271-9e27-398b21ab20d1', - u'instance_type': u'm1.tiny', - u'instance_type_id': 2, - u'launched_at': u'2012-05-08 20:23:47', - u'memory_mb': 512, - u'state': u'active', - u'state_description': u'deleting', - u'tenant_id': u'7c150a59fe714e6f9263774af9688f0e', - u'user_id': u'1e3ce043029547f1a61c1996d1a531a2', - u'reservation_id': u'1e3ce043029547f1a61c1996d1a531a3', - u'vcpus': 1, - u'root_gb': 0, - u'ephemeral_gb': 0, - u'host': u'compute-host-name', - u'availability_zone': u'1e3ce043029547f1a61c1996d1a531a4', - u'os_type': u'linux?', - u'architecture': u'x86', - u'image_ref': u'UUID', - u'kernel_id': u'1e3ce043029547f1a61c1996d1a531a5', - u'ramdisk_id': u'1e3ce043029547f1a61c1996d1a531a6', - }, - u'priority': u'INFO', - u'publisher_id': u'compute.vagrant-precise', - u'timestamp': u'2012-05-08 20:24:14.824743', -} - -INSTANCE_EXISTS = { - u'_context_auth_token': None, - u'_context_is_admin': True, - u'_context_project_id': None, - u'_context_quota_class': None, - u'_context_read_deleted': u'no', - u'_context_remote_address': None, - u'_context_request_id': u'req-659a8eb2-4372-4c01-9028-ad6e40b0ed22', - u'_context_roles': [u'admin'], - u'_context_timestamp': u'2012-05-08T16:03:43.760204', - u'_context_user_id': None, - u'event_type': u'compute.instance.exists', - u'message_id': u'4b884c03-756d-4c06-8b42-80b6def9d302', - u'payload': {u'audit_period_beginning': u'2012-05-08 15:00:00', - u'audit_period_ending': u'2012-05-08 16:00:00', - u'bandwidth': {}, - u'created_at': u'2012-05-07 22:16:18', - u'deleted_at': u'', - u'disk_gb': 0, - u'display_name': u'testme', - u'image_ref_url': u'http://10.0.2.15:9292/images/UUID', - u'instance_id': u'3a513875-95c9-4012-a3e7-f90c678854e5', - u'instance_type': u'm1.tiny', - u'instance_type_id': 2, - u'launched_at': u'2012-05-07 23:01:27', - u'memory_mb': 512, - u'state': u'active', - u'state_description': u'', - u'tenant_id': u'7c150a59fe714e6f9263774af9688f0e', - u'user_id': u'1e3ce043029547f1a61c1996d1a531a2', - u'reservation_id': u'1e3ce043029547f1a61c1996d1a531a3', - u'vcpus': 1, - u'root_gb': 0, - u'ephemeral_gb': 0, - u'host': u'compute-host-name', - u'availability_zone': u'1e3ce043029547f1a61c1996d1a531a4', - u'os_type': u'linux?', - u'architecture': u'x86', - u'image_ref': u'UUID', - u'kernel_id': u'1e3ce043029547f1a61c1996d1a531a5', - u'ramdisk_id': u'1e3ce043029547f1a61c1996d1a531a6', - }, - u'priority': u'INFO', - u'publisher_id': u'compute.vagrant-precise', - u'timestamp': u'2012-05-08 16:03:44.122481', -} - -INSTANCE_EXISTS_METADATA_LIST = { - u'_context_auth_token': None, - u'_context_is_admin': True, - u'_context_project_id': None, - u'_context_quota_class': None, - u'_context_read_deleted': u'no', - u'_context_remote_address': None, - u'_context_request_id': u'req-659a8eb2-4372-4c01-9028-ad6e40b0ed22', - u'_context_roles': [u'admin'], - u'_context_timestamp': u'2012-05-08T16:03:43.760204', - u'_context_user_id': None, - u'event_type': u'compute.instance.exists', - u'message_id': u'4b884c03-756d-4c06-8b42-80b6def9d302', - u'payload': {u'audit_period_beginning': u'2012-05-08 15:00:00', - u'audit_period_ending': u'2012-05-08 16:00:00', - u'bandwidth': {}, - u'created_at': u'2012-05-07 22:16:18', - u'deleted_at': u'', - u'disk_gb': 0, - u'display_name': u'testme', - u'image_ref_url': u'http://10.0.2.15:9292/images/UUID', - u'instance_id': u'3a513875-95c9-4012-a3e7-f90c678854e5', - u'instance_type': u'm1.tiny', - u'instance_type_id': 2, - u'launched_at': u'2012-05-07 23:01:27', - u'memory_mb': 512, - u'state': u'active', - u'state_description': u'', - u'tenant_id': u'7c150a59fe714e6f9263774af9688f0e', - u'user_id': u'1e3ce043029547f1a61c1996d1a531a2', - u'reservation_id': u'1e3ce043029547f1a61c1996d1a531a3', - u'vcpus': 1, - u'root_gb': 0, - u'metadata': [], - u'ephemeral_gb': 0, - u'host': u'compute-host-name', - u'availability_zone': u'1e3ce043029547f1a61c1996d1a531a4', - u'os_type': u'linux?', - u'architecture': u'x86', - u'image_ref': u'UUID', - u'kernel_id': u'1e3ce043029547f1a61c1996d1a531a5', - u'ramdisk_id': u'1e3ce043029547f1a61c1996d1a531a6', - }, - u'priority': u'INFO', - u'publisher_id': u'compute.vagrant-precise', - u'timestamp': u'2012-05-08 16:03:44.122481', -} - - -INSTANCE_FINISH_RESIZE_END = { - u'_context_roles': [u'admin'], - u'_context_request_id': u'req-e3f71bb9-e9b9-418b-a9db-a5950c851b25', - u'_context_quota_class': None, - u'event_type': u'compute.instance.finish_resize.end', - u'_context_user_name': u'admin', - u'_context_project_name': u'admin', - u'timestamp': u'2013-01-04 15:10:17.436974', - u'_context_is_admin': True, - u'message_id': u'a2f7770d-b85d-4797-ab10-41407a44368e', - u'_context_auth_token': None, - u'_context_instance_lock_checked': False, - u'_context_project_id': u'cea4b25edb484e5392727181b7721d29', - u'_context_timestamp': u'2013-01-04T15:08:39.162612', - u'_context_read_deleted': u'no', - u'_context_user_id': u'01b83a5e23f24a6fb6cd073c0aee6eed', - u'_context_remote_address': u'10.147.132.184', - u'publisher_id': u'compute.ip-10-147-132-184.ec2.internal', - u'payload': {u'state_description': u'', - u'availability_zone': None, - u'ephemeral_gb': 0, - u'instance_type_id': 5, - u'deleted_at': u'', - u'fixed_ips': [{u'floating_ips': [], - u'label': u'private', - u'version': 4, - u'meta': {}, - u'address': u'10.0.0.3', - u'type': u'fixed'}], - u'memory_mb': 2048, - u'user_id': u'01b83a5e23f24a6fb6cd073c0aee6eed', - u'reservation_id': u'r-u3fvim06', - u'hostname': u's1', - u'state': u'resized', - u'launched_at': u'2013-01-04T15:10:14.923939', - u'metadata': {u'metering.server_group': u'Group_A', - u'AutoScalingGroupName': u'tyky-Group_Awste7', - u'metering.foo.bar': u'true'}, - u'ramdisk_id': u'5f23128e-5525-46d8-bc66-9c30cd87141a', - u'access_ip_v6': None, - u'disk_gb': 20, - u'access_ip_v4': None, - u'kernel_id': u'571478e0-d5e7-4c2e-95a5-2bc79443c28a', - u'host': u'ip-10-147-132-184.ec2.internal', - u'display_name': u's1', - u'image_ref_url': u'http://10.147.132.184:9292/images/' - 'a130b9d9-e00e-436e-9782-836ccef06e8a', - u'root_gb': 20, - u'tenant_id': u'cea4b25edb484e5392727181b7721d29', - u'created_at': u'2013-01-04T11:21:48.000000', - u'instance_id': u'648e8963-6886-4c3c-98f9-4511c292f86b', - u'instance_type': u'm1.small', - u'vcpus': 1, - u'image_meta': {u'kernel_id': - u'571478e0-d5e7-4c2e-95a5-2bc79443c28a', - u'ramdisk_id': - u'5f23128e-5525-46d8-bc66-9c30cd87141a', - u'base_image_ref': - u'a130b9d9-e00e-436e-9782-836ccef06e8a'}, - u'architecture': None, - u'os_type': None - }, - u'priority': u'INFO' -} - -INSTANCE_RESIZE_REVERT_END = { - u'_context_roles': [u'admin'], - u'_context_request_id': u'req-9da1d714-dabe-42fd-8baa-583e57cd4f1a', - u'_context_quota_class': None, - u'event_type': u'compute.instance.resize.revert.end', - u'_context_user_name': u'admin', - u'_context_project_name': u'admin', - u'timestamp': u'2013-01-04 15:20:32.009532', - u'_context_is_admin': True, - u'message_id': u'c48deeba-d0c3-4154-b3db-47480b52267a', - u'_context_auth_token': None, - u'_context_instance_lock_checked': False, - u'_context_project_id': u'cea4b25edb484e5392727181b7721d29', - u'_context_timestamp': u'2013-01-04T15:19:51.018218', - u'_context_read_deleted': u'no', - u'_context_user_id': u'01b83a5e23f24a6fb6cd073c0aee6eed', - u'_context_remote_address': u'10.147.132.184', - u'publisher_id': u'compute.ip-10-147-132-184.ec2.internal', - u'payload': {u'state_description': u'resize_reverting', - u'availability_zone': None, - u'ephemeral_gb': 0, - u'instance_type_id': 2, - u'deleted_at': u'', - u'reservation_id': u'r-u3fvim06', - u'memory_mb': 512, - u'user_id': u'01b83a5e23f24a6fb6cd073c0aee6eed', - u'hostname': u's1', - u'state': u'resized', - u'launched_at': u'2013-01-04T15:10:14.000000', - u'metadata': {u'metering.server_group': u'Group_A', - u'AutoScalingGroupName': u'tyky-Group_A-wste7', - u'metering.foo.bar': u'true'}, - u'ramdisk_id': u'5f23128e-5525-46d8-bc66-9c30cd87141a', - u'access_ip_v6': None, - u'disk_gb': 0, - u'access_ip_v4': None, - u'kernel_id': u'571478e0-d5e7-4c2e-95a5-2bc79443c28a', - u'host': u'ip-10-147-132-184.ec2.internal', - u'display_name': u's1', - u'image_ref_url': u'http://10.147.132.184:9292/images/' - 'a130b9d9-e00e-436e-9782-836ccef06e8a', - u'root_gb': 0, - u'tenant_id': u'cea4b25edb484e5392727181b7721d29', - u'created_at': u'2013-01-04T11:21:48.000000', - u'instance_id': u'648e8963-6886-4c3c-98f9-4511c292f86b', - u'instance_type': u'm1.tiny', - u'vcpus': 1, - u'image_meta': {u'kernel_id': - u'571478e0-d5e7-4c2e-95a5-2bc79443c28a', - u'ramdisk_id': - u'5f23128e-5525-46d8-bc66-9c30cd87141a', - u'base_image_ref': - u'a130b9d9-e00e-436e-9782-836ccef06e8a'}, - u'architecture': None, - u'os_type': None - }, - u'priority': u'INFO' -} - -INSTANCE_SCHEDULED = { - u'_context_request_id': u'req-f28a836a-32bf-4cc3-940a-3515878c181f', - u'_context_quota_class': None, - u'event_type': u'scheduler.run_instance.scheduled', - u'_context_service_catalog': [{ - u'endpoints': [{ - u'adminURL': - u'http://172.16.12.21:8776/v1/2bd766a095b44486bf07cf7f666997eb', - u'region': u'RegionOne', - u'internalURL': - u'http://172.16.12.21:8776/v1/2bd766a095b44486bf07cf7f666997eb', - u'id': u'30cb904fdc294eea9b225e06b2d0d4eb', - u'publicURL': - u'http://172.16.12.21:8776/v1/2bd766a095b44486bf07cf7f666997eb'}], - u'endpoints_links': [], - u'type': u'volume', - u'name': u'cinder'}], - u'_context_auth_token': u'TOK', - u'_context_user_id': u'0a757cd896b64b65ba3784afef564116', - u'payload': { - 'instance_id': 'fake-uuid1-1', - u'weighted_host': {u'host': u'eglynn-f19-devstack3', u'weight': 1.0}, - u'request_spec': { - u'num_instances': 1, - u'block_device_mapping': [{ - u'instance_uuid': u'9206baae-c3b6-41bc-96f2-2c0726ff51c8', - u'guest_format': None, - u'boot_index': 0, - u'no_device': None, - u'connection_info': None, - u'volume_id': None, - u'volume_size': None, - u'device_name': None, - u'disk_bus': None, - u'image_id': u'0560ac3f-3bcd-434d-b012-8dd7a212b73b', - u'source_type': u'image', - u'device_type': u'disk', - u'snapshot_id': None, - u'destination_type': u'local', - u'delete_on_termination': True}], - u'image': { - u'status': u'active', - u'name': u'cirros-0.3.1-x86_64-uec', - u'deleted': False, - u'container_format': u'ami', - u'created_at': u'2014-02-18T13:16:26.000000', - u'disk_format': u'ami', - u'updated_at': u'2014-02-18T13:16:27.000000', - u'properties': { - u'kernel_id': u'c8794c1a-4158-42cc-9f97-d0d250c9c6a4', - u'ramdisk_id': u'4999726c-545c-4a9e-bfc0-917459784275'}, - u'min_disk': 0, - u'min_ram': 0, - u'checksum': u'f8a2eeee2dc65b3d9b6e63678955bd83', - u'owner': u'2bd766a095b44486bf07cf7f666997eb', - u'is_public': True, - u'deleted_at': None, - u'id': u'0560ac3f-3bcd-434d-b012-8dd7a212b73b', - u'size': 25165824}, - u'instance_type': { - u'root_gb': 1, - u'name': u'm1.tiny', - u'ephemeral_gb': 0, - u'memory_mb': 512, - u'vcpus': 1, - u'extra_specs': {}, - u'swap': 0, - u'rxtx_factor': 1.0, - u'flavorid': u'1', - u'vcpu_weight': None, - u'id': 2}, - u'instance_properties': { - u'vm_state': u'building', - u'availability_zone': None, - u'terminated_at': None, - u'ephemeral_gb': 0, - u'instance_type_id': 2, - u'user_data': None, - u'cleaned': False, - u'vm_mode': None, - u'deleted_at': None, - u'reservation_id': u'r-ven5q6om', - u'id': 15, - u'security_groups': [{ - u'deleted_at': None, - u'user_id': u'0a757cd896b64b65ba3784afef564116', - u'description': u'default', - u'deleted': False, - u'created_at': u'2014-02-19T11:02:31.000000', - u'updated_at': None, - u'project_id': u'2bd766a095b44486bf07cf7f666997eb', - u'id': 1, - u'name': u'default'}], - u'disable_terminate': False, - u'root_device_name': None, - u'display_name': u'new', - u'uuid': u'9206baae-c3b6-41bc-96f2-2c0726ff51c8', - u'default_swap_device': None, - u'info_cache': { - u'instance_uuid': u'9206baae-c3b6-41bc-96f2-2c0726ff51c8', - u'deleted': False, - u'created_at': u'2014-03-05T12:44:00.000000', - u'updated_at': None, - u'network_info': [], - u'deleted_at': None}, - u'hostname': u'new', - u'launched_on': None, - u'display_description': u'new', - u'key_data': None, - u'deleted': False, - u'config_drive': u'', - u'power_state': 0, - u'default_ephemeral_device': None, - u'progress': 0, - u'project_id': u'2bd766a095b44486bf07cf7f666997eb', - u'launched_at': None, - u'scheduled_at': None, - u'node': None, - u'ramdisk_id': u'4999726c-545c-4a9e-bfc0-917459784275', - u'access_ip_v6': None, - u'access_ip_v4': None, - u'kernel_id': u'c8794c1a-4158-42cc-9f97-d0d250c9c6a4', - u'key_name': None, - u'updated_at': None, - u'host': None, - u'root_gb': 1, - u'user_id': u'0a757cd896b64b65ba3784afef564116', - u'system_metadata': { - u'image_kernel_id': - u'c8794c1a-4158-42cc-9f97-d0d250c9c6a4', - u'image_min_disk': u'1', - u'instance_type_memory_mb': u'512', - u'instance_type_swap': u'0', - u'instance_type_vcpu_weight': None, - u'instance_type_root_gb': u'1', - u'instance_type_name': u'm1.tiny', - u'image_ramdisk_id': - u'4999726c-545c-4a9e-bfc0-917459784275', - u'instance_type_id': u'2', - u'instance_type_ephemeral_gb': u'0', - u'instance_type_rxtx_factor': u'1.0', - u'instance_type_flavorid': u'1', - u'instance_type_vcpus': u'1', - u'image_container_format': u'ami', - u'image_min_ram': u'0', - u'image_disk_format': u'ami', - u'image_base_image_ref': - u'0560ac3f-3bcd-434d-b012-8dd7a212b73b'}, - u'task_state': u'scheduling', - u'shutdown_terminate': False, - u'cell_name': None, - u'ephemeral_key_uuid': None, - u'locked': False, - u'name': u'instance-0000000f', - u'created_at': u'2014-03-05T12:44:00.000000', - u'locked_by': None, - u'launch_index': 0, - u'memory_mb': 512, - u'vcpus': 1, - u'image_ref': u'0560ac3f-3bcd-434d-b012-8dd7a212b73b', - u'architecture': None, - u'auto_disk_config': False, - u'os_type': None, - u'metadata': {u'metering.server_group': u'Group_A', - u'AutoScalingGroupName': u'tyky-Group_Awste7', - u'metering.foo.bar': u'true'}}, - u'security_group': [u'default'], - u'instance_uuids': [u'9206baae-c3b6-41bc-96f2-2c0726ff51c8']}}, - u'priority': u'INFO', - u'_context_is_admin': True, - u'_context_timestamp': u'2014-03-05T12:44:00.135674', - u'publisher_id': u'scheduler.eglynn-f19-devstack3', - u'message_id': u'd6c1ae63-a26b-47c7-8397-8794216e09dd', - u'_context_remote_address': u'172.16.12.21', - u'_context_roles': [u'_member_', u'admin'], - u'timestamp': u'2014-03-05 12:44:00.733758', - u'_context_user': u'0a757cd896b64b65ba3784afef564116', - u'_unique_id': u'2af47cbdde604ff794bb046f3f9db1e2', - u'_context_project_name': u'admin', - u'_context_read_deleted': u'no', - u'_context_tenant': u'2bd766a095b44486bf07cf7f666997eb', - u'_context_instance_lock_checked': False, - u'_context_project_id': u'2bd766a095b44486bf07cf7f666997eb', - u'_context_user_name': u'admin' -} - - -class TestNotifications(base.BaseTestCase): - - def test_process_notification(self): - info = list(instance.Instance(None).process_notification( - INSTANCE_CREATE_END - ))[0] - for name, actual, expected in [ - ('counter_name', info.name, 'instance'), - ('counter_type', info.type, sample.TYPE_GAUGE), - ('counter_volume', info.volume, 1), - ('timestamp', info.timestamp, - INSTANCE_CREATE_END['timestamp']), - ('resource_id', info.resource_id, - INSTANCE_CREATE_END['payload']['instance_id']), - ('instance_type_id', - info.resource_metadata['instance_type_id'], - INSTANCE_CREATE_END['payload']['instance_type_id']), - ('host', info.resource_metadata['host'], - INSTANCE_CREATE_END['publisher_id']), - ]: - self.assertEqual(expected, actual, name) - - @staticmethod - def _find_counter(counters, name): - return filter(lambda counter: counter.name == name, counters)[0] - - def _verify_user_metadata(self, metadata): - self.assertIn('user_metadata', metadata) - user_meta = metadata['user_metadata'] - self.assertEqual('Group_A', user_meta.get('server_group')) - self.assertNotIn('AutoScalingGroupName', user_meta) - self.assertIn('foo_bar', user_meta) - self.assertNotIn('foo.bar', user_meta) - - def test_instance_create_instance(self): - ic = instance.Instance(None) - counters = list(ic.process_notification(INSTANCE_CREATE_END)) - self.assertEqual(1, len(counters)) - c = counters[0] - self.assertEqual(1, c.volume) - - def test_instance_exists_instance(self): - ic = instance.Instance(None) - counters = list(ic.process_notification(INSTANCE_EXISTS)) - self.assertEqual(1, len(counters)) - - def test_instance_exists_metadata_list(self): - ic = instance.Instance(None) - counters = list(ic.process_notification(INSTANCE_EXISTS_METADATA_LIST)) - self.assertEqual(1, len(counters)) - - def test_instance_delete_instance(self): - ic = instance.Instance(None) - counters = list(ic.process_notification(INSTANCE_DELETE_START)) - self.assertEqual(1, len(counters)) - - def test_instance_finish_resize_instance(self): - ic = instance.Instance(None) - counters = list(ic.process_notification(INSTANCE_FINISH_RESIZE_END)) - self.assertEqual(1, len(counters)) - c = counters[0] - self.assertEqual(1, c.volume) - self._verify_user_metadata(c.resource_metadata) - - def test_instance_resize_finish_instance(self): - ic = instance.Instance(None) - counters = list(ic.process_notification(INSTANCE_FINISH_RESIZE_END)) - self.assertEqual(1, len(counters)) - c = counters[0] - self.assertEqual(1, c.volume) - self._verify_user_metadata(c.resource_metadata) - - def test_instance_scheduled(self): - ic = instance.InstanceScheduled(None) - - self.assertIn(INSTANCE_SCHEDULED['event_type'], - ic.event_types) - - counters = list(ic.process_notification(INSTANCE_SCHEDULED)) - self.assertEqual(1, len(counters)) - names = [c.name for c in counters] - self.assertEqual(['instance.scheduled'], names) - rid = [c.resource_id for c in counters] - self.assertEqual(['fake-uuid1-1'], rid) diff --git a/ceilometer/tests/unit/network/test_notifications.py b/ceilometer/tests/unit/network/test_notifications.py deleted file mode 100644 index 80eda67522..0000000000 --- a/ceilometer/tests/unit/network/test_notifications.py +++ /dev/null @@ -1,1480 +0,0 @@ -# -# Copyright 2012 New Dream Network, LLC (DreamHost) -# -# 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. -"""Tests for ceilometer.network.notifications -""" - -import mock - -from ceilometer.network import notifications -from ceilometer.tests import base as test - -NOTIFICATION_NETWORK_CREATE = { - u'_context_roles': [u'anotherrole', - u'Member'], - u'_context_read_deleted': u'no', - u'event_type': u'network.create.end', - u'timestamp': u'2012-09-27 14:11:27.086575', - u'_context_tenant_id': u'82ed0c40ebe64d0bb3310027039c8ed2', - u'payload': {u'network': - {u'status': u'ACTIVE', - u'subnets': [], - u'name': u'abcedf', - u'router:external': False, - u'tenant_id': u'82ed0c40ebe64d0bb3310027039c8ed2', - u'admin_state_up': True, - u'shared': False, - u'id': u'7fd4eb2f-a38e-4c25-8490-71ca8800c9be'}}, - u'priority': u'INFO', - u'_context_is_admin': False, - u'_context_timestamp': u'2012-09-27 14:11:26.924779', - u'_context_user_id': u'b44b7ce67fc84414a5c1660a92a1b862', - u'publisher_id': u'network.ubuntu-VirtualBox', - u'message_id': u'9e839576-cc47-4c60-a7d8-5743681213b1'} - -NOTIFICATION_BULK_NETWORK_CREATE = { - '_context_roles': [u'_member_', - u'heat_stack_owner', - u'admin'], - u'_context_request_id': u'req-a2dfdefd-b773-4400-9d52-5e146e119950', - u'_context_read_deleted': u'no', - u'event_type': u'network.create.end', - u'_context_user_name': u'admin', - u'_context_project_name': u'admin', - u'timestamp': u'2014-05-1510: 24: 56.335612', - u'_context_tenant_id': u'980ec4870033453ead65c0470a78b8a8', - u'_context_tenant_name': u'admin', - u'_context_tenant': u'980ec4870033453ead65c0470a78b8a8', - u'message_id': u'914eb601-9390-4a72-8629-f013a4c84467', - u'priority': 'info', - u'_context_is_admin': True, - u'_context_project_id': u'980ec4870033453ead65c0470a78b8a8', - u'_context_timestamp': u'2014-05-1510: 24: 56.285975', - u'_context_user': u'7520940056d54cceb25cbce888300bea', - u'_context_user_id': u'7520940056d54cceb25cbce888300bea', - u'publisher_id': u'network.devstack', - u'payload': { - u'networks': [{u'status': u'ACTIVE', - u'subnets': [], - u'name': u'test2', - u'provider: physical_network': None, - u'admin_state_up': True, - u'tenant_id': u'980ec4870033453ead65c0470a78b8a8', - u'provider: network_type': u'local', - u'shared': False, - u'id': u'7cbc7a66-bbd0-41fc-a186-81c3da5c9843', - u'provider: segmentation_id': None}, - {u'status': u'ACTIVE', - u'subnets': [], - u'name': u'test3', - u'provider: physical_network': None, - u'admin_state_up': True, - u'tenant_id': u'980ec4870033453ead65c0470a78b8a8', - u'provider: network_type': u'local', - u'shared': False, - u'id': u'5a7cb86f-1638-4cc1-8dcc-8bbbc8c7510d', - u'provider: segmentation_id': None}] - } -} - -NOTIFICATION_SUBNET_CREATE = { - u'_context_roles': [u'anotherrole', - u'Member'], - u'_context_read_deleted': u'no', - u'event_type': u'subnet.create.end', - u'timestamp': u'2012-09-27 14:11:27.426620', - u'_context_tenant_id': u'82ed0c40ebe64d0bb3310027039c8ed2', - u'payload': { - u'subnet': { - u'name': u'mysubnet', - u'enable_dhcp': True, - u'network_id': u'7fd4eb2f-a38e-4c25-8490-71ca8800c9be', - u'tenant_id': u'82ed0c40ebe64d0bb3310027039c8ed2', - u'dns_nameservers': [], - u'allocation_pools': [{u'start': u'192.168.42.2', - u'end': u'192.168.42.254'}], - u'host_routes': [], - u'ip_version': 4, - u'gateway_ip': u'192.168.42.1', - u'cidr': u'192.168.42.0/24', - u'id': u'1a3a170d-d7ce-4cc9-b1db-621da15a25f5'}}, - u'priority': u'INFO', - u'_context_is_admin': False, - u'_context_timestamp': u'2012-09-27 14:11:27.214490', - u'_context_user_id': u'b44b7ce67fc84414a5c1660a92a1b862', - u'publisher_id': u'network.ubuntu-VirtualBox', - u'message_id': u'd86dfc66-d3c3-4aea-b06d-bf37253e6116'} - -NOTIFICATION_BULK_SUBNET_CREATE = { - '_context_roles': [u'_member_', - u'heat_stack_owner', - u'admin'], - u'_context_request_id': u'req-b77e278a-0cce-4987-9f82-15957b234768', - u'_context_read_deleted': u'no', - u'event_type': u'subnet.create.end', - u'_context_user_name': u'admin', - u'_context_project_name': u'admin', - u'timestamp': u'2014-05-1510: 47: 08.133888', - u'_context_tenant_id': u'980ec4870033453ead65c0470a78b8a8', - u'_context_tenant_name': u'admin', - u'_context_tenant': u'980ec4870033453ead65c0470a78b8a8', - u'message_id': u'c7e6f9fd-ead2-415f-8493-b95bedf72e43', - u'priority': u'info', - u'_context_is_admin': True, - u'_context_project_id': u'980ec4870033453ead65c0470a78b8a8', - u'_context_timestamp': u'2014-05-1510: 47: 07.970043', - u'_context_user': u'7520940056d54cceb25cbce888300bea', - u'_context_user_id': u'7520940056d54cceb25cbce888300bea', - u'publisher_id': u'network.devstack', - u'payload': { - u'subnets': [{u'name': u'', - u'enable_dhcp': True, - u'network_id': u'3ddfe60b-34b4-4e9d-9440-43c904b1c58e', - u'tenant_id': u'980ec4870033453ead65c0470a78b8a8', - u'dns_nameservers': [], - u'ipv6_ra_mode': None, - u'allocation_pools': [{u'start': u'10.0.4.2', - u'end': u'10.0.4.254'}], - u'host_routes': [], - u'ipv6_address_mode': None, - u'ip_version': 4, - u'gateway_ip': u'10.0.4.1', - u'cidr': u'10.0.4.0/24', - u'id': u'14020d7b-6dd7-4349-bb8e-8f954c919022'}, - {u'name': u'', - u'enable_dhcp': True, - u'network_id': u'3ddfe60b-34b4-4e9d-9440-43c904b1c58e', - u'tenant_id': u'980ec4870033453ead65c0470a78b8a8', - u'dns_nameservers': [], - u'ipv6_ra_mode': None, - u'allocation_pools': [{u'start': u'10.0.5.2', - u'end': u'10.0.5.254'}], - u'host_routes': [], - u'ipv6_address_mode': None, - u'ip_version': 4, - u'gateway_ip': u'10.0.5.1', - u'cidr': u'10.0.5.0/24', - u'id': u'a080991b-a32a-4bf7-a558-96c4b77d075c'}] - } -} - -NOTIFICATION_PORT_CREATE = { - u'_context_roles': [u'anotherrole', - u'Member'], - u'_context_read_deleted': u'no', - u'event_type': u'port.create.end', - u'timestamp': u'2012-09-27 14:28:31.536370', - u'_context_tenant_id': u'82ed0c40ebe64d0bb3310027039c8ed2', - u'payload': { - u'port': { - u'status': u'ACTIVE', - u'name': u'', - u'admin_state_up': True, - u'network_id': u'7fd4eb2f-a38e-4c25-8490-71ca8800c9be', - u'tenant_id': u'82ed0c40ebe64d0bb3310027039c8ed2', - u'device_owner': u'', - u'mac_address': u'fa:16:3e:75:0c:49', - u'fixed_ips': [{ - u'subnet_id': u'1a3a170d-d7ce-4cc9-b1db-621da15a25f5', - u'ip_address': u'192.168.42.3'}], - u'id': u'9cdfeb92-9391-4da7-95a1-ca214831cfdb', - u'device_id': u''}}, - u'priority': u'INFO', - u'_context_is_admin': False, - u'_context_timestamp': u'2012-09-27 14:28:31.438919', - u'_context_user_id': u'b44b7ce67fc84414a5c1660a92a1b862', - u'publisher_id': u'network.ubuntu-VirtualBox', - u'message_id': u'7135b8ab-e13c-4ac8-bc31-75e7f756622a'} - -NOTIFICATION_BULK_PORT_CREATE = { - u'_context_roles': [u'_member_', - u'SwiftOperator'], - u'_context_request_id': u'req-678be9ad-c399-475a-b3e8-8da0c06375aa', - u'_context_read_deleted': u'no', - u'event_type': u'port.create.end', - u'_context_project_name': u'demo', - u'timestamp': u'2014-05-0909: 19: 58.317548', - u'_context_tenant_id': u'133087d90fc149528b501dd8b75ea965', - u'_context_timestamp': u'2014-05-0909: 19: 58.160011', - u'_context_tenant': u'133087d90fc149528b501dd8b75ea965', - u'payload': { - u'ports': [{u'status': u'DOWN', - u'name': u'port--1501135095', - u'allowed_address_pairs': [], - u'admin_state_up': True, - u'network_id': u'acf63fdc-b43b-475d-8cca-9429b843d5e8', - u'tenant_id': u'133087d90fc149528b501dd8b75ea965', - u'binding: vnic_type': u'normal', - u'device_owner': u'', - u'mac_address': u'fa: 16: 3e: 37: 10: 39', - u'fixed_ips': [], - u'id': u'296c2c9f-14e9-48da-979d-78b213454c59', - u'security_groups': [ - u'a06f7c9d-9e5a-46b0-9f6c-ce812aa2e5ff'], - u'device_id': u''}, - {u'status': u'DOWN', - u'name': u'', - u'allowed_address_pairs': [], - u'admin_state_up': False, - u'network_id': u'0a8eea59-0146-425c-b470-e9ddfa99ec61', - u'tenant_id': u'133087d90fc149528b501dd8b75ea965', - u'binding: vnic_type': u'normal', - u'device_owner': u'', - u'mac_address': u'fa: 16: 3e: 8e: 6e: 53', - u'fixed_ips': [], - u'id': u'd8bb667f-5cd3-4eca-a984-268e25b1b7a5', - u'security_groups': [ - u'a06f7c9d-9e5a-46b0-9f6c-ce812aa2e5ff'], - u'device_id': u''}] - }, - u'_unique_id': u'60b1650f17fc4fa59492f447321fb26c', - u'_context_is_admin': False, - u'_context_project_id': u'133087d90fc149528b501dd8b75ea965', - u'_context_tenant_name': u'demo', - u'_context_user': u'b1eb48f9c54741f4adc1b4ea512d400c', - u'_context_user_name': u'demo', - u'publisher_id': u'network.os-ci-test12', - u'message_id': u'04aa45e1-3c30-4c69-8638-e7ff8621e9bc', - u'_context_user_id': u'b1eb48f9c54741f4adc1b4ea512d400c', - u'priority': u'INFO' -} - -NOTIFICATION_PORT_UPDATE = { - u'_context_roles': [u'anotherrole', - u'Member'], - u'_context_read_deleted': u'no', - u'event_type': u'port.update.end', - u'timestamp': u'2012-09-27 14:35:09.514052', - u'_context_tenant_id': u'82ed0c40ebe64d0bb3310027039c8ed2', - u'payload': { - u'port': { - u'status': u'ACTIVE', - u'name': u'bonjour', - u'admin_state_up': True, - u'network_id': u'7fd4eb2f-a38e-4c25-8490-71ca8800c9be', - u'tenant_id': u'82ed0c40ebe64d0bb3310027039c8ed2', - u'device_owner': u'', - u'mac_address': u'fa:16:3e:75:0c:49', - u'fixed_ips': [{ - u'subnet_id': u'1a3a170d-d7ce-4cc9-b1db-621da15a25f5', - u'ip_address': u'192.168.42.3'}], - u'id': u'9cdfeb92-9391-4da7-95a1-ca214831cfdb', - u'device_id': u''}}, - u'priority': u'INFO', - u'_context_is_admin': False, - u'_context_timestamp': u'2012-09-27 14:35:09.447682', - u'_context_user_id': u'b44b7ce67fc84414a5c1660a92a1b862', - u'publisher_id': u'network.ubuntu-VirtualBox', - u'message_id': u'07b0a3a1-c0b5-40ab-a09c-28dee6bf48f4'} - - -NOTIFICATION_NETWORK_EXISTS = { - u'_context_roles': [u'anotherrole', - u'Member'], - u'_context_read_deleted': u'no', - u'event_type': u'network.exists', - u'timestamp': u'2012-09-27 14:11:27.086575', - u'_context_tenant_id': u'82ed0c40ebe64d0bb3310027039c8ed2', - u'payload': {u'network': - {u'status': u'ACTIVE', - u'subnets': [], - u'name': u'abcedf', - u'router:external': False, - u'tenant_id': u'82ed0c40ebe64d0bb3310027039c8ed2', - u'admin_state_up': True, - u'shared': False, - u'id': u'7fd4eb2f-a38e-4c25-8490-71ca8800c9be'}}, - u'priority': u'INFO', - u'_context_is_admin': False, - u'_context_timestamp': u'2012-09-27 14:11:26.924779', - u'_context_user_id': u'b44b7ce67fc84414a5c1660a92a1b862', - u'publisher_id': u'network.ubuntu-VirtualBox', - u'message_id': u'9e839576-cc47-4c60-a7d8-5743681213b1'} - - -NOTIFICATION_ROUTER_EXISTS = { - u'_context_roles': [u'anotherrole', - u'Member'], - u'_context_read_deleted': u'no', - u'event_type': u'router.exists', - u'timestamp': u'2012-09-27 14:11:27.086575', - u'_context_tenant_id': u'82ed0c40ebe64d0bb3310027039c8ed2', - u'payload': {u'router': - {'status': u'ACTIVE', - 'external_gateway_info': - {'network_id': u'89d55642-4dec-43a4-a617-6cec051393b5'}, - 'name': u'router1', - 'admin_state_up': True, - 'tenant_id': u'bb04a2b769c94917b57ba49df7783cfd', - 'id': u'ab8bb3ed-df23-4ca0-8f03-b887abcd5c23'}}, - u'priority': u'INFO', - u'_context_is_admin': False, - u'_context_timestamp': u'2012-09-27 14:11:26.924779', - u'_context_user_id': u'b44b7ce67fc84414a5c1660a92a1b862', - u'publisher_id': u'network.ubuntu-VirtualBox', - u'message_id': u'9e839576-cc47-4c60-a7d8-5743681213b1'} - - -NOTIFICATION_FLOATINGIP_EXISTS = { - u'_context_roles': [u'anotherrole', - u'Member'], - u'_context_read_deleted': u'no', - u'event_type': u'floatingip.exists', - u'timestamp': u'2012-09-27 14:11:27.086575', - u'_context_tenant_id': u'82ed0c40ebe64d0bb3310027039c8ed2', - u'payload': {u'floatingip': - {'router_id': None, - 'tenant_id': u'6e5f9df9b3a249ab834f25fe1b1b81fd', - 'floating_network_id': - u'001400f7-1710-4245-98c3-39ba131cc39a', - 'fixed_ip_address': None, - 'floating_ip_address': u'172.24.4.227', - 'port_id': None, - 'id': u'2b7cc28c-6f78-4735-9246-257168405de6'}}, - u'priority': u'INFO', - u'_context_is_admin': False, - u'_context_timestamp': u'2012-09-27 14:11:26.924779', - u'_context_user_id': u'b44b7ce67fc84414a5c1660a92a1b862', - u'publisher_id': u'network.ubuntu-VirtualBox', - u'message_id': u'9e839576-cc47-4c60-a7d8-5743681213b1'} - - -NOTIFICATION_FLOATINGIP_UPDATE_START = { - '_context_roles': [u'_member_', - u'admin', - u'heat_stack_owner'], - '_context_request_id': u'req-bd5ed336-242f-4705-836e-8e8f3d0d1ced', - '_context_read_deleted': u'no', - 'event_type': u'floatingip.update.start', - '_context_user_name': u'admin', - '_context_project_name': u'admin', - 'timestamp': u'2014-05-3107: 19: 43.463101', - '_context_tenant_id': u'9fc714821a3747c8bc4e3a9bfbe82732', - '_context_tenant_name': u'admin', - '_context_tenant': u'9fc714821a3747c8bc4e3a9bfbe82732', - 'message_id': u'0ab6d71f-ba0a-4501-86fe-6cc20521ef5a', - 'priority': 'info', - '_context_is_admin': True, - '_context_project_id': u'9fc714821a3747c8bc4e3a9bfbe82732', - '_context_timestamp': u'2014-05-3107: 19: 43.460767', - '_context_user': u'6ca7b13b33e4425cae0b85e2cf93d9a1', - '_context_user_id': u'6ca7b13b33e4425cae0b85e2cf93d9a1', - 'publisher_id': u'network.devstack', - 'payload': { - u'id': u'64262b2a-8f5d-4ade-9405-0cbdd03c1555', - u'floatingip': { - u'fixed_ip_address': u'172.24.4.227', - u'port_id': u'8ab815c8-03cc-4b45-a673-79bdd0c258f2' - } - } -} - - -NOTIFICATION_POOL_CREATE = { - "_context_roles": ["heat_stack_owner", "admin"], - "_context_request_id": "req-10715057-7590-4529-8020-b994295ee6f4", - "event_type": "pool.create.end", - "timestamp": "2014-09-15 17:20:50.687649", - "_context_tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_user": "1c1f7c80efc24a16b835ae1c0802d0a1", - "_unique_id": "ce255443233748ce9cc71b480974df28", - "_context_tenant_name": "demo", - "_context_user_id": "1c1f7c80efc24a16b835ae1c0802d0a1", - "payload": { - "pool": { - "status": "ACTIVE", - "lb_method": "ROUND_ROBIN", - "protocol": "HTTP", "description": "", - "health_monitors": [], - "members": [], - "status_description": None, - "id": "6d726518-f3aa-4dd4-ac34-e156a35c0aff", - "vip_id": None, - "name": "my_pool", - "admin_state_up": True, - "subnet_id": "afaf251b-2ec3-42ac-9fa9-82a4195724fa", - "tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "health_monitors_status": [], - "provider": "haproxy"}}, - "_context_project_name": "demo", - "_context_read_deleted": "no", - "_context_auth_token": "e6daf56d7d1787e1fbefff0ecf29703f", - "_context_tenant": "a820f2d6293b4a7587d1c582767f43fb", - "priority": "INFO", - "_context_is_admin": True, - "_context_project_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_timestamp": "2014-09-15 17:20:49.600299", - "_context_user_name": "admin", - "publisher_id": "network.ubuntu", - "message_id": "0a5ed7a6-e516-4aed-9968-4ee9f1b65cc2"} - - -NOTIFICATION_VIP_CREATE = { - "_context_roles": ["heat_stack_owner", "admin"], - "_context_request_id": "req-e56a8a5e-5d42-43e8-9677-2d36e6e17d5e", - "event_type": "vip.create.end", - "timestamp": "2014-09-15 17:22:11.323644", - "_context_tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_user": "1c1f7c80efc24a16b835ae1c0802d0a1", - "_unique_id": "f112a185e1d1424eba3a13df9e0f0277", - "_context_tenant_name": "demo", - "_context_user_id": "1c1f7c80efc24a16b835ae1c0802d0a1", - "payload": { - "vip": { - "status": "ACTIVE", - "protocol": "HTTP", - "description": "", - "address": "10.0.0.2", - "protocol_port": 80, - "port_id": "2b5dd476-11da-4d46-9f1e-7a75436062f6", - "id": "87a5ce35-f278-47f3-8990-7f695f52f9bf", - "status_description": None, - "name": "my_vip", - "admin_state_up": True, - "subnet_id": "afaf251b-2ec3-42ac-9fa9-82a4195724fa", - "tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "connection_limit": -1, - "pool_id": "6d726518-f3aa-4dd4-ac34-e156a35c0aff", - "session_persistence": {"type": "SOURCE_IP"}}}, - "_context_project_name": "demo", - "_context_read_deleted": "no", - "_context_auth_token": "e6daf56d7d1787e1fbefff0ecf29703f", - "_context_tenant": "a820f2d6293b4a7587d1c582767f43fb", - "priority": "INFO", - "_context_is_admin": True, - "_context_project_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_timestamp": "2014-09-15 17:22:11.187163", - "_context_user_name": "admin", - "publisher_id": "network.ubuntu", - "message_id": "3895ad11-98a3-4031-92af-f76e96736661"} - - -NOTIFICATION_HEALTH_MONITORS_CREATE = { - "_context_roles": ["heat_stack_owner", "admin"], - "_context_request_id": "req-e56a8a5e-5d42-43e8-9677-2d36e6e17d5e", - "event_type": "health_monitor.create.end", - "timestamp": "2014-09-15 17:22:11.323644", - "_context_tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_user": "1c1f7c80efc24a16b835ae1c0802d0a1", - "_unique_id": "f112a185e1d1424eba3a13df9e0f0277", - "_context_tenant_name": "demo", - "_context_user_id": "1c1f7c80efc24a16b835ae1c0802d0a1", - "payload": { - "health_monitor": { - "admin_state_up": True, - "tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "delay": 10, - "max_retries": 10, - "timeout": 10, - "pools": [], - "type": "PING", - "id": "6dea2d01-c3af-4696-9192-6c938f391f01"}}, - "_context_project_name": "demo", - "_context_read_deleted": "no", - "_context_auth_token": "e6daf56d7d1787e1fbefff0ecf29703f", - "_context_tenant": "a820f2d6293b4a7587d1c582767f43fb", - "priority": "INFO", - "_context_is_admin": True, - "_context_project_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_timestamp": "2014-09-15 17:22:11.187163", - "_context_user_name": "admin", - "publisher_id": "network.ubuntu", - "message_id": "65067e3f-830d-4fbb-87e2-f0e51fda83d2"} - - -NOTIFICATION_MEMBERS_CREATE = { - "_context_roles": ["heat_stack_owner", "admin"], - "_context_request_id": "req-e56a8a5e-5d42-43e8-9677-2d36e6e17d5e", - "event_type": "member.create.end", - "timestamp": "2014-09-15 17:22:11.323644", - "_context_tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_user": "1c1f7c80efc24a16b835ae1c0802d0a1", - "_unique_id": "f112a185e1d1424eba3a13df9e0f0277", - "_context_tenant_name": "demo", - "_context_user_id": "1c1f7c80efc24a16b835ae1c0802d0a1", - "payload": { - "member": {"admin_state_up": True, - "status": "ACTIVE", - "status_description": None, - "weight": 1, - "address": "10.0.0.3", - "tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "protocol_port": 80, - "id": "5e32f960-63ae-4a93-bfa2-339aa83d82ce", - "pool_id": "6b73b9f8-d807-4553-87df-eb34cdd08070"}}, - "_context_project_name": "demo", - "_context_read_deleted": "no", - "_context_auth_token": "e6daf56d7d1787e1fbefff0ecf29703f", - "_context_tenant": "a820f2d6293b4a7587d1c582767f43fb", - "priority": "INFO", - "_context_is_admin": True, - "_context_project_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_timestamp": "2014-09-15 17:22:11.187163", - "_context_user_name": "admin", - "publisher_id": "network.ubuntu", - "message_id": "65067e3f-830d-4fbb-87e2-f0e51fda83d2"} - - -NOTIFICATION_FIREWALL_CREATE = { - "_context_roles": ["heat_stack_owner", "admin"], - "_context_request_id": "req-e56a8a5e-5d42-43e8-9677-2d36e6e17d5e", - "event_type": "firewall.create.end", - "timestamp": "2014-09-15 17:22:11.323644", - "_context_tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_user": "1c1f7c80efc24a16b835ae1c0802d0a1", - "_unique_id": "f112a185e1d1424eba3a13df9e0f0277", - "_context_tenant_name": "demo", - "_context_user_id": "1c1f7c80efc24a16b835ae1c0802d0a1", - "payload": { - "firewall": { - "status": "ACTIVE", - "name": "my_firewall", - "admin_state_up": True, - "tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "firewall_policy_id": "c46a1c15-0496-41c9-beff-9a309a25653e", - "id": "e2d1155f-6bc4-4292-9cfa-ea91af4b38c8", - "description": ""}}, - "_context_project_name": "demo", - "_context_read_deleted": "no", - "_context_auth_token": "e6daf56d7d1787e1fbefff0ecf29703f", - "_context_tenant": "a820f2d6293b4a7587d1c582767f43fb", - "priority": "INFO", - "_context_is_admin": True, - "_context_project_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_timestamp": "2014-09-15 17:22:11.187163", - "_context_user_name": "admin", - "publisher_id": "network.ubuntu", - "message_id": "fdffeca1-2b5a-4dc9-b8ae-87c482a83e0d"} - - -NOTIFICATION_FIREWALL_RULE_CREATE = { - "_context_roles": ["heat_stack_owner", "admin"], - "_context_request_id": "req-e56a8a5e-5d42-43e8-9677-2d36e6e17d5e", - "event_type": "firewall_rule.create.end", - "timestamp": "2014-09-15 17:22:11.323644", - "_context_tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_user": "1c1f7c80efc24a16b835ae1c0802d0a1", - "_unique_id": "f112a185e1d1424eba3a13df9e0f0277", - "_context_tenant_name": "demo", - "_context_user_id": "1c1f7c80efc24a16b835ae1c0802d0a1", - "payload": { - "firewall_rule": { - "protocol": "tcp", - "description": "", - "source_port": 80, - "source_ip_address": '192.168.255.10', - "destination_ip_address": '10.10.10.1', - "firewall_policy_id": '', - "position": None, - "destination_port": 80, - "id": "53b7c0d3-cb87-4069-9e29-1e866583cc8c", - "name": "rule_01", - "tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "enabled": True, - "action": "allow", - "ip_version": 4, - "shared": False}}, - "_context_project_name": "demo", - "_context_read_deleted": "no", - "_context_auth_token": "e6daf56d7d1787e1fbefff0ecf29703f", - "_context_tenant": "a820f2d6293b4a7587d1c582767f43fb", - "priority": "INFO", - "_context_is_admin": True, - "_context_project_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_timestamp": "2014-09-15 17:22:11.187163", - "_context_user_name": "admin", - "publisher_id": "network.ubuntu", - "message_id": "fdffeca1-2b5a-4dc9-b8ae-87c482a83e0d"} - - -NOTIFICATION_FIREWALL_POLICY_CREATE = { - "_context_roles": ["heat_stack_owner", "admin"], - "_context_request_id": "req-e56a8a5e-5d42-43e8-9677-2d36e6e17d5e", - "event_type": "firewall_policy.create.end", - "timestamp": "2014-09-15 17:22:11.323644", - "_context_tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_user": "1c1f7c80efc24a16b835ae1c0802d0a1", - "_unique_id": "f112a185e1d1424eba3a13df9e0f0277", - "_context_tenant_name": "demo", - "_context_user_id": "1c1f7c80efc24a16b835ae1c0802d0a1", - "payload": { - "firewall_policy": {"name": "my_policy", - "firewall_rules": [], - "tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "audited": False, - "shared": False, - "id": "c46a1c15-0496-41c9-beff-9a309a25653e", - "description": ""}}, - "_context_project_name": "demo", - "_context_read_deleted": "no", - "_context_auth_token": "e6daf56d7d1787e1fbefff0ecf29703f", - "_context_tenant": "a820f2d6293b4a7587d1c582767f43fb", - "priority": "INFO", - "_context_is_admin": True, - "_context_project_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_timestamp": "2014-09-15 17:22:11.187163", - "_context_user_name": "admin", - "publisher_id": "network.ubuntu", - "message_id": "fdffeca1-2b5a-4dc9-b8ae-87c482a83e0d"} - - -NOTIFICATION_VPNSERVICE_CREATE = { - "_context_roles": ["heat_stack_owner", "admin"], - "_context_request_id": "req-e56a8a5e-5d42-43e8-9677-2d36e6e17d5e", - "event_type": "vpnservice.create.end", - "timestamp": "2014-09-15 17:22:11.323644", - "_context_tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_user": "1c1f7c80efc24a16b835ae1c0802d0a1", - "_unique_id": "f112a185e1d1424eba3a13df9e0f0277", - "_context_tenant_name": "demo", - "_context_user_id": "1c1f7c80efc24a16b835ae1c0802d0a1", - "payload": { - "vpnservice": {"router_id": "75871c53-e722-4b21-93ed-20cb40b6b672", - "status": "ACTIVE", - "name": "my_vpn", - "admin_state_up": True, - "subnet_id": "afaf251b-2ec3-42ac-9fa9-82a4195724fa", - "tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "id": "270c40cc-28d5-4a7e-83da-cc33088ee5d6", - "description": ""}}, - "_context_project_name": "demo", - "_context_read_deleted": "no", - "_context_auth_token": "e6daf56d7d1787e1fbefff0ecf29703f", - "_context_tenant": "a820f2d6293b4a7587d1c582767f43fb", - "priority": "INFO", - "_context_is_admin": True, - "_context_project_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_timestamp": "2014-09-15 17:22:11.187163", - "_context_user_name": "admin", - "publisher_id": "network.ubuntu", - "message_id": "65067e3f-830d-4fbb-87e2-f0e51fda83d2"} - - -NOTIFICATION_IPSEC_POLICY_CREATE = { - "_context_roles": ["heat_stack_owner", "admin"], - "_context_request_id": "req-e56a8a5e-5d42-43e8-9677-2d36e6e17d5e", - "event_type": "ipsecpolicy.create.end", - "timestamp": "2014-09-15 17:22:11.323644", - "_context_tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_user": "1c1f7c80efc24a16b835ae1c0802d0a1", - "_unique_id": "f112a185e1d1424eba3a13df9e0f0277", - "_context_tenant_name": "demo", - "_context_user_id": "1c1f7c80efc24a16b835ae1c0802d0a1", - "payload": { - "ipsecpolicy": {"encapsulation_mode": "tunnel", - "encryption_algorithm": "aes-128", - "pfs": "group5", - "lifetime": { - "units": "seconds", - "value": 3600}, - "name": "my_ipsec_polixy", - "transform_protocol": "esp", - "tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "id": "998d910d-4506-47c9-a160-47ec51ff53fc", - "auth_algorithm": "sha1", - "description": ""}}, - "_context_project_name": "demo", - "_context_read_deleted": "no", - "_context_auth_token": "e6daf56d7d1787e1fbefff0ecf29703f", - "_context_tenant": "a820f2d6293b4a7587d1c582767f43fb", - "priority": "INFO", - "_context_is_admin": True, - "_context_project_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_timestamp": "2014-09-15 17:22:11.187163", - "_context_user_name": "admin", - "publisher_id": "network.ubuntu", - "message_id": "4c0e6ecb-2e40-4975-aee2-d88045c747bf"} - - -NOTIFICATION_IKE_POLICY_CREATE = { - "_context_roles": ["heat_stack_owner", "admin"], - "_context_request_id": "req-e56a8a5e-5d42-43e8-9677-2d36e6e17d5e", - "event_type": "ikepolicy.create.end", - "timestamp": "2014-09-15 17:22:11.323644", - "_context_tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_user": "1c1f7c80efc24a16b835ae1c0802d0a1", - "_unique_id": "f112a185e1d1424eba3a13df9e0f0277", - "_context_tenant_name": "demo", - "_context_user_id": "1c1f7c80efc24a16b835ae1c0802d0a1", - "payload": { - "ikepolicy": {"encryption_algorithm": "aes-128", - "pfs": "group5", - "name": "my_ike_policy", - "phase1_negotiation_mode": "main", - "lifetime": {"units": "seconds", - "value": 3600}, - "tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "ike_version": "v1", - "id": "11cef94e-3f6a-4b65-8058-7deb1838633a", - "auth_algorithm": "sha1", - "description": ""}}, - "_context_project_name": "demo", - "_context_read_deleted": "no", - "_context_auth_token": "e6daf56d7d1787e1fbefff0ecf29703f", - "_context_tenant": "a820f2d6293b4a7587d1c582767f43fb", - "priority": "INFO", - "_context_is_admin": True, - "_context_project_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_timestamp": "2014-09-15 17:22:11.187163", - "_context_user_name": "admin", - "publisher_id": "network.ubuntu", - "message_id": "4c0e6ecb-2e40-4975-aee2-d88045c747bf"} - - -NOTIFICATION_IPSEC_SITE_CONN_CREATE = { - "_context_roles": ["heat_stack_owner", "admin"], - "_context_request_id": "req-e56a8a5e-5d42-43e8-9677-2d36e6e17d5e", - "event_type": "ipsec_site_connection.create.end", - "timestamp": "2014-09-15 17:22:11.323644", - "_context_tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_user": "1c1f7c80efc24a16b835ae1c0802d0a1", - "_unique_id": "f112a185e1d1424eba3a13df9e0f0277", - "_context_tenant_name": "demo", - "_context_user_id": "1c1f7c80efc24a16b835ae1c0802d0a1", - "payload": { - "ipsec_site_connection": { - "status": "ACTIVE", - "psk": "test", - "initiator": "bi-directional", - "name": "my_ipsec_connection", - "admin_state_up": True, - "tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "ipsecpolicy_id": "998d910d-4506-47c9-a160-47ec51ff53fc", - "auth_mode": "psk", "peer_cidrs": ["192.168.255.0/24"], - "mtu": 1500, - "ikepolicy_id": "11cef94e-3f6a-4b65-8058-7deb1838633a", - "dpd": {"action": "hold", - "interval": 30, - "timeout": 120}, - "route_mode": "static", - "vpnservice_id": "270c40cc-28d5-4a7e-83da-cc33088ee5d6", - "peer_address": "10.0.0.1", - "peer_id": "10.0.0.254", - "id": "06f3c1ec-2e01-4ad6-9c98-4252751fc60a", - "description": ""}}, - "_context_project_name": "demo", - "_context_read_deleted": "no", - "_context_auth_token": "e6daf56d7d1787e1fbefff0ecf29703f", - "_context_tenant": "a820f2d6293b4a7587d1c582767f43fb", - "priority": "INFO", - "_context_is_admin": True, - "_context_project_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_timestamp": "2014-09-15 17:22:11.187163", - "_context_user_name": "admin", - "publisher_id": "network.ubuntu", - "message_id": "4c0e6ecb-2e40-4975-aee2-d88045c747bf"} - - -NOTIFICATION_POOL_UPDATE = { - "_context_roles": ["admin"], - "_context_request_id": "req-10715057-7590-4529-8020-b994295ee6f4", - "event_type": "pool.update.end", - "timestamp": "2014-09-15 17:20:50.687649", - "_context_tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_user": "1c1f7c80efc24a16b835ae1c0802d0a1", - "_unique_id": "ce255443233748ce9cc71b480974df28", - "_context_tenant_name": "demo", - "_context_user_id": "1c1f7c80efc24a16b835ae1c0802d0a1", - "payload": { - "pool": { - "status": "ACTIVE", - "lb_method": "ROUND_ROBIN", - "protocol": "HTTP", "description": "", - "health_monitors": [], - "members": [], - "status_description": None, - "id": "6d726518-f3aa-4dd4-ac34-e156a35c0aff", - "vip_id": None, - "name": "my_pool", - "admin_state_up": True, - "subnet_id": "afaf251b-2ec3-42ac-9fa9-82a4195724fa", - "tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "health_monitors_status": [], - "provider": "haproxy"}}, - "_context_project_name": "demo", - "_context_read_deleted": "no", - "_context_auth_token": "e6daf56d7d1787e1fbefff0ecf29703f", - "_context_tenant": "a820f2d6293b4a7587d1c582767f43fb", - "priority": "INFO", - "_context_is_admin": True, - "_context_project_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_timestamp": "2014-09-15 17:20:49.600299", - "_context_user_name": "admin", - "publisher_id": "network.ubuntu", - "message_id": "0a5ed7a6-e516-4aed-9968-4ee9f1b65cc2"} - - -NOTIFICATION_VIP_UPDATE = { - "_context_roles": ["admin"], - "_context_request_id": "req-e56a8a5e-5d42-43e8-9677-2d36e6e17d5e", - "event_type": "vip.update.end", - "timestamp": "2014-09-15 17:22:11.323644", - "_context_tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_user": "1c1f7c80efc24a16b835ae1c0802d0a1", - "_unique_id": "f112a185e1d1424eba3a13df9e0f0277", - "_context_tenant_name": "demo", - "_context_user_id": "1c1f7c80efc24a16b835ae1c0802d0a1", - "payload": { - "vip": { - "status": "ACTIVE", - "protocol": "HTTP", - "description": "", - "address": "10.0.0.2", - "protocol_port": 80, - "port_id": "2b5dd476-11da-4d46-9f1e-7a75436062f6", - "id": "87a5ce35-f278-47f3-8990-7f695f52f9bf", - "status_description": None, - "name": "my_vip", - "admin_state_up": True, - "subnet_id": "afaf251b-2ec3-42ac-9fa9-82a4195724fa", - "tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "connection_limit": -1, - "pool_id": "6d726518-f3aa-4dd4-ac34-e156a35c0aff", - "session_persistence": {"type": "SOURCE_IP"}}}, - "_context_project_name": "demo", - "_context_read_deleted": "no", - "_context_auth_token": "e6daf56d7d1787e1fbefff0ecf29703f", - "_context_tenant": "a820f2d6293b4a7587d1c582767f43fb", - "priority": "INFO", - "_context_is_admin": True, - "_context_project_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_timestamp": "2014-09-15 17:22:11.187163", - "_context_user_name": "admin", - "publisher_id": "network.ubuntu", - "message_id": "3895ad11-98a3-4031-92af-f76e96736661"} - - -NOTIFICATION_HEALTH_MONITORS_UPDATE = { - "_context_roles": ["admin"], - "_context_request_id": "req-e56a8a5e-5d42-43e8-9677-2d36e6e17d5e", - "event_type": "health_monitor.update.end", - "timestamp": "2014-09-15 17:22:11.323644", - "_context_tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_user": "1c1f7c80efc24a16b835ae1c0802d0a1", - "_unique_id": "f112a185e1d1424eba3a13df9e0f0277", - "_context_tenant_name": "demo", - "_context_user_id": "1c1f7c80efc24a16b835ae1c0802d0a1", - "payload": { - "health_monitor": { - "admin_state_up": True, - "tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "delay": 10, - "max_retries": 10, - "timeout": 10, - "pools": [], - "type": "PING", - "id": "6dea2d01-c3af-4696-9192-6c938f391f01"}}, - "_context_project_name": "demo", - "_context_read_deleted": "no", - "_context_auth_token": "e6daf56d7d1787e1fbefff0ecf29703f", - "_context_tenant": "a820f2d6293b4a7587d1c582767f43fb", - "priority": "INFO", - "_context_is_admin": True, - "_context_project_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_timestamp": "2014-09-15 17:22:11.187163", - "_context_user_name": "admin", - "publisher_id": "network.ubuntu", - "message_id": "65067e3f-830d-4fbb-87e2-f0e51fda83d2"} - - -NOTIFICATION_MEMBERS_UPDATE = { - "_context_roles": ["admin"], - "_context_request_id": "req-e56a8a5e-5d42-43e8-9677-2d36e6e17d5e", - "event_type": "member.update.end", - "timestamp": "2014-09-15 17:22:11.323644", - "_context_tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_user": "1c1f7c80efc24a16b835ae1c0802d0a1", - "_unique_id": "f112a185e1d1424eba3a13df9e0f0277", - "_context_tenant_name": "demo", - "_context_user_id": "1c1f7c80efc24a16b835ae1c0802d0a1", - "payload": { - "member": {"admin_state_up": True, - "status": "ACTIVE", - "status_description": None, - "weight": 1, - "address": "10.0.0.3", - "tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "protocol_port": 80, - "id": "5e32f960-63ae-4a93-bfa2-339aa83d82ce", - "pool_id": "6b73b9f8-d807-4553-87df-eb34cdd08070"}}, - "_context_project_name": "demo", - "_context_read_deleted": "no", - "_context_auth_token": "e6daf56d7d1787e1fbefff0ecf29703f", - "_context_tenant": "a820f2d6293b4a7587d1c582767f43fb", - "priority": "INFO", - "_context_is_admin": True, - "_context_project_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_timestamp": "2014-09-15 17:22:11.187163", - "_context_user_name": "admin", - "publisher_id": "network.ubuntu", - "message_id": "65067e3f-830d-4fbb-87e2-f0e51fda83d2"} - - -NOTIFICATION_FIREWALL_UPDATE = { - "_context_roles": ["admin"], - "_context_request_id": "req-e56a8a5e-5d42-43e8-9677-2d36e6e17d5e", - "event_type": "firewall.update.end", - "timestamp": "2014-09-15 17:22:11.323644", - "_context_tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_user": "1c1f7c80efc24a16b835ae1c0802d0a1", - "_unique_id": "f112a185e1d1424eba3a13df9e0f0277", - "_context_tenant_name": "demo", - "_context_user_id": "1c1f7c80efc24a16b835ae1c0802d0a1", - "payload": { - "firewall": { - "status": "ACTIVE", - "name": "my_firewall", - "admin_state_up": True, - "tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "firewall_policy_id": "c46a1c15-0496-41c9-beff-9a309a25653e", - "id": "e2d1155f-6bc4-4292-9cfa-ea91af4b38c8", - "description": ""}}, - "_context_project_name": "demo", - "_context_read_deleted": "no", - "_context_auth_token": "e6daf56d7d1787e1fbefff0ecf29703f", - "_context_tenant": "a820f2d6293b4a7587d1c582767f43fb", - "priority": "INFO", - "_context_is_admin": True, - "_context_project_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_timestamp": "2014-09-15 17:22:11.187163", - "_context_user_name": "admin", - "publisher_id": "network.ubuntu", - "message_id": "fdffeca1-2b5a-4dc9-b8ae-87c482a83e0d"} - - -NOTIFICATION_FIREWALL_RULE_UPDATE = { - "_context_roles": ["admin"], - "_context_request_id": "req-e56a8a5e-5d42-43e8-9677-2d36e6e17d5e", - "event_type": "firewall_rule.update.end", - "timestamp": "2014-09-15 17:22:11.323644", - "_context_tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_user": "1c1f7c80efc24a16b835ae1c0802d0a1", - "_unique_id": "f112a185e1d1424eba3a13df9e0f0277", - "_context_tenant_name": "demo", - "_context_user_id": "1c1f7c80efc24a16b835ae1c0802d0a1", - "payload": { - "firewall_rule": { - "protocol": "tcp", - "description": "", - "source_port": 80, - "source_ip_address": '192.168.255.10', - "destination_ip_address": '10.10.10.1', - "firewall_policy_id": '', - "position": None, - "destination_port": 80, - "id": "53b7c0d3-cb87-4069-9e29-1e866583cc8c", - "name": "rule_01", - "tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "enabled": True, - "action": "allow", - "ip_version": 4, - "shared": False}}, - "_context_project_name": "demo", - "_context_read_deleted": "no", - "_context_auth_token": "e6daf56d7d1787e1fbefff0ecf29703f", - "_context_tenant": "a820f2d6293b4a7587d1c582767f43fb", - "priority": "INFO", - "_context_is_admin": True, - "_context_project_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_timestamp": "2014-09-15 17:22:11.187163", - "_context_user_name": "admin", - "publisher_id": "network.ubuntu", - "message_id": "fdffeca1-2b5a-4dc9-b8ae-87c482a83e0d"} - - -NOTIFICATION_FIREWALL_POLICY_UPDATE = { - "_context_roles": ["admin"], - "_context_request_id": "req-e56a8a5e-5d42-43e8-9677-2d36e6e17d5e", - "event_type": "firewall_policy.update.end", - "timestamp": "2014-09-15 17:22:11.323644", - "_context_tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_user": "1c1f7c80efc24a16b835ae1c0802d0a1", - "_unique_id": "f112a185e1d1424eba3a13df9e0f0277", - "_context_tenant_name": "demo", - "_context_user_id": "1c1f7c80efc24a16b835ae1c0802d0a1", - "payload": { - "firewall_policy": {"name": "my_policy", - "firewall_rules": [], - "tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "audited": False, - "shared": False, - "id": "c46a1c15-0496-41c9-beff-9a309a25653e", - "description": ""}}, - "_context_project_name": "demo", - "_context_read_deleted": "no", - "_context_auth_token": "e6daf56d7d1787e1fbefff0ecf29703f", - "_context_tenant": "a820f2d6293b4a7587d1c582767f43fb", - "priority": "INFO", - "_context_is_admin": True, - "_context_project_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_timestamp": "2014-09-15 17:22:11.187163", - "_context_user_name": "admin", - "publisher_id": "network.ubuntu", - "message_id": "fdffeca1-2b5a-4dc9-b8ae-87c482a83e0d"} - - -NOTIFICATION_VPNSERVICE_UPDATE = { - "_context_roles": ["admin"], - "_context_request_id": "req-e56a8a5e-5d42-43e8-9677-2d36e6e17d5e", - "event_type": "vpnservice.update.end", - "timestamp": "2014-09-15 17:22:11.323644", - "_context_tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_user": "1c1f7c80efc24a16b835ae1c0802d0a1", - "_unique_id": "f112a185e1d1424eba3a13df9e0f0277", - "_context_tenant_name": "demo", - "_context_user_id": "1c1f7c80efc24a16b835ae1c0802d0a1", - "payload": { - "vpnservice": {"router_id": "75871c53-e722-4b21-93ed-20cb40b6b672", - "status": "ACTIVE", - "name": "my_vpn", - "admin_state_up": True, - "subnet_id": "afaf251b-2ec3-42ac-9fa9-82a4195724fa", - "tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "id": "270c40cc-28d5-4a7e-83da-cc33088ee5d6", - "description": ""}}, - "_context_project_name": "demo", - "_context_read_deleted": "no", - "_context_auth_token": "e6daf56d7d1787e1fbefff0ecf29703f", - "_context_tenant": "a820f2d6293b4a7587d1c582767f43fb", - "priority": "INFO", - "_context_is_admin": True, - "_context_project_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_timestamp": "2014-09-15 17:22:11.187163", - "_context_user_name": "admin", - "publisher_id": "network.ubuntu", - "message_id": "65067e3f-830d-4fbb-87e2-f0e51fda83d2"} - - -NOTIFICATION_IPSEC_POLICY_UPDATE = { - "_context_roles": ["admin"], - "_context_request_id": "req-e56a8a5e-5d42-43e8-9677-2d36e6e17d5e", - "event_type": "ipsecpolicy.update.end", - "timestamp": "2014-09-15 17:22:11.323644", - "_context_tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_user": "1c1f7c80efc24a16b835ae1c0802d0a1", - "_unique_id": "f112a185e1d1424eba3a13df9e0f0277", - "_context_tenant_name": "demo", - "_context_user_id": "1c1f7c80efc24a16b835ae1c0802d0a1", - "payload": { - "ipsecpolicy": {"encapsulation_mode": "tunnel", - "encryption_algorithm": "aes-128", - "pfs": "group5", - "lifetime": { - "units": "seconds", - "value": 3600}, - "name": "my_ipsec_polixy", - "transform_protocol": "esp", - "tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "id": "998d910d-4506-47c9-a160-47ec51ff53fc", - "auth_algorithm": "sha1", - "description": ""}}, - "_context_project_name": "demo", - "_context_read_deleted": "no", - "_context_auth_token": "e6daf56d7d1787e1fbefff0ecf29703f", - "_context_tenant": "a820f2d6293b4a7587d1c582767f43fb", - "priority": "INFO", - "_context_is_admin": True, - "_context_project_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_timestamp": "2014-09-15 17:22:11.187163", - "_context_user_name": "admin", - "publisher_id": "network.ubuntu", - "message_id": "4c0e6ecb-2e40-4975-aee2-d88045c747bf"} - - -NOTIFICATION_IKE_POLICY_UPDATE = { - "_context_roles": ["admin"], - "_context_request_id": "req-e56a8a5e-5d42-43e8-9677-2d36e6e17d5e", - "event_type": "ikepolicy.update.end", - "timestamp": "2014-09-15 17:22:11.323644", - "_context_tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_user": "1c1f7c80efc24a16b835ae1c0802d0a1", - "_unique_id": "f112a185e1d1424eba3a13df9e0f0277", - "_context_tenant_name": "demo", - "_context_user_id": "1c1f7c80efc24a16b835ae1c0802d0a1", - "payload": { - "ikepolicy": {"encryption_algorithm": "aes-128", - "pfs": "group5", - "name": "my_ike_policy", - "phase1_negotiation_mode": "main", - "lifetime": {"units": "seconds", - "value": 3600}, - "tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "ike_version": "v1", - "id": "11cef94e-3f6a-4b65-8058-7deb1838633a", - "auth_algorithm": "sha1", - "description": ""}}, - "_context_project_name": "demo", - "_context_read_deleted": "no", - "_context_auth_token": "e6daf56d7d1787e1fbefff0ecf29703f", - "_context_tenant": "a820f2d6293b4a7587d1c582767f43fb", - "priority": "INFO", - "_context_is_admin": True, - "_context_project_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_timestamp": "2014-09-15 17:22:11.187163", - "_context_user_name": "admin", - "publisher_id": "network.ubuntu", - "message_id": "4c0e6ecb-2e40-4975-aee2-d88045c747bf"} - - -NOTIFICATION_IPSEC_SITE_CONN_UPDATE = { - "_context_roles": ["admin"], - "_context_request_id": "req-e56a8a5e-5d42-43e8-9677-2d36e6e17d5e", - "event_type": "ipsec_site_connection.update.end", - "timestamp": "2014-09-15 17:22:11.323644", - "_context_tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_user": "1c1f7c80efc24a16b835ae1c0802d0a1", - "_unique_id": "f112a185e1d1424eba3a13df9e0f0277", - "_context_tenant_name": "demo", - "_context_user_id": "1c1f7c80efc24a16b835ae1c0802d0a1", - "payload": { - "ipsec_site_connection": { - "status": "ACTIVE", - "psk": "test", - "initiator": "bi-directional", - "name": "my_ipsec_connection", - "admin_state_up": True, - "tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "ipsecpolicy_id": "998d910d-4506-47c9-a160-47ec51ff53fc", - "auth_mode": "psk", "peer_cidrs": ["192.168.255.0/24"], - "mtu": 1500, - "ikepolicy_id": "11cef94e-3f6a-4b65-8058-7deb1838633a", - "dpd": {"action": "hold", - "interval": 30, - "timeout": 120}, - "route_mode": "static", - "vpnservice_id": "270c40cc-28d5-4a7e-83da-cc33088ee5d6", - "peer_address": "10.0.0.1", - "peer_id": "10.0.0.254", - "id": "06f3c1ec-2e01-4ad6-9c98-4252751fc60a", - "description": ""}}, - "_context_project_name": "demo", - "_context_read_deleted": "no", - "_context_auth_token": "e6daf56d7d1787e1fbefff0ecf29703f", - "_context_tenant": "a820f2d6293b4a7587d1c582767f43fb", - "priority": "INFO", - "_context_is_admin": True, - "_context_project_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_timestamp": "2014-09-15 17:22:11.187163", - "_context_user_name": "admin", - "publisher_id": "network.ubuntu", - "message_id": "4c0e6ecb-2e40-4975-aee2-d88045c747bf"} - -NOTIFICATION_EMPTY_PAYLOAD = { - "_context_roles": ["heat_stack_owner", "admin"], - "_context_request_id": "req-e56a8a5e-5d42-43e8-9677-2d36e6e17d5e", - "event_type": "health_monitor.create.end", - "timestamp": "2014-09-15 17:22:11.323644", - "_context_tenant_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_user": "1c1f7c80efc24a16b835ae1c0802d0a1", - "_unique_id": "f112a185e1d1424eba3a13df9e0f0277", - "_context_tenant_name": "demo", - "_context_user_id": "1c1f7c80efc24a16b835ae1c0802d0a1", - "payload": { - "health_monitor": {}}, - "_context_project_name": "demo", - "_context_read_deleted": "no", - "_context_auth_token": "e6daf56d7d1787e1fbefff0ecf29703f", - "_context_tenant": "a820f2d6293b4a7587d1c582767f43fb", - "priority": "INFO", - "_context_is_admin": True, - "_context_project_id": "a820f2d6293b4a7587d1c582767f43fb", - "_context_timestamp": "2014-09-15 17:22:11.187163", - "_context_user_name": "admin", - "publisher_id": "network.ubuntu", - "message_id": "65067e3f-830d-4fbb-87e2-f0e51fda83d2"} - - -class TestNotifications(test.BaseTestCase): - def test_network_create(self): - v = notifications.Network(mock.Mock()) - samples = list(v.process_notification(NOTIFICATION_NETWORK_CREATE)) - self.assertEqual(2, len(samples)) - self.assertEqual("network.create", samples[1].name) - - def test_bulk_network_create(self): - v = notifications.Network(mock.Mock()) - samples = list(v.process_notification( - NOTIFICATION_BULK_NETWORK_CREATE)) - self.assertEqual(4, len(samples)) - self.assertEqual("network", samples[0].name) - self.assertEqual("network.create", samples[1].name) - self.assertEqual("network", samples[2].name) - self.assertEqual("network.create", samples[3].name) - - def test_subnet_create(self): - v = notifications.Subnet(mock.Mock()) - samples = list(v.process_notification(NOTIFICATION_SUBNET_CREATE)) - self.assertEqual(2, len(samples)) - self.assertEqual("subnet.create", samples[1].name) - - def test_bulk_subnet_create(self): - v = notifications.Subnet(mock.Mock()) - samples = list(v.process_notification(NOTIFICATION_BULK_SUBNET_CREATE)) - self.assertEqual(4, len(samples)) - self.assertEqual("subnet", samples[0].name) - self.assertEqual("subnet.create", samples[1].name) - self.assertEqual("subnet", samples[2].name) - self.assertEqual("subnet.create", samples[3].name) - - def test_port_create(self): - v = notifications.Port(mock.Mock()) - samples = list(v.process_notification(NOTIFICATION_PORT_CREATE)) - self.assertEqual(2, len(samples)) - self.assertEqual("port.create", samples[1].name) - - def test_bulk_port_create(self): - v = notifications.Port(mock.Mock()) - samples = list(v.process_notification(NOTIFICATION_BULK_PORT_CREATE)) - self.assertEqual(4, len(samples)) - self.assertEqual("port", samples[0].name) - self.assertEqual("port.create", samples[1].name) - self.assertEqual("port", samples[2].name) - self.assertEqual("port.create", samples[3].name) - - def test_port_update(self): - v = notifications.Port(mock.Mock()) - samples = list(v.process_notification(NOTIFICATION_PORT_UPDATE)) - self.assertEqual(2, len(samples)) - self.assertEqual("port.update", samples[1].name) - - def test_network_exists(self): - v = notifications.Network(mock.Mock()) - samples = v.process_notification(NOTIFICATION_NETWORK_EXISTS) - self.assertEqual(1, len(list(samples))) - - def test_router_exists(self): - v = notifications.Router(mock.Mock()) - samples = v.process_notification(NOTIFICATION_ROUTER_EXISTS) - self.assertEqual(1, len(list(samples))) - - def test_floatingip_exists(self): - v = notifications.FloatingIP(mock.Mock()) - samples = list(v.process_notification(NOTIFICATION_FLOATINGIP_EXISTS)) - self.assertEqual(1, len(samples)) - self.assertEqual("ip.floating", samples[0].name) - - def test_floatingip_update(self): - v = notifications.FloatingIP(mock.Mock()) - samples = list(v.process_notification( - NOTIFICATION_FLOATINGIP_UPDATE_START)) - self.assertEqual(len(samples), 2) - self.assertEqual("ip.floating", samples[0].name) - - def test_pool_create(self): - v = notifications.Pool(mock.Mock()) - samples = list(v.process_notification(NOTIFICATION_POOL_CREATE)) - self.assertEqual(2, len(samples)) - self.assertEqual("network.services.lb.pool", samples[0].name) - - def test_vip_create(self): - v = notifications.Vip(mock.Mock()) - samples = list(v.process_notification(NOTIFICATION_VIP_CREATE)) - self.assertEqual(2, len(samples)) - self.assertEqual("network.services.lb.vip", samples[0].name) - - def test_member_create(self): - v = notifications.Member(mock.Mock()) - samples = list(v.process_notification(NOTIFICATION_MEMBERS_CREATE)) - self.assertEqual(2, len(samples)) - self.assertEqual("network.services.lb.member", samples[0].name) - - def test_health_monitor_create(self): - v = notifications.HealthMonitor(mock.Mock()) - samples = list(v.process_notification( - NOTIFICATION_HEALTH_MONITORS_CREATE)) - self.assertEqual(2, len(samples)) - self.assertEqual("network.services.lb.health_monitor", samples[0].name) - - def test_firewall_create(self): - v = notifications.Firewall(mock.Mock()) - samples = list(v.process_notification(NOTIFICATION_FIREWALL_CREATE)) - self.assertEqual(2, len(samples)) - self.assertEqual("network.services.firewall", samples[0].name) - - def test_vpnservice_create(self): - v = notifications.VPNService(mock.Mock()) - samples = list(v.process_notification(NOTIFICATION_VPNSERVICE_CREATE)) - self.assertEqual(2, len(samples)) - self.assertEqual("network.services.vpn", samples[0].name) - - def test_ipsec_connection_create(self): - v = notifications.IPSecSiteConnection(mock.Mock()) - samples = list(v.process_notification( - NOTIFICATION_IPSEC_SITE_CONN_CREATE)) - self.assertEqual(2, len(samples)) - self.assertEqual("network.services.vpn.connections", samples[0].name) - - def test_firewall_policy_create(self): - v = notifications.FirewallPolicy(mock.Mock()) - samples = list(v.process_notification( - NOTIFICATION_FIREWALL_POLICY_CREATE)) - self.assertEqual(2, len(samples)) - self.assertEqual("network.services.firewall.policy", samples[0].name) - - def test_firewall_rule_create(self): - v = notifications.FirewallRule(mock.Mock()) - samples = list(v.process_notification( - NOTIFICATION_FIREWALL_RULE_CREATE)) - self.assertEqual(2, len(samples)) - self.assertEqual("network.services.firewall.rule", samples[0].name) - - def test_ipsec_policy_create(self): - v = notifications.IPSecPolicy(mock.Mock()) - samples = list(v.process_notification( - NOTIFICATION_IPSEC_POLICY_CREATE)) - self.assertEqual(2, len(samples)) - self.assertEqual("network.services.vpn.ipsecpolicy", samples[0].name) - - def test_ike_policy_create(self): - v = notifications.IKEPolicy(mock.Mock()) - samples = list(v.process_notification( - NOTIFICATION_IKE_POLICY_CREATE)) - self.assertEqual(2, len(samples)) - self.assertEqual("network.services.vpn.ikepolicy", samples[0].name) - - def test_pool_update(self): - v = notifications.Pool(mock.Mock()) - samples = list(v.process_notification(NOTIFICATION_POOL_UPDATE)) - self.assertEqual(2, len(samples)) - self.assertEqual("network.services.lb.pool", samples[0].name) - - def test_vip_update(self): - v = notifications.Vip(mock.Mock()) - samples = list(v.process_notification(NOTIFICATION_VIP_UPDATE)) - self.assertEqual(2, len(samples)) - self.assertEqual("network.services.lb.vip", samples[0].name) - - def test_member_update(self): - v = notifications.Member(mock.Mock()) - samples = list(v.process_notification(NOTIFICATION_MEMBERS_UPDATE)) - self.assertEqual(2, len(samples)) - self.assertEqual("network.services.lb.member", samples[0].name) - - def test_health_monitor_update(self): - v = notifications.HealthMonitor(mock.Mock()) - samples = list(v.process_notification( - NOTIFICATION_HEALTH_MONITORS_UPDATE)) - self.assertEqual(2, len(samples)) - self.assertEqual("network.services.lb.health_monitor", samples[0].name) - - def test_firewall_update(self): - v = notifications.Firewall(mock.Mock()) - samples = list(v.process_notification(NOTIFICATION_FIREWALL_UPDATE)) - self.assertEqual(2, len(samples)) - self.assertEqual("network.services.firewall", samples[0].name) - - def test_vpnservice_update(self): - v = notifications.VPNService(mock.Mock()) - samples = list(v.process_notification(NOTIFICATION_VPNSERVICE_UPDATE)) - self.assertEqual(2, len(samples)) - self.assertEqual("network.services.vpn", samples[0].name) - - def test_ipsec_connection_update(self): - v = notifications.IPSecSiteConnection(mock.Mock()) - samples = list(v.process_notification( - NOTIFICATION_IPSEC_SITE_CONN_UPDATE)) - self.assertEqual(2, len(samples)) - self.assertEqual("network.services.vpn.connections", samples[0].name) - - def test_firewall_policy_update(self): - v = notifications.FirewallPolicy(mock.Mock()) - samples = list(v.process_notification( - NOTIFICATION_FIREWALL_POLICY_UPDATE)) - self.assertEqual(2, len(samples)) - self.assertEqual("network.services.firewall.policy", samples[0].name) - - def test_firewall_rule_update(self): - v = notifications.FirewallRule(mock.Mock()) - samples = list(v.process_notification( - NOTIFICATION_FIREWALL_RULE_UPDATE)) - self.assertEqual(2, len(samples)) - self.assertEqual("network.services.firewall.rule", samples[0].name) - - def test_ipsec_policy_update(self): - v = notifications.IPSecPolicy(mock.Mock()) - samples = list(v.process_notification( - NOTIFICATION_IPSEC_POLICY_UPDATE)) - self.assertEqual(2, len(samples)) - self.assertEqual("network.services.vpn.ipsecpolicy", samples[0].name) - - def test_ike_policy_update(self): - v = notifications.IKEPolicy(mock.Mock()) - samples = list(v.process_notification( - NOTIFICATION_IKE_POLICY_UPDATE)) - self.assertEqual(2, len(samples)) - self.assertEqual("network.services.vpn.ikepolicy", samples[0].name) - - def test_empty_event_payload(self): - v = notifications.HealthMonitor(mock.Mock()) - samples = list(v.process_notification( - NOTIFICATION_EMPTY_PAYLOAD)) - self.assertEqual(0, len(samples)) - - -class TestEventTypes(test.BaseTestCase): - - def test_network(self): - v = notifications.Network(mock.Mock()) - events = v.event_types - self.assertIsNotEmpty(events) - - def test_subnet(self): - v = notifications.Subnet(mock.Mock()) - events = v.event_types - self.assertIsNotEmpty(events) - - def test_port(self): - v = notifications.Port(mock.Mock()) - events = v.event_types - self.assertIsNotEmpty(events) - - def test_router(self): - self.assertTrue(notifications.Router(mock.Mock()).event_types) - - def test_floatingip(self): - self.assertTrue(notifications.FloatingIP(mock.Mock()).event_types) - - def test_pool(self): - self.assertTrue(notifications.Pool(mock.Mock()).event_types) - - def test_vip(self): - self.assertTrue(notifications.Vip(mock.Mock()).event_types) - - def test_member(self): - self.assertTrue(notifications.Member(mock.Mock()).event_types) - - def test_health_monitor(self): - self.assertTrue(notifications.HealthMonitor(mock.Mock()).event_types) - - def test_firewall(self): - self.assertTrue(notifications.Firewall(mock.Mock()).event_types) - - def test_vpnservice(self): - self.assertTrue(notifications.VPNService(mock.Mock()).event_types) - - def test_ipsec_connection(self): - self.assertTrue(notifications.IPSecSiteConnection( - mock.Mock()).event_types) - - def test_firewall_policy(self): - self.assertTrue(notifications.FirewallPolicy(mock.Mock()).event_types) - - def test_firewall_rule(self): - self.assertTrue(notifications.FirewallRule(mock.Mock()).event_types) - - def test_ipsec_policy(self): - self.assertTrue(notifications.IPSecPolicy(mock.Mock()).event_types) - - def test_ike_policy(self): - self.assertTrue(notifications.IKEPolicy(mock.Mock()).event_types) diff --git a/setup.cfg b/setup.cfg index b3d08ec110..f222b7f586 100644 --- a/setup.cfg +++ b/setup.cfg @@ -43,30 +43,12 @@ mysql = [entry_points] ceilometer.notification = - instance = ceilometer.compute.notifications.instance:Instance - instance_scheduled = ceilometer.compute.notifications.instance:InstanceScheduled - network = ceilometer.network.notifications:Network - subnet = ceilometer.network.notifications:Subnet - port = ceilometer.network.notifications:Port - router = ceilometer.network.notifications:Router - floatingip = ceilometer.network.notifications:FloatingIP http.request = ceilometer.middleware:HTTPRequest http.response = ceilometer.middleware:HTTPResponse hardware.ipmi.temperature = ceilometer.ipmi.notifications.ironic:TemperatureSensorNotification hardware.ipmi.voltage = ceilometer.ipmi.notifications.ironic:VoltageSensorNotification hardware.ipmi.current = ceilometer.ipmi.notifications.ironic:CurrentSensorNotification hardware.ipmi.fan = ceilometer.ipmi.notifications.ironic:FanSensorNotification - network.services.lb.pool = ceilometer.network.notifications:Pool - network.services.lb.vip = ceilometer.network.notifications:Vip - network.services.lb.member = ceilometer.network.notifications:Member - network.services.lb.health_monitor = ceilometer.network.notifications:HealthMonitor - network.services.firewall = ceilometer.network.notifications:Firewall - network.services.firewall.policy = ceilometer.network.notifications:FirewallPolicy - network.services.firewall.rule = ceilometer.network.notifications:FirewallRule - network.services.vpn = ceilometer.network.notifications:VPNService - network.services.vpn.ipsecpolicy = ceilometer.network.notifications:IPSecPolicy - network.services.vpn.ikepolicy = ceilometer.network.notifications:IKEPolicy - network.services.vpn.connections = ceilometer.network.notifications:IPSecSiteConnection _sample = ceilometer.telemetry.notifications:TelemetryIpc meter = ceilometer.meter.notifications:ProcessMeterNotifications