Add NetworkGroupTag with support class and update NetworkGroup to reference NetworkGroupTag for cascading deletion.
Configuration to enable database filtering support is added to the VolumeFilterSupport class, the unit test already verifies this configuration.
… added the implementation follows largely the same method that snapshot filtering uses. junit test class is added as well
The status filter was missed in the original commit for this story. This commit also fixes unit tests for filters which were broken by signature changes.
We now throw an exception for an invalid resource filter. Previously we would fail to match any resources.
QueryPipeline now allows the required request parameters to be specified and tracks which parameters were from form fields or the query string. EuareQueryPipeline is updated to require only a Version parameter as Signature V4 does hot require any query parameters. HmacCredentials is updated to remove any assumptions about the location of values such as the access key identifier and signature method declaration. HmacLoginModuleSupport is updated to allow specialization of various signature version specific tasks. The HmacUtils class is moved and expanded to handle signature versions and their variants (Signature V4 has a variation that uses query parameters) HmacHandler is updated to delegate signature version specific tasks to the signature variant in use. QueryTimestampHandler is updated to use HmacUtils as a facade hiding the details of the signature variant in use. TokensQueryPipeline is updated to account for Signature V4 credentials when checking whether to use password authentication (for user console functionality) A SignatureHandlerUtils class is added to provide lookup of parameter and header values from a MappingHttpRequest. Existing HMAC login modules are updated to ignore parameters as appropriate and to accept multiple values for each parameter when canonicalizing. An Hmacv4LoginModule is added for login with Signature V4, this module does not currently validate the region or service and has a special case to allow for AWS Java SDK signatures with an incorrect path of '/'. The HmacLoginModuleTest is updated with tests for Signature V4, this includes running the AWS provided test kit and a test using a request generated by the AWS Java SDK version 1.3.26. A new SecurityHeader enum is added for working with HTTP headers related to security and the SecurityParameter enum is updated to support the new parameters for the query variant of Signature V4. Timestamps is updated to support more timestamp formats. Short variants of ISO 8601 dates are now accepted and RFC 2616 / HTTP 1.1 can now also be parsed (e.g. from the HTTP 'Date' header) MappingHttpRequest is updated to support identification of parameters that were from form fields (as opposed to the query string), this is necessary as form field parameters should not be included in the canonical form of the query parameters (they are included as the request body) A CollectionUtils class is added for any utility methods related to collections. A Strings class is added for utility methods related to Strings.
Bundle task filtering is supported by the new VmBundleTaskFilterSupport class in VmInstances. A BundleFilterFunctions enum is added to VmInstances with a value for each (String) property and a BundleDateFilterFunctions with a value for each Date property. VmControl is updated to support filtering via the new CloudMetadatas API. VmBundleTaskFilterSupportTest is added to provide coverage for Predicate filters and validation of filtering configuration.
Availability zone filtering by properties is supported by the new AvailabilityZoneFilterSupport class. The AvailabilityZoneFilterSupportTest is added to provide coverage for all Predicate filters. The ClusterEndpoint is updated to use filters when describing availability zones. A new constructor is added to Cluster to allow test use without requiring an active persistence context.
Key pair filtering is supported by the new KeyPairFilterSupport class in KeyPairs. A FilterFunctions enum is added to KeyPairs with a value for each (String) property. KeyPairs is updated to allow use of a Criteria / alias Map for key pair listing (for databasefilters). KeyPair manager is updated to support filtering via the new CloudMetadatas API. KeyPairFilterSupportTest is added to provide coverage for all Predicate filters and validation of filtering configuration.
Region filtering by properties is supported by the new RegionFilterSupport class. The RegionFilterSupportTest is added to provide coverage for all Predicate filters. The ClusterEndpoint is updated to use filters when describing regions. Framework classes are updated to allow for non AbstractPersistent/CloudMetadata resources.
Tag filtering by properties is supported by the new TagFilterSupport class. The TagFilterSupportTest is added to provide coverage for all Predicate filters and database filters. The TagManager is updated to use filters when describing tags. Transactions is updated to include a filter accepting a Criteria / alias Map (for database filters)
Instance filtering using tags is now supported via the new VmInstanceFilterSupport class. The VmInstanceFilterSupportTest provides unit test coverage of the tag filtering configuration. VmControl is updated to use filters when describing instances. VmInstances is updated to allow use of a Criteria / alias Map for instance lookup (for database filters)
Snapshot filtering by properties is added to the SnapshotFilterSupport class. A FilterFunctions enum is added to Snapshots with a value for each (String) property, and a FilterDateFunctions enum for the date property. The SnapshotFilterSupportTest is updated to provide coverage for all Predicate filters.
Images filtering using tags is now supported via the new ImageInfoFilterSupport class. The ImageInfoFilterSupportTest provides unit test coverage of the tag filtering configuration. The ImageManager is updated to use filters when describing images. CloudMetadatas is updated to support filtering using privileges without owner checking.
Snapshot filtering using tags is now supported via the new SnapshotFilterSupport class. The SnapshotFilterSupportTest provides unit test coverage of the tag filtering configuration. The SnapshotManager is updated to use filters when describing snapshots.