We are delighted to announce the release of: searchlight 1.0.0: OpenStack Search Service This release is part of the newton release series. For more details, please see below. 1.0.0 ^^^^^ The initial mitaka release (0.2) did not support ElasticSearch 2.x. ElasticSearch made several changes to internal index data mappings that were not backwards compatible with ElasticSearch 1.x. This release has all the changes required for Searchlight to support both ElasticSearch 1.x and 2.x. Searchlight now supports oslo pools instead of requiring a different topic for each listener. This simplifies deployment configuration. Previously, services would have to be specifically configured to send notifications to the Searchlight topic. With this change, Searchlight can share topics with other services such as Ceilometer. Adds ability to include region_name in mapping for multi-region deployments. Allow aggregations as part of a search request. Add new functionality to searchlight-manage to force a re-indexing from Elasticsearch only. This option allows new mappings to be applied to the Elasticsearch indices without the overhead of retrieving data from the plugin APIs. Allow dynamic index settings to allow Searchlight to be tuned differently from other indices on a shared Elasticsearch cluster. Searchlight will provide resource type info for any reference IDs in the facet results. Support version as a search param to include _version in search results. Adds the ability to attain a document count per resource type from the /facets endpoint. Doc count is always returned for a type; field listing is optional. Added multi-thread support for indexing. Allow wildcard character as an argument to searchlight-manage index sync --type Added support for neutron floating IPs. Added suppport for neutron security groups and security group rules. Add support for the new Neutron tenant RBAC policy functionality. This allows networks to be shared across tenants. Add support to searchlight-manage for displaying with Elasticsearch indices/aliases are currently being used by Searchlight. Reduce the number of calls to the nova API on instance boots. The ability to distribute resource type indexing across resource groups has now been fully enabled. This allows for improved indexing speed and clustering customization. Adds support for service policy files. Simplifies existing API policy support. Added project_id to mappings. Disable returning options for the facet fields. Add checks for resource group name configuration. Correct facet options on analyzed string fields. Fix the information returned by the API plugins endpoint. No longer index the data of child plugins as part of indexing a parent plugin, which fixes ConflictErrors occuring specifying parent plugins as the argument to searchlight-manage index sync --type. Fix routing on delete operations for neutron resources. Remove support for Designate v1 api because it has already been deprecated. Simplify list zones and recordsets code by using v2 api's built-in pagination. Add "updated_at" field to all mappings. Some Neutron ports that do not send notificatons to Searchlight. Do not initially index them. Fix mappings for fields erroneously marked as 'nested', and allow facet options for 'object' fields. Improved index sync performance. Change the way of doing facets search, replace use of search_type=count with size=0 New Features ************ * Added microversion support for Nova plugins, the default API version for Nova plugins is 2.1. User can change the API microversion for Nova using compute_api_version config option added in section service_credentials:nova. * Adds nova plugin for server groups. * Adds configuration option to include region_name in documents to assist with multi-region tribe node Elasticsearch setups. * Allows aggregations to be requested (as 'aggs' or 'aggregations' in a search request body). See https://www.elastic.co/guide/en/elasticsearch/reference/current /search-aggregations.html * Add a new option to the searchlight-manage index command to force a re-indexing from Elasticsearch only. The plugin APIs will not be used with option. * Allows a deployer to override some index-level Elasticsearch settings for all Searchlight-created indices. This is useful when running Searchlight on a shared Elasticsearch cluster. Settings are overriden using the elasticsearch.index_settings config option. * Searchlight will provide resource type info for any reference IDs in the facet results. Parent reference types will also be part of the info This will allow UI's and CLI's to explore the data seamlessly * version is supported as a search parameter to return an always- incrementing _version value with each search result. * Includes 'doc_count' in /facets response for each resource type. * Adds nova plugin for flavors. * Adds nova plugin for hypervisors. * When searchlight-manage is indexing, all resource types will be indexed in a separate thread. Multiple threads will be run concurrently. * The --type argument to searchlight-manage index sync accepts a wildcard as the final character. * Adds neutron floating IP support (OS::Neutron::FloatingIP). * Added suppport for neutron security groups and security group rules (OS::Neutron::SecurityGroup). * Add support for the new Neutron tenant RBAC policy functionality. This allows networks to be shared across tenants. * Add support to searchlight-manage for displaying with Elasticsearch indices/aliases are currently being used by Searchlight. The indices/aliases are based on the specified configuration file. * Replace some of the nova get server API calls with partial document updates that just update the OS-EXT-STS state fields. * Reenabled multiple indices by allowing plugins to be managed under different resource groups. * API configuration can include service policy files such that access to various resources can match whether their service API allows access for a user. * Openstack is moving away from 'tenant' as the nomenclature for keystone projects, preferring 'project' instead. Some services already return tenant_id and project_id (or just project_id); this patch adds project_id to those that do not. * Currently the "facet" endpoint will return all information relating to a facet field, including the options. The new parameter "exclude_options" to the facet endpoint will prevent the options for all facet fields from being returned. This option will avoid an aggregation query being performed on Elasticsearch, improving performance. The default behavior (not specifying this option) is return the options for all facet fields. Known Issues ************ * There are no notifications for server groups from nova yet, so we recommend putting it in its own resource group and scheduling a cron job to periodically re-sync. This will create a very low overhead way to keep the index up to date. The index latency will be dependent on how often you re-sync the data. * This is a change that is not compatible with the API response in Mitaka; changes have been made in Newton to the python client and UI. * There are no notifications for flavors from nova yet, so we recommend putting it to its own resource group and scheduling a cron job to re-sync with little overhead. * There are no notifications for hypervisor from nova yet, so we recommend putting it to its own resource group and scheduling a cron job to re-sync with little overhead. * Currently no notifications are sent on status changes for floating IPs (see https://bugs.launchpad.net/neutron/+bug/1593793) * Using multiple resource groups will impact sort behavior when sorting on fields across resource types when all the resource types don't have the requested 'sort-by field'. Follow the guidelines below to avoid errors. https://www.elastic.co/guide/en/elasticsearch/reference/current /search-request-sort.html#_ignoring_unmapped_fields https://www.elastic.co/guide/en/elasticsearch/reference/current /search-request-sort.html#_missing_values * Deployment should use Designate v2 api. if v1 api is in use, designate plugin won't function correctly. Upgrade Notes ************* * To support ElasticSearch 1.x and 2.x, several internal data mappings have been updated. If you previously deployed Searchlight, you will need to reindex your resource data using "searchlight- manage index sync". You may re-index everything or limit it to "OS::Nova::Server", "OS::Glance::Image", "OS::Glance::Metadef", "OS::Cinder:Volume", and "OS::Cinder::Snapshot". * To start using a pool with a shared topic instead of separate topics: * Update the respective service configuration files for searchlight enabled plugins to only publish to a single topic (e.g. set "notification_topics = notifications"). If you have Ceilometer enabled, this must be the same topic which Ceilometer uses. You also typically must restart each service for the change to take effect. For example, in "nova.conf", "glance-api.conf", "cinder.conf", "neutron.conf", and "designate.conf": notification_topics = notifications * Update "searchlight.conf". In the "[resource_plugin]" section, set "notifications_topic" to match the shared topic that you set in the service configurations. In the "[listener]" sections, set "notifications_pool" to your desired pool name. The default name starting in Newton is "searchlight". The "notifications_pool" does not have to match anything from other services configuration files. For example: [resource_plugin] notifications_topic = notifications [listener] notifications_pool = searchlight * A version of python-searchlightclient greater than 2.1 must be used with this change, as well as the Newton UI version. * The existing searchlight policy.json has been simplified. The only supported options for resource policy are to enable or disable it for all request types (i.e. the 'allow', 'query' 'facet' suffixes are no longer in effect). * Mappings have changed for several types; it is strongly recommended all data be reindexed and the API service restarted. Deprecation Notes ***************** * Two fields returned in the API plugins endpoint 'name' and 'index' have been removed. Bug Fixes ********* * Bug 1570213 Apply query to highlight query * Bug 1532010 Ensure consistency in mapping field types * Bug 1570674 Fix unicode error when booting instance from volume * Bug 1570199 Fix inconsistent mapping in image plugin * Bug 1568709 Remove port.create.end handler from nova * Bug 1565015 Add volume.retype event * Bug 1583215 Correct Cinder exchange value * Bug 1583215 Enable notification messaging pools * Overwrite child plugin's resource_group_name during parent registration. Child plugins must live on the same resource group as their parents. This fixes a issue that a misconfiguration of child plugin's resource_group_name results in inconsistentency with the parent plugin. * Facet options don't work well with analyzed string fields, because the aggregation runs on tokens. These fields have non-analyzed raw subfields for sorting. Include raw subfields in facet results so that users can use them to do exact matches. * The API plugins API endpoint is returning outdated, duplicated and incomplete information. The hat-trick of uselessness. This fix will correct that. The duplicated field ('name') has been removed. The outdated field has been renamed (from 'index' to 'alias-search'). The missing field has been added ('alias-listener'). * Bug 1584148 Version conflict during re-indexing * Fixes a bug where routing wasn't specified for delete operations on neutron child resources. * Fixes some compatibility issues around metafield access in es 1.x versus es 2.x. * All Elasticsearch mappings need to include the field "udated_at". This field is used by Searchlight UI to sort the results. * Searchlight is indexing unused Neutron ports. Some Neutron ports do not result in notifications to Searchlight. We do not want to initially index them. * Bug 1619047 Unnest nova server flavor and image mapping properties Other Notes *********** * The maximum number of threads that will run concurrently can be controlled by setting "max_workers" in the Searchlight configuration file. [manage] max_workers = 6 * Searchlight uses configured resource group name to create ElasticSearch indices. Some characters are invalid to index names and will cause faiure of index creation. Add verification to check if resource group name is valid. * In mitaka, indexing a parent plugin also reindexed the data for any children it had. That is no longer the case. * Improved searchlight-manage index sync performance by disabling automatic refresh of newly created indices until they are fully populated and activated for search queries. * Facets search is aggregation-only, no actual documents need to be returned. We do it by setting search_type in search request before, but it has been deprecated in Elasticsearch 2.x, use recommended size=0 instead. Changes in searchlight 0.2.0.0rc1..1.0.0 ---------------------------------------- 58b7ed1 api-ref: Add Searchlight api-ref def91d6 Pin tox upper-constraints for stable/newton 79d21a9 Return __searchlight-user-role with highlighting 7fb2e41 RBAC for network sharing 42b7d7b Support X_IS_ADMIN_PROJECT header on auth response 31f19de 'deleted_at' Date field needed for get_version 12950c7 Restrict image member list 54e05ec Do not index some Neutron ports. 6550b19 Cinder mapping incorrect. 99c2e77 Log indexing exceptions at 'exception' level 6eda437 Security group rule race condition 00f7edc Update .gitreview for stable/newton 4ca188e Indicate 'nested' on facet types 87fc192 Disable returning options for the facet fields. 0f9e6f1 Add "updated_at" field to all mappings. 177818b Handle nova error states correctly 241ec28 standardize release note page ordering 3625a7c Allow aggregations in search requests 3f406fa Change Elasticsearch installation doc 3d47b25 Change Designate recordset mapping ed1bfac Replace some 'nested' mapping types with 'object' dbdbb67 [api-ref] Remove temporary block code in conf.py 8ff2c39 to_dict instead of __dict__ for cinder resource 0b99d8e Verify resource group name 18b120f Fix exceptions error for image plugin 304362e Fix translation of exceptions f8f7d24 Use more specific asserts in tests d8ea63b Revert "Allow aggregations in search requests" 004bfc1 Raise NotImplementedError instead of NotImplemented 58a8870 Add region name to mappings and documents f8e4e3e Allow aggregations in search requests fb0676d Config logABug feature for searchlight api-ref 71510e9 Updated from global requirements afbac8e API plugin endpoint needs aliases d783c87 TrivialFix: Remove logging import unused 77ac53b Updated from global requirements 0d64da5 Get ready for os-api-ref sphinx theme change 0233200 Updated from global requirements 328f825 Service policy file support 3d7b4a1 Document the Searchlight architecture 535a3da Add nova server groups plugin 26e73de :Move elasticsearch install to plugin, use v2.3.4 63f0f56 Ignore nova deleting state changes 001e471 Force Elasticsearch indexing 1a9e06d Updated from global requirements f25b28b Fix nova exchange exception 3fd15c8 Add warning for plugins without notifications f408598 api-ref: add base structure 87fc290 Updated from global requirements 2652ed5 Add totals to facets 194e778 Support 'shelve' and 'reboot' instance notifications 5cda277 Allow wildcard in index --type argument f7d1a48 Flavor Plugin ae6a7b7 Log notification events 18c2061 Fixing typo in manage.py a7e1a8a Remove discover from test-requirements 558a6c5 Display ES indices 72c2b86 Updated from global requirements c575f3e Speed up Searchlight indexing 4fc6786 Small improvement for dynamic index settings doc fa70962 Fix --type handling for indexing parent plugins dcec06c Cleanup i18n marker functions to match Oslo docs 5d1030a Updated from global requirements 056be20 Remove designate v1 artifacts 79b0efd A typo commit in the documentation 7d0146a Add Neutron security group plugin 993811f Add Python 3.5 classifier and venv 771c5e6 Replace assertEqual(None, *) with assertIsNone in tests 89acc42 Fixes: Typo Error in helper.py 01eee1d Correct reraising of exception 6ad19a5 Spelling fixes in README 4fc01db Updated from global requirements 6a87126 Config: no need to set default=None bee851b Allow dynamic index settings 0e4c767 Reduce number of API calls on nova boot 85680b4 Neutron floating IP support. fbfef7b Expand designate functional tests 8736baa Fix typo errors in the description 0b6a5c0 make string.letters python3 compatible 32fd04b Handle JSON object in hypervisor serialization d36e9ed Updated from global requirements f6fe6fd Updated from global requirements 217480f Enabled Neutron notifications in sample local.conf a15e3e6 Determine routing before delete on neutron events 21042fd Add microversion support for nova plugins 0074de2 Image type should be a facet 028943d Expose 'version' as a search parameter 33066df Correct doc_values info in authoring plugins docs 2e9bac3 Updated from global requirements 3beda06 Change Nova API version to V2.1 04ec2a1 Add project_id to all serialized documents 3e64068 Fix reindexing conflict handling in es2 e58d3f3 Correct es 2.x functional test config bf693c5 Imported Translations from Zanata fdd0c01 Updated from global requirements 94a2660 Return raw subfields on facets of analyzed string fields 1d440ff Updated from global requirements 09b81c4 Don't accept domain-scoped tokens for auth 87ad59b Fix python3 compatible issue in listener 4074746 python 3.4 support for urlparse a924228 Remove mention of oslo.log 'verbose' option 16446d9 Correct wrong link in doc 787752a Use Notification Pools by Default ea75c13 Added os_endpoint_type to various OpenStack clients 6798c5d Add Release notes for fixes backported to 0.2.1 942de0a Enable notification messaging pools 83f389a Updated from global requirements e4878e0 Adds Nova Functional Tests f2ed51b Correct cinder 'exchange' value 7f56603 Resource types for reference and parent id 75f46cb Replace use of search_type=count with size=0 54a0687 Updated from global requirements 204d7b4 Apply query to highlight query 21b2960 Include zone_id in Designate Recordset mapping a2dbacc remove verbose option in devstack plugin 31f58bf Simple Script for Generating Resources ebcb52b Overwrite child plugin resource_group_name durning parent registration d2b536f Updated from global requirements 4592cdf Improve plugin authoring information 4f56a1e Reenable multiple elasticsearch indices e55c7ff Updated from global requirements 67354da Ensure consistency in mapping field types 0d927ef Add freeform search syntax to docs f7f5573 Imported Translations from Zanata 1142b72 Error deleting index in initial syncing 2d1e87a Updated from global requirements 5d9bcba use thread safe fnmatch 83d6e6b Document that initial sync is mandatory 730f9f1 Hypervisor plugin 3bb82e0 Allow limit=0 In Searches 789f39a [Trivial] Remove unnecessary executable privilege aeb4fc2 Make func test indexing more consistent 101c734 Add cleanup in functional tests e6f649c Making searchlight-manage python-3 compatible c7e4fcd Fix unicode error when booting instance from volume 4d06c6a Imported Translations from Zanata 2a16363 Updated from global requirements ccbb9b2 Add release note for index refresh disabling 81f7956 Zero Downtime Re-indexing Functional Tests. 1e4f0f6 Updated from global requirements 195a1f7 Add volume.retype event 93c6cfa Remove port.create.end handler from nova 725862a Breaking up utils.py 477d508 Disable index refresh during data re-sync 5db5612 Fix inconsistent mapping in image plugin 8eb705d Use delete_index instead of alias_listener_update 8bcca43 Updated from global requirements 52146ec Add region_name to service_credentials for devstack 7ad2648 Updated from global requirements d9b1230 Listen to instance volume attach/detach events acd51ea Add searchlight-ui to example local.conf 99b0e51 Add Link to client and ui ca1aeed Zero Downtime Re-indexing Unit Tests. 800b46c Proposed clarification on zero-downtime reindexing doc 2a44b63 Backward compatibility with designate v1 api 4abf961 Disable oslo_config file discovery in tests 3b7dc51 Backward compatibility with designate v1 api bcc8243 Increase heap for elasticsearch in func tests 1e80553 Fix _is_multiple_alias_exception signature 574a095 Add missing zero-downtime indexing documentation 8a287fc Increase heap for elasticsearch in func tests 3b132f8 Eliminate stray asterisk 600b691 Fix _is_multiple_alias_exception signature a73cd1d Add missing zero-downtime indexing documentation 9fecc29 Disable oslo_config file discovery in tests bb5ff07 Re-indexing optimization for doc_type cb2137b Re-indexing optimization for doc_type 25ca131 Add missing mitaka release notes 531447d Zero Downtime Re-indexing Error Handling. bc9eeaa Zero Downtime Re-indexing Error Handling. b1d339b Don't index DHCP ports ba67c2c Add missing mitaka release notes 3826498 Update reno for stable/mitaka a5ccab8 Update .gitreview for stable/mitaka 22e05a8 Don't index DHCP ports d5c3b46 Replace deprecated LOG.warn with LOG.warning Diffstat (except docs and test files) ------------------------------------- .gitreview | 1 + README.rst | 2 +- api-ref/source/conf.py | 240 ++++++ api-ref/source/http-codes.yaml | 55 ++ api-ref/source/index.rst | 25 + .../samples/create-search-admin-request.json | 6 + .../samples/create-search-aggregation-request.json | 11 + .../create-search-aggregation-response.json | 64 ++ .../source/samples/create-search-all-request.json | 5 + .../source/samples/create-search-all-response.json | 61 ++ .../create-search-complex-boolean-request.json | 25 + .../create-search-complex-boolean-response.json | 93 +++ .../samples/create-search-free-text-request.json | 9 + .../samples/create-search-free-text-response.json | 45 ++ .../create-search-multiple-type-request.json | 6 + .../create-search-phrase-field-request.json | 8 + .../create-search-phrase-field-response.json | 45 ++ .../samples/create-search-single-type-request.json | 6 + .../create-search-single-type-response.json | 44 ++ .../list-facets-all-response-exclude-options.json | 78 ++ .../source/samples/list-facets-all-response.json | 90 +++ .../list-facets-include-fields-response.json | 11 + .../source/samples/list-facets-type-response.json | 27 + api-ref/source/samples/list-plugins-response.json | 14 + api-ref/source/search-parameters.yaml | 170 ++++ api-ref/source/searchlight-v1.inc | 695 ++++++++++++++++ devstack/README.rst | 6 +- devstack/local.conf | 65 +- devstack/plugin.sh | 127 ++- etc/policy.json | 36 +- images/Figure1.png | Bin 0 -> 38618 bytes images/Figure2.png | Bin 0 -> 183985 bytes images/Figure3.png | Bin 0 -> 158874 bytes images/Figure4.png | Bin 0 -> 239153 bytes .../notes/add-0_2_1-notes-e1f8910ad27d88bb.yaml | 62 ++ ...nova-microversion-support-8b40da4458678f20.yaml | 6 + .../add-server-groups-plugin-3dff1b85a3f716f5.yaml | 10 + .../notes/bp-add-region-name-69fbe5b84b2883c6.yaml | 8 + ...allow-aggregation-queries-fd7d39cb33068be1.yaml | 8 + ...indexing-into-new-mapping-bd78e94842fd2705.yaml | 11 + ...nfigurable-index-settings-59e00230f669c1a8.yaml | 11 + ...source-type-relationships-d697d0aa6648a560.yaml | 9 + .../notes/bp-expose-version-be6403da43341c98.yaml | 8 + .../notes/bp-facet-totals-369e7cd81b15f658.yaml | 16 + releasenotes/notes/bp-flavor-plugin.yaml | 7 + .../bp-hypervisor-plugin-5d17ed1005004b43.yaml | 7 + ...x-performance-enhancement-c8dc21da98f45628.yaml | 12 + .../bp-index-role-separation-535e01ba3bb2252e.yaml | 11 + ...bp-indexing-type-wildcard-94c38a719a9210af.yaml | 7 + .../bp-neutron-floatingip-1291f3a76f0e4aed.yaml | 8 + .../bp-neutron-securitygroup-6c1531e9f80030bd.yaml | 7 + .../bp-neutron-tenant-rbac-0922f23111965f7c.yaml | 9 + .../bp-orphaned-es-aliases-24c5b5dcd2eb3a41.yaml | 10 + .../bp-reduce-nova-api-calls-64eef45bd19fa89c.yaml | 8 + ...reenable-multiple-indices-3c05b9dde9d45d62.yaml | 13 + ...port-service-policy-files-c7e5eeb83c6f4126.yaml | 13 + ...-zero-downtime-reindexing-a607d52b8711d845.yaml | 24 + .../bug-1545069-project-id-f8fe895ecce095ff.yaml | 10 + .../notes/bug-1547118-3cfde976f32c3b5c.yaml | 9 + ...bug-1557778-facet-options-798bba4cb4e3067a.yaml | 13 + .../notes/bug-1558630-fb26ae51f17fa9e2.yaml | 8 + .../notes/bug-1558884-231498c4a6f56a31.yaml | 9 + .../bug-1583681-plugin-info-d7307783f36cad25.yaml | 13 + ...bug-1584148-indexing-type-07ea84db2e6c1da4.yaml | 11 + ...g-1588540-neutron-routing-e7187a02535d8b01.yaml | 8 + .../notes/bug-1592984-34d9417422c37e37.yaml | 9 + .../bug-16175150-fix-mapping-a51e535a13deed96.yaml | 7 + ...bug-1621914-neutron-ports-58cf966264c09ce4.yaml | 8 + ...s-1619047-nested-mappings-4ddb2d0b067b3093.yaml | 10 + ...refresh-during-reindexing-e0152b6524385745.yaml | 7 + ...use-size-in-facets-search-438d4c4317879dfc.yaml | 9 + releasenotes/source/index.rst | 3 +- releasenotes/source/mitaka.rst | 6 + requirements.txt | 34 +- searchlight/api/__init__.py | 0 searchlight/api/common.py | 5 - searchlight/api/middleware/context.py | 22 +- searchlight/api/middleware/gzip.py | 3 +- searchlight/api/middleware/version_negotiation.py | 6 +- searchlight/api/policy.py | 80 +- searchlight/api/v1/__init__.py | 0 searchlight/api/v1/router.py | 0 searchlight/api/v1/search.py | 115 ++- searchlight/api/versions.py | 6 +- searchlight/cmd/__init__.py | 13 +- searchlight/cmd/api.py | 4 + searchlight/cmd/control.py | 4 +- searchlight/cmd/manage.py | 410 ++++++++-- searchlight/common/config.py | 4 +- searchlight/common/exception.py | 10 +- searchlight/common/property_utils.py | 12 +- searchlight/common/resource_types.py | 45 ++ searchlight/common/utils.py | 46 +- searchlight/common/wsgi.py | 12 +- searchlight/context.py | 15 + searchlight/elasticsearch/__init__.py | 36 +- searchlight/elasticsearch/plugins/base.py | 425 ++++++---- .../elasticsearch/plugins/cinder/__init__.py | 7 +- .../elasticsearch/plugins/cinder/snapshots.py | 27 +- .../cinder/snapshots_notification_handler.py | 18 +- .../elasticsearch/plugins/cinder/volumes.py | 36 +- .../plugins/cinder/volumes_notification_handler.py | 12 +- .../elasticsearch/plugins/designate/__init__.py | 29 +- .../plugins/designate/notification_handlers.py | 54 +- .../elasticsearch/plugins/designate/recordsets.py | 39 +- .../elasticsearch/plugins/designate/zones.py | 34 +- .../elasticsearch/plugins/glance/__init__.py | 21 +- searchlight/elasticsearch/plugins/glance/images.py | 70 +- .../plugins/glance/images_notification_handler.py | 13 +- .../elasticsearch/plugins/glance/metadefs.py | 48 +- .../glance/metadefs_notification_handler.py | 6 +- searchlight/elasticsearch/plugins/helper.py | 619 +++++++++++++++ .../elasticsearch/plugins/neutron/__init__.py | 35 + .../elasticsearch/plugins/neutron/floatingips.py | 108 +++ .../elasticsearch/plugins/neutron/networks.py | 65 +- .../plugins/neutron/notification_handlers.py | 357 ++++++++- searchlight/elasticsearch/plugins/neutron/ports.py | 41 +- .../elasticsearch/plugins/neutron/routers.py | 29 +- .../plugins/neutron/security_groups.py | 100 +++ .../elasticsearch/plugins/neutron/subnets.py | 25 +- searchlight/elasticsearch/plugins/nova/__init__.py | 70 +- searchlight/elasticsearch/plugins/nova/flavors.py | 110 +++ .../elasticsearch/plugins/nova/hypervisors.py | 106 +++ .../plugins/nova/notification_handler.py | 351 +++++++++ .../elasticsearch/plugins/nova/servergroups.py | 84 ++ searchlight/elasticsearch/plugins/nova/servers.py | 98 ++- .../plugins/nova/servers_notification_handler.py | 101 --- .../elasticsearch/plugins/openstack_clients.py | 72 +- .../elasticsearch/plugins/swift/__init__.py | 4 +- .../elasticsearch/plugins/swift/accounts.py | 11 +- .../elasticsearch/plugins/swift/containers.py | 13 +- searchlight/elasticsearch/plugins/swift/objects.py | 18 +- .../plugins/swift/swift_notification_handler.py | 29 +- searchlight/elasticsearch/plugins/utils.py | 755 ++++++------------ searchlight/listener.py | 46 +- .../locale/de/LC_MESSAGES/searchlight-log-info.po | 47 ++ searchlight/locale/de/LC_MESSAGES/searchlight.po | 445 +++++++++++ .../locale/es/LC_MESSAGES/searchlight-log-info.po | 47 ++ searchlight/locale/es/LC_MESSAGES/searchlight.po | 413 ++++++++++ searchlight/locale/fr/LC_MESSAGES/searchlight.po | 424 ++++++++++ searchlight/locale/it/LC_MESSAGES/searchlight.po | 415 ++++++++++ searchlight/locale/ja/LC_MESSAGES/searchlight.po | 390 +++++++++ .../ko_KR/LC_MESSAGES/searchlight-log-info.po | 47 ++ .../locale/ko_KR/LC_MESSAGES/searchlight.po | 385 +++++++++ .../pt_BR/LC_MESSAGES/searchlight-log-info.po | 47 ++ .../locale/pt_BR/LC_MESSAGES/searchlight.po | 413 ++++++++++ searchlight/locale/ru/LC_MESSAGES/searchlight.po | 405 ++++++++++ .../locale/tr_TR/LC_MESSAGES/searchlight.po | 390 +++++++++ .../locale/zh_CN/LC_MESSAGES/searchlight.po | 375 +++++++++ .../locale/zh_TW/LC_MESSAGES/searchlight.po | 374 +++++++++ searchlight/notifier.py | 7 - searchlight/plugin.py | 2 +- searchlight/service_policies.py | 103 +++ .../unit/test_neutron_securitygroup_plugin.py | 213 +++++ setup.cfg | 6 + test-requirements.txt | 14 +- test-scripts/README.rst | 22 + test-scripts/generate-swift-data.py | 9 +- test-scripts/listener.py | 72 ++ test-scripts/resources.sh | 214 +++++ tools/colorizer.py | 3 +- tox.ini | 19 +- 231 files changed, 20319 insertions(+), 2387 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index f8bcd25..b90f6f9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -14,2 +14,2 @@ PasteDeploy>=1.5.0 # MIT -Routes!=2.0,!=2.1,>=1.12.3;python_version=='2.7' # MIT -Routes!=2.0,>=1.12.3;python_version!='2.7' # MIT +Routes!=2.0,!=2.1,!=2.3.0,>=1.12.3;python_version=='2.7' # MIT +Routes!=2.0,!=2.3.0,>=1.12.3;python_version!='2.7' # MIT @@ -17,3 +17,3 @@ WebOb>=1.2.3 # MIT -oslo.config>=3.7.0 # Apache-2.0 -oslo.concurrency>=3.5.0 # Apache-2.0 -oslo.context>=0.2.0 # Apache-2.0 +oslo.config>=3.14.0 # Apache-2.0 +oslo.concurrency>=3.8.0 # Apache-2.0 +oslo.context>=2.9.0 # Apache-2.0 @@ -21,4 +21,4 @@ oslo.middleware>=3.0.0 # Apache-2.0 -oslo.service>=1.0.0 # Apache-2.0 -oslo.utils>=3.5.0 # Apache-2.0 -stevedore>=1.5.0 # Apache-2.0 -keystonemiddleware!=4.1.0,>=4.0.0 # Apache-2.0 +oslo.service>=1.10.0 # Apache-2.0 +oslo.utils>=3.16.0 # Apache-2.0 +stevedore>=1.16.0 # Apache-2.0 +keystonemiddleware!=4.1.0,!=4.5.0,>=4.0.0 # Apache-2.0 @@ -30 +30 @@ Paste # MIT -python-keystoneclient!=1.8.0,!=2.1.0,>=1.6.0 # Apache-2.0 +python-keystoneclient!=2.1.0,>=2.0.0 # Apache-2.0 @@ -37,2 +37,2 @@ oslo.log>=1.14.0 # Apache-2.0 -oslo.messaging>=4.0.0 # Apache-2.0 -oslo.policy>=0.5.0 # Apache-2.0 +oslo.messaging>=5.2.0 # Apache-2.0 +oslo.policy>=1.9.0 # Apache-2.0 @@ -41 +41 @@ oslo.serialization>=1.10.0 # Apache-2.0 -osprofiler>=1.1.0 # Apache-2.0 +osprofiler>=1.4.0 # Apache-2.0 @@ -43 +43 @@ osprofiler>=1.1.0 # Apache-2.0 -elasticsearch<2.0,>=1.3.0 # Apache-2.0 +elasticsearch<=3.0.0,>=2.0.0 # Apache-2.0 @@ -47 +47 @@ python-designateclient>=1.5.0 # Apache-2.0 -python-glanceclient>=2.0.0 # Apache-2.0 +python-glanceclient!=2.4.0,>=2.3.0 # Apache-2.0 @@ -49,2 +49,2 @@ python-novaclient!=2.33.0,>=2.29.0 # Apache-2.0 -python-neutronclient!=4.1.0,>=2.6.0 # Apache-2.0 -python-cinderclient>=1.3.1 # Apache-2.0 +python-neutronclient>=5.1.0 # Apache-2.0 +python-cinderclient!=1.7.0,!=1.7.1,>=1.6.0 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index 3cc4eee..2459aff 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -9 +9 @@ hacking<0.11,>=0.10.0 -Babel>=1.3 # BSD +Babel>=2.3.4 # BSD @@ -13,2 +13 @@ coverage>=3.6 # Apache-2.0 -discover # BSD -fixtures>=1.3.1 # Apache-2.0/BSD +fixtures>=3.0.0 # Apache-2.0/BSD @@ -16,3 +15,3 @@ mox3>=0.7.0 # Apache-2.0 -mock>=1.2 # BSD -sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2 # BSD -requests!=2.9.0,>=2.8.1 # Apache-2.0 +mock>=2.0 # BSD +sphinx!=1.3b1,<1.3,>=1.2.1 # BSD +requests>=2.10.0 # Apache-2.0 @@ -23 +22 @@ oslotest>=1.10.0 # Apache-2.0 -reno>=0.1.1 # Apache2 +reno>=1.8.0 # Apache2 @@ -27,0 +27 @@ httplib2>=0.7.5 # MIT +os-api-ref>=1.0.0 # Apache-2.0