Merge branch 'master' into kibana-shield-require-import

Original commit: elastic/x-pack-elasticsearch@04142b4701
This commit is contained in:
Lukas Olson 2016-02-10 12:22:17 -07:00
commit 849918d723
540 changed files with 4780 additions and 3743 deletions

View File

@ -5,471 +5,4 @@
<suppressions>
<!-- On Windows, Checkstyle matches files using \ path separator -->
<!-- Hopefully temporary suppression of LineLength on files that don't pass it. We should remove these when we the
files start to pass. -->
<!-- -->
<suppress files="elasticsearch[/\\]x-pack[/\\]license-plugin[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]plugin[/\\]action[/\\]delete[/\\]DeleteLicenseRequestBuilder.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]license-plugin[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]plugin[/\\]action[/\\]delete[/\\]TransportDeleteLicenseAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]license-plugin[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]plugin[/\\]action[/\\]get[/\\]GetLicenseRequestBuilder.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]license-plugin[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]plugin[/\\]action[/\\]get[/\\]TransportGetLicenseAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]license-plugin[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]plugin[/\\]action[/\\]put[/\\]PutLicenseResponse.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]license-plugin[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]plugin[/\\]action[/\\]put[/\\]TransportPutLicenseAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]license-plugin[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]plugin[/\\]core[/\\]LicensesMetaData.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]license-plugin[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]plugin[/\\]core[/\\]LicensesService.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]license-plugin[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]plugin[/\\]core[/\\]TrialLicense.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]license-plugin[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]plugin[/\\]rest[/\\]RestDeleteLicenseAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]license-plugin[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]plugin[/\\]rest[/\\]RestGetLicenseAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]license-plugin[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]plugin[/\\]rest[/\\]RestPutLicenseAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]InternalClient.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]ShieldPlugin.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]action[/\\]ShieldActionFilter.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]action[/\\]interceptor[/\\]BulkRequestInterceptor.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]action[/\\]interceptor[/\\]FieldAndDocumentLevelSecurityRequestInterceptor.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]action[/\\]interceptor[/\\]UpdateRequestInterceptor.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]action[/\\]realm[/\\]ClearRealmCacheRequestBuilder.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]action[/\\]realm[/\\]TransportClearRealmCacheAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]action[/\\]role[/\\]AddRoleRequestBuilder.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]action[/\\]role[/\\]ClearRolesCacheRequestBuilder.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]action[/\\]role[/\\]TransportClearRolesCacheAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]action[/\\]role[/\\]TransportDeleteRoleAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]action[/\\]role[/\\]TransportGetRolesAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]action[/\\]user[/\\]AddUserRequest.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]action[/\\]user[/\\]TransportDeleteUserAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]action[/\\]user[/\\]TransportGetUsersAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]audit[/\\]index[/\\]IndexAuditTrail.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]audit[/\\]logfile[/\\]LoggingAuditTrail.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]AuthenticationFailureHandler.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]AuthenticationModule.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]InternalAuthenticationService.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]Realms.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]activedirectory[/\\]ActiveDirectoryGroupsResolver.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]activedirectory[/\\]ActiveDirectorySessionFactory.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]esnative[/\\]ESNativeUsersStore.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]esusers[/\\]ESUsersRealm.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]esusers[/\\]FileUserPasswdStore.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]esusers[/\\]FileUserRolesStore.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]esusers[/\\]tool[/\\]ESUsersTool.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]ldap[/\\]LdapRealm.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]ldap[/\\]LdapUserSearchSessionFactory.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]ldap[/\\]support[/\\]AbstractLdapRealm.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]ldap[/\\]support[/\\]LdapLoadBalancing.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]ldap[/\\]support[/\\]LdapUtils.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]ldap[/\\]support[/\\]SessionFactory.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]pki[/\\]PkiRealm.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]support[/\\]CachingUsernamePasswordRealm.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]support[/\\]DnRoleMapper.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]support[/\\]Hasher.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authz[/\\]InternalAuthorizationService.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authz[/\\]RoleDescriptor.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authz[/\\]accesscontrol[/\\]DocumentSubsetReader.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authz[/\\]accesscontrol[/\\]FieldSubsetReader.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authz[/\\]accesscontrol[/\\]OptOutQueryCache.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authz[/\\]accesscontrol[/\\]ShieldIndexSearcherWrapper.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authz[/\\]esnative[/\\]ESNativeRolesStore.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authz[/\\]indicesresolver[/\\]DefaultIndicesAndAliasesResolver.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authz[/\\]permission[/\\]GlobalPermission.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authz[/\\]permission[/\\]IndicesPermission.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authz[/\\]permission[/\\]Role.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authz[/\\]privilege[/\\]ClusterPrivilege.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authz[/\\]privilege[/\\]IndexPrivilege.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authz[/\\]store[/\\]FileRolesStore.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]crypto[/\\]InternalCryptoService.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]crypto[/\\]tool[/\\]SystemKeyTool.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]license[/\\]ShieldLicensee.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]rest[/\\]ShieldRestFilter.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]rest[/\\]action[/\\]RestAuthenticateAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]rest[/\\]action[/\\]RestShieldInfoAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]ssl[/\\]AbstractSSLService.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]support[/\\]ShieldFiles.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]transport[/\\]ShieldClientTransportService.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]transport[/\\]ShieldServerTransportService.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]transport[/\\]filter[/\\]IPFilter.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]transport[/\\]filter[/\\]ShieldIpFilterRule.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]transport[/\\]netty[/\\]IPFilterNettyUpstreamHandler.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]transport[/\\]netty[/\\]ShieldNettyTransport.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]WatcherLifeCycleService.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]WatcherModule.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]WatcherPlugin.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]WatcherService.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]ActionRegistry.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]ActionStatus.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]ActionWrapper.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]WatcherActionModule.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]email[/\\]DataAttachment.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]email[/\\]EmailAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]email[/\\]ExecutableEmailAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]email[/\\]service[/\\]Account.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]email[/\\]service[/\\]Email.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]email[/\\]service[/\\]EmailTemplate.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]email[/\\]service[/\\]InternalEmailService.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]email[/\\]service[/\\]Profile.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]email[/\\]service[/\\]attachment[/\\]DataAttachmentParser.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]email[/\\]service[/\\]attachment[/\\]EmailAttachments.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]email[/\\]service[/\\]attachment[/\\]HttpEmailAttachementParser.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]hipchat[/\\]ExecutableHipChatAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]hipchat[/\\]HipChatAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]hipchat[/\\]HipChatActionFactory.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]hipchat[/\\]service[/\\]HipChatAccount.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]hipchat[/\\]service[/\\]HipChatMessage.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]hipchat[/\\]service[/\\]IntegrationAccount.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]hipchat[/\\]service[/\\]InternalHipChatService.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]hipchat[/\\]service[/\\]SentMessages.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]hipchat[/\\]service[/\\]UserAccount.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]hipchat[/\\]service[/\\]V1Account.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]index[/\\]ExecutableIndexAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]index[/\\]IndexAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]logging[/\\]LoggingAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]pagerduty[/\\]ExecutablePagerDutyAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]pagerduty[/\\]PagerDutyActionFactory.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]pagerduty[/\\]service[/\\]IncidentEvent.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]pagerduty[/\\]service[/\\]IncidentEventContext.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]pagerduty[/\\]service[/\\]InternalPagerDutyService.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]pagerduty[/\\]service[/\\]SentEvent.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]slack[/\\]SlackAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]slack[/\\]SlackActionFactory.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]slack[/\\]service[/\\]InternalSlackService.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]slack[/\\]service[/\\]message[/\\]Attachment.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]slack[/\\]service[/\\]message[/\\]DynamicAttachments.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]slack[/\\]service[/\\]message[/\\]Field.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]slack[/\\]service[/\\]message[/\\]SlackMessage.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]webhook[/\\]WebhookAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]condition[/\\]ConditionBuilders.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]condition[/\\]ConditionRegistry.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]condition[/\\]always[/\\]AlwaysCondition.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]condition[/\\]compare[/\\]AbstractExecutableCompareCondition.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]condition[/\\]compare[/\\]CompareCondition.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]condition[/\\]compare[/\\]array[/\\]ArrayCompareCondition.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]condition[/\\]compare[/\\]array[/\\]ArrayCompareConditionFactory.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]condition[/\\]compare[/\\]array[/\\]ExecutableArrayCompareCondition.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]condition[/\\]never[/\\]NeverCondition.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]condition[/\\]script[/\\]ExecutableScriptCondition.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]condition[/\\]script[/\\]ScriptCondition.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]execution[/\\]AsyncTriggerListener.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]execution[/\\]CurrentExecutions.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]execution[/\\]ExecutionModule.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]execution[/\\]ExecutionService.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]execution[/\\]ManualExecutionContext.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]execution[/\\]SyncTriggerListener.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]execution[/\\]TriggeredWatchStore.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]execution[/\\]WatchExecutionResult.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]history[/\\]HistoryStore.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]input[/\\]InputRegistry.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]input[/\\]chain[/\\]ChainInputFactory.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]input[/\\]http[/\\]ExecutableHttpInput.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]input[/\\]http[/\\]HttpInput.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]input[/\\]http[/\\]HttpInputFactory.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]input[/\\]none[/\\]NoneInput.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]input[/\\]search[/\\]SearchInput.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]input[/\\]simple[/\\]SimpleInput.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]rest[/\\]action[/\\]RestExecuteWatchAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]support[/\\]Script.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]support[/\\]WatcherDateTimeUtils.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]support[/\\]WatcherUtils.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]support[/\\]http[/\\]HttpClient.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]support[/\\]http[/\\]HttpRequest.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]support[/\\]http[/\\]HttpRequestTemplate.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]support[/\\]http[/\\]HttpResponse.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]support[/\\]init[/\\]InitializingModule.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]support[/\\]text[/\\]TextTemplate.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]support[/\\]text[/\\]xmustache[/\\]XMustacheScriptEngineService.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]support[/\\]text[/\\]xmustache[/\\]XMustacheTextTemplateEngine.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]support[/\\]xcontent[/\\]WatcherXContentUtils.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]transform[/\\]chain[/\\]ChainTransform.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]transform[/\\]chain[/\\]ChainTransformFactory.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]transform[/\\]chain[/\\]ExecutableChainTransform.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]transform[/\\]script[/\\]ExecutableScriptTransform.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]transform[/\\]script[/\\]ScriptTransform.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]transform[/\\]search[/\\]SearchTransform.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]transport[/\\]actions[/\\]WatcherTransportAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]transport[/\\]actions[/\\]ack[/\\]TransportAckWatchAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]transport[/\\]actions[/\\]activate[/\\]ActivateWatchRequestBuilder.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]transport[/\\]actions[/\\]activate[/\\]TransportActivateWatchAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]transport[/\\]actions[/\\]delete[/\\]DeleteWatchRequestBuilder.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]transport[/\\]actions[/\\]delete[/\\]TransportDeleteWatchAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]transport[/\\]actions[/\\]execute[/\\]ExecuteWatchAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]transport[/\\]actions[/\\]execute[/\\]ExecuteWatchRequest.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]transport[/\\]actions[/\\]execute[/\\]ExecuteWatchRequestBuilder.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]transport[/\\]actions[/\\]execute[/\\]TransportExecuteWatchAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]transport[/\\]actions[/\\]get[/\\]GetWatchRequestBuilder.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]transport[/\\]actions[/\\]get[/\\]TransportGetWatchAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]transport[/\\]actions[/\\]put[/\\]TransportPutWatchAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]transport[/\\]actions[/\\]service[/\\]TransportWatcherServiceAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]transport[/\\]actions[/\\]service[/\\]WatcherServiceRequestBuilder.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]transport[/\\]actions[/\\]stats[/\\]TransportWatcherStatsAction.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]transport[/\\]actions[/\\]stats[/\\]WatcherStatsRequestBuilder.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]trigger[/\\]AbstractTriggerEngine.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]trigger[/\\]TriggerService.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]trigger[/\\]manual[/\\]ManualTrigger.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]trigger[/\\]manual[/\\]ManualTriggerEngine.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]trigger[/\\]manual[/\\]ManualTriggerEvent.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]trigger[/\\]schedule[/\\]Cron.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]trigger[/\\]schedule[/\\]CronSchedule.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]trigger[/\\]schedule[/\\]DailySchedule.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]trigger[/\\]schedule[/\\]HourlySchedule.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]trigger[/\\]schedule[/\\]ScheduleModule.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]trigger[/\\]schedule[/\\]ScheduleRegistry.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]trigger[/\\]schedule[/\\]ScheduleTriggerEngine.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]trigger[/\\]schedule[/\\]ScheduleTriggerEvent.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]trigger[/\\]schedule[/\\]engine[/\\]SchedulerScheduleTriggerEngine.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]trigger[/\\]schedule[/\\]engine[/\\]TickerScheduleTriggerEngine.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]trigger[/\\]schedule[/\\]support[/\\]DayTimes.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]trigger[/\\]schedule[/\\]support[/\\]MonthTimes.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]trigger[/\\]schedule[/\\]support[/\\]WeekTimes.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]trigger[/\\]schedule[/\\]support[/\\]YearTimes.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]watch[/\\]Watch.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]watch[/\\]WatchLockService.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]watch[/\\]WatchStatus.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]MarvelPlugin.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]AgentService.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]collector[/\\]AbstractCollector.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]collector[/\\]cluster[/\\]ClusterStateCollector.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]collector[/\\]cluster[/\\]ClusterStatsCollector.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]collector[/\\]indices[/\\]IndexRecoveryCollector.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]collector[/\\]indices[/\\]IndexStatsCollector.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]collector[/\\]indices[/\\]IndicesStatsCollector.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]collector[/\\]node[/\\]NodeStatsCollector.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]collector[/\\]node[/\\]NodeStatsMarvelDoc.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]exporter[/\\]Exporter.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]exporter[/\\]http[/\\]HttpExporter.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]exporter[/\\]local[/\\]LocalBulk.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]exporter[/\\]local[/\\]LocalExporter.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]settings[/\\]MarvelSettings.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]cleaner[/\\]CleanerService.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]license-plugin[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]plugin[/\\]AbstractLicensesConsumerPluginIntegrationTestCase.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]license-plugin[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]plugin[/\\]AbstractLicensesIntegrationTestCase.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]license-plugin[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]plugin[/\\]LicensesServiceNodeTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]license-plugin[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]plugin[/\\]LicensesTransportTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]license-plugin[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]plugin[/\\]TestUtils.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]license-plugin[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]plugin[/\\]consumer[/\\]TestPluginServiceBase.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]license-plugin[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]plugin[/\\]core[/\\]LicensesAcknowledgementTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]license-plugin[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]plugin[/\\]core[/\\]LicensesExpirationCallbackTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]license-plugin[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]plugin[/\\]core[/\\]LicensesExpiryNotificationTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]integration[/\\]AbstractPrivilegeTestCase.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]integration[/\\]BulkUpdateTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]integration[/\\]ClearRealmsCacheTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]integration[/\\]ClearRolesCacheTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]integration[/\\]ClusterPrivilegeTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]integration[/\\]DocumentAndFieldLevelSecurityTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]integration[/\\]DocumentLevelSecurityRandomTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]integration[/\\]DocumentLevelSecurityTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]integration[/\\]FieldLevelSecurityRandomTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]integration[/\\]FieldLevelSecurityTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]integration[/\\]IndexPrivilegeTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]integration[/\\]IndicesPermissionsWithAliasesWildcardsAndRegexsTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]integration[/\\]MultipleIndicesPermissionsTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]integration[/\\]PermissionPrecedenceTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]integration[/\\]ScrollIdSigningTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]integration[/\\]SearchGetAndSuggestPermissionsTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]integration[/\\]SettingsFilterTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]integration[/\\]ShieldClearScrollTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]integration[/\\]ldap[/\\]AbstractAdLdapRealmTestCase.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]ShieldF.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]ShieldPluginEnabledDisabledTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]ShieldPluginTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]VersionCompatibilityTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]action[/\\]ShieldActionFilterTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]action[/\\]ShieldActionMapperTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]audit[/\\]AuditTrailModuleTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]audit[/\\]index[/\\]IndexAuditTrailEnabledTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]audit[/\\]index[/\\]IndexAuditTrailTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]audit[/\\]index[/\\]IndexAuditTrailUpdateMappingTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]audit[/\\]index[/\\]RemoteIndexAuditTrailStartingTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]audit[/\\]logfile[/\\]LoggingAuditTrailTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]AnonymousUserTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]AuthenticationModuleTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]InternalAuthenticationServiceTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]RealmsTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]RunAsIntegTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]activedirectory[/\\]ActiveDirectoryGroupsResolverTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]activedirectory[/\\]ActiveDirectoryRealmTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]activedirectory[/\\]ActiveDirectorySessionFactoryTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]esnative[/\\]ESNativeTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]esusers[/\\]FileUserRolesStoreTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]ldap[/\\]LdapSessionFactoryTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]ldap[/\\]LdapUserSearchSessionFactoryTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]ldap[/\\]OpenLdapTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]ldap[/\\]SearchGroupsResolverTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]ldap[/\\]UserAttributeGroupsResolverTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]ldap[/\\]support[/\\]LdapLoadBalancingTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]ldap[/\\]support[/\\]LdapTestCase.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]ldap[/\\]support[/\\]SessionFactoryLoadBalancingTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]pki[/\\]PkiAuthenticationTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]pki[/\\]PkiOptionalClientAuthTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]pki[/\\]PkiRealmTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]pki[/\\]PkiWithoutClientAuthenticationTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]pki[/\\]PkiWithoutSSLTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]support[/\\]CachingUsernamePasswordRealmTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authc[/\\]support[/\\]UsernamePasswordTokenTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authz[/\\]AnalyzeTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authz[/\\]IndexAliasesTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authz[/\\]InternalAuthorizationServiceTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authz[/\\]RoleDescriptorTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authz[/\\]accesscontrol[/\\]DocumentSubsetReaderTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authz[/\\]accesscontrol[/\\]FieldDataCacheWithFieldSubsetReaderTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authz[/\\]accesscontrol[/\\]FieldSubsetReaderTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authz[/\\]accesscontrol[/\\]ShieldIndexSearcherWrapperIntegrationTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authz[/\\]accesscontrol[/\\]ShieldIndexSearcherWrapperUnitTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authz[/\\]indicesresolver[/\\]DefaultIndicesResolverTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authz[/\\]permission[/\\]PermissionTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]authz[/\\]store[/\\]FileRolesStoreTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]license[/\\]ShieldLicenseStateTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]rest[/\\]action[/\\]RestAuthenticateActionTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]support[/\\]ValidationTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]transport[/\\]ServerTransportFilterIntegrationTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]transport[/\\]ServerTransportFilterTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]transport[/\\]TransportFilterTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]transport[/\\]filter[/\\]IPFilterTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]transport[/\\]filter[/\\]IpFilteringIntegrationTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]transport[/\\]netty[/\\]HandshakeWaitingHandlerTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]transport[/\\]netty[/\\]IPFilterNettyUpstreamHandlerTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]transport[/\\]netty[/\\]ShieldNettyHttpServerTransportTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]transport[/\\]netty[/\\]ShieldNettyTransportTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]transport[/\\]netty[/\\]SslHostnameVerificationTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]transport[/\\]ssl[/\\]SslClientAuthTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]transport[/\\]ssl[/\\]SslIntegrationTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]transport[/\\]ssl[/\\]SslMultiPortTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]test[/\\]ShieldIntegTestCase.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]test[/\\]ShieldSettingsSource.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]transport[/\\]KnownActionsTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]shield[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]transport[/\\]ShieldServerTransportServiceTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]WatcherF.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]WatcherPluginDisableTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]WatcherPluginTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]WatcherServiceTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]email[/\\]EmailActionTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]email[/\\]service[/\\]AccountTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]email[/\\]service[/\\]EmailTemplateTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]email[/\\]service[/\\]HtmlSanitizerTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]email[/\\]service[/\\]InternalEmailServiceTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]email[/\\]service[/\\]ManualPublicSmtpServersTester.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]email[/\\]service[/\\]attachment[/\\]EmailAttachmentParsersTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]email[/\\]service[/\\]attachment[/\\]HttpEmailAttachementParserTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]hipchat[/\\]service[/\\]IntegrationAccountTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]hipchat[/\\]service[/\\]InternalHipChatServiceTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]hipchat[/\\]service[/\\]UserAccountTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]pagerduty[/\\]PagerDutyActionTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]pagerduty[/\\]service[/\\]PagerDutyServiceTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]slack[/\\]SlackActionTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]slack[/\\]service[/\\]SlackServiceTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]slack[/\\]service[/\\]message[/\\]SlackMessageTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]throttler[/\\]AckThrottlerTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]throttler[/\\]ActionThrottleTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]throttler[/\\]PeriodThrottlerTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]webhook[/\\]WebhookActionTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]webhook[/\\]WebhookIntegrationTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]condition[/\\]compare[/\\]CompareConditionSearchTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]condition[/\\]compare[/\\]CompareConditionTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]condition[/\\]compare[/\\]array[/\\]ArrayCompareConditionSearchTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]condition[/\\]compare[/\\]array[/\\]ArrayCompareConditionTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]condition[/\\]script[/\\]ScriptConditionSearchTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]condition[/\\]script[/\\]ScriptConditionTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]execution[/\\]ExecutionServiceTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]execution[/\\]ManualExecutionTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]execution[/\\]TriggeredWatchStoreLifeCycleTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]execution[/\\]TriggeredWatchStoreTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]history[/\\]HistoryStoreSettingsTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]history[/\\]HistoryStoreTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]history[/\\]HistoryTemplateTimeMappingsTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]history[/\\]HistoryTemplateTransformMappingsTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]input[/\\]chain[/\\]ChainInputTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]input[/\\]http[/\\]HttpInputTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]license[/\\]LicenseTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]shield[/\\]BasicShieldTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]support[/\\]DynamicIndexNameIntegrationTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]support[/\\]FilterXContentTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]support[/\\]WatcherDateTimeUtilsTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]support[/\\]WatcherIndexTemplateRegistryTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]support[/\\]WatcherUtilsTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]support[/\\]concurrent[/\\]FairKeyedLockTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]support[/\\]text[/\\]TextTemplateTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]support[/\\]text[/\\]xmustache[/\\]XMustacheScriptEngineTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]support[/\\]text[/\\]xmustache[/\\]XMustacheTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]test[/\\]AbstractWatcherIntegrationTestCase.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]test[/\\]WatcherTestUtils.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]test[/\\]bench[/\\]ScheduleEngineTriggerBenchmark.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]test[/\\]bench[/\\]WatcherExecutorServiceBenchmark.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]test[/\\]bench[/\\]WatcherScheduleEngineBenchmark.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]test[/\\]integration[/\\]BootStrapTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]test[/\\]integration[/\\]ExecutionVarsIntegrationTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]test[/\\]integration[/\\]HttpSecretsIntegrationTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]test[/\\]integration[/\\]NoMasterNodeTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]test[/\\]integration[/\\]WatchMetadataTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]test[/\\]integration[/\\]WatcherSettingsFilterTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]transform[/\\]TransformIntegrationTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]transform[/\\]chain[/\\]ChainTransformTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]transport[/\\]action[/\\]ack[/\\]WatchAckTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]transport[/\\]action[/\\]execute[/\\]ExecuteWatchTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]transport[/\\]action[/\\]stats[/\\]SlowWatchStatsTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]transport[/\\]action[/\\]stats[/\\]WatcherStatsTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]trigger[/\\]ScheduleTriggerEngineMock.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]trigger[/\\]schedule[/\\]CronScheduleTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]trigger[/\\]schedule[/\\]IntervalScheduleTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]trigger[/\\]schedule[/\\]WeeklyScheduleTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]watch[/\\]WatchStoreTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]watch[/\\]WatchTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]MarvelF.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]collector[/\\]AbstractCollectorTestCase.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]collector[/\\]cluster[/\\]ClusterStateCollectorTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]collector[/\\]cluster[/\\]ClusterStatsCollectorTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]collector[/\\]indices[/\\]IndexRecoveryCollectorTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]collector[/\\]indices[/\\]IndexStatsCollectorTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]collector[/\\]node[/\\]NodeStatsCollectorTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]collector[/\\]shards[/\\]ShardsCollectorTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]exporter[/\\]ExportersTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]exporter[/\\]http[/\\]HttpExporterTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]exporter[/\\]local[/\\]LocalExporterTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]renderer[/\\]cluster[/\\]ClusterInfoTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]renderer[/\\]cluster[/\\]ClusterStateTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]renderer[/\\]indices[/\\]IndexRecoveryRendererTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]renderer[/\\]indices[/\\]IndexRecoveryTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]renderer[/\\]indices[/\\]IndexStatsRendererTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]renderer[/\\]node[/\\]MultiNodesStatsTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]renderer[/\\]shards[/\\]ShardsRendererTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]agent[/\\]renderer[/\\]shards[/\\]ShardsTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]cleaner[/\\]AbstractIndicesCleanerTestCase.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]cleaner[/\\]CleanerServiceTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]cleaner[/\\]local[/\\]LocalIndicesCleanerTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]license[/\\]LicenseIntegrationTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]shield[/\\]MarvelInternalClientTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]support[/\\]VersionUtilsTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]marvel[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]marvel[/\\]test[/\\]MarvelIntegTestCase.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]license[/\\]base[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]core[/\\]License.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]license[/\\]base[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]core[/\\]LicenseSerializationTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]license[/\\]base[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]core[/\\]TestUtils.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]license[/\\]found-plugin[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]plugin[/\\]core[/\\]FoundLicensesService.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]license[/\\]licensor[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]licensor[/\\]tools[/\\]KeyPairGeneratorTool.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]license[/\\]licensor[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]licensor[/\\]LicenseVerificationTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]license[/\\]licensor[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]licensor[/\\]TestUtils.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]license[/\\]licensor[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]licensor[/\\]tools[/\\]KeyPairGenerationToolTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]license[/\\]licensor[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]licensor[/\\]tools[/\\]LicenseGenerationToolTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]license[/\\]plugin-api[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]plugin[/\\]core[/\\]AbstractLicenseeComponent.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]license[/\\]plugin-api[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]license[/\\]plugin[/\\]core[/\\]LicenseUtils.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]qa[/\\]messy-test-watcher-with-groovy[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]messy[/\\]tests[/\\]ExecutionVarsIntegrationTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]qa[/\\]messy-test-watcher-with-groovy[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]messy[/\\]tests[/\\]GroovyManualExecutionTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]qa[/\\]messy-test-watcher-with-groovy[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]messy[/\\]tests[/\\]GroovyScriptConditionIT.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]qa[/\\]messy-test-watcher-with-groovy[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]messy[/\\]tests[/\\]HistoryTemplateTransformMappingsTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]qa[/\\]messy-test-watcher-with-groovy[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]messy[/\\]tests[/\\]MessyTestUtils.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]qa[/\\]messy-test-watcher-with-groovy[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]messy[/\\]tests[/\\]ScriptConditionSearchTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]qa[/\\]messy-test-watcher-with-groovy[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]messy[/\\]tests[/\\]ScriptConditionTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]qa[/\\]messy-test-watcher-with-groovy[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]messy[/\\]tests[/\\]TransformIntegrationTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]qa[/\\]messy-test-xpack-with-mustache[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]messy[/\\]tests[/\\]BasicWatcherTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]qa[/\\]messy-test-xpack-with-mustache[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]messy[/\\]tests[/\\]EmailAttachmentTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]qa[/\\]messy-test-xpack-with-mustache[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]messy[/\\]tests[/\\]SearchInputTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]qa[/\\]messy-test-xpack-with-mustache[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]messy[/\\]tests[/\\]SearchTransformTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]qa[/\\]messy-test-xpack-with-mustache[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]messy[/\\]tests[/\\]ShieldCachePermissionTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]qa[/\\]messy-test-xpack-with-mustache[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]messy[/\\]tests[/\\]package-info.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]qa[/\\]shield-audit-tests[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]audit[/\\]IndexAuditIT.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]qa[/\\]shield-client-tests[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]shield[/\\]qa[/\\]ShieldTransportClientIT.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]qa[/\\]shield-example-realm[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]example[/\\]realm[/\\]CustomRealmTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]shield[/\\]ShieldSecretService.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]support[/\\]init[/\\]proxy[/\\]ScriptServiceProxy.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]support[/\\]text[/\\]DefaultTextTemplateEngine.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]main[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]trigger[/\\]schedule[/\\]tool[/\\]CronEvalTool.java" checks="LineLength" />
<suppress files="x-plugins[/\\]elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]script[/\\]MockMustacheScriptEngine.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]actions[/\\]email[/\\]EmailAttachmentTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]x-pack[/\\]watcher[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]watcher[/\\]test[/\\]integration[/\\]BasicWatcherTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]qa[/\\]messy-test-xpack-with-mustache[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]messy[/\\]tests[/\\]PagerDutyServiceTests.java" checks="LineLength" />
<suppress files="elasticsearch[/\\]qa[/\\]messy-test-xpack-with-mustache[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]messy[/\\]tests[/\\]SlackServiceTests.java" checks="LineLength" />
<suppress files="x-plugins[/\\]elasticsearch[/\\]qa[/\\]smoke-test-watcher-with-mustache[/\\]src[/\\]test[/\\]java[/\\]org[/\\]elasticsearch[/\\]smoketest[/\\]WatcherTemplateIT.java" checks="LineLength" />
</suppressions>

View File

@ -235,7 +235,8 @@ public class License implements ToXContent {
public static License readLicense(StreamInput in) throws IOException {
int version = in.readVInt(); // Version for future extensibility
if (version > VERSION_CURRENT) {
throw new ElasticsearchException("Unknown license version found, please upgrade all nodes to the latest elasticsearch-license plugin");
throw new ElasticsearchException("Unknown license version found, please upgrade all nodes to the latest elasticsearch-license" +
" plugin");
}
Builder builder = builder();
builder.version(version);
@ -394,7 +395,8 @@ public class License implements ToXContent {
if (version == 0) {
throw new ElasticsearchException("malformed signature for license [" + builder.uid + "]");
} else if (version > VERSION_CURRENT) {
throw new ElasticsearchException("Unknown license version found, please upgrade all nodes to the latest elasticsearch-license plugin");
throw new ElasticsearchException("Unknown license version found, please upgrade all nodes to the latest " +
"elasticsearch-license plugin");
}
// signature version is the source of truth
builder.version(version);

View File

@ -32,7 +32,7 @@ public class LicenseSerializationTests extends ESTestCase {
}
public void testLicensesFields() throws Exception {
TestUtils.LicenseSpec randomLicenseSpec = TestUtils.generateRandomLicenseSpec(License.VERSION_START);//randomIntBetween(License.VERSION_START, License.VERSION_CURRENT));
TestUtils.LicenseSpec randomLicenseSpec = TestUtils.generateRandomLicenseSpec(License.VERSION_START);
String licenseSpecsSource = TestUtils.generateLicenseSpecString(randomLicenseSpec);
final License fromSource = License.fromSource(licenseSpecsSource.getBytes(StandardCharsets.UTF_8));
TestUtils.assertLicenseSpec(randomLicenseSpec, fromSource);

View File

@ -67,7 +67,8 @@ public class TestUtils {
if (datesInMillis) {
long issueDateInMillis = dateMath("now", now);
long expiryDateInMillis = dateMath("now+10d/d", now);
return new LicenseSpec(version, uid, feature, issueDateInMillis, expiryDateInMillis, type, subscriptionType, issuedTo, issuer, maxNodes);
return new LicenseSpec(version, uid, feature, issueDateInMillis, expiryDateInMillis, type, subscriptionType, issuedTo, issuer,
maxNodes);
} else {
String issueDate = dateMathString("now", now);
String expiryDate = dateMathString("now+10d/d", now);
@ -161,7 +162,8 @@ public class TestUtils {
public final int maxNodes;
public LicenseSpec(String issueDate, String expiryDate) {
this(License.VERSION_CURRENT, UUID.randomUUID().toString(), "feature", issueDate, expiryDate, "trial", "none", "customer", "elasticsearch", 5);
this(License.VERSION_CURRENT, UUID.randomUUID().toString(), "feature", issueDate, expiryDate, "trial", "none", "customer",
"elasticsearch", 5);
}
public LicenseSpec(int version, String uid, String feature, long issueDateInMillis, long expiryDateInMillis, String type,

View File

@ -16,7 +16,8 @@ import java.util.Collections;
import java.util.List;
@Singleton
public class FoundLicensesService extends AbstractLifecycleComponent<FoundLicensesService> implements LicenseeRegistry, LicensesManagerService {
public class FoundLicensesService extends AbstractLifecycleComponent<FoundLicensesService> implements LicenseeRegistry,
LicensesManagerService {
@Inject
public FoundLicensesService(Settings settings) {

View File

@ -75,7 +75,8 @@ public class KeyPairGeneratorTool extends CliTool {
@Override
public ExitStatus execute(Settings settings, Environment env) throws Exception {
KeyPair keyPair = generateKeyPair(privateKeyPath, publicKeyPath);
terminal.println(Terminal.Verbosity.VERBOSE, "generating key pair [public key: " + publicKeyPath + ", private key: " + privateKeyPath + "]");
terminal.println(Terminal.Verbosity.VERBOSE, "generating key pair [public key: " + publicKeyPath + ", private key: "
+ privateKeyPath + "]");
return (keyPair != null) ? ExitStatus.OK : ExitStatus.CANT_CREATE;
}

View File

@ -35,7 +35,8 @@ public class LicenseVerificationTests extends ESTestCase {
}
public void testGeneratedLicenses() throws Exception {
assertThat(LicenseVerifier.verifyLicense(TestUtils.generateSignedLicense(TimeValue.timeValueHours(2 * 24), pubKeyPath, priKeyPath), Files.readAllBytes(pubKeyPath)), equalTo(true));
assertThat(LicenseVerifier.verifyLicense(TestUtils.generateSignedLicense(TimeValue.timeValueHours(2 * 24), pubKeyPath, priKeyPath),
Files.readAllBytes(pubKeyPath)), equalTo(true));
}
public void testLicenseTampering() throws Exception {
@ -51,7 +52,8 @@ public class LicenseVerificationTests extends ESTestCase {
}
public void testRandomLicenseVerification() throws Exception {
TestUtils.LicenseSpec licenseSpec = TestUtils.generateRandomLicenseSpec(randomIntBetween(License.VERSION_START, License.VERSION_CURRENT));
TestUtils.LicenseSpec licenseSpec = TestUtils.generateRandomLicenseSpec(
randomIntBetween(License.VERSION_START, License.VERSION_CURRENT));
License generatedLicense = generateSignedLicense(licenseSpec, pubKeyPath, priKeyPath);
assertThat(LicenseVerifier.verifyLicense(generatedLicense, Files.readAllBytes(pubKeyPath)), equalTo(true));
}

View File

@ -90,7 +90,8 @@ public class TestUtils {
if (datesInMillis) {
long issueDateInMillis = dateMath("now", now);
long expiryDateInMillis = dateMath("now+10d/d", now);
return new LicenseSpec(version, uid, feature, issueDateInMillis, expiryDateInMillis, type, subscriptionType, issuedTo, issuer, maxNodes);
return new LicenseSpec(version, uid, feature, issueDateInMillis, expiryDateInMillis, type, subscriptionType, issuedTo, issuer,
maxNodes);
} else {
String issueDate = dateMathString("now", now);
String expiryDate = dateMathString("now+10d/d", now);

View File

@ -44,14 +44,16 @@ public class KeyPairGenerationToolTests extends CliToolTestCase {
Files.delete(tempFile2);
assertThat(Files.exists(tempFile2), equalTo(false));
Command command = keyPairGeneratorTool.parse(KeyPairGeneratorTool.NAME, new String[] {"--privateKeyPath", tempFile.toAbsolutePath().toString(),
Command command = keyPairGeneratorTool.parse(KeyPairGeneratorTool.NAME, new String[] {
"--privateKeyPath", tempFile.toAbsolutePath().toString(),
"--publicKeyPath", nonExistentFilePath });
assertThat(command, instanceOf(Command.Exit.class));
Command.Exit exitCommand = (Command.Exit) command;
assertThat(exitCommand.status(), equalTo(ExitStatus.USAGE));
command = keyPairGeneratorTool.parse(KeyPairGeneratorTool.NAME, new String[] {"--publicKeyPath", tempFile.toAbsolutePath().toString(),
command = keyPairGeneratorTool.parse(KeyPairGeneratorTool.NAME, new String[] {
"--publicKeyPath", tempFile.toAbsolutePath().toString(),
"--privateKeyPath", nonExistentFilePath });
assertThat(command, instanceOf(Command.Exit.class));
@ -70,7 +72,8 @@ public class KeyPairGenerationToolTests extends CliToolTestCase {
assertThat(Files.exists(publicKeyFilePath), equalTo(false));
assertThat(Files.exists(privateKeyFilePath), equalTo(false));
Command command = keyPairGeneratorTool.parse(KeyPairGeneratorTool.NAME, new String[] { "--privateKeyPath", privateKeyFilePath.toString(),
Command command = keyPairGeneratorTool.parse(KeyPairGeneratorTool.NAME, new String[] {
"--privateKeyPath", privateKeyFilePath.toString(),
"--publicKeyPath", publicKeyFilePath.toString() });
assertThat(command, instanceOf(KeyGenerator.class));

View File

@ -122,7 +122,8 @@ public class LicenseGenerationToolTests extends CliToolTestCase {
TestUtils.assertLicenseSpec(licenseSpec, outputLicense);
}
private String runLicenseGenerationTool(Path pubKeyPath, Path priKeyPath, License licenseSpec, ExitStatus expectedExitStatus) throws Exception {
private String runLicenseGenerationTool(Path pubKeyPath, Path priKeyPath, License licenseSpec,
ExitStatus expectedExitStatus) throws Exception {
CaptureOutputTerminal outputTerminal = new CaptureOutputTerminal();
Settings settings = Settings.builder().put("path.home", createTempDir("LicenseGenerationToolTests")).build();
LicenseGenerator licenseGenerator = new LicenseGenerator(outputTerminal, pubKeyPath, priKeyPath, licenseSpec);

View File

@ -14,7 +14,8 @@ import java.util.concurrent.CopyOnWriteArrayList;
/**
* A supporting base class for injectable Licensee components.
*/
public abstract class AbstractLicenseeComponent<T extends AbstractLicenseeComponent<T>> extends AbstractLifecycleComponent<T> implements Licensee {
public abstract class AbstractLicenseeComponent<T extends AbstractLicenseeComponent<T>> extends AbstractLifecycleComponent<T>
implements Licensee {
private final String id;
private final LicenseeRegistry clientService;

View File

@ -20,7 +20,8 @@ public class LicenseUtils {
* exception's rest header
*/
public static ElasticsearchSecurityException newComplianceException(String feature) {
ElasticsearchSecurityException e = new ElasticsearchSecurityException("current license is non-compliant for [{}]", RestStatus.UNAUTHORIZED, feature);
ElasticsearchSecurityException e = new ElasticsearchSecurityException("current license is non-compliant for [{}]",
RestStatus.UNAUTHORIZED, feature);
e.addHeader(EXPIRED_FEATURE_HEADER, feature);
return e;
}

View File

@ -58,11 +58,13 @@ public class ExecutionVarsIntegrationTests extends AbstractWatcherIntegrationTes
.transform(scriptTransform("ctx.vars.watch_transform_value = ctx.vars.condition_value + 5; return ctx.payload;"))
.addAction(
"a1",
scriptTransform("ctx.vars.a1_transform_value = ctx.vars.watch_transform_value + 10; ctx.payload.a1_transformed_value = ctx.vars.a1_transform_value; return ctx.payload;"),
scriptTransform("ctx.vars.a1_transform_value = ctx.vars.watch_transform_value + 10; ctx.payload" +
".a1_transformed_value = ctx.vars.a1_transform_value; return ctx.payload;"),
loggingAction("_text"))
.addAction(
"a2",
scriptTransform("ctx.vars.a2_transform_value = ctx.vars.watch_transform_value + 20; ctx.payload.a2_transformed_value = ctx.vars.a2_transform_value; return ctx.payload;"),
scriptTransform("ctx.vars.a2_transform_value = ctx.vars.watch_transform_value + 20; ctx.payload" +
".a2_transformed_value = ctx.vars.a2_transform_value; return ctx.payload;"),
loggingAction("_text")))
.get();
@ -123,11 +125,13 @@ public class ExecutionVarsIntegrationTests extends AbstractWatcherIntegrationTes
.transform(scriptTransform("ctx.vars.watch_transform_value = ctx.vars.condition_value + 5; return ctx.payload;"))
.addAction(
"a1",
scriptTransform("ctx.vars.a1_transform_value = ctx.vars.watch_transform_value + 10; ctx.payload.a1_transformed_value = ctx.vars.a1_transform_value; return ctx.payload;"),
scriptTransform("ctx.vars.a1_transform_value = ctx.vars.watch_transform_value + 10; ctx.payload" +
".a1_transformed_value = ctx.vars.a1_transform_value; return ctx.payload;"),
loggingAction("_text"))
.addAction(
"a2",
scriptTransform("ctx.vars.a2_transform_value = ctx.vars.watch_transform_value + 20; ctx.payload.a2_transformed_value = ctx.vars.a2_transform_value; return ctx.payload;"),
scriptTransform("ctx.vars.a2_transform_value = ctx.vars.watch_transform_value + 20; ctx.payload" +
".a2_transformed_value = ctx.vars.a2_transform_value; return ctx.payload;"),
loggingAction("_text")))
.get();

View File

@ -69,7 +69,9 @@ public class GroovyManualExecutionTests extends AbstractWatcherIntegrationTestCa
.addAction("log", loggingAction("foobar"));
Watch watch = watchParser().parse("_id", false, watchBuilder.buildAsBytes(XContentType.JSON));
ManualExecutionContext.Builder ctxBuilder = ManualExecutionContext.builder(watch, false, new ManualTriggerEvent("_id", new ScheduleTriggerEvent(new DateTime(DateTimeZone.UTC), new DateTime(DateTimeZone.UTC))), new TimeValue(1, TimeUnit.HOURS));
ManualExecutionContext.Builder ctxBuilder = ManualExecutionContext.builder(watch, false, new ManualTriggerEvent("_id",
new ScheduleTriggerEvent(new DateTime(DateTimeZone.UTC), new DateTime(DateTimeZone.UTC))),
new TimeValue(1, TimeUnit.HOURS));
WatchRecord record = executionService().execute(ctxBuilder.build());
assertThat(record.result().executionDurationMs(), greaterThanOrEqualTo(100L));
}
@ -112,7 +114,8 @@ public class GroovyManualExecutionTests extends AbstractWatcherIntegrationTestCa
}
long endJoin = System.currentTimeMillis();
TimeValue tv = new TimeValue(10 * (numberOfThreads+1), TimeUnit.SECONDS);
assertThat("Shouldn't take longer than [" + tv.getSeconds() + "] seconds for all the threads to stop", (endJoin - startJoin), lessThan(tv.getMillis()));
assertThat("Shouldn't take longer than [" + tv.getSeconds() + "] seconds for all the threads to stop", (endJoin - startJoin),
lessThan(tv.getMillis()));
}
}

View File

@ -70,7 +70,8 @@ public class GroovyScriptConditionIT extends AbstractWatcherIntegrationTestCase
.get();
for (int seconds = 0; seconds < 60; seconds += 5) {
client().prepareIndex(".marvel", "cluster_stats").setTimestamp("2005-01-01T00:00:" + String.format(Locale.ROOT, "%02d", seconds)).setSource("status", randomFrom("green", "yellow")).get();
client().prepareIndex(".marvel", "cluster_stats").setTimestamp("2005-01-01T00:00:" +
String.format(Locale.ROOT, "%02d", seconds)).setSource("status", randomFrom("green", "yellow")).get();
}
refresh();
@ -78,7 +79,8 @@ public class GroovyScriptConditionIT extends AbstractWatcherIntegrationTestCase
SearchRequestBuilder builder = client().prepareSearch(".marvel")
.addAggregation(
AggregationBuilders
.dateHistogram("minutes").field("_timestamp").interval(TimeUnit.MILLISECONDS.convert(5, TimeUnit.SECONDS)).order(Histogram.Order.COUNT_DESC)
.dateHistogram("minutes").field("_timestamp").interval(TimeUnit.MILLISECONDS.convert(5, TimeUnit.SECONDS))
.order(Histogram.Order.COUNT_DESC)
.subAggregation(AggregationBuilders.terms("status").field("status").size(3)));
SearchResponse unmetResponse = builder.get();
@ -98,7 +100,8 @@ public class GroovyScriptConditionIT extends AbstractWatcherIntegrationTestCase
assertFalse(condition.execute(unmetContext).met());
for (int seconds = 0; seconds < 60; seconds += 5) {
client().prepareIndex(".marvel", "cluster_stats").setTimestamp("2005-01-01T00:01:" + String.format(Locale.ROOT, "%02d", seconds)).setSource("status", randomFrom("red")).get();
client().prepareIndex(".marvel", "cluster_stats").setTimestamp("2005-01-01T00:01:" +
String.format(Locale.ROOT, "%02d", seconds)).setSource("status", randomFrom("red")).get();
}
refresh();

View File

@ -98,7 +98,7 @@ public class HistoryTemplateTransformMappingsTests extends AbstractWatcherIntegr
assertThat(mappingsResponse, notNullValue());
assertThat(mappingsResponse.getMappings().isEmpty(), is(false));
for (ObjectObjectCursor<String, ImmutableOpenMap<String, MappingMetaData>> metadatas : mappingsResponse.getMappings()) {
if (!metadatas.key.startsWith(".watch_history")) {
if (!metadatas.key.startsWith(".watcher-history")) {
continue;
}
MappingMetaData metadata = metadatas.value.get("watch_record");
@ -106,8 +106,10 @@ public class HistoryTemplateTransformMappingsTests extends AbstractWatcherIntegr
try {
Map<String, Object> source = metadata.getSourceAsMap();
logger.info("checking index [{}] with metadata:\n[{}]", metadatas.key, metadata.source().toString());
assertThat(extractValue("properties.result.properties.transform.properties.payload.enabled", source), is((Object) false));
assertThat(extractValue("properties.result.properties.actions.properties.transform.properties.payload.enabled", source), is((Object) false));
assertThat(extractValue("properties.result.properties.transform.properties.payload.enabled", source),
is((Object) false));
String path = "properties.result.properties.actions.properties.transform.properties.payload.enabled";
assertThat(extractValue(path, source), is((Object) false));
} catch (IOException e) {
throw new RuntimeException(e);
}

View File

@ -44,6 +44,7 @@ public final class MessyTestUtils {
ScriptContextRegistry scriptContextRegistry = new ScriptContextRegistry(Arrays.asList(ScriptServiceProxy.INSTANCE));
ScriptSettings scriptSettings = new ScriptSettings(scriptEngineRegistry, scriptContextRegistry);
return ScriptServiceProxy.of(new ScriptService(settings, new Environment(settings), engineServiceSet, new ResourceWatcherService(settings, tp), scriptEngineRegistry, scriptContextRegistry, scriptSettings));
return ScriptServiceProxy.of(new ScriptService(settings, new Environment(settings), engineServiceSet,
new ResourceWatcherService(settings, tp), scriptEngineRegistry, scriptContextRegistry, scriptSettings));
}
}

View File

@ -71,10 +71,13 @@ public class ScriptConditionSearchTests extends AbstractWatcherIntegrationTestCa
refresh();
SearchResponse response = client().prepareSearch("my-index")
.addAggregation(AggregationBuilders.dateHistogram("rate").field("_timestamp").interval(DateHistogramInterval.HOUR).order(Histogram.Order.COUNT_DESC))
.addAggregation(AggregationBuilders.dateHistogram("rate").field("_timestamp")
.interval(DateHistogramInterval.HOUR).order(Histogram.Order.COUNT_DESC))
.get();
ExecutableScriptCondition condition = new ExecutableScriptCondition(new ScriptCondition(Script.inline("ctx.payload.aggregations.rate.buckets[0]?.doc_count >= 5").build()), logger, scriptService);
ExecutableScriptCondition condition = new ExecutableScriptCondition(
new ScriptCondition(Script.inline("ctx.payload.aggregations.rate.buckets[0]?.doc_count >= 5").build()),
logger, scriptService);
WatchExecutionContext ctx = mockExecutionContext("_name", new Payload.XContent(response));
assertFalse(condition.execute(ctx).met());
@ -83,7 +86,8 @@ public class ScriptConditionSearchTests extends AbstractWatcherIntegrationTestCa
refresh();
response = client().prepareSearch("my-index")
.addAggregation(AggregationBuilders.dateHistogram("rate").field("_timestamp").interval(DateHistogramInterval.HOUR).order(Histogram.Order.COUNT_DESC))
.addAggregation(AggregationBuilders.dateHistogram("rate").field("_timestamp").interval(DateHistogramInterval.HOUR)
.order(Histogram.Order.COUNT_DESC))
.get();
ctx = mockExecutionContext("_name", new Payload.XContent(response));
@ -91,12 +95,14 @@ public class ScriptConditionSearchTests extends AbstractWatcherIntegrationTestCa
}
public void testExecuteAccessHits() throws Exception {
ExecutableScriptCondition condition = new ExecutableScriptCondition(new ScriptCondition(Script.inline("ctx.payload.hits?.hits[0]?._score == 1.0").build()), logger, scriptService);
ExecutableScriptCondition condition = new ExecutableScriptCondition(new ScriptCondition(
Script.inline("ctx.payload.hits?.hits[0]?._score == 1.0").build()), logger, scriptService);
InternalSearchHit hit = new InternalSearchHit(0, "1", new Text("type"), null);
hit.score(1f);
hit.shard(new SearchShardTarget("a", new Index("a", "testUUID"), 0));
InternalSearchResponse internalSearchResponse = new InternalSearchResponse(new InternalSearchHits(new InternalSearchHit[]{hit}, 1L, 1f), null, null, null, false, false);
InternalSearchResponse internalSearchResponse = new InternalSearchResponse(new InternalSearchHits(
new InternalSearchHit[]{hit}, 1L, 1f), null, null, null, false, false);
SearchResponse response = new SearchResponse(internalSearchResponse, "", 3, 3, 500L, new ShardSearchFailure[0]);
WatchExecutionContext ctx = mockExecutionContext("_watch_name", new Payload.XContent(response));

View File

@ -60,7 +60,8 @@ public class ScriptConditionTests extends ESTestCase {
public void testExecute() throws Exception {
ScriptServiceProxy scriptService = getScriptServiceProxy(tp);
ExecutableScriptCondition condition = new ExecutableScriptCondition(new ScriptCondition(Script.inline("ctx.payload.hits.total > 1").build()), logger, scriptService);
ExecutableScriptCondition condition = new ExecutableScriptCondition(
new ScriptCondition(Script.inline("ctx.payload.hits.total > 1").build()), logger, scriptService);
SearchResponse response = new SearchResponse(InternalSearchResponse.empty(), "", 3, 3, 500L, new ShardSearchFailure[0]);
WatchExecutionContext ctx = mockExecutionContext("_name", new Payload.XContent(response));
assertFalse(condition.execute(ctx).met());
@ -68,7 +69,8 @@ public class ScriptConditionTests extends ESTestCase {
public void testExecuteMergedParams() throws Exception {
ScriptServiceProxy scriptService = getScriptServiceProxy(tp);
Script script = Script.inline("ctx.payload.hits.total > threshold").lang(Script.DEFAULT_LANG).params(singletonMap("threshold", 1)).build();
Script script = Script.inline("ctx.payload.hits.total > threshold")
.lang(Script.DEFAULT_LANG).params(singletonMap("threshold", 1)).build();
ExecutableScriptCondition executable = new ExecutableScriptCondition(new ScriptCondition(script), logger, scriptService);
SearchResponse response = new SearchResponse(InternalSearchResponse.empty(), "", 3, 3, 500L, new ShardSearchFailure[0]);
WatchExecutionContext ctx = mockExecutionContext("_name", new Payload.XContent(response));
@ -162,7 +164,8 @@ public class ScriptConditionTests extends ESTestCase {
public void testScriptConditionThrowException() throws Exception {
ScriptServiceProxy scriptService = getScriptServiceProxy(tp);
ExecutableScriptCondition condition = new ExecutableScriptCondition(new ScriptCondition(Script.inline("assert false").build()), logger, scriptService);
ExecutableScriptCondition condition = new ExecutableScriptCondition(
new ScriptCondition(Script.inline("assert false").build()), logger, scriptService);
SearchResponse response = new SearchResponse(InternalSearchResponse.empty(), "", 3, 3, 500L, new ShardSearchFailure[0]);
WatchExecutionContext ctx = mockExecutionContext("_name", new Payload.XContent(response));
ScriptCondition.Result result = condition.execute(ctx);
@ -174,7 +177,8 @@ public class ScriptConditionTests extends ESTestCase {
public void testScriptConditionReturnObject() throws Exception {
ScriptServiceProxy scriptService = getScriptServiceProxy(tp);
ExecutableScriptCondition condition = new ExecutableScriptCondition(new ScriptCondition(Script.inline("return new Object()").build()), logger, scriptService);
ExecutableScriptCondition condition = new ExecutableScriptCondition(
new ScriptCondition(Script.inline("return new Object()").build()), logger, scriptService);
SearchResponse response = new SearchResponse(InternalSearchResponse.empty(), "", 3, 3, 500L, new ShardSearchFailure[0]);
WatchExecutionContext ctx = mockExecutionContext("_name", new Payload.XContent(response));
ScriptCondition.Result result = condition.execute(ctx);
@ -186,7 +190,9 @@ public class ScriptConditionTests extends ESTestCase {
public void testScriptConditionAccessCtx() throws Exception {
ScriptServiceProxy scriptService = getScriptServiceProxy(tp);
ExecutableScriptCondition condition = new ExecutableScriptCondition(new ScriptCondition(Script.inline("ctx.trigger.scheduled_time.getMillis() < new Date().time ").build()), logger, scriptService);
ExecutableScriptCondition condition = new ExecutableScriptCondition(
new ScriptCondition(Script.inline("ctx.trigger.scheduled_time.getMillis() < new Date().time ").build()),
logger, scriptService);
SearchResponse response = new SearchResponse(InternalSearchResponse.empty(), "", 3, 3, 500L, new ShardSearchFailure[0]);
WatchExecutionContext ctx = mockExecutionContext("_name", new DateTime(DateTimeZone.UTC), new Payload.XContent(response));
Thread.sleep(10);

View File

@ -78,7 +78,8 @@ public class TransformIntegrationTests extends AbstractWatcherIntegrationTestCas
script = Script.inline("return [key3 : ctx.payload.key1 + ctx.payload.key2]").lang("groovy").build();
} else if (randomBoolean()) {
logger.info("testing script transform with an indexed script");
client().preparePutIndexedScript("groovy", "_id", "{\"script\" : \"return [key3 : ctx.payload.key1 + ctx.payload.key2]\"}").get();
client().preparePutIndexedScript("groovy", "_id", "{\"script\" : \"return [key3 : ctx.payload.key1 + ctx.payload.key2]\"}")
.get();
script = Script.indexed("_id").lang("groovy").build();
} else {
logger.info("testing script transform with a file script");
@ -135,8 +136,10 @@ public class TransformIntegrationTests extends AbstractWatcherIntegrationTestCas
index("my-payload-index", "payload", "mytestresult");
refresh();
SearchRequest inputRequest = WatcherTestUtils.newInputSearchRequest("my-condition-index").source(searchSource().query(matchAllQuery()));
SearchRequest transformRequest = WatcherTestUtils.newInputSearchRequest("my-payload-index").source(searchSource().query(matchAllQuery()));
SearchRequest inputRequest = WatcherTestUtils.newInputSearchRequest("my-condition-index")
.source(searchSource().query(matchAllQuery()));
SearchRequest transformRequest = WatcherTestUtils.newInputSearchRequest("my-payload-index")
.source(searchSource().query(matchAllQuery()));
PutWatchResponse putWatchResponse = watcherClient().preparePutWatch("_id1")
.setSource(watchBuilder()
@ -194,7 +197,8 @@ public class TransformIntegrationTests extends AbstractWatcherIntegrationTestCas
.trigger(schedule(interval("5s")))
.input(simpleInput(MapBuilder.<String, Object>newMapBuilder().put("key1", 10).put("key2", 10)))
.condition(alwaysCondition())
.addAction("_id", chainTransform(scriptTransform(script1), scriptTransform(script2)), indexAction("output2", "type")))
.addAction("_id", chainTransform(scriptTransform(script1), scriptTransform(script2)),
indexAction("output2", "type")))
.get();
assertThat(putWatchResponse.isCreated(), is(true));

View File

@ -3,7 +3,7 @@
* or more contributor license agreements. Licensed under the Elastic License;
* you may not use this file except in compliance with the Elastic License.
*/
package org.elasticsearch.watcher.test.integration;
package org.elasticsearch.messy.tests;
import org.apache.lucene.util.LuceneTestCase.BadApple;
import org.elasticsearch.ExceptionsHelper;
@ -18,6 +18,9 @@ import org.elasticsearch.discovery.zen.elect.ElectMasterService;
import org.elasticsearch.discovery.zen.ping.ZenPing;
import org.elasticsearch.discovery.zen.ping.ZenPingService;
import org.elasticsearch.discovery.zen.ping.unicast.UnicastZenPing;
import org.elasticsearch.plugins.Plugin;
import org.elasticsearch.script.MockMustacheScriptEngine;
import org.elasticsearch.script.mustache.MustachePlugin;
import org.elasticsearch.test.ESIntegTestCase.ClusterScope;
import org.elasticsearch.test.ESIntegTestCase.SuppressLocalMode;
import org.elasticsearch.test.discovery.ClusterDiscoveryConfiguration;
@ -33,6 +36,10 @@ import org.elasticsearch.watcher.test.WatcherTestUtils;
import org.elasticsearch.watcher.transport.actions.delete.DeleteWatchResponse;
import org.elasticsearch.watcher.transport.actions.stats.WatcherStatsResponse;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import static org.elasticsearch.index.query.QueryBuilders.termQuery;
@ -81,6 +88,23 @@ public class NoMasterNodeTests extends AbstractWatcherIntegrationTestCase {
.build();
}
@Override
protected Collection<Class<? extends Plugin>> nodePlugins() {
Collection<Class<? extends Plugin>> types = new ArrayList<>();
types.addAll(super.nodePlugins());
// TODO remove dependency on mustache
types.add(MustachePlugin.class);
return types;
}
@Override
protected Collection<Class<? extends Plugin>> getMockPlugins() {
Set<Class<? extends Plugin>> plugins = new HashSet<>(super.getMockPlugins());
// remove the mock because we use mustache here...
plugins.remove(MockMustacheScriptEngine.TestPlugin.class);
return plugins;
}
public void testSimpleFailure() throws Exception {
// we need 3 hosts here because we stop the master and start another - it doesn't restart the pre-existing node...
config = new ClusterDiscoveryConfiguration.UnicastZen(3, Settings.EMPTY);
@ -90,7 +114,8 @@ public class NoMasterNodeTests extends AbstractWatcherIntegrationTestCase {
// Have a sample document in the index, the watch is going to evaluate
client().prepareIndex("my-index", "my-type").setSource("field", "value").get();
SearchRequest searchRequest = WatcherTestUtils.newInputSearchRequest("my-index").source(searchSource().query(termQuery("field", "value")));
SearchRequest searchRequest = WatcherTestUtils.newInputSearchRequest("my-index").source(
searchSource().query(termQuery("field", "value")));
WatchSourceBuilder watchSource = watchBuilder()
.trigger(schedule(cron("0/5 * * * * ? *")))
.input(searchInput(searchRequest))
@ -199,7 +224,8 @@ public class NoMasterNodeTests extends AbstractWatcherIntegrationTestCase {
ensureLicenseEnabled();
for (int i = 1; i <= numberOfWatches; i++) {
String watchName = "watch" + i;
SearchRequest searchRequest = WatcherTestUtils.newInputSearchRequest("my-index").source(searchSource().query(termQuery("field", "value")));
SearchRequest searchRequest = WatcherTestUtils.newInputSearchRequest("my-index").source(
searchSource().query(termQuery("field", "value")));
WatchSourceBuilder watchSource = watchBuilder()
.trigger(schedule(cron("0/5 * * * * ? *")))
.input(searchInput(searchRequest))
@ -245,7 +271,8 @@ public class NoMasterNodeTests extends AbstractWatcherIntegrationTestCase {
public void run () {
for (Client client : clients()) {
ClusterState state = client.admin().cluster().prepareState().setLocal(true).get().getState();
assertThat("Node [" + state.nodes().localNode() + "] should have a NO_MASTER_BLOCK", state.blocks().hasGlobalBlock(DiscoverySettings.NO_MASTER_BLOCK_ID), is(true));
assertThat("Node [" + state.nodes().localNode() + "] should have a NO_MASTER_BLOCK",
state.blocks().hasGlobalBlock(DiscoverySettings.NO_MASTER_BLOCK_ID), is(true));
}
}
}, 30, TimeUnit.SECONDS);

View File

@ -79,7 +79,8 @@ public class PagerDutyServiceTests extends AbstractWatcherIntegrationTestCase {
public void testSendTriggerEvent() throws Exception {
PagerDutyService service = getInstanceFromMaster(PagerDutyService.class);
IncidentEvent event = new IncidentEvent("#testIncidentEvent()", null, null, "PagerDutyServiceTests", "_client_url", "_account", true, new IncidentEventContext[] {
IncidentEvent event = new IncidentEvent("#testIncidentEvent()", null, null, "PagerDutyServiceTests", "_client_url", "_account",
true, new IncidentEventContext[] {
IncidentEventContext.link("_href", "_text"),
IncidentEventContext.image("_src", "_href", "_alt")
});

View File

@ -100,8 +100,10 @@ public class SearchInputTests extends ESIntegTestCase {
throw new RuntimeException("failed to create config dir");
}
try (InputStream stream = SearchInputTests.class.getResourceAsStream("/org/elasticsearch/watcher/input/search/config/scripts/test_disk_template.mustache");
OutputStream out = Files.newOutputStream(scriptPath.resolve("test_disk_template.mustache"))) {
String path = "/org/elasticsearch/watcher/input/search/config/scripts/test_disk_template.mustache";
try (InputStream stream = SearchInputTests.class.getResourceAsStream("/org/elasticsearch/watcher/input/search/config/scripts" +
"/test_disk_template.mustache");
OutputStream out = Files.newOutputStream(scriptPath.resolve("test_disk_template.mustache"))) {
Streams.copy(stream, out);
} catch (IOException e) {
throw new RuntimeException("failed to copy mustache template");
@ -122,14 +124,16 @@ public class SearchInputTests extends ESIntegTestCase {
public void testExecute() throws Exception {
SearchSourceBuilder searchSourceBuilder = searchSource().query(
boolQuery().must(matchQuery("event_type", "a")).must(rangeQuery("_timestamp").from("{{ctx.trigger.scheduled_time}}||-30s").to("{{ctx.trigger.triggered_time}}")));
boolQuery().must(matchQuery("event_type", "a")).must(rangeQuery("_timestamp")
.from("{{ctx.trigger.scheduled_time}}||-30s").to("{{ctx.trigger.triggered_time}}")));
SearchRequest request = client()
.prepareSearch()
.setSearchType(ExecutableSearchInput.DEFAULT_SEARCH_TYPE)
.request()
.source(searchSourceBuilder);
ExecutableSearchInput searchInput = new ExecutableSearchInput(new SearchInput(request, null, null, null), logger, ClientProxy.of(client()), null);
ExecutableSearchInput searchInput = new ExecutableSearchInput(new SearchInput(request, null, null, null), logger,
ClientProxy.of(client()), null);
WatchExecutionContext ctx = new TriggeredExecutionContext(
new Watch("test-watch",
new ScheduleTrigger(new IntervalSchedule(new IntervalSchedule.Interval(1, IntervalSchedule.Interval.Unit.MINUTES))),
@ -190,7 +194,8 @@ public class SearchInputTests extends ESIntegTestCase {
public void testSearchIndexedTemplate() throws Exception {
WatchExecutionContext ctx = createContext();
PutIndexedScriptRequest indexedScriptRequest = client().preparePutIndexedScript("mustache","test-template", TEMPLATE_QUERY).request();
PutIndexedScriptRequest indexedScriptRequest = client().preparePutIndexedScript("mustache","test-template",
TEMPLATE_QUERY).request();
assertThat(client().putIndexedScript(indexedScriptRequest).actionGet().isCreated(), is(true));
Map<String, Object> params = new HashMap<>();
@ -228,7 +233,8 @@ public class SearchInputTests extends ESIntegTestCase {
public void testDifferentSearchType() throws Exception {
SearchSourceBuilder searchSourceBuilder = searchSource().query(
boolQuery().must(matchQuery("event_type", "a")).must(rangeQuery("_timestamp").from("{{ctx.trigger.scheduled_time}}||-30s").to("{{ctx.trigger.triggered_time}}"))
boolQuery().must(matchQuery("event_type", "a")).must(rangeQuery("_timestamp")
.from("{{ctx.trigger.scheduled_time}}||-30s").to("{{ctx.trigger.triggered_time}}"))
);
SearchType searchType = getRandomSupportedSearchType();
@ -238,7 +244,8 @@ public class SearchInputTests extends ESIntegTestCase {
.request()
.source(searchSourceBuilder);
ExecutableSearchInput searchInput = new ExecutableSearchInput(new SearchInput(request, null, null, null), logger, ClientProxy.of(client()), null);
ExecutableSearchInput searchInput = new ExecutableSearchInput(new SearchInput(request, null, null, null), logger,
ClientProxy.of(client()), null);
WatchExecutionContext ctx = new TriggeredExecutionContext(
new Watch("test-watch",
new ScheduleTrigger(new IntervalSchedule(new IntervalSchedule.Interval(1, IntervalSchedule.Interval.Unit.MINUTES))),
@ -266,7 +273,8 @@ public class SearchInputTests extends ESIntegTestCase {
.setSearchType(ExecutableSearchInput.DEFAULT_SEARCH_TYPE)
.request()
.source(searchSource()
.query(boolQuery().must(matchQuery("event_type", "a")).must(rangeQuery("_timestamp").from("{{ctx.trigger.scheduled_time}}||-30s").to("{{ctx.trigger.triggered_time}}"))));
.query(boolQuery().must(matchQuery("event_type", "a")).must(rangeQuery("_timestamp")
.from("{{ctx.trigger.scheduled_time}}||-30s").to("{{ctx.trigger.triggered_time}}"))));
TimeValue timeout = randomBoolean() ? TimeValue.timeValueSeconds(randomInt(10)) : null;
XContentBuilder builder = jsonBuilder().value(new SearchInput(request, null, timeout, null));

View File

@ -114,8 +114,9 @@ public class SearchTransformTests extends ESIntegTestCase {
throw new RuntimeException("failed to create config dir");
}
try (InputStream stream = SearchTransformTests.class.getResourceAsStream("/org/elasticsearch/watcher/transform/search/config/scripts/test_disk_template.mustache");
OutputStream out = Files.newOutputStream(scriptPath.resolve("test_disk_template.mustache"))) {
String path = "/org/elasticsearch/watcher/transform/search/config/scripts/test_disk_template.mustache";
try (InputStream stream = SearchTransformTests.class.getResourceAsStream(path);
OutputStream out = Files.newOutputStream(scriptPath.resolve("test_disk_template.mustache"))) {
Streams.copy(stream, out);
} catch (IOException e) {
throw new RuntimeException("failed to copy mustache template");
@ -253,7 +254,8 @@ public class SearchTransformTests extends ESIntegTestCase {
SearchTransform searchTransform = TransformBuilders.searchTransform(request).build();
ExecutableSearchTransform transform = new ExecutableSearchTransform(searchTransform, logger, ClientProxy.of(client()), null);
ScheduleTriggerEvent event = new ScheduleTriggerEvent("_name", parseDate("2015-01-04T00:00:00", UTC), parseDate("2015-01-01T00:00:00", UTC));
ScheduleTriggerEvent event = new ScheduleTriggerEvent("_name", parseDate("2015-01-04T00:00:00", UTC),
parseDate("2015-01-01T00:00:00", UTC));
WatchExecutionContext ctx = mockExecutionContext("_name", parseDate("2015-01-04T00:00:00", UTC), event, EMPTY_PAYLOAD);
Payload payload = simplePayload("value", "val_3");
@ -316,7 +318,8 @@ public class SearchTransformTests extends ESIntegTestCase {
parser.nextToken();
IndicesQueriesRegistry indicesQueryRegistry = internalCluster().getInstance(IndicesQueriesRegistry.class);
SearchTransformFactory transformFactory = new SearchTransformFactory(Settings.EMPTY, ClientProxy.of(client()), indicesQueryRegistry);
SearchTransformFactory transformFactory = new SearchTransformFactory(Settings.EMPTY, ClientProxy.of(client()),
indicesQueryRegistry);
ExecutableSearchTransform executable = transformFactory.parseExecutable("_id", parser);
assertThat(executable, notNullValue());
@ -477,7 +480,8 @@ public class SearchTransformTests extends ESIntegTestCase {
ensureGreen("test-search-index");
SearchTransform searchTransform = TransformBuilders.searchTransform(request).build();
ExecutableSearchTransform executableSearchTransform = new ExecutableSearchTransform(searchTransform, logger, ClientProxy.of(client()), null);
ExecutableSearchTransform executableSearchTransform = new ExecutableSearchTransform(searchTransform, logger,
ClientProxy.of(client()), null);
return executableSearchTransform.execute(ctx, Payload.Simple.EMPTY);
}

View File

@ -95,7 +95,8 @@ public class ShieldCachePermissionTests extends ShieldIntegTestCase {
// Repeat with unauthorized user!!!!
try {
response = client().filterWithHeader(Collections.singletonMap("Authorization", basicAuthHeaderValue(READ_ONE_IDX_USER, new SecuredString("changeme".toCharArray()))))
response = client().filterWithHeader(Collections.singletonMap("Authorization", basicAuthHeaderValue(READ_ONE_IDX_USER,
new SecuredString("changeme".toCharArray()))))
.prepareSearch("data").setTypes("a").setQuery(QueryBuilders.constantScoreQuery(
QueryBuilders.termsLookupQuery("token", new TermsLookup("tokens", "tokens", "1", "tokens"))))
.execute().actionGet();
@ -108,16 +109,19 @@ public class ShieldCachePermissionTests extends ShieldIntegTestCase {
public void testThatScriptServiceDoesntLeakData() {
SearchResponse response = client().prepareSearch("data").setTypes("a")
.setTemplate(new Template("testTemplate", ScriptService.ScriptType.INDEXED, MustacheScriptEngineService.NAME, null, Collections.<String, Object>singletonMap("name", "token")))
.setTemplate(new Template("testTemplate", ScriptService.ScriptType.INDEXED, MustacheScriptEngineService.NAME, null,
Collections.<String, Object>singletonMap("name", "token")))
.execute().actionGet();
assertThat(response.isTimedOut(), is(false));
assertThat(response.getHits().hits().length, is(1));
// Repeat with unauthorized user!!!!
try {
response = client().filterWithHeader(Collections.singletonMap("Authorization", basicAuthHeaderValue(READ_ONE_IDX_USER, new SecuredString("changeme".toCharArray()))))
response = client().filterWithHeader(Collections.singletonMap("Authorization", basicAuthHeaderValue(READ_ONE_IDX_USER,
new SecuredString("changeme".toCharArray()))))
.prepareSearch("data").setTypes("a")
.setTemplate(new Template("testTemplate", ScriptService.ScriptType.INDEXED, MustacheScriptEngineService.NAME, null, Collections.<String, Object>singletonMap("name", "token")))
.setTemplate(new Template("testTemplate", ScriptService.ScriptType.INDEXED, MustacheScriptEngineService.NAME, null,
Collections.<String, Object>singletonMap("name", "token")))
.execute().actionGet();
fail("search phase exception should have been thrown! response was:\n" + response.toString());
} catch (SearchPhaseExecutionException e) {

View File

@ -71,14 +71,16 @@ public class SlackServiceTests extends AbstractWatcherIntegrationTestCase {
.put(super.nodeSettings(nodeOrdinal))
// this is for the `test-watcher-integration` group level integration in HipChat
.put("watcher.actions.slack.service.account.test_account.url", "https://hooks.slack.com/services/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")
.put("watcher.actions.slack.service.account.test_account.url",
"https://hooks.slack.com/services/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")
.build();
}
public void testSendMessage() throws Exception {
SlackService service = getInstanceFromMaster(SlackService.class);
Attachment[] attachments = new Attachment[] {
new Attachment("fallback", randomFrom("good", "warning", "danger"), "pretext", "author_name", null, null, "title", null, "_text", null, null, null)
new Attachment("fallback", randomFrom("good", "warning", "danger"), "pretext", "author_name", null, null,
"title", null, "_text", null, null, null)
};
SlackMessage message = new SlackMessage(
"SlackServiceTests",

View File

@ -3,7 +3,7 @@
* or more contributor license agreements. Licensed under the Elastic License;
* you may not use this file except in compliance with the Elastic License.
*/
package org.elasticsearch.watcher.transport.action.ack;
package org.elasticsearch.messy.tests;
import org.apache.lucene.util.LuceneTestCase.BadApple;
@ -13,6 +13,9 @@ import org.elasticsearch.action.get.GetRequest;
import org.elasticsearch.action.get.GetResponse;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.plugins.Plugin;
import org.elasticsearch.script.MockMustacheScriptEngine;
import org.elasticsearch.script.mustache.MustachePlugin;
import org.elasticsearch.watcher.actions.ActionStatus;
import org.elasticsearch.watcher.client.WatcherClient;
import org.elasticsearch.watcher.condition.compare.CompareCondition;
@ -29,6 +32,10 @@ import org.elasticsearch.watcher.watch.Watch;
import org.elasticsearch.watcher.watch.WatchStore;
import org.hamcrest.Matchers;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import static org.elasticsearch.index.query.QueryBuilders.matchAllQuery;
@ -52,6 +59,24 @@ import static org.hamcrest.core.IsEqual.equalTo;
//test is just too slow, please fix it to not be sleep-based
@BadApple(bugUrl = "https://github.com/elastic/x-plugins/issues/1007")
public class WatchAckTests extends AbstractWatcherIntegrationTestCase {
@Override
protected Collection<Class<? extends Plugin>> nodePlugins() {
Collection<Class<? extends Plugin>> types = new ArrayList<>();
types.addAll(super.nodePlugins());
// TODO remove dependency on mustache
types.add(MustachePlugin.class);
return types;
}
@Override
protected Collection<Class<? extends Plugin>> getMockPlugins() {
Set<Class<? extends Plugin>> plugins = new HashSet<>(super.getMockPlugins());
// remove the mock because we use mustache here...
plugins.remove(MockMustacheScriptEngine.TestPlugin.class);
return plugins;
}
private IndexResponse indexTestDoc() {
createIndex("actions", "events");
ensureGreen("actions", "events");
@ -128,8 +153,10 @@ public class WatchAckTests extends AbstractWatcherIntegrationTestCase {
assertThat(getWatchResponse.isFound(), is(true));
Watch parsedWatch = watchParser().parse(getWatchResponse.getId(), true, getWatchResponse.getSource().getBytes());
assertThat(parsedWatch.status().actionStatus("_a1").ackStatus().state(), is(ActionStatus.AckStatus.State.AWAITS_SUCCESSFUL_EXECUTION));
assertThat(parsedWatch.status().actionStatus("_a2").ackStatus().state(), is(ActionStatus.AckStatus.State.AWAITS_SUCCESSFUL_EXECUTION));
assertThat(parsedWatch.status().actionStatus("_a1").ackStatus().state(),
is(ActionStatus.AckStatus.State.AWAITS_SUCCESSFUL_EXECUTION));
assertThat(parsedWatch.status().actionStatus("_a2").ackStatus().state(),
is(ActionStatus.AckStatus.State.AWAITS_SUCCESSFUL_EXECUTION));
long throttledCount = docCount(HistoryStore.INDEX_PREFIX + "*", null,
matchQuery(WatchRecord.Field.STATE.getPreferredName(), ExecutionState.THROTTLED.id()));
@ -208,8 +235,10 @@ public class WatchAckTests extends AbstractWatcherIntegrationTestCase {
assertThat(getWatchResponse.isFound(), is(true));
Watch parsedWatch = watchParser().parse(getWatchResponse.getId(), true, getWatchResponse.getSource().getBytes());
assertThat(parsedWatch.status().actionStatus("_a1").ackStatus().state(), is(ActionStatus.AckStatus.State.AWAITS_SUCCESSFUL_EXECUTION));
assertThat(parsedWatch.status().actionStatus("_a2").ackStatus().state(), is(ActionStatus.AckStatus.State.AWAITS_SUCCESSFUL_EXECUTION));
assertThat(parsedWatch.status().actionStatus("_a1").ackStatus().state(),
is(ActionStatus.AckStatus.State.AWAITS_SUCCESSFUL_EXECUTION));
assertThat(parsedWatch.status().actionStatus("_a2").ackStatus().state(),
is(ActionStatus.AckStatus.State.AWAITS_SUCCESSFUL_EXECUTION));
long throttledCount = docCount(HistoryStore.INDEX_PREFIX + "*", null,
matchQuery(WatchRecord.Field.STATE.getPreferredName(), ExecutionState.THROTTLED.id()));
@ -264,7 +293,8 @@ public class WatchAckTests extends AbstractWatcherIntegrationTestCase {
refresh();
GetResponse getResponse = client().get(new GetRequest(WatchStore.INDEX, WatchStore.DOC_TYPE, "_name")).actionGet();
Watch indexedWatch = watchParser().parse("_name", true, getResponse.getSourceAsBytesRef());
assertThat(watchResponse.getStatus().actionStatus("_id").ackStatus().state(), Matchers.equalTo(indexedWatch.status().actionStatus("_id").ackStatus().state()));
assertThat(watchResponse.getStatus().actionStatus("_id").ackStatus().state(),
equalTo(indexedWatch.status().actionStatus("_id").ackStatus().state()));
if (timeWarped()) {
timeWarp().scheduler().trigger("_name", 4, TimeValue.timeValueSeconds(5));

View File

@ -21,8 +21,11 @@
*/
// renames that took place:
// renamed: x-pack/watcher/src/test/java/org/elasticsearch/watcher/input/search/SearchInputTests.java -> qa/messy-test-xpack-with-mustache/src/test/java/org/elasticsearch/messy/tests/SearchInputTests.java
// renamed: x-pack/watcher/src/test/java/org/elasticsearch/watcher/transform/search/SearchTransformTests.java -> qa/messy-test-xpack-with-mustache/src/test/java/org/elasticsearch/messy/tests/SearchTransformTests.java
// renamed: x-pack/shield/src/test/java/org/elasticsearch/integration/ShieldCachePermissionTests.java -> qa/messy-test-xpack-with-mustache/src/test/java/org/elasticsearch/messy/tests/ShieldCachePermissionTests.java
// renamed: x-pack/watcher/src/test/java/org/elasticsearch/watcher/input/search/SearchInputTests.java ->
// qa/messy-test-xpack-with-mustache/src/test/java/org/elasticsearch/messy/tests/SearchInputTests.java
// renamed: x-pack/watcher/src/test/java/org/elasticsearch/watcher/transform/search/SearchTransformTests.java ->
// qa/messy-test-xpack-with-mustache/src/test/java/org/elasticsearch/messy/tests/SearchTransformTests.java
// renamed: x-pack/shield/src/test/java/org/elasticsearch/integration/ShieldCachePermissionTests.java ->
// qa/messy-test-xpack-with-mustache/src/test/java/org/elasticsearch/messy/tests/ShieldCachePermissionTests.java
package org.elasticsearch.messy.tests;

View File

@ -10,7 +10,7 @@ integTest {
systemProperty 'es.shield.audit.enabled', 'true'
systemProperty 'es.shield.audit.outputs', 'index'
setupCommand 'setupDummyUser',
'bin/x-pack/esusers', 'useradd', 'test_user', '-p', 'changeme', '-r', 'admin'
'bin/xpack/esusers', 'useradd', 'test_user', '-p', 'changeme', '-r', 'admin'
waitCondition = { node, ant ->
File tmpFile = new File(node.cwd, 'wait.success')
ant.get(src: "http://${node.httpUri()}",

View File

@ -5,10 +5,14 @@
*/
package org.elasticsearch.shield.audit;
import org.elasticsearch.action.admin.indices.template.delete.DeleteIndexTemplateResponse;
import org.elasticsearch.action.admin.indices.template.get.GetIndexTemplatesResponse;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.cluster.metadata.IndexTemplateMetaData;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.plugins.Plugin;
import org.elasticsearch.shield.audit.index.IndexAuditTrail;
import org.elasticsearch.shield.authc.support.SecuredString;
import org.elasticsearch.shield.authc.support.UsernamePasswordToken;
import org.elasticsearch.test.ESIntegTestCase;
@ -37,16 +41,47 @@ public class IndexAuditIT extends ESIntegTestCase {
return false;
}
client().admin().indices().prepareRefresh().get();
return client().prepareSearch(".shield_audit_log*").setQuery(QueryBuilders.matchQuery("principal", USER)).get().getHits().totalHits() > 0;
return client().prepareSearch(".shield_audit_log*").setQuery(QueryBuilders.matchQuery("principal", USER))
.get().getHits().totalHits() > 0;
}, 5L, TimeUnit.SECONDS);
assertThat(found, is(true));
SearchResponse searchResponse = client().prepareSearch(".shield_audit_log*").setQuery(QueryBuilders.matchQuery("principal", USER)).get();
SearchResponse searchResponse = client().prepareSearch(".shield_audit_log*").setQuery(
QueryBuilders.matchQuery("principal", USER)).get();
assertThat(searchResponse.getHits().getHits().length, greaterThan(0));
assertThat((String) searchResponse.getHits().getAt(0).sourceAsMap().get("principal"), is(USER));
}
public void testAuditTrailTemplateIsRecreatedAfterDelete() throws Exception {
// this is already "tested" by the test framework since we wipe the templates before and after,
// but lets be explicit about the behavior
awaitIndexTemplateCreation();
// delete the template
DeleteIndexTemplateResponse deleteResponse = client().admin().indices()
.prepareDeleteTemplate(IndexAuditTrail.INDEX_TEMPLATE_NAME).execute().actionGet();
assertThat(deleteResponse.isAcknowledged(), is(true));
awaitIndexTemplateCreation();
}
private void awaitIndexTemplateCreation() throws InterruptedException {
boolean found = awaitBusy(() -> {
GetIndexTemplatesResponse response = client().admin().indices()
.prepareGetTemplates(IndexAuditTrail.INDEX_TEMPLATE_NAME).execute().actionGet();
if (response.getIndexTemplates().size() > 0) {
for (IndexTemplateMetaData indexTemplateMetaData : response.getIndexTemplates()) {
if (IndexAuditTrail.INDEX_TEMPLATE_NAME.equals(indexTemplateMetaData.name())) {
return true;
}
}
}
return false;
});
assertThat("index template [" + IndexAuditTrail.INDEX_TEMPLATE_NAME + "] was not created", found, is(true));
}
@Override
protected Settings externalClusterClientSettings() {
return Settings.builder()

View File

@ -8,9 +8,9 @@ integTest {
cluster {
plugin 'x-pack', project(':x-plugins:elasticsearch:x-pack')
setupCommand 'setupDummyUser',
'bin/x-pack/esusers', 'useradd', 'test_user', '-p', 'changeme', '-r', 'admin'
'bin/xpack/esusers', 'useradd', 'test_user', '-p', 'changeme', '-r', 'admin'
setupCommand 'setupTransportClientUser',
'bin/x-pack/esusers', 'useradd', 'transport', '-p', 'changeme', '-r', 'transport_client'
'bin/xpack/esusers', 'useradd', 'transport', '-p', 'changeme', '-r', 'transport_client'
waitCondition = { node, ant ->
File tmpFile = new File(node.cwd, 'wait.success')
ant.get(src: "http://${node.httpUri()}",

View File

@ -90,7 +90,8 @@ public class ShieldTransportClientIT extends ESIntegTestCase {
// this checks that the transport client is really running in a limited state
ClusterHealthResponse response;
if (useTransportUser) {
response = client.filterWithHeader(Collections.singletonMap("Authorization", basicAuthHeaderValue("test_user", new SecuredString("changeme".toCharArray()))))
response = client.filterWithHeader(Collections.singletonMap("Authorization",
basicAuthHeaderValue("test_user", new SecuredString("changeme".toCharArray()))))
.admin().cluster().prepareHealth().get();
} else {
response = client.admin().cluster().prepareHealth().get();

View File

@ -32,10 +32,10 @@ integTest {
cluster {
plugin 'x-pack', project(':x-plugins:elasticsearch:x-pack')
systemProperty 'es.watcher.enabled', 'false'
systemProperty 'es.marvel.enabled', 'false'
systemProperty 'es.xpack.watcher.enabled', 'false'
systemProperty 'es.xpack.marvel.enabled', 'false'
setupCommand 'setupDummyUser',
'bin/x-pack/esusers', 'useradd', 'test_user', '-p', 'changeme', '-r', 'admin'
'bin/xpack/esusers', 'useradd', 'test_user', '-p', 'changeme', '-r', 'admin'
waitCondition = { node, ant ->
File tmpFile = new File(node.cwd, 'wait.success')
ant.get(src: "http://${node.httpUri()}",

View File

@ -23,7 +23,7 @@ integTest {
systemProperty 'es.shield.authc.realms.esusers.type', 'esusers'
setupCommand 'setupDummyUser',
'bin/x-pack/esusers', 'useradd', 'test_user', '-p', 'changeme', '-r', 'admin'
'bin/xpack/esusers', 'useradd', 'test_user', '-p', 'changeme', '-r', 'admin'
waitCondition = { node, ant ->
File tmpFile = new File(node.cwd, 'wait.success')
ant.get(src: "http://${node.httpUri()}",

View File

@ -20,7 +20,8 @@ public class CustomRealmTests extends ESTestCase {
public void testAuthenticate() {
Settings globalSettings = Settings.builder().put("path.home", createTempDir()).build();
CustomRealm realm = new CustomRealm(new RealmConfig("test", Settings.EMPTY, globalSettings));
UsernamePasswordToken token = new UsernamePasswordToken(CustomRealm.KNOWN_USER, new SecuredString(CustomRealm.KNOWN_PW.toCharArray()));
SecuredString password = new SecuredString(CustomRealm.KNOWN_PW.toCharArray());
UsernamePasswordToken token = new UsernamePasswordToken(CustomRealm.KNOWN_USER, password);
User user = realm.authenticate(token);
assertThat(user, notNullValue());
assertThat(user.roles(), equalTo(CustomRealm.ROLES));
@ -30,7 +31,8 @@ public class CustomRealmTests extends ESTestCase {
public void testAuthenticateBadUser() {
Settings globalSettings = Settings.builder().put("path.home", createTempDir()).build();
CustomRealm realm = new CustomRealm(new RealmConfig("test", Settings.EMPTY, globalSettings));
UsernamePasswordToken token = new UsernamePasswordToken(CustomRealm.KNOWN_USER + "1", new SecuredString(CustomRealm.KNOWN_PW.toCharArray()));
SecuredString password = new SecuredString(CustomRealm.KNOWN_PW.toCharArray());
UsernamePasswordToken token = new UsernamePasswordToken(CustomRealm.KNOWN_USER + "1", password);
User user = realm.authenticate(token);
assertThat(user, nullValue());
}

View File

@ -75,10 +75,10 @@
<property name="home" location="${integ.scratch}/elasticsearch-${elasticsearch.version}"/>
<echo>Adding roles.yml</echo>
<copy file="shield-roles.yml" tofile="${home}/config/shield/roles.yml" overwrite="true"/>
<copy file="shield-roles.yml" tofile="${home}/config/xpack/roles.yml" overwrite="true"/>
<echo>Adding shield users...</echo>
<run-script script="${home}/bin/shield/esusers">
<run-script script="${home}/bin/xpack/esusers">
<nested>
<arg value="useradd"/>
<arg value="test_admin"/>

View File

@ -63,10 +63,10 @@
<property name="home" location="${integ.scratch}/elasticsearch-${elasticsearch.version}"/>
<echo>Adding roles.yml with watcher roles</echo>
<copy file="watcher-with-shield-roles.yml" tofile="${home}/config/shield/roles.yml" overwrite="true"/>
<copy file="watcher-with-shield-roles.yml" tofile="${home}/config/xpack/roles.yml" overwrite="true"/>
<echo>Adding shield users...</echo>
<run-script script="${home}/bin/shield/esusers">
<run-script script="${home}/bin/xpack/esusers">
<nested>
<arg value="useradd"/>
<arg value="test_admin"/>
@ -76,7 +76,7 @@
<arg value="admin"/>
</nested>
</run-script>
<run-script script="${home}/bin/shield/esusers">
<run-script script="${home}/bin/xpack/esusers">
<nested>
<arg value="useradd"/>
<arg value="watcher_manager"/>
@ -86,7 +86,7 @@
<arg value="watcher_manager"/>
</nested>
</run-script>
<run-script script="${home}/bin/shield/esusers">
<run-script script="${home}/bin/xpack/esusers">
<nested>
<arg value="useradd"/>
<arg value="powerless_user"/>

View File

@ -6,15 +6,15 @@ admin:
watcher_manager:
cluster: manage_watcher, cluster:monitor/nodes/info, cluster:monitor/health
indices:
'.watch_history-*': all
'.watcher-history-*': all
watcher_monitor:
cluster: monitor_watcher
indices:
'.watch_history-*': read
'.watcher-history-*': read
crapy_role:
cluster:
- cluster:monitor/nodes/info
- cluster:monitor/health
- cluster:monitor/nodes/liveness
- cluster:monitor/nodes/liveness

View File

@ -57,9 +57,9 @@ integTest {
// copy keystore into config/
extraConfigFile keystore.name, keystore
setupCommand 'setupTestUser',
'bin/x-pack/esusers', 'useradd', 'test_user', '-p', 'changeme', '-r', 'admin'
'bin/xpack/esusers', 'useradd', 'test_user', '-p', 'changeme', '-r', 'admin'
setupCommand 'setupMarvelUser',
'bin/x-pack/esusers', 'useradd', 'marvel_export', '-p', 'changeme', '-r', 'marvel_agent'
'bin/xpack/esusers', 'useradd', 'marvel_export', '-p', 'changeme', '-r', 'marvel_agent'
waitCondition = { node, ant ->
// we just return true, doing an https check is tricky here
return true

View File

@ -18,7 +18,7 @@ integTest {
plugin 'x-pack', project(':x-plugins:elasticsearch:x-pack')
setupCommand 'setupDummyUser',
'bin/x-pack/esusers', 'useradd', 'test_user', '-p', 'changeme', '-r', 'admin'
'bin/xpack/esusers', 'useradd', 'test_user', '-p', 'changeme', '-r', 'admin'
waitCondition = { node, ant ->
File tmpFile = new File(node.cwd, 'wait.success')
ant.get(src: "http://${node.httpUri()}",

View File

@ -9,7 +9,7 @@ integTest {
cluster {
plugin 'x-pack', project(':x-plugins:elasticsearch:x-pack')
systemProperty 'es.script.inline', 'true'
systemProperty 'es.shield.enabled', 'false'
systemProperty 'es.marvel.enabled', 'false'
systemProperty 'es.xpack.shield.enabled', 'false'
systemProperty 'es.xpack.marvel.enabled', 'false'
}
}

View File

@ -8,8 +8,8 @@ dependencies {
integTest {
cluster {
plugin 'x-pack', project(':x-plugins:elasticsearch:x-pack')
systemProperty 'es.shield.enabled', 'false'
systemProperty 'es.marvel.enabled', 'false'
systemProperty 'es.xpack.shield.enabled', 'false'
systemProperty 'es.xpack.marvel.enabled', 'false'
systemProperty 'es.http.port', '9400'
}
}

View File

@ -52,11 +52,13 @@ public class WatcherTemplateIT extends ESTestCase {
ScriptEngineRegistry scriptEngineRegistry = new ScriptEngineRegistry(
Arrays.asList(
new ScriptEngineRegistry.ScriptEngineRegistration(MustacheScriptEngineService.class, MustacheScriptEngineService.TYPES)
new ScriptEngineRegistry.ScriptEngineRegistration(MustacheScriptEngineService.class,
MustacheScriptEngineService.TYPES)
)
);
ScriptSettings scriptSettings = new ScriptSettings(scriptEngineRegistry, registry);
ScriptService scriptService = new ScriptService(setting, environment, engines, resourceWatcherService, scriptEngineRegistry, registry, scriptSettings);
ScriptService scriptService = new ScriptService(setting, environment, engines, resourceWatcherService, scriptEngineRegistry,
registry, scriptSettings);
engine = new DefaultTextTemplateEngine(Settings.EMPTY, ScriptServiceProxy.of(scriptService));
}

View File

@ -58,5 +58,5 @@
- do:
search:
index: .watch_history-*
index: .watcher-history-*
- match: { hits.hits.0._source.result.actions.0.logging.logged_text: "value1 value2" }

View File

@ -20,13 +20,13 @@ integTest {
cluster {
plugin 'x-pack', project(':x-plugins:elasticsearch:x-pack')
extraConfigFile 'x-pack/roles.yml', 'roles.yml'
extraConfigFile 'xpack/roles.yml', 'roles.yml'
setupCommand 'setupTestAdminUser',
'bin/x-pack/esusers', 'useradd', 'test_admin', '-p', 'changeme', '-r', 'admin'
'bin/xpack/esusers', 'useradd', 'test_admin', '-p', 'changeme', '-r', 'admin'
setupCommand 'setupWatcherManagerUser',
'bin/x-pack/esusers', 'useradd', 'watcher_manager', '-p', 'changeme', '-r', 'watcher_manager'
'bin/xpack/esusers', 'useradd', 'watcher_manager', '-p', 'changeme', '-r', 'watcher_manager'
setupCommand 'setupPowerlessUser',
'bin/x-pack/esusers', 'useradd', 'powerless_user', '-p', 'changeme', '-r', 'crappy_role'
'bin/xpack/esusers', 'useradd', 'powerless_user', '-p', 'changeme', '-r', 'crappy_role'
waitCondition = { node, ant ->
File tmpFile = new File(node.cwd, 'wait.success')
ant.get(src: "http://${node.httpUri()}",

View File

@ -6,13 +6,13 @@ admin:
watcher_manager:
cluster: manage_watcher, cluster:monitor/nodes/info, cluster:monitor/health
indices:
'.watch_history-*': all
'.watcher-history-*': all
run_as: powerless_user, watcher_manager
watcher_monitor:
cluster: monitor_watcher
indices:
'.watch_history-*': read
'.watcher-history-*': read
crappy_role:
cluster:

View File

@ -1,97 +0,0 @@
<?xml version="1.0"?>
<project name="shield-overrides"
xmlns:ac="antlib:net.sf.antcontrib">
<!-- redefined to work with auth -->
<macrodef name="waitfor-elasticsearch">
<attribute name="port"/>
<attribute name="timeoutproperty"/>
<sequential>
<echo>Waiting for elasticsearch to become available on port @{port}...</echo>
<waitfor maxwait="30" maxwaitunit="second"
checkevery="500" checkeveryunit="millisecond"
timeoutproperty="@{timeoutproperty}">
<socket server="127.0.0.1" port="@{port}"/>
</waitfor>
</sequential>
</macrodef>
<target name="start-external-cluster-with-plugins" depends="setup-workspace">
<ac:for list="${xplugins.list}" param="xplugin.name">
<sequential>
<fail message="Expected @{xplugin.name}-${version}.zip as a dependency, but could not be found in ${integ.deps}/plugins}">
<condition>
<not>
<available file="${integ.deps}/plugins/@{xplugin.name}-${elasticsearch.version}.zip" />
</not>
</condition>
</fail>
<ac:if>
<equals arg1="@{xplugin.name}" arg2="elasticsearch-marvel"/>
<ac:then>
<property name="marvel.enabled">true</property>
</ac:then>
</ac:if>
</sequential>
</ac:for>
<ac:for param="file">
<path>
<fileset dir="${integ.deps}/plugins"/>
</path>
<sequential>
<local name="plugin.name"/>
<convert-plugin-name file="@{file}" outputproperty="plugin.name"/>
<install-plugin name="${plugin.name}" file="@{file}"/>
</sequential>
</ac:for>
<local name="home"/>
<property name="home" location="${integ.scratch}/elasticsearch-${elasticsearch.version}"/>
<echo>Setting up Shield auth</echo>
<run-script script="${home}/bin/shield/esusers">
<nested>
<arg value="useradd"/>
<arg value="test_user"/>
<arg value="-p"/>
<arg value="changeme"/>
<arg value="-r"/>
<arg value="admin"/>
</nested>
</run-script>
<ac:if>
<equals arg1="${marvel.enabled}" arg2="true"/>
<ac:then>
<run-script script="${home}/bin/shield/esusers">
<nested>
<arg value="useradd"/>
<arg value="marvel_export"/>
<arg value="-p"/>
<arg value="changeme"/>
<arg value="-r"/>
<arg value="marvel_agent"/>
</nested>
</run-script>
<startup-elasticsearch>
<additional-args>
<arg value="-Des.marvel.agent.exporter.es.hosts=http://marvel_export:changeme@localhost:${integ.http.port}"/>
</additional-args>
</startup-elasticsearch>
</ac:then>
<ac:else>
<startup-elasticsearch/>
</ac:else>
</ac:if>
<echo>Checking we can connect with basic auth on port ${integ.http.port}...</echo>
<local name="temp.file"/>
<tempfile property="temp.file" destdir="${java.io.tmpdir}"/>
<get src="http://127.0.0.1:${integ.http.port}" dest="${temp.file}"
username="test_user" password="changeme" verbose="true" retries="10"/>
</target>
</project>

View File

@ -1,14 +0,0 @@
ELASTICSEARCH CONFIDENTIAL
__________________
[2014] Elasticsearch Incorporated. All Rights Reserved.
NOTICE: All information contained herein is, and remains
the property of Elasticsearch Incorporated and its suppliers,
if any. The intellectual and technical concepts contained
herein are proprietary to Elasticsearch Incorporated
and its suppliers and may be covered by U.S. and Foreign Patents,
patents in process, and are protected by trade secret or copyright law.
Dissemination of this information or reproduction of this material
is strictly forbidden unless prior written permission is obtained
from Elasticsearch Incorporated.

View File

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<additionalHeaders>
<javadoc_style>
<firstLine>/*</firstLine>
<beforeEachLine> * </beforeEachLine>
<endLine> */</endLine>
<!--skipLine></skipLine-->
<firstLineDetectionPattern>(\s|\t)*/\*.*$</firstLineDetectionPattern>
<lastLineDetectionPattern>.*\*/(\s|\t)*$</lastLineDetectionPattern>
<allowBlankLines>false</allowBlankLines>
<isMultiline>true</isMultiline>
</javadoc_style>
</additionalHeaders>

View File

@ -3,7 +3,7 @@ import org.elasticsearch.gradle.test.NodeInfo
apply plugin: 'elasticsearch.esplugin'
esplugin {
name 'x-pack'
name 'xpack'
description 'Elasticsearch Expanded Pack Plugin'
classname 'org.elasticsearch.xpack.XPackPlugin'
// FIXME we still can't be isolated due to shield custom realms
@ -74,6 +74,9 @@ ext.expansions = [
// Used in marvel index templates
'marvel.plugin.version': version,
'marvel.template.version': '1',
// Used in watcher index template
'watcher.plugin.version': version,
'watcher.template.version': '1',
]
processResources {
@ -111,13 +114,13 @@ bundlePlugin {
include 'LICENSE.txt'
include 'NOTICE.txt'
}
from('shield/bin/shield') {
from('shield/bin/xpack') {
into 'bin'
}
from('shield/config/shield') {
from('shield/config/xpack') {
into 'config'
}
from('watcher/bin/watcher') {
from('watcher/bin/xpack') {
into 'bin'
}
}
@ -126,7 +129,7 @@ integTest {
// TODO: fix this rest test to not depend on a hardcoded port!
systemProperty 'tests.rest.blacklist', 'getting_started/10_monitor_cluster_health/*'
cluster {
setupCommand 'setupDummyUser', 'bin/x-pack/esusers', 'useradd', 'test_user', '-p', 'changeme', '-r', 'admin'
setupCommand 'setupDummyUser', 'bin/xpack/esusers', 'useradd', 'test_user', '-p', 'changeme', '-r', 'admin'
waitCondition = { NodeInfo node, AntBuilder ant ->
File tmpFile = new File(node.cwd, 'wait.success')
ant.get(src: "http://${node.httpUri()}",
@ -154,7 +157,7 @@ artifacts {
}
run {
setupCommand 'setupDummyUser', 'bin/x-pack/esusers', 'useradd', 'test_user', '-p', 'changeme', '-r', 'admin'
setupCommand 'setupDummyUser', 'bin/xpack/esusers', 'useradd', 'test_user', '-p', 'changeme', '-r', 'admin'
}
// classes are missing, e.g. com.ibm.icu.lang.UCharacter

View File

@ -27,13 +27,12 @@ import org.elasticsearch.license.plugin.core.LicensesService;
import org.elasticsearch.license.plugin.rest.RestDeleteLicenseAction;
import org.elasticsearch.license.plugin.rest.RestGetLicenseAction;
import org.elasticsearch.license.plugin.rest.RestPutLicenseAction;
import org.elasticsearch.plugins.Plugin;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
public class LicensePlugin extends Plugin {
public class Licensing {
public static final String NAME = "license";
private final boolean isEnabled;
@ -44,7 +43,7 @@ public class LicensePlugin extends Plugin {
}
@Inject
public LicensePlugin(Settings settings) {
public Licensing(Settings settings) {
if (DiscoveryNode.clientNode(settings)) {
// Enable plugin only on node clients
this.isEnabled = "node".equals(settings.get(Client.CLIENT_TYPE_SETTING_S.getKey()));
@ -54,16 +53,6 @@ public class LicensePlugin extends Plugin {
transportClient = "transport".equals(settings.get(Client.CLIENT_TYPE_SETTING_S.getKey()));
}
@Override
public String name() {
return NAME;
}
@Override
public String description() {
return "Internal Elasticsearch Licensing Plugin";
}
public void onModule(NetworkModule module) {
if (transportClient == false) {
module.registerRestHandler(RestPutLicenseAction.class);
@ -78,7 +67,6 @@ public class LicensePlugin extends Plugin {
module.registerAction(DeleteLicenseAction.INSTANCE, TransportDeleteLicenseAction.class);
}
@Override
public Collection<Class<? extends LifecycleComponent>> nodeServices() {
Collection<Class<? extends LifecycleComponent>> services = new ArrayList<>();
if (isEnabled) {
@ -87,11 +75,9 @@ public class LicensePlugin extends Plugin {
return services;
}
@Override
public Collection<Module> nodeModules() {
if (isEnabled) {
return Collections.<Module>singletonList(new LicenseModule());
return Collections.<Module>singletonList(new LicensingModule());
}
return Collections.emptyList();
}

View File

@ -11,7 +11,7 @@ import org.elasticsearch.license.plugin.core.LicenseeRegistry;
import org.elasticsearch.license.plugin.core.LicensesManagerService;
import org.elasticsearch.license.plugin.core.LicensesService;
public class LicenseModule extends AbstractModule {
public class LicensingModule extends AbstractModule {
@Override
protected void configure() {

View File

@ -8,7 +8,8 @@ package org.elasticsearch.license.plugin.action.delete;
import org.elasticsearch.action.support.master.AcknowledgedRequestBuilder;
import org.elasticsearch.client.ElasticsearchClient;
public class DeleteLicenseRequestBuilder extends AcknowledgedRequestBuilder<DeleteLicenseRequest, DeleteLicenseResponse, DeleteLicenseRequestBuilder> {
public class DeleteLicenseRequestBuilder extends AcknowledgedRequestBuilder<DeleteLicenseRequest, DeleteLicenseResponse,
DeleteLicenseRequestBuilder> {
/**
* Creates new get licenses request builder

View File

@ -26,9 +26,11 @@ public class TransportDeleteLicenseAction extends TransportMasterNodeAction<Dele
private final LicensesService licensesService;
@Inject
public TransportDeleteLicenseAction(Settings settings, TransportService transportService, ClusterService clusterService, LicensesService licensesService,
ThreadPool threadPool, ActionFilters actionFilters, IndexNameExpressionResolver indexNameExpressionResolver) {
super(settings, DeleteLicenseAction.NAME, transportService, clusterService, threadPool, actionFilters, indexNameExpressionResolver, DeleteLicenseRequest::new);
public TransportDeleteLicenseAction(Settings settings, TransportService transportService, ClusterService clusterService,
LicensesService licensesService, ThreadPool threadPool, ActionFilters actionFilters,
IndexNameExpressionResolver indexNameExpressionResolver) {
super(settings, DeleteLicenseAction.NAME, transportService, clusterService, threadPool, actionFilters,
indexNameExpressionResolver, DeleteLicenseRequest::new);
this.licensesService = licensesService;
}
@ -48,7 +50,8 @@ public class TransportDeleteLicenseAction extends TransportMasterNodeAction<Dele
}
@Override
protected void masterOperation(final DeleteLicenseRequest request, ClusterState state, final ActionListener<DeleteLicenseResponse> listener) throws ElasticsearchException {
protected void masterOperation(final DeleteLicenseRequest request, ClusterState state, final ActionListener<DeleteLicenseResponse>
listener) throws ElasticsearchException {
licensesService.removeLicense(request, new ActionListener<ClusterStateUpdateResponse>() {
@Override
public void onResponse(ClusterStateUpdateResponse clusterStateUpdateResponse) {

View File

@ -8,7 +8,8 @@ package org.elasticsearch.license.plugin.action.get;
import org.elasticsearch.action.support.master.MasterNodeReadOperationRequestBuilder;
import org.elasticsearch.client.ElasticsearchClient;
public class GetLicenseRequestBuilder extends MasterNodeReadOperationRequestBuilder<GetLicenseRequest, GetLicenseResponse, GetLicenseRequestBuilder> {
public class GetLicenseRequestBuilder extends MasterNodeReadOperationRequestBuilder<GetLicenseRequest, GetLicenseResponse,
GetLicenseRequestBuilder> {
/**
* Creates new get licenses request builder

View File

@ -25,9 +25,11 @@ public class TransportGetLicenseAction extends TransportMasterNodeReadAction<Get
private final LicensesManagerService licensesManagerService;
@Inject
public TransportGetLicenseAction(Settings settings, TransportService transportService, ClusterService clusterService, LicensesManagerService licensesManagerService,
ThreadPool threadPool, ActionFilters actionFilters, IndexNameExpressionResolver indexNameExpressionResolver) {
super(settings, GetLicenseAction.NAME, transportService, clusterService, threadPool, actionFilters, indexNameExpressionResolver, GetLicenseRequest::new);
public TransportGetLicenseAction(Settings settings, TransportService transportService, ClusterService clusterService,
LicensesManagerService licensesManagerService, ThreadPool threadPool, ActionFilters actionFilters,
IndexNameExpressionResolver indexNameExpressionResolver) {
super(settings, GetLicenseAction.NAME, transportService, clusterService, threadPool, actionFilters, indexNameExpressionResolver,
GetLicenseRequest::new);
this.licensesManagerService = licensesManagerService;
}
@ -47,7 +49,8 @@ public class TransportGetLicenseAction extends TransportMasterNodeReadAction<Get
}
@Override
protected void masterOperation(final GetLicenseRequest request, ClusterState state, final ActionListener<GetLicenseResponse> listener) throws ElasticsearchException {
protected void masterOperation(final GetLicenseRequest request, ClusterState state, final ActionListener<GetLicenseResponse>
listener) throws ElasticsearchException {
listener.onResponse(new GetLicenseResponse(licensesManagerService.getLicense()));
}
}

View File

@ -26,7 +26,8 @@ public class PutLicenseResponse extends AcknowledgedResponse implements ToXConte
PutLicenseResponse() {
}
public PutLicenseResponse(boolean acknowledged, LicensesStatus status, String acknowledgeHeader, Map<String, String[]> acknowledgeMessages) {
public PutLicenseResponse(boolean acknowledged, LicensesStatus status, String acknowledgeHeader,
Map<String, String[]> acknowledgeMessages) {
super(acknowledged);
this.status = status;
this.acknowledgeHeader = acknowledgeHeader;

View File

@ -28,8 +28,10 @@ public class TransportPutLicenseAction extends TransportMasterNodeAction<PutLice
@Inject
public TransportPutLicenseAction(Settings settings, TransportService transportService, ClusterService clusterService,
LicensesService licensesService, ThreadPool threadPool, ActionFilters actionFilters, IndexNameExpressionResolver indexNameExpressionResolver) {
super(settings, PutLicenseAction.NAME, transportService, clusterService, threadPool, actionFilters, indexNameExpressionResolver, PutLicenseRequest::new);
LicensesService licensesService, ThreadPool threadPool, ActionFilters actionFilters,
IndexNameExpressionResolver indexNameExpressionResolver) {
super(settings, PutLicenseAction.NAME, transportService, clusterService, threadPool, actionFilters, indexNameExpressionResolver,
PutLicenseRequest::new);
this.licensesService = licensesService;
}
@ -49,7 +51,8 @@ public class TransportPutLicenseAction extends TransportMasterNodeAction<PutLice
}
@Override
protected void masterOperation(final PutLicenseRequest request, ClusterState state, final ActionListener<PutLicenseResponse> listener) throws ElasticsearchException {
protected void masterOperation(final PutLicenseRequest request, ClusterState state, final ActionListener<PutLicenseResponse>
listener) throws ElasticsearchException {
licensesService.registerLicense(request, new ActionListener<LicensesUpdateResponse>() {
@Override
public void onResponse(LicensesUpdateResponse licensesUpdateResponse) {

View File

@ -46,14 +46,14 @@ public class LicensesMetaData extends AbstractDiffable<MetaData.Custom> implemen
* ever existed in the cluster state
*/
public static final License LICENSE_TOMBSTONE = License.builder()
.type("trial")
.issuer("elasticsearch")
.uid("TOMBSTONE")
.issuedTo("")
.maxNodes(0)
.issueDate(0)
.expiryDate(0)
.build();
.type("trial")
.issuer("elasticsearch")
.uid("TOMBSTONE")
.issuedTo("")
.maxNodes(0)
.issueDate(0)
.expiryDate(0)
.build();
public static final LicensesMetaData PROTO = new LicensesMetaData(null);
@ -115,7 +115,8 @@ public class LicensesMetaData extends AbstractDiffable<MetaData.Custom> implemen
if (parser.currentToken().isValue()) {
// trial license
byte[] data = decrypt(Base64.decode(parser.text()));
try (XContentParser trialLicenseParser = XContentFactory.xContent(XContentType.JSON).createParser(data)) {
try (XContentParser trialLicenseParser =
XContentFactory.xContent(XContentType.JSON).createParser(data)) {
trialLicenseParser.nextToken();
License pre20TrialLicense = License.fromXContent(trialLicenseParser);
pre20Licenses.add(TrialLicense.create(License.builder().fromPre20LicenseSpec(pre20TrialLicense)));
@ -183,7 +184,8 @@ public class LicensesMetaData extends AbstractDiffable<MetaData.Custom> implemen
streamOutput.writeVInt(0); // no signed license
streamOutput.writeVInt(1); // one trial license
XContentBuilder contentBuilder = XContentFactory.contentBuilder(XContentType.JSON);
license.toXContent(contentBuilder, new ToXContent.MapParams(Collections.singletonMap(License.LICENSE_SPEC_VIEW_MODE, "true")));
license.toXContent(contentBuilder,
new ToXContent.MapParams(Collections.singletonMap(License.LICENSE_SPEC_VIEW_MODE, "true")));
streamOutput.writeString(Base64.encodeBytes(encrypt(contentBuilder.bytes().toBytes())));
}
} else {

View File

@ -79,7 +79,8 @@ import java.util.concurrent.atomic.AtomicReference;
* Registered listeners are notified using {@link #notifyAndSchedule(LicensesMetaData)}
*/
@Singleton
public class LicensesService extends AbstractLifecycleComponent<LicensesService> implements ClusterStateListener, LicensesManagerService, LicenseeRegistry {
public class LicensesService extends AbstractLifecycleComponent<LicensesService> implements ClusterStateListener, LicensesManagerService,
LicenseeRegistry {
public static final String REGISTER_TRIAL_LICENSE_ACTION_NAME = "internal:plugin/license/cluster/register_trial_license";
@ -131,7 +132,8 @@ public class LicensesService extends AbstractLifecycleComponent<LicensesService>
private static final FormatDateTimeFormatter DATE_FORMATTER = Joda.forPattern("EEEE, MMMMM dd, yyyy", Locale.ROOT);
private static final String ACKNOWLEDGEMENT_HEADER = "This license update requires acknowledgement. To acknowledge the license, please read the following messages and update the license again, this time with the \"acknowledge=true\" parameter:";
private static final String ACKNOWLEDGEMENT_HEADER = "This license update requires acknowledgement. To acknowledge the license, " +
"please read the following messages and update the license again, this time with the \"acknowledge=true\" parameter:";
@Inject
public LicensesService(Settings settings, ClusterService clusterService, ThreadPool threadPool, TransportService transportService) {
@ -148,98 +150,100 @@ public class LicensesService extends AbstractLifecycleComponent<LicensesService>
private void populateExpirationCallbacks() {
expirationCallbacks.add(new ExpirationCallback.Pre(days(7), days(30), days(1)) {
@Override
public void on(License license) {
String general = LoggerMessageFormat.format(null, "\n" +
"#\n" +
"# License will expire on [{}]. If you have a new license, please update it.\n" +
"# Otherwise, please reach out to your support contact.\n" +
"# ", DATE_FORMATTER.printer().print(license.expiryDate()));
if (!registeredLicensees.isEmpty()) {
StringBuilder builder = new StringBuilder(general);
builder.append(System.lineSeparator());
builder.append("# Commercial plugins operate with reduced functionality on license expiration:");
for (InternalLicensee licensee : registeredLicensees) {
if (licensee.expirationMessages().length > 0) {
builder.append(System.lineSeparator());
builder.append("# - ");
builder.append(licensee.id());
for (String message : licensee.expirationMessages()) {
builder.append(System.lineSeparator());
builder.append("# - ");
builder.append(message);
@Override
public void on(License license) {
String general = LoggerMessageFormat.format(null, "\n" +
"#\n" +
"# License will expire on [{}]. If you have a new license, please update it.\n" +
"# Otherwise, please reach out to your support contact.\n" +
"# ", DATE_FORMATTER.printer().print(license.expiryDate()));
if (!registeredLicensees.isEmpty()) {
StringBuilder builder = new StringBuilder(general);
builder.append(System.lineSeparator());
builder.append("# Commercial plugins operate with reduced functionality on license " +
"expiration:");
for (InternalLicensee licensee : registeredLicensees) {
if (licensee.expirationMessages().length > 0) {
builder.append(System.lineSeparator());
builder.append("# - ");
builder.append(licensee.id());
for (String message : licensee.expirationMessages()) {
builder.append(System.lineSeparator());
builder.append("# - ");
builder.append(message);
}
}
}
logger.error(builder.toString());
} else {
logger.error(general);
}
}
}
}
logger.error(builder.toString());
} else {
logger.error(general);
}
}
}
);
expirationCallbacks.add(new ExpirationCallback.Pre(days(0), days(7), TimeValue.timeValueMinutes(10)) {
@Override
public void on(License license) {
String general = LoggerMessageFormat.format(null, "\n" +
"#\n" +
"# License will expire on [{}]. If you have a new license, please update it.\n" +
"# Otherwise, please reach out to your support contact.\n" +
"# ", DATE_FORMATTER.printer().print(license.expiryDate()));
if (!registeredLicensees.isEmpty()) {
StringBuilder builder = new StringBuilder(general);
builder.append(System.lineSeparator());
builder.append("# Commercial plugins operate with reduced functionality on license expiration:");
for (InternalLicensee licensee : registeredLicensees) {
if (licensee.expirationMessages().length > 0) {
builder.append(System.lineSeparator());
builder.append("# - ");
builder.append(licensee.id());
for (String message : licensee.expirationMessages()) {
builder.append(System.lineSeparator());
builder.append("# - ");
builder.append(message);
@Override
public void on(License license) {
String general = LoggerMessageFormat.format(null, "\n" +
"#\n" +
"# License will expire on [{}]. If you have a new license, please update it.\n" +
"# Otherwise, please reach out to your support contact.\n" +
"# ", DATE_FORMATTER.printer().print(license.expiryDate()));
if (!registeredLicensees.isEmpty()) {
StringBuilder builder = new StringBuilder(general);
builder.append(System.lineSeparator());
builder.append("# Commercial plugins operate with reduced functionality on license " +
"expiration:");
for (InternalLicensee licensee : registeredLicensees) {
if (licensee.expirationMessages().length > 0) {
builder.append(System.lineSeparator());
builder.append("# - ");
builder.append(licensee.id());
for (String message : licensee.expirationMessages()) {
builder.append(System.lineSeparator());
builder.append("# - ");
builder.append(message);
}
}
}
logger.error(builder.toString());
} else {
logger.error(general);
}
}
}
}
logger.error(builder.toString());
} else {
logger.error(general);
}
}
}
);
expirationCallbacks.add(new ExpirationCallback.Post(days(0), null, TimeValue.timeValueMinutes(10)) {
@Override
public void on(License license) {
// logged when grace period begins
String general = LoggerMessageFormat.format(null, "\n" +
"#\n" +
"# LICENSE EXPIRED ON [{}]. IF YOU HAVE A NEW LICENSE, PLEASE\n" +
"# UPDATE IT. OTHERWISE, PLEASE REACH OUT TO YOUR SUPPORT CONTACT.\n" +
"# ", DATE_FORMATTER.printer().print(license.expiryDate()));
if (!registeredLicensees.isEmpty()) {
StringBuilder builder = new StringBuilder(general);
builder.append(System.lineSeparator());
builder.append("# COMMERCIAL PLUGINS OPERATING WITH REDUCED FUNCTIONALITY");
for (InternalLicensee licensee : registeredLicensees) {
if (licensee.expirationMessages().length > 0) {
builder.append(System.lineSeparator());
builder.append("# - ");
builder.append(licensee.id());
for (String message : licensee.expirationMessages()) {
builder.append(System.lineSeparator());
builder.append("# - ");
builder.append(message);
@Override
public void on(License license) {
// logged when grace period begins
String general = LoggerMessageFormat.format(null, "\n" +
"#\n" +
"# LICENSE EXPIRED ON [{}]. IF YOU HAVE A NEW LICENSE, PLEASE\n" +
"# UPDATE IT. OTHERWISE, PLEASE REACH OUT TO YOUR SUPPORT CONTACT.\n" +
"# ", DATE_FORMATTER.printer().print(license.expiryDate()));
if (!registeredLicensees.isEmpty()) {
StringBuilder builder = new StringBuilder(general);
builder.append(System.lineSeparator());
builder.append("# COMMERCIAL PLUGINS OPERATING WITH REDUCED FUNCTIONALITY");
for (InternalLicensee licensee : registeredLicensees) {
if (licensee.expirationMessages().length > 0) {
builder.append(System.lineSeparator());
builder.append("# - ");
builder.append(licensee.id());
for (String message : licensee.expirationMessages()) {
builder.append(System.lineSeparator());
builder.append("# - ");
builder.append(message);
}
}
}
logger.error(builder.toString());
} else {
logger.error(general);
}
}
}
}
logger.error(builder.toString());
} else {
logger.error(general);
}
}
}
);
}
@ -259,10 +263,12 @@ public class LicensesService extends AbstractLifecycleComponent<LicensesService>
final LicensesMetaData currentMetaData = clusterService.state().metaData().custom(LicensesMetaData.TYPE);
final License currentLicense = getLicense(currentMetaData);
Map<String, String[]> acknowledgeMessages = new HashMap<>(registeredLicensees.size() + 1);
if (currentLicense != null && !License.isAutoGeneratedLicense(currentLicense.signature()) // when current license is not an auto-generated license
if (currentLicense != null && !License.isAutoGeneratedLicense(currentLicense.signature()) // when current license is not
// an auto-generated license
&& currentLicense.issueDate() > newLicense.issueDate()) { // and has a later issue date
acknowledgeMessages.put("license",
new String[] { "The new license is older than the currently installed license. Are you sure you want to override the current license?" });
new String[]{"The new license is older than the currently installed license. Are you sure you want to " +
"override the current license?"});
}
for (InternalLicensee licensee : registeredLicensees) {
String[] listenerAcknowledgeMessages = licensee.acknowledgmentMessages(currentLicense, newLicense);
@ -272,11 +278,13 @@ public class LicensesService extends AbstractLifecycleComponent<LicensesService>
}
if (!acknowledgeMessages.isEmpty()) {
// needs acknowledgement
listener.onResponse(new LicensesUpdateResponse(false, LicensesStatus.VALID, ACKNOWLEDGEMENT_HEADER, acknowledgeMessages));
listener.onResponse(new LicensesUpdateResponse(false, LicensesStatus.VALID, ACKNOWLEDGEMENT_HEADER,
acknowledgeMessages));
return;
}
}
clusterService.submitStateUpdateTask("register license [" + newLicense.uid() + "]", new AckedClusterStateUpdateTask<LicensesUpdateResponse>(request, listener) {
clusterService.submitStateUpdateTask("register license [" + newLicense.uid() + "]", new
AckedClusterStateUpdateTask<LicensesUpdateResponse>(request, listener) {
@Override
protected LicensesUpdateResponse newResponse(boolean acknowledged) {
return new LicensesUpdateResponse(acknowledged, LicensesStatus.VALID);
@ -317,7 +325,8 @@ public class LicensesService extends AbstractLifecycleComponent<LicensesService>
this(acknowledged, status, null, Collections.<String, String[]>emptyMap());
}
public LicensesUpdateResponse(boolean acknowledged, LicensesStatus status, String acknowledgementHeader, Map<String, String[]> acknowledgeMessages) {
public LicensesUpdateResponse(boolean acknowledged, LicensesStatus status, String acknowledgementHeader,
Map<String, String[]> acknowledgeMessages) {
super(acknowledged);
this.status = status;
this.acknowledgeMessages = acknowledgeMessages;
@ -341,7 +350,8 @@ public class LicensesService extends AbstractLifecycleComponent<LicensesService>
* Remove license from the cluster state metadata
*/
public void removeLicense(final DeleteLicenseRequest request, final ActionListener<ClusterStateUpdateResponse> listener) {
clusterService.submitStateUpdateTask("delete license", new AckedClusterStateUpdateTask<ClusterStateUpdateResponse>(request, listener) {
clusterService.submitStateUpdateTask("delete license",
new AckedClusterStateUpdateTask<ClusterStateUpdateResponse>(request, listener) {
@Override
protected ClusterStateUpdateResponse newResponse(boolean acknowledged) {
return new ClusterStateUpdateResponse(acknowledged);
@ -564,7 +574,8 @@ public class LicensesService extends AbstractLifecycleComponent<LicensesService>
logger.debug("schedule [{}] after [{}]", expirationCallback, delay);
}
}
logger.debug("scheduled expiry callbacks for [{}] expiring after [{}]", license.uid(), TimeValue.timeValueMillis(expiryDuration));
logger.debug("scheduled expiry callbacks for [{}] expiring after [{}]", license.uid(),
TimeValue.timeValueMillis(expiryDuration));
}
}
}
@ -625,15 +636,15 @@ public class LicensesService extends AbstractLifecycleComponent<LicensesService>
public static abstract class ExpirationCallback {
public enum Orientation { PRE, POST }
public enum Orientation {PRE, POST}
public static abstract class Pre extends ExpirationCallback {
/**
* Callback schedule prior to license expiry
*
* @param min latest relative time to execute before license expiry
* @param max earliest relative time to execute before license expiry
* @param min latest relative time to execute before license expiry
* @param max earliest relative time to execute before license expiry
* @param frequency interval between execution
*/
public Pre(TimeValue min, TimeValue max, TimeValue frequency) {
@ -662,8 +673,8 @@ public class LicensesService extends AbstractLifecycleComponent<LicensesService>
/**
* Callback schedule after license expiry
*
* @param min earliest relative time to execute after license expiry
* @param max latest relative time to execute after license expiry
* @param min earliest relative time to execute after license expiry
* @param max latest relative time to execute after license expiry
* @param frequency interval between execution
*/
public Post(TimeValue min, TimeValue max, TimeValue frequency) {
@ -685,9 +696,9 @@ public class LicensesService extends AbstractLifecycleComponent<LicensesService>
public TimeValue delay(long expiryDuration) {
final long delay;
if (expiryDuration >= 0L) {
delay = expiryDuration + min.getMillis();
delay = expiryDuration + min.getMillis();
} else {
delay = (-1L * expiryDuration) - min.getMillis();
delay = (-1L * expiryDuration) - min.getMillis();
}
if (delay > 0L) {
return TimeValue.timeValueMillis(delay);
@ -721,7 +732,8 @@ public class LicensesService extends AbstractLifecycleComponent<LicensesService>
@Override
public String toString() {
return LoggerMessageFormat.format(null, "ExpirationCallback:(orientation [{}], min [{}], max [{}], freq [{}])", orientation.name(), min, max, frequency);
return LoggerMessageFormat.format(null, "ExpirationCallback:(orientation [{}], min [{}], max [{}], freq [{}])",
orientation.name(), min, max, frequency);
}
}
@ -851,10 +863,12 @@ public class LicensesService extends AbstractLifecycleComponent<LicensesService>
public void setGracePeriodDuration(TimeValue gracePeriodDuration) {
this.gracePeriodDuration = gracePeriodDuration;
}
// only for adding expiration callbacks for tests
public void setExpirationCallbacks(List<ExpirationCallback> expirationCallbacks) {
this.expirationCallbacks = expirationCallbacks;
}
// TODO - temporary hack for tests, should be removed once we introduce `ClockMock`
public void setTrialLicenseDuration(TimeValue trialLicenseDuration) {
this.trialLicenseDuration = trialLicenseDuration;

View File

@ -57,7 +57,8 @@ public class TrialLicense {
final License expectedLicense;
try (XContentParser parser = XContentFactory.xContent(XContentType.JSON).createParser(decrypt(content))) {
parser.nextToken();
expectedLicense = License.builder().fromLicenseSpec(License.fromXContent(parser), license.signature()).version(-version).build();
expectedLicense = License.builder().fromLicenseSpec(License.fromXContent(parser),
license.signature()).version(-version).build();
}
return license.equals(expectedLicense);
} catch (IOException e) {

View File

@ -10,7 +10,6 @@ import org.elasticsearch.common.inject.Inject;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.license.plugin.action.delete.DeleteLicenseAction;
import org.elasticsearch.license.plugin.action.delete.DeleteLicenseRequest;
import org.elasticsearch.license.plugin.action.delete.DeleteLicenseResponse;
import org.elasticsearch.rest.BaseRestHandler;
import org.elasticsearch.rest.RestChannel;
import org.elasticsearch.rest.RestController;
@ -29,6 +28,6 @@ public class RestDeleteLicenseAction extends BaseRestHandler {
@Override
public void handleRequest(final RestRequest request, final RestChannel channel, final Client client) {
client.admin().cluster().execute(DeleteLicenseAction.INSTANCE, new DeleteLicenseRequest(), new AcknowledgedRestListener<DeleteLicenseResponse>(channel));
client.admin().cluster().execute(DeleteLicenseAction.INSTANCE, new DeleteLicenseRequest(), new AcknowledgedRestListener<>(channel));
}
}

View File

@ -50,23 +50,24 @@ public class RestGetLicenseAction extends BaseRestHandler {
final ToXContent.Params params = new ToXContent.DelegatingMapParams(overrideParams, request);
GetLicenseRequest getLicenseRequest = new GetLicenseRequest();
getLicenseRequest.local(request.paramAsBoolean("local", getLicenseRequest.local()));
client.admin().cluster().execute(GetLicenseAction.INSTANCE, getLicenseRequest, new RestBuilderListener<GetLicenseResponse>(channel) {
@Override
public RestResponse buildResponse(GetLicenseResponse response, XContentBuilder builder) throws Exception {
// Default to pretty printing, but allow ?pretty=false to disable
if (!request.hasParam("pretty")) {
builder.prettyPrint().lfAtEnd();
}
builder.startObject();
if (response.license() != null) {
builder.startObject("license");
response.license().toInnerXContent(builder, params);
builder.endObject();
}
builder.endObject();
return new BytesRestResponse(OK, builder);
}
});
client.admin().cluster().execute(GetLicenseAction.INSTANCE, getLicenseRequest,
new RestBuilderListener<GetLicenseResponse>(channel) {
@Override
public RestResponse buildResponse(GetLicenseResponse response, XContentBuilder builder) throws Exception {
// Default to pretty printing, but allow ?pretty=false to disable
if (!request.hasParam("pretty")) {
builder.prettyPrint().lfAtEnd();
}
builder.startObject();
if (response.license() != null) {
builder.startObject("license");
response.license().toInnerXContent(builder, params);
builder.endObject();
}
builder.endObject();
return new BytesRestResponse(OK, builder);
}
});
}
}

View File

@ -39,14 +39,15 @@ public class RestPutLicenseAction extends BaseRestHandler {
PutLicenseRequest putLicenseRequest = new PutLicenseRequest();
putLicenseRequest.license(request.content().toUtf8());
putLicenseRequest.acknowledge(request.paramAsBoolean("acknowledge", false));
client.admin().cluster().execute(PutLicenseAction.INSTANCE, putLicenseRequest, new RestBuilderListener<PutLicenseResponse>(channel) {
@Override
public RestResponse buildResponse(PutLicenseResponse response, XContentBuilder builder) throws Exception {
builder.startObject();
response.toXContent(builder, ToXContent.EMPTY_PARAMS);
builder.endObject();
return new BytesRestResponse(RestStatus.OK, builder);
}
});
client.admin().cluster().execute(PutLicenseAction.INSTANCE, putLicenseRequest,
new RestBuilderListener<PutLicenseResponse>(channel) {
@Override
public RestResponse buildResponse(PutLicenseResponse response, XContentBuilder builder) throws Exception {
builder.startObject();
response.toXContent(builder, ToXContent.EMPTY_PARAMS);
builder.endObject();
return new BytesRestResponse(RestStatus.OK, builder);
}
});
}
}

View File

@ -26,7 +26,8 @@ import static org.elasticsearch.test.ESIntegTestCase.Scope.TEST;
/**
* Framework to test licensing plugin integration for existing/new consumer plugins
* see {@link org.elasticsearch.license.plugin.LicensesEagerConsumerPluginIntegrationTests} and {@link org.elasticsearch.license.plugin.LicensesLazyConsumerPluginIntegrationTests}
* see {@link org.elasticsearch.license.plugin.LicensesEagerConsumerPluginIntegrationTests}
* and {@link org.elasticsearch.license.plugin.LicensesLazyConsumerPluginIntegrationTests}
* for example usage
*/
@ClusterScope(scope = TEST, numDataNodes = 2, numClientNodes = 0, transportClientRatio = 0.0)

View File

@ -23,9 +23,12 @@ import org.elasticsearch.license.plugin.core.LicenseState;
import org.elasticsearch.license.plugin.core.LicensesManagerService;
import org.elasticsearch.license.plugin.core.LicensesMetaData;
import org.elasticsearch.license.plugin.core.LicensesStatus;
import org.elasticsearch.marvel.Marvel;
import org.elasticsearch.plugins.Plugin;
import org.elasticsearch.shield.Shield;
import org.elasticsearch.test.ESIntegTestCase;
import org.elasticsearch.test.InternalTestCluster;
import org.elasticsearch.watcher.Watcher;
import org.elasticsearch.xpack.XPackPlugin;
import java.util.ArrayList;
@ -44,9 +47,9 @@ public abstract class AbstractLicensesIntegrationTestCase extends ESIntegTestCas
@Override
protected Settings nodeSettings(int nodeOrdinal) {
return Settings.builder()
.put("shield.enabled", false)
.put("marvel.enabled", false)
.put("watcher.enabled", false)
.put(XPackPlugin.featureEnabledSetting(Shield.NAME), false)
.put(XPackPlugin.featureEnabledSetting(Marvel.NAME), false)
.put(XPackPlugin.featureEnabledSetting(Watcher.NAME), false)
.build();
}
@ -92,7 +95,8 @@ public abstract class AbstractLicensesIntegrationTestCase extends ESIntegTestCas
protected void putLicense(TimeValue expiryDuration) throws Exception {
License license1 = generateSignedLicense(expiryDuration);
final PutLicenseResponse putLicenseResponse = new PutLicenseRequestBuilder(client().admin().cluster(), PutLicenseAction.INSTANCE).setLicense(license1).get();
final PutLicenseResponse putLicenseResponse = new PutLicenseRequestBuilder(client().admin().cluster(),
PutLicenseAction.INSTANCE).setLicense(license1).get();
assertThat(putLicenseResponse.isAcknowledged(), equalTo(true));
assertThat(putLicenseResponse.status(), equalTo(LicensesStatus.VALID));
}
@ -119,7 +123,8 @@ public abstract class AbstractLicensesIntegrationTestCase extends ESIntegTestCas
assertConsumerPluginNotification(consumerPluginServices, state, timeoutInSec);
}
protected void assertConsumerPluginNotification(final List<TestPluginServiceBase> consumerPluginServices, final LicenseState state, int timeoutInSec) throws InterruptedException {
protected void assertConsumerPluginNotification(final List<TestPluginServiceBase> consumerPluginServices, final LicenseState state,
int timeoutInSec) throws InterruptedException {
assertThat("At least one instance has to be present", consumerPluginServices.size(), greaterThan(0));
boolean success = awaitBusy(() -> {
for (TestPluginServiceBase pluginService : consumerPluginServices) {

View File

@ -10,7 +10,6 @@ import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.license.plugin.consumer.EagerLicenseRegistrationConsumerPlugin;
import org.elasticsearch.license.plugin.consumer.EagerLicenseRegistrationPluginService;
import org.elasticsearch.license.plugin.core.LicenseState;
import org.elasticsearch.node.Node;
import org.elasticsearch.plugins.Plugin;
import org.elasticsearch.test.ESIntegTestCase;
import org.elasticsearch.xpack.XPackPlugin;
@ -43,7 +42,8 @@ public class LicensesServiceNodeTests extends AbstractLicensesIntegrationTestCas
}
public void testPluginStatus() throws Exception {
final Iterable<EagerLicenseRegistrationPluginService> testPluginServices = internalCluster().getDataNodeInstances(EagerLicenseRegistrationPluginService.class);
final Iterable<EagerLicenseRegistrationPluginService> testPluginServices =
internalCluster().getDataNodeInstances(EagerLicenseRegistrationPluginService.class);
assertTrue(awaitBusy(() -> {
for (EagerLicenseRegistrationPluginService pluginService : testPluginServices) {
if (pluginService.state() != LicenseState.ENABLED) {

View File

@ -35,7 +35,8 @@ public class LicensesTransportTests extends AbstractLicensesIntegrationTestCase
}
public void testEmptyGetLicense() throws Exception {
final ActionFuture<GetLicenseResponse> getLicenseFuture = new GetLicenseRequestBuilder(client().admin().cluster(), GetLicenseAction.INSTANCE).execute();
final ActionFuture<GetLicenseResponse> getLicenseFuture =
new GetLicenseRequestBuilder(client().admin().cluster(), GetLicenseAction.INSTANCE).execute();
final GetLicenseResponse getLicenseResponse = getLicenseFuture.get();
assertNotNull(getLicenseResponse.license());
assertThat(getLicenseResponse.license().operationMode(), equalTo(License.OperationMode.TRIAL));
@ -45,8 +46,8 @@ public class LicensesTransportTests extends AbstractLicensesIntegrationTestCase
License signedLicense = generateSignedLicense(TimeValue.timeValueMinutes(2));
// put license
PutLicenseRequestBuilder putLicenseRequestBuilder = new PutLicenseRequestBuilder(client().admin().cluster(), PutLicenseAction.INSTANCE)
.setLicense(signedLicense);
PutLicenseRequestBuilder putLicenseRequestBuilder =
new PutLicenseRequestBuilder(client().admin().cluster(), PutLicenseAction.INSTANCE).setLicense(signedLicense);
PutLicenseResponse putLicenseResponse = putLicenseRequestBuilder.get();
assertThat(putLicenseResponse.isAcknowledged(), equalTo(true));
assertThat(putLicenseResponse.status(), equalTo(LicensesStatus.VALID));
@ -61,8 +62,8 @@ public class LicensesTransportTests extends AbstractLicensesIntegrationTestCase
String licenseString = TestUtils.dumpLicense(signedLicense);
// put license source
PutLicenseRequestBuilder putLicenseRequestBuilder = new PutLicenseRequestBuilder(client().admin().cluster(), PutLicenseAction.INSTANCE)
.setLicense(licenseString);
PutLicenseRequestBuilder putLicenseRequestBuilder =
new PutLicenseRequestBuilder(client().admin().cluster(), PutLicenseAction.INSTANCE).setLicense(licenseString);
PutLicenseResponse putLicenseResponse = putLicenseRequestBuilder.get();
assertThat(putLicenseResponse.isAcknowledged(), equalTo(true));
assertThat(putLicenseResponse.status(), equalTo(LicensesStatus.VALID));
@ -113,8 +114,8 @@ public class LicensesTransportTests extends AbstractLicensesIntegrationTestCase
public void testPutLicensesSimple() throws Exception {
License basicSignedLicense = generateSignedLicense("basic", TimeValue.timeValueMinutes(5));
PutLicenseRequestBuilder putLicenseRequestBuilder = new PutLicenseRequestBuilder(client().admin().cluster(), PutLicenseAction.INSTANCE)
.setLicense(basicSignedLicense);
PutLicenseRequestBuilder putLicenseRequestBuilder =
new PutLicenseRequestBuilder(client().admin().cluster(), PutLicenseAction.INSTANCE).setLicense(basicSignedLicense);
PutLicenseResponse putLicenseResponse = putLicenseRequestBuilder.get();
assertThat(putLicenseResponse.status(), equalTo(LicensesStatus.VALID));
GetLicenseResponse getLicenseResponse = new GetLicenseRequestBuilder(client().admin().cluster(), GetLicenseAction.INSTANCE).get();
@ -131,15 +132,16 @@ public class LicensesTransportTests extends AbstractLicensesIntegrationTestCase
public void testRemoveLicensesSimple() throws Exception {
License goldLicense = generateSignedLicense("gold", TimeValue.timeValueMinutes(5));
PutLicenseRequestBuilder putLicenseRequestBuilder = new PutLicenseRequestBuilder(client().admin().cluster(), PutLicenseAction.INSTANCE)
.setLicense(goldLicense);
PutLicenseRequestBuilder putLicenseRequestBuilder =
new PutLicenseRequestBuilder(client().admin().cluster(), PutLicenseAction.INSTANCE).setLicense(goldLicense);
PutLicenseResponse putLicenseResponse = putLicenseRequestBuilder.get();
assertThat(putLicenseResponse.isAcknowledged(), equalTo(true));
assertThat(putLicenseResponse.status(), equalTo(LicensesStatus.VALID));
GetLicenseResponse getLicenseResponse = new GetLicenseRequestBuilder(client().admin().cluster(), GetLicenseAction.INSTANCE).get();
assertThat(getLicenseResponse.license(), equalTo(goldLicense));
// delete all licenses
DeleteLicenseRequestBuilder deleteLicenseRequestBuilder = new DeleteLicenseRequestBuilder(client().admin().cluster(), DeleteLicenseAction.INSTANCE);
DeleteLicenseRequestBuilder deleteLicenseRequestBuilder =
new DeleteLicenseRequestBuilder(client().admin().cluster(), DeleteLicenseAction.INSTANCE);
DeleteLicenseResponse deleteLicenseResponse = deleteLicenseRequestBuilder.get();
assertThat(deleteLicenseResponse.isAcknowledged(), equalTo(true));
// get licenses (expected no licenses)

View File

@ -5,7 +5,6 @@
*/
package org.elasticsearch.license.plugin;
import org.apache.lucene.util.CollectionUtil;
import org.elasticsearch.action.ActionListener;
import org.elasticsearch.client.Client;
import org.elasticsearch.cluster.block.ClusterBlock;
@ -31,9 +30,6 @@ import org.elasticsearch.license.plugin.core.LicensesStatus;
import org.junit.Assert;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Comparator;
import java.util.List;
import java.util.Set;
import java.util.UUID;
@ -72,28 +68,6 @@ public class TestUtils {
return getResourcePath("/public.key");
}
public static void isSame(Collection<License> firstLicenses, Collection<License> secondLicenses) {
// check if the effective licenses have the same feature set
assertThat(firstLicenses.size(), equalTo(secondLicenses.size()));
List<License> license1 = new ArrayList<>(firstLicenses);
CollectionUtil.timSort(license1, new Comparator<License>() {
@Override
public int compare(License o1, License o2) {
return Long.compare(o1.expiryDate(), o2.expiryDate());
}
});
List<License> license2 = new ArrayList<>(secondLicenses);
CollectionUtil.timSort(license2, new Comparator<License>() {
@Override
public int compare(License o1, License o2) {
return Long.compare(o1.expiryDate(), o2.expiryDate());
}
});
assertThat(license1, equalTo(license2));
}
public static String dumpLicense(License license) throws Exception {
XContentBuilder builder = XContentFactory.contentBuilder(XContentType.JSON);
builder.startObject();
@ -160,7 +134,8 @@ public class TestUtils {
assertThat("awaiting no pending tasks for too long", success, equalTo(true));
}
public static void registerAndAckSignedLicenses(final LicensesService licensesService, License license, final LicensesStatus expectedStatus) {
public static void registerAndAckSignedLicenses(final LicensesService licensesService, License license,
final LicensesStatus expectedStatus) {
PutLicenseRequest putLicenseRequest = new PutLicenseRequest().license(license);
final CountDownLatch latch = new CountDownLatch(1);
final AtomicReference<LicensesStatus> status = new AtomicReference<>();

View File

@ -21,7 +21,8 @@ import org.elasticsearch.license.plugin.core.LicensesService;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
public abstract class TestPluginServiceBase extends AbstractLifecycleComponent<TestPluginServiceBase> implements ClusterStateListener, Licensee {
public abstract class TestPluginServiceBase extends AbstractLifecycleComponent<TestPluginServiceBase>
implements ClusterStateListener, Licensee {
private LicensesService licensesClientService;
private final ClusterService clusterService;
@ -29,7 +30,8 @@ public abstract class TestPluginServiceBase extends AbstractLifecycleComponent<T
public final AtomicBoolean registered = new AtomicBoolean(false);
private AtomicReference<LicenseState> state = new AtomicReference<>(LicenseState.DISABLED);
public TestPluginServiceBase(boolean eagerLicenseRegistration, Settings settings, LicensesService licensesClientService, ClusterService clusterService) {
public TestPluginServiceBase(boolean eagerLicenseRegistration, Settings settings, LicensesService licensesClientService,
ClusterService clusterService) {
super(settings);
this.eagerLicenseRegistration = eagerLicenseRegistration;
this.licensesClientService = licensesClientService;

View File

@ -65,7 +65,8 @@ public class LicensesAcknowledgementTests extends ESSingleNodeTestCase {
putLicenseRequest = new PutLicenseRequest().license(signedLicense).acknowledge(true);
// ensure license was installed and no acknowledgment message was returned
licensee.setAcknowledgementMessages(new String[0]);
licensesService.registerLicense(putLicenseRequest, new AssertingLicensesUpdateResponse(true, LicensesStatus.VALID, Collections.<String, String[]>emptyMap(), latch));
licensesService.registerLicense(putLicenseRequest, new AssertingLicensesUpdateResponse(true, LicensesStatus.VALID,
Collections.<String, String[]>emptyMap(), latch));
if (!latch.await(5, TimeUnit.SECONDS)) {
fail("waiting too long for a response to license registration");
}
@ -117,7 +118,8 @@ public class LicensesAcknowledgementTests extends ESSingleNodeTestCase {
// ensure license was installed and no acknowledgment message was returned
licensee1.setAcknowledgementMessages(new String[0]);
licensee2.setAcknowledgementMessages(new String[0]);
licensesService.registerLicense(putLicenseRequest, new AssertingLicensesUpdateResponse(true, LicensesStatus.VALID, Collections.<String, String[]>emptyMap(), latch));
licensesService.registerLicense(putLicenseRequest, new AssertingLicensesUpdateResponse(true, LicensesStatus.VALID,
Collections.<String, String[]>emptyMap(), latch));
if (!latch.await(5, TimeUnit.SECONDS)) {
fail("waiting too long for a response to license registration");
}
@ -132,7 +134,8 @@ public class LicensesAcknowledgementTests extends ESSingleNodeTestCase {
private final Map<String, String[]> expectedAckMessages;
private final CountDownLatch latch;
public AssertingLicensesUpdateResponse(boolean expectedAcknowledgement, LicensesStatus expectedStatus, Map<String, String[]> expectedAckMessages, CountDownLatch latch) {
public AssertingLicensesUpdateResponse(boolean expectedAcknowledgement, LicensesStatus expectedStatus,
Map<String, String[]> expectedAckMessages, CountDownLatch latch) {
this.expectedAcknowledgement = expectedAcknowledgement;
this.expectedStatus = expectedStatus;
this.expectedAckMessages = expectedAckMessages;

View File

@ -15,6 +15,7 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.concurrent.atomic.AtomicInteger;
import static org.elasticsearch.common.unit.TimeValue.timeValueMillis;
import static org.hamcrest.Matchers.equalTo;
public class LicensesExpirationCallbackTests extends ESSingleNodeTestCase {
@ -33,7 +34,7 @@ public class LicensesExpirationCallbackTests extends ESSingleNodeTestCase {
TimeValue min = TimeValue.timeValueSeconds(postExpirySeconds - randomIntBetween(1, 3));
TimeValue max = TimeValue.timeValueSeconds(postExpirySeconds + randomIntBetween(1, 10));
final LicensesService.ExpirationCallback.Post post = new LicensesService.ExpirationCallback.Post(min, max, TimeValue.timeValueMillis(10)) {
final LicensesService.ExpirationCallback.Post post = new LicensesService.ExpirationCallback.Post(min, max, timeValueMillis(10)) {
@Override
public void on(License license) {
}
@ -48,7 +49,7 @@ public class LicensesExpirationCallbackTests extends ESSingleNodeTestCase {
TimeValue postExpiryDuration = TimeValue.timeValueSeconds(postExpirySeconds);
TimeValue min = TimeValue.timeValueSeconds(postExpirySeconds - randomIntBetween(1, 3));
final LicensesService.ExpirationCallback.Post post = new LicensesService.ExpirationCallback.Post(min, null, TimeValue.timeValueMillis(10)) {
final LicensesService.ExpirationCallback.Post post = new LicensesService.ExpirationCallback.Post(min, null, timeValueMillis(10)) {
@Override
public void on(License license) {
}
@ -62,7 +63,7 @@ public class LicensesExpirationCallbackTests extends ESSingleNodeTestCase {
TimeValue expiryDuration = TimeValue.timeValueSeconds(expirySeconds);
TimeValue max = TimeValue.timeValueSeconds(expirySeconds + randomIntBetween(1, 10));
final LicensesService.ExpirationCallback.Pre pre = new LicensesService.ExpirationCallback.Pre(null, max, TimeValue.timeValueMillis(10)) {
final LicensesService.ExpirationCallback.Pre pre = new LicensesService.ExpirationCallback.Pre(null, max, timeValueMillis(10)) {
@Override
public void on(License license) {
}
@ -77,7 +78,7 @@ public class LicensesExpirationCallbackTests extends ESSingleNodeTestCase {
TimeValue min = TimeValue.timeValueSeconds(expirySeconds - randomIntBetween(0, 3));
TimeValue max = TimeValue.timeValueSeconds(expirySeconds + randomIntBetween(1, 10));
final LicensesService.ExpirationCallback.Pre pre = new LicensesService.ExpirationCallback.Pre(min, max, TimeValue.timeValueMillis(10)) {
final LicensesService.ExpirationCallback.Pre pre = new LicensesService.ExpirationCallback.Pre(min, max, timeValueMillis(10)) {
@Override
public void on(License license) {
}
@ -91,8 +92,9 @@ public class LicensesExpirationCallbackTests extends ESSingleNodeTestCase {
final LicensesService licensesService = getInstanceFromNode(LicensesService.class);
licensesService.setTrialLicenseDuration(TimeValue.timeValueSeconds(5));
AtomicInteger counter = new AtomicInteger(0);
// 2000, 1600, 1200
licensesService.setExpirationCallbacks(Collections.singletonList(
preCallbackLatch(TimeValue.timeValueSeconds(1), TimeValue.timeValueSeconds(2), TimeValue.timeValueMillis(400), counter)) // 2000, 1600, 1200
preCallbackLatch(TimeValue.timeValueSeconds(1), TimeValue.timeValueSeconds(2), timeValueMillis(400), counter))
);
licensesService.start();
TestUtils.AssertingLicensee licensee = new TestUtils.AssertingLicensee("testPreExpirationNotification", logger);
@ -106,8 +108,9 @@ public class LicensesExpirationCallbackTests extends ESSingleNodeTestCase {
final LicensesService licensesService = getInstanceFromNode(LicensesService.class);
licensesService.setTrialLicenseDuration(TimeValue.timeValueSeconds(3));
AtomicInteger counter = new AtomicInteger(0);
// 700, 1700, 2700
licensesService.setExpirationCallbacks(Collections.singletonList(
postCallbackLatch(TimeValue.timeValueMillis(700), TimeValue.timeValueSeconds(3), TimeValue.timeValueSeconds(1), counter)) // 700, 1700, 2700
postCallbackLatch(timeValueMillis(700), TimeValue.timeValueSeconds(3), TimeValue.timeValueSeconds(1), counter))
);
licensesService.start();
TestUtils.AssertingLicensee licensee = new TestUtils.AssertingLicensee("testPostExpirationNotification", logger);
@ -125,8 +128,10 @@ public class LicensesExpirationCallbackTests extends ESSingleNodeTestCase {
AtomicInteger postCounter = new AtomicInteger(0);
AtomicInteger preCounter = new AtomicInteger(0);
licensesService.setExpirationCallbacks(Arrays.asList(
preCallbackLatch(TimeValue.timeValueSeconds(1), TimeValue.timeValueSeconds(2), TimeValue.timeValueMillis(400), preCounter), // 2000, 1600, 1200
postCallbackLatch(TimeValue.timeValueMillis(100), TimeValue.timeValueSeconds(2), TimeValue.timeValueMillis(400), postCounter)) // 100, 500, 900, 1300, 1700
// 2000, 1600, 1200
preCallbackLatch(TimeValue.timeValueSeconds(1), TimeValue.timeValueSeconds(2), timeValueMillis(400), preCounter),
// 100, 500, 900, 1300, 1700
postCallbackLatch(timeValueMillis(100), TimeValue.timeValueSeconds(2), timeValueMillis(400), postCounter))
);
licensesService.start();
TestUtils.AssertingLicensee licensee = new TestUtils.AssertingLicensee("testMultipleExpirationNotification", logger);
@ -140,7 +145,8 @@ public class LicensesExpirationCallbackTests extends ESSingleNodeTestCase {
licensesService.stop();
}
private static LicensesService.ExpirationCallback preCallbackLatch(TimeValue min, TimeValue max, TimeValue frequency, final AtomicInteger count) {
private static LicensesService.ExpirationCallback preCallbackLatch(TimeValue min, TimeValue max, TimeValue frequency,
final AtomicInteger count) {
return new LicensesService.ExpirationCallback.Pre(min, max, frequency) {
@Override
public void on(License license) {
@ -149,7 +155,8 @@ public class LicensesExpirationCallbackTests extends ESSingleNodeTestCase {
};
}
private static LicensesService.ExpirationCallback postCallbackLatch(TimeValue min, TimeValue max, TimeValue frequency, final AtomicInteger count) {
private static LicensesService.ExpirationCallback postCallbackLatch(TimeValue min, TimeValue max, TimeValue frequency,
final AtomicInteger count) {
return new LicensesService.ExpirationCallback.Post(min, max, frequency) {
@Override
public void on(License license) {

View File

@ -154,7 +154,8 @@ public class LicensesExpiryNotificationTests extends ESSingleNodeTestCase {
registerAndAckSignedLicenses(licensesService, generateSignedLicense("gold", TimeValue.timeValueSeconds(2)), LicensesStatus.VALID);
// second signed license enabled, grace and expired
success = awaitBusy(() ->licensee.licenseStates.size() == 5);
assertLicenseStates(licensee, LicenseState.ENABLED, LicenseState.ENABLED, LicenseState.ENABLED, LicenseState.GRACE_PERIOD, LicenseState.DISABLED);
assertLicenseStates(licensee, LicenseState.ENABLED, LicenseState.ENABLED, LicenseState.ENABLED, LicenseState.GRACE_PERIOD,
LicenseState.DISABLED);
assertTrue(dumpLicensingStates(licensee.licenseStates), success);
licensesService.stop();
}
@ -177,7 +178,8 @@ public class LicensesExpiryNotificationTests extends ESSingleNodeTestCase {
registerAndAckSignedLicenses(licensesService, generateSignedLicense("basic", TimeValue.timeValueSeconds(2)), LicensesStatus.VALID);
// trial license: enabled, grace, disabled, signed license: enabled, grace, disabled
success = awaitBusy(() -> licensee.licenseStates.size() == 6);
assertLicenseStates(licensee, LicenseState.ENABLED, LicenseState.GRACE_PERIOD, LicenseState.DISABLED, LicenseState.ENABLED, LicenseState.GRACE_PERIOD, LicenseState.DISABLED);
assertLicenseStates(licensee, LicenseState.ENABLED, LicenseState.GRACE_PERIOD, LicenseState.DISABLED, LicenseState.ENABLED,
LicenseState.GRACE_PERIOD, LicenseState.DISABLED);
assertTrue(dumpLicensingStates(licensee.licenseStates), success);
licensesService.stop();
}

View File

@ -21,7 +21,7 @@ import org.elasticsearch.common.xcontent.XContentFactory;
import org.elasticsearch.common.xcontent.XContentParser;
import org.elasticsearch.common.xcontent.XContentType;
import org.elasticsearch.license.core.License;
import org.elasticsearch.license.plugin.LicensePlugin;
import org.elasticsearch.license.plugin.Licensing;
import org.elasticsearch.license.plugin.TestUtils;
import org.elasticsearch.test.ESTestCase;
@ -49,7 +49,7 @@ public class LicensesMetaDataSerializationTests extends ESTestCase {
}
public void testLicenseMetadataParsingDoesNotSwallowOtherMetaData() throws Exception {
new LicensePlugin(Settings.EMPTY); // makes sure LicensePlugin is registered in Custom MetaData
new Licensing(Settings.EMPTY); // makes sure LicensePlugin is registered in Custom MetaData
License license = TestUtils.generateSignedLicense(TimeValue.timeValueHours(2));
LicensesMetaData licensesMetaData = new LicensesMetaData(license);
RepositoryMetaData repositoryMetaData = new RepositoryMetaData("repo", "fs", Settings.EMPTY);

View File

@ -23,7 +23,6 @@ import org.elasticsearch.marvel.agent.settings.MarvelSettings;
import org.elasticsearch.marvel.cleaner.CleanerService;
import org.elasticsearch.marvel.license.LicenseModule;
import org.elasticsearch.marvel.license.MarvelLicensee;
import org.elasticsearch.plugins.Plugin;
import org.elasticsearch.xpack.XPackPlugin;
import java.util.ArrayList;
@ -33,30 +32,29 @@ import java.util.Collections;
import java.util.List;
import java.util.function.Function;
public class MarvelPlugin extends Plugin {
public class Marvel {
private static final ESLogger logger = Loggers.getLogger(XPackPlugin.class);
public static final String NAME = "marvel";
public static final String ENABLED = NAME + ".enabled";
public static final Setting<String> INDEX_MARVEL_VERSION_SETTING = new Setting<>("index.marvel.plugin.version", "", Function.identity(), false, Setting.Scope.INDEX);
public static final Setting<String> INDEX_MARVEL_TEMPLATE_VERSION_SETTING = new Setting<>("index.marvel.template.version", "", Function.identity(), false, Setting.Scope.INDEX);
public static final Setting<String> INDEX_MARVEL_VERSION_SETTING =
new Setting<>("index.marvel.plugin.version", "", Function.identity(), false, Setting.Scope.INDEX);
public static final Setting<String> INDEX_MARVEL_TEMPLATE_VERSION_SETTING =
new Setting<>("index.marvel.template.version", "", Function.identity(), false, Setting.Scope.INDEX);
public static final String TRIBE_NAME_SETTING = "tribe.name";
private final Settings settings;
private final boolean enabled;
public MarvelPlugin(Settings settings) {
public Marvel(Settings settings) {
this.settings = settings;
this.enabled = marvelEnabled(settings);
this.enabled = enabled(settings);
}
@Override
public String name() {
return NAME;
}
@Override
public String description() {
return "Elasticsearch Marvel";
}
@ -65,7 +63,6 @@ public class MarvelPlugin extends Plugin {
return enabled;
}
@Override
public Collection<Module> nodeModules() {
List<Module> modules = new ArrayList<>();
@ -79,9 +76,8 @@ public class MarvelPlugin extends Plugin {
return Collections.unmodifiableList(modules);
}
@Override
public Collection<Class<? extends LifecycleComponent>> nodeServices() {
if (!enabled) {
if (enabled == false) {
return Collections.emptyList();
}
return Arrays.<Class<? extends LifecycleComponent>>asList(MarvelLicensee.class,
@ -89,13 +85,14 @@ public class MarvelPlugin extends Plugin {
CleanerService.class);
}
public static boolean marvelEnabled(Settings settings) {
if (!"node".equals(settings.get(Client.CLIENT_TYPE_SETTING_S.getKey()))) {
public static boolean enabled(Settings settings) {
if ("node".equals(settings.get(Client.CLIENT_TYPE_SETTING_S.getKey())) == false) {
logger.trace("marvel cannot be started on a transport client");
return false;
}
// By default, marvel is disabled on tribe nodes
return settings.getAsBoolean(ENABLED, !isTribeNode(settings) && !isTribeClientNode(settings));
return settings.getAsBoolean(XPackPlugin.featureEnabledSetting(Marvel.NAME),
!isTribeNode(settings) && !isTribeClientNode(settings));
}
static boolean isTribeNode(Settings settings) {
@ -132,7 +129,7 @@ public class MarvelPlugin extends Plugin {
// TODO convert these settings to where they belong
module.registerSetting(Setting.simpleString("marvel.agent.exporter.es.ssl.truststore.password", false, Setting.Scope.CLUSTER));
module.registerSetting(Setting.simpleString("marvel.agent.exporter.es.ssl.truststore.path", false, Setting.Scope.CLUSTER));
module.registerSetting(Setting.boolSetting("marvel.enabled", false, false, Setting.Scope.CLUSTER));
module.registerSetting(Setting.boolSetting(XPackPlugin.featureEnabledSetting(Marvel.NAME), true, false, Setting.Scope.CLUSTER));
module.registerSettingsFilter("marvel.agent.exporters.*.auth.password");
}
}

View File

@ -177,7 +177,8 @@ public class AgentService extends AbstractLifecycleComponent<AgentService> {
if (collecting) {
Collection<MarvelDoc> docs = collector.collect();
if (docs != null) {
logger.trace("bulk [{}] - adding [{}] collected docs from [{}] collector", bulk, docs.size(), collector.name());
logger.trace("bulk [{}] - adding [{}] collected docs from [{}] collector", bulk, docs.size(),
collector.name());
bulk.add(docs);
} else {
logger.trace("bulk [{}] - skipping collected docs from [{}] collector", bulk, collector.name());

View File

@ -146,4 +146,4 @@ public abstract class AbstractCollector<T> extends AbstractLifecycleComponent<T>
return index;
}
}
}
}

View File

@ -87,7 +87,8 @@ public class ClusterStateCollector extends AbstractCollector<ClusterStateCollect
results.add(clusterStateNodeDoc);
// Adds a document for every node in the marvel data index (type "node")
DiscoveryNodeMarvelDoc discoveryNodeDoc = new DiscoveryNodeMarvelDoc(dataIndexNameResolver.resolve(timestamp), NODE_TYPE, node.getId());
DiscoveryNodeMarvelDoc discoveryNodeDoc = new DiscoveryNodeMarvelDoc(dataIndexNameResolver.resolve(timestamp), NODE_TYPE,
node.getId());
discoveryNodeDoc.setClusterUUID(clusterUUID);
discoveryNodeDoc.setTimestamp(timestamp);
discoveryNodeDoc.setSourceNode(node);

View File

@ -86,7 +86,8 @@ public class ClusterStatsCollector extends AbstractCollector<ClusterStatsCollect
DiscoveryNode sourceNode = localNode();
// Adds a cluster info document
ClusterInfoMarvelDoc clusterInfoDoc = new ClusterInfoMarvelDoc(dataIndexNameResolver.resolve(timestamp), CLUSTER_INFO_TYPE, clusterUUID);
String resolvedIndex = dataIndexNameResolver.resolve(timestamp);
ClusterInfoMarvelDoc clusterInfoDoc = new ClusterInfoMarvelDoc(resolvedIndex, CLUSTER_INFO_TYPE, clusterUUID);
clusterInfoDoc.setClusterUUID(clusterUUID);
clusterInfoDoc.setTimestamp(timestamp);
clusterInfoDoc.setSourceNode(sourceNode);

View File

@ -19,7 +19,7 @@ import org.elasticsearch.marvel.agent.exporter.MarvelDoc;
import org.elasticsearch.marvel.agent.settings.MarvelSettings;
import org.elasticsearch.marvel.license.MarvelLicensee;
import org.elasticsearch.shield.InternalClient;
import org.elasticsearch.shield.ShieldPlugin;
import org.elasticsearch.shield.Shield;
import java.util.ArrayList;
import java.util.Arrays;
@ -72,7 +72,7 @@ public class IndexRecoveryCollector extends AbstractCollector<IndexRecoveryColle
results.add(indexRecoveryDoc);
}
} catch (IndexNotFoundException e) {
if (ShieldPlugin.shieldEnabled(settings) && IndexNameExpressionResolver.isAllIndices(Arrays.asList(marvelSettings.indices()))) {
if (Shield.enabled(settings) && IndexNameExpressionResolver.isAllIndices(Arrays.asList(marvelSettings.indices()))) {
logger.debug("collector [{}] - unable to collect data for missing index [{}]", name(), e.getIndex());
} else {
throw e;

View File

@ -21,7 +21,7 @@ import org.elasticsearch.marvel.agent.exporter.MarvelDoc;
import org.elasticsearch.marvel.agent.settings.MarvelSettings;
import org.elasticsearch.marvel.license.MarvelLicensee;
import org.elasticsearch.shield.InternalClient;
import org.elasticsearch.shield.ShieldPlugin;
import org.elasticsearch.shield.Shield;
import java.util.ArrayList;
import java.util.Arrays;
@ -86,7 +86,7 @@ public class IndexStatsCollector extends AbstractCollector<IndexStatsCollector>
results.add(indexStatsDoc);
}
} catch (IndexNotFoundException e) {
if (ShieldPlugin.shieldEnabled(settings) && IndexNameExpressionResolver.isAllIndices(Arrays.asList(marvelSettings.indices()))) {
if (Shield.enabled(settings) && IndexNameExpressionResolver.isAllIndices(Arrays.asList(marvelSettings.indices()))) {
logger.debug("collector [{}] - unable to collect data for missing index [{}]", name(), e.getIndex());
} else {
throw e;

View File

@ -19,7 +19,7 @@ import org.elasticsearch.marvel.agent.exporter.MarvelDoc;
import org.elasticsearch.marvel.agent.settings.MarvelSettings;
import org.elasticsearch.marvel.license.MarvelLicensee;
import org.elasticsearch.shield.InternalClient;
import org.elasticsearch.shield.ShieldPlugin;
import org.elasticsearch.shield.Shield;
import java.util.Arrays;
import java.util.Collection;
@ -71,7 +71,7 @@ public class IndicesStatsCollector extends AbstractCollector<IndicesStatsCollect
return Collections.singletonList(indicesStatsDoc);
} catch (IndexNotFoundException e) {
if (ShieldPlugin.shieldEnabled(settings) && IndexNameExpressionResolver.isAllIndices(Arrays.asList(marvelSettings.indices()))) {
if (Shield.enabled(settings) && IndexNameExpressionResolver.isAllIndices(Arrays.asList(marvelSettings.indices()))) {
logger.debug("collector [{}] - unable to collect data for missing index [{}]", name(), e.getIndex());
return Collections.emptyList();
}

View File

@ -44,9 +44,9 @@ public class NodeStatsCollector extends AbstractCollector<NodeStatsCollector> {
private final DiskThresholdDecider diskThresholdDecider;
@Inject
public NodeStatsCollector(Settings settings, ClusterService clusterService, MarvelSettings marvelSettings, MarvelLicensee marvelLicensee,
InternalClient client, DiscoveryService discoveryService, NodeEnvironment nodeEnvironment,
DiskThresholdDecider diskThresholdDecider) {
public NodeStatsCollector(Settings settings, ClusterService clusterService, MarvelSettings marvelSettings,
MarvelLicensee marvelLicensee, InternalClient client, DiscoveryService discoveryService,
NodeEnvironment nodeEnvironment, DiskThresholdDecider diskThresholdDecider) {
super(settings, NAME, clusterService, discoveryService, marvelSettings, marvelLicensee);
this.client = client;
this.nodeEnvironment = nodeEnvironment;

View File

@ -137,7 +137,8 @@ public abstract class Exporter {
try {
indexTimeFormatter = DateTimeFormat.forPattern(indexTimeFormat).withZoneUTC();
} catch (IllegalArgumentException e) {
throw new SettingsException("invalid marvel index name time format [" + indexTimeFormat + "] set for [" + settingFQN(INDEX_NAME_TIME_FORMAT_SETTING) + "]", e);
throw new SettingsException("invalid marvel index name time format [" + indexTimeFormat + "] set for [" +
settingFQN(INDEX_NAME_TIME_FORMAT_SETTING) + "]", e);
}
}
@ -151,7 +152,8 @@ public abstract class Exporter {
@Override
public String resolve(long timestamp) {
return MarvelSettings.MARVEL_INDICES_PREFIX + String.valueOf(MarvelTemplateUtils.TEMPLATE_VERSION) + "-" + indexTimeFormatter.print(timestamp);
return MarvelSettings.MARVEL_INDICES_PREFIX + String.valueOf(MarvelTemplateUtils.TEMPLATE_VERSION) + "-" +
indexTimeFormatter.print(timestamp);
}
@Override

View File

@ -122,7 +122,8 @@ public class HttpExporter extends Exporter {
auth = resolveAuth(config.settings());
connectionTimeout = config.settings().getAsTime(CONNECTION_TIMEOUT_SETTING, TimeValue.timeValueMillis(6000));
connectionReadTimeout = config.settings().getAsTime(CONNECTION_READ_TIMEOUT_SETTING, TimeValue.timeValueMillis(connectionTimeout.millis() * 10));
connectionReadTimeout = config.settings().getAsTime(CONNECTION_READ_TIMEOUT_SETTING,
TimeValue.timeValueMillis(connectionTimeout.millis() * 10));
// HORRIBLE!!! We can't use settings.getAsTime(..) !!!
// WE MUST FIX THIS IN CORE...
@ -241,7 +242,8 @@ public class HttpExporter extends Exporter {
for (String actionKey : actions.keySet()) {
Map<String, Object> action = (Map<String, Object>) actions.get(actionKey);
if (action.get("error") != null) {
logger.error("{} failure (index:[{}] type: [{}]): {}", actionKey, action.get("_index"), action.get("_type"), action.get("error"));
logger.error("{} failure (index:[{}] type: [{}]): {}", actionKey, action.get("_index"), action.get("_type"),
action.get("error"));
}
}
}
@ -269,7 +271,8 @@ public class HttpExporter extends Exporter {
}
supportedClusterVersion = remoteVersion.onOrAfter(MIN_SUPPORTED_CLUSTER_VERSION);
if (!supportedClusterVersion) {
logger.error("remote cluster version [" + remoteVersion + "] is not supported, please use a cluster with minimum version [" + MIN_SUPPORTED_CLUSTER_VERSION + "]");
logger.error("remote cluster version [{}] is not supported, please use a cluster with minimum version [{}]",
remoteVersion, MIN_SUPPORTED_CLUSTER_VERSION);
continue;
}
} catch (ElasticsearchException e) {
@ -447,7 +450,8 @@ public class HttpExporter extends Exporter {
return true;
}
} catch (Exception e) {
logger.error("http exporter [{}] - failed to verify the marvel template [{}] on [{}]:\n{}", name(), templateName, host, e.getMessage());
logger.error("http exporter [{}] - failed to verify the marvel template [{}] on [{}]:\n{}", name(), templateName, host,
e.getMessage());
return false;
} finally {
if (connection != null) {
@ -481,7 +485,8 @@ public class HttpExporter extends Exporter {
logger.info("http exporter [{}] - marvel template [{}] updated to version [{}]", name(), template, templateVersion);
return true;
} catch (IOException e) {
logger.error("http exporter [{}] - failed to update marvel template [{}] on host [{}]:\n{}", name(), template, host, e.getMessage());
logger.error("http exporter [{}] - failed to update marvel template [{}] on host [{}]:\n{}", name(), template, host,
e.getMessage());
return false;
} finally {
if (connection != null) {
@ -546,8 +551,10 @@ public class HttpExporter extends Exporter {
try {
String protocol = settings.get(SSL_PROTOCOL_SETTING, "TLS");
String trustStore = settings.get(SSL_TRUSTSTORE_SETTING, System.getProperty("javax.net.ssl.trustStore"));
String trustStorePassword = settings.get(SSL_TRUSTSTORE_PASSWORD_SETTING, System.getProperty("javax.net.ssl.trustStorePassword"));
String trustStoreAlgorithm = settings.get(SSL_TRUSTSTORE_ALGORITHM_SETTING, System.getProperty("ssl.TrustManagerFactory.algorithm"));
String trustStorePassword = settings.get(SSL_TRUSTSTORE_PASSWORD_SETTING,
System.getProperty("javax.net.ssl.trustStorePassword"));
String trustStoreAlgorithm = settings.get(SSL_TRUSTSTORE_ALGORITHM_SETTING,
System.getProperty("ssl.TrustManagerFactory.algorithm"));
if (trustStore == null) {
throw new SettingsException("missing required setting [" + SSL_TRUSTSTORE_SETTING + "]");
@ -647,8 +654,8 @@ public class HttpExporter extends Exporter {
} catch (InterruptedException e) {
// ignore, if closed, good....
} catch (Throwable t) {
logger.debug("error in keep alive thread, shutting down (will be restarted after a successful connection has been made) {}",
ExceptionsHelper.detailedMessage(t));
logger.debug("error in keep alive thread, shutting down (will be restarted after a successful connection has been " +
"made) {}", ExceptionsHelper.detailedMessage(t));
return;
}
}

View File

@ -60,7 +60,7 @@ public class LocalBulk extends ExportBulk {
// Get the appropriate renderer in order to render the MarvelDoc
Renderer renderer = renderers.getRenderer(marvelDoc);
assert renderer != null : "unable to render marvel document of type [" + marvelDoc.getType() + "]. no renderer found in registry";
assert renderer != null : "unable to render marvel document of type [" + marvelDoc.getType() + "]. no renderer registered";
if (renderer == null) {
logger.warn("local exporter [{}] - unable to render marvel document of type [{}]: no renderer found in registry",
@ -139,8 +139,9 @@ public class LocalBulk extends ExportBulk {
BulkItemResponse item = items[i];
if (item.isFailed()) {
sb.append("\n[").append(i)
.append("]: index [").append(item.getIndex()).append("], type [").append(item.getType()).append("], id [").append(item.getId())
.append("], message [").append(item.getFailureMessage()).append("]");
.append("]: index [").append(item.getIndex()).append("], type [").append(item.getType())
.append("], id [").append(item.getId()).append("], message [").append(item.getFailureMessage())
.append("]");
}
}
return sb.toString();

View File

@ -19,7 +19,6 @@ import org.elasticsearch.cluster.ClusterState;
import org.elasticsearch.cluster.ClusterStateListener;
import org.elasticsearch.cluster.block.ClusterBlockLevel;
import org.elasticsearch.cluster.metadata.IndexMetaData;
import org.elasticsearch.common.Strings;
import org.elasticsearch.common.collect.ImmutableOpenMap;
import org.elasticsearch.common.inject.Inject;
import org.elasticsearch.common.regex.Regex;
@ -38,6 +37,8 @@ import org.joda.time.DateTimeZone;
import java.util.HashSet;
import java.util.Set;
import static org.elasticsearch.common.Strings.collectionToCommaDelimitedString;
/**
*
*/
@ -56,7 +57,8 @@ public class LocalExporter extends Exporter implements ClusterStateListener, Cle
/** Version number of built-in templates **/
private final Integer templateVersion;
public LocalExporter(Exporter.Config config, Client client, ClusterService clusterService, RendererRegistry renderers, CleanerService cleanerService) {
public LocalExporter(Exporter.Config config, Client client, ClusterService clusterService, RendererRegistry renderers,
CleanerService cleanerService) {
super(TYPE, config);
this.client = client;
this.clusterService = clusterService;
@ -163,7 +165,8 @@ public class LocalExporter extends Exporter implements ClusterStateListener, Cle
// Install the index template for timestamped indices first, so that other nodes can ship data
if (!templateInstalled) {
logger.debug("local exporter [{}] - could not find existing marvel template for timestamped indices, installing a new one", name());
logger.debug("local exporter [{}] - could not find existing marvel template for timestamped indices, installing a new one",
name());
putTemplate(templateName, MarvelTemplateUtils.loadTimestampedIndexTemplate());
// we'll get that template on the next cluster state update
return null;
@ -250,7 +253,8 @@ public class LocalExporter extends Exporter implements ClusterStateListener, Cle
cleanerService.validateRetention(exporterRetention);
retention = exporterRetention;
} catch (IllegalArgumentException e) {
logger.warn("local exporter [{}] - unable to use custom history duration [{}]: {}", name(), exporterRetention, e.getMessage());
logger.warn("local exporter [{}] - unable to use custom history duration [{}]: {}", name(), exporterRetention,
e.getMessage());
}
}
@ -299,8 +303,9 @@ public class LocalExporter extends Exporter implements ClusterStateListener, Cle
}
private void deleteIndices(Set<String> indices) {
logger.trace("local exporter [{}] - deleting {} indices: {}", name(), indices.size(), Strings.collectionToCommaDelimitedString(indices));
client.admin().indices().delete(new DeleteIndexRequest(indices.toArray(new String[indices.size()])), new ActionListener<DeleteIndexResponse>() {
logger.trace("local exporter [{}] - deleting {} indices: {}", name(), indices.size(), collectionToCommaDelimitedString(indices));
client.admin().indices().delete(new DeleteIndexRequest(indices.toArray(new String[indices.size()])),
new ActionListener<DeleteIndexResponse>() {
@Override
public void onResponse(DeleteIndexResponse response) {
if (response.isAcknowledged()) {

View File

@ -11,7 +11,7 @@ import org.elasticsearch.common.settings.ClusterSettings;
import org.elasticsearch.common.settings.Setting;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.marvel.MarvelPlugin;
import org.elasticsearch.marvel.Marvel;
import java.util.Collections;
import java.util.List;
@ -19,30 +19,39 @@ import java.util.function.Function;
public class MarvelSettings extends AbstractComponent {
private static final String PREFIX = MarvelPlugin.NAME + ".agent.";
private static final String PREFIX = Marvel.NAME + ".agent.";
public static final String MARVEL_INDICES_PREFIX = ".marvel-es-";
public static final String MARVEL_DATA_INDEX_PREFIX = MARVEL_INDICES_PREFIX + "data-";
public static final TimeValue MAX_LICENSE_GRACE_PERIOD = TimeValue.timeValueHours(7 * 24);
/** Sampling interval between two collections (default to 10s) */
public static final Setting<TimeValue> INTERVAL_SETTING = Setting.timeSetting(PREFIX + "interval", TimeValue.timeValueSeconds(10), true, Setting.Scope.CLUSTER);
public static final Setting<TimeValue> INTERVAL_SETTING =
Setting.timeSetting(PREFIX + "interval", TimeValue.timeValueSeconds(10), true, Setting.Scope.CLUSTER);
/** Timeout value when collecting index statistics (default to 10m) */
public static final Setting<TimeValue> INDEX_STATS_TIMEOUT_SETTING = Setting.timeSetting(PREFIX + "index.stats.timeout", TimeValue.timeValueSeconds(10), true, Setting.Scope.CLUSTER);
public static final Setting<TimeValue> INDEX_STATS_TIMEOUT_SETTING =
Setting.timeSetting(PREFIX + "index.stats.timeout", TimeValue.timeValueSeconds(10), true, Setting.Scope.CLUSTER);
/** Timeout value when collecting total indices statistics (default to 10m) */
public static final Setting<TimeValue> INDICES_STATS_TIMEOUT_SETTING = Setting.timeSetting(PREFIX + "indices.stats.timeout", TimeValue.timeValueSeconds(10), true, Setting.Scope.CLUSTER);
public static final Setting<TimeValue> INDICES_STATS_TIMEOUT_SETTING =
Setting.timeSetting(PREFIX + "indices.stats.timeout", TimeValue.timeValueSeconds(10), true, Setting.Scope.CLUSTER);
/** List of indices names whose stats will be exported (default to all indices) */
public static final Setting<List<String>> INDICES_SETTING = Setting.listSetting(PREFIX + "indices", Collections.emptyList(), Function.identity(), true, Setting.Scope.CLUSTER);
public static final Setting<List<String>> INDICES_SETTING =
Setting.listSetting(PREFIX + "indices", Collections.emptyList(), Function.identity(), true, Setting.Scope.CLUSTER);
/** Timeout value when collecting the cluster state (default to 10m) */
public static final Setting<TimeValue> CLUSTER_STATE_TIMEOUT_SETTING = Setting.timeSetting(PREFIX + "cluster.state.timeout", TimeValue.timeValueSeconds(10), true, Setting.Scope.CLUSTER);
public static final Setting<TimeValue> CLUSTER_STATE_TIMEOUT_SETTING =
Setting.timeSetting(PREFIX + "cluster.state.timeout", TimeValue.timeValueSeconds(10), true, Setting.Scope.CLUSTER);
/** Timeout value when collecting the recovery information (default to 10m) */
public static final Setting<TimeValue> CLUSTER_STATS_TIMEOUT_SETTING = Setting.timeSetting(PREFIX + "cluster.stats.timeout", TimeValue.timeValueSeconds(10), true, Setting.Scope.CLUSTER);
public static final Setting<TimeValue> CLUSTER_STATS_TIMEOUT_SETTING =
Setting.timeSetting(PREFIX + "cluster.stats.timeout", TimeValue.timeValueSeconds(10), true, Setting.Scope.CLUSTER);
/** Timeout value when collecting the recovery information (default to 10m) */
public static final Setting<TimeValue> INDEX_RECOVERY_TIMEOUT_SETTING = Setting.timeSetting(PREFIX + "index.recovery.timeout", TimeValue.timeValueSeconds(10), true, Setting.Scope.CLUSTER);
public static final Setting<TimeValue> INDEX_RECOVERY_TIMEOUT_SETTING =
Setting.timeSetting(PREFIX + "index.recovery.timeout", TimeValue.timeValueSeconds(10), true, Setting.Scope.CLUSTER);
/** Flag to indicate if only active recoveries should be collected (default to false: all recoveries are collected) */
public static final Setting<Boolean> INDEX_RECOVERY_ACTIVE_ONLY_SETTING = Setting.boolSetting(PREFIX + "index.recovery.active_only", false, true, Setting.Scope.CLUSTER) ;
public static final Setting<Boolean> INDEX_RECOVERY_ACTIVE_ONLY_SETTING =
Setting.boolSetting(PREFIX + "index.recovery.active_only", false, true, Setting.Scope.CLUSTER) ;
/** List of collectors allowed to collect data (default to all)*/
public static final Setting<List<String>> COLLECTORS_SETTING = Setting.listSetting(PREFIX + "collectors", Collections.emptyList(), Function.identity(), false, Setting.Scope.CLUSTER);
public static final Setting<List<String>> COLLECTORS_SETTING =
Setting.listSetting(PREFIX + "collectors", Collections.emptyList(), Function.identity(), false, Setting.Scope.CLUSTER);
private TimeValue indexStatsTimeout;
private TimeValue indicesStatsTimeout;

View File

@ -28,7 +28,8 @@ import java.util.concurrent.ScheduledFuture;
public class CleanerService extends AbstractLifecycleComponent<CleanerService> {
public static final String HISTORY_DURATION = "history.duration";
public static final Setting<TimeValue> HISTORY_SETTING = Setting.timeSetting("marvel." + HISTORY_DURATION, TimeValue.timeValueHours(7 * 24), true, Setting.Scope.CLUSTER);
public static final Setting<TimeValue> HISTORY_SETTING = Setting.timeSetting("marvel." + HISTORY_DURATION,
TimeValue.timeValueHours(7 * 24), true, Setting.Scope.CLUSTER);
private final MarvelLicensee licensee;
private final ThreadPool threadPool;
@ -38,7 +39,8 @@ public class CleanerService extends AbstractLifecycleComponent<CleanerService> {
private volatile IndicesCleaner runnable;
private volatile TimeValue retention;
CleanerService(Settings settings, ClusterSettings clusterSettings, MarvelLicensee licensee, ThreadPool threadPool, ExecutionScheduler executionScheduler) {
CleanerService(Settings settings, ClusterSettings clusterSettings, MarvelLicensee licensee, ThreadPool threadPool,
ExecutionScheduler executionScheduler) {
super(settings);
this.licensee = licensee;
this.threadPool = threadPool;
@ -93,7 +95,8 @@ public class CleanerService extends AbstractLifecycleComponent<CleanerService> {
throw new IllegalArgumentException("invalid history duration setting value");
}
if (!licensee.allowUpdateRetention()) {
throw new IllegalArgumentException("license does not allow the history duration setting to be updated to value [" + retention + "]");
throw new IllegalArgumentException("license does not allow the history duration setting to be updated to value ["
+ retention + "]");
}
}

View File

@ -14,14 +14,14 @@ import org.elasticsearch.license.plugin.core.AbstractLicenseeComponent;
import org.elasticsearch.license.plugin.core.LicenseState;
import org.elasticsearch.license.plugin.core.Licensee;
import org.elasticsearch.license.plugin.core.LicenseeRegistry;
import org.elasticsearch.marvel.MarvelPlugin;
import org.elasticsearch.marvel.Marvel;
public class MarvelLicensee extends AbstractLicenseeComponent<MarvelLicensee> implements Licensee {
@Inject
public MarvelLicensee(Settings settings, LicenseeRegistry clientService) {
super(settings, MarvelPlugin.NAME, clientService);
super(settings, Marvel.NAME, clientService);
}
@Override

View File

@ -40,7 +40,8 @@ public class MarvelF {
}
final CountDownLatch latch = new CountDownLatch(1);
final Node node = new MockNode(settings.build(), Version.CURRENT, Arrays.asList(XPackPlugin.class, XPackPlugin.class, XPackPlugin.class));
final Node node = new MockNode(settings.build(), Version.CURRENT,
Arrays.asList(XPackPlugin.class, XPackPlugin.class, XPackPlugin.class));
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override

View File

@ -21,7 +21,7 @@ public class MarvelPluginClientTests extends ESTestCase {
.put(Client.CLIENT_TYPE_SETTING_S.getKey(), TransportClient.CLIENT_TYPE)
.build();
MarvelPlugin plugin = new MarvelPlugin(settings);
Marvel plugin = new Marvel(settings);
assertThat(plugin.isEnabled(), is(false));
Collection<Module> modules = plugin.nodeModules();
assertThat(modules.size(), is(0));
@ -32,7 +32,7 @@ public class MarvelPluginClientTests extends ESTestCase {
Settings settings = Settings.builder()
.put(Client.CLIENT_TYPE_SETTING_S.getKey(), "node")
.build();
MarvelPlugin plugin = new MarvelPlugin(settings);
Marvel plugin = new Marvel(settings);
assertThat(plugin.isEnabled(), is(true));
Collection<Module> modules = plugin.nodeModules();
assertThat(modules.size(), is(5));

View File

@ -29,25 +29,32 @@ public class MarvelPluginTests extends MarvelIntegTestCase {
}
public void testMarvelEnabled() {
internalCluster().startNode(Settings.builder().put(MarvelPlugin.ENABLED, true).build());
internalCluster().startNode(Settings.builder()
.put(XPackPlugin.featureEnabledSetting(Marvel.NAME), true)
.build());
assertPluginIsLoaded();
assertServiceIsBound(AgentService.class);
}
public void testMarvelDisabled() {
internalCluster().startNode(Settings.builder().put(MarvelPlugin.ENABLED, false).build());
internalCluster().startNode(Settings.builder()
.put(XPackPlugin.featureEnabledSetting(Marvel.NAME), false)
.build());
assertPluginIsLoaded();
assertServiceIsNotBound(AgentService.class);
}
public void testMarvelEnabledOnTribeNode() {
internalCluster().startNode(Settings.builder().put(MarvelPlugin.ENABLED, true).put(MarvelPlugin.TRIBE_NAME_SETTING, "t1").build());
internalCluster().startNode(Settings.builder()
.put(XPackPlugin.featureEnabledSetting(Marvel.NAME), true)
.put(Marvel.TRIBE_NAME_SETTING, "t1")
.build());
assertPluginIsLoaded();
assertServiceIsBound(AgentService.class);
}
public void testMarvelDisabledOnTribeNode() {
internalCluster().startNode(Settings.builder().put(MarvelPlugin.TRIBE_NAME_SETTING, "t1").build());
internalCluster().startNode(Settings.builder().put(Marvel.TRIBE_NAME_SETTING, "t1").build());
assertPluginIsLoaded();
assertServiceIsNotBound(AgentService.class);
}
@ -66,7 +73,7 @@ public class MarvelPluginTests extends MarvelIntegTestCase {
break;
}
}
assertThat("x-pack plugin not found", found, equalTo(true));
assertThat("xpack plugin not found", found, equalTo(true));
}
}

View File

@ -18,7 +18,7 @@ import org.elasticsearch.common.network.NetworkModule;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.license.core.License;
import org.elasticsearch.license.plugin.LicensePlugin;
import org.elasticsearch.license.plugin.Licensing;
import org.elasticsearch.license.plugin.core.LicenseState;
import org.elasticsearch.license.plugin.core.Licensee;
import org.elasticsearch.license.plugin.core.LicenseeRegistry;
@ -37,9 +37,10 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.TimeUnit;
import static org.elasticsearch.common.unit.TimeValue.timeValueMinutes;
@ClusterScope(scope = ESIntegTestCase.Scope.SUITE, randomDynamicTemplates = false, transportClientRatio = 0.0)
public class AbstractCollectorTestCase extends MarvelIntegTestCase {
@ -93,7 +94,8 @@ public class AbstractCollectorTestCase extends MarvelIntegTestCase {
.maxNodes(Integer.MAX_VALUE)
.signature("_signature")
.type("trial")
.uid(String.valueOf(RandomizedTest.systemPropertyAsInt(SysGlobals.CHILDVM_SYSPROP_JVM_ID, 0)) + System.identityHashCode(AbstractCollectorTestCase.class))
.uid(String.valueOf(RandomizedTest.systemPropertyAsInt(SysGlobals.CHILDVM_SYSPROP_JVM_ID, 0)) +
System.identityHashCode(AbstractCollectorTestCase.class))
.build();
}
@ -111,7 +113,7 @@ public class AbstractCollectorTestCase extends MarvelIntegTestCase {
}
protected static void beginGracefulPeriod() {
long expiryDate = System.currentTimeMillis() + TimeValue.timeValueMinutes(10).millis();
long expiryDate = System.currentTimeMillis() + timeValueMinutes(10).millis();
long issueDate = expiryDate - randomDaysInMillis();
final License license = createTestingLicense(issueDate, expiryDate);
@ -124,7 +126,7 @@ public class AbstractCollectorTestCase extends MarvelIntegTestCase {
}
protected static void endGracefulPeriod() {
long expiryDate = System.currentTimeMillis() - MarvelSettings.MAX_LICENSE_GRACE_PERIOD.millis() - TimeValue.timeValueMinutes(10).millis();
long expiryDate = System.currentTimeMillis() - MarvelSettings.MAX_LICENSE_GRACE_PERIOD.millis() - timeValueMinutes(10).millis();
long issueDate = expiryDate - randomDaysInMillis();
final License license = createTestingLicense(issueDate, expiryDate);
@ -169,20 +171,18 @@ public class AbstractCollectorTestCase extends MarvelIntegTestCase {
}
public boolean waitForNoBlocksOnNode(final String nodeId) throws Exception {
return assertBusy(new Callable<Boolean>() {
@Override
public Boolean call() throws Exception {
ClusterBlocks clusterBlocks = client(nodeId).admin().cluster().prepareState().setLocal(true).execute().actionGet().getState().blocks();
assertTrue(clusterBlocks.global().isEmpty());
assertTrue(clusterBlocks.indices().values().isEmpty());
return true;
}
return assertBusy(() -> {
ClusterBlocks clusterBlocks =
client(nodeId).admin().cluster().prepareState().setLocal(true).execute().actionGet().getState().blocks();
assertTrue(clusterBlocks.global().isEmpty());
assertTrue(clusterBlocks.indices().values().isEmpty());
return true;
}, 30L, TimeUnit.SECONDS);
}
public static class InternalLicensePlugin extends LicensePlugin {
public static class InternalLicensing extends Licensing {
public InternalLicensePlugin() {
public InternalLicensing() {
super(Settings.EMPTY);
}
@ -218,7 +218,7 @@ public class AbstractCollectorTestCase extends MarvelIntegTestCase {
public InternalXPackPlugin(Settings settings) {
super(settings);
licensePlugin = new InternalLicensePlugin();
licensing = new InternalLicensing();
}
}

View File

@ -91,7 +91,8 @@ public class ClusterStateCollectorTests extends AbstractCollectorTestCase {
assertThat(marvelDoc, instanceOf(ClusterStateMarvelDoc.class));
ClusterStateMarvelDoc clusterStateMarvelDoc = (ClusterStateMarvelDoc) marvelDoc;
assertThat(clusterStateMarvelDoc.getClusterUUID(), equalTo(client().admin().cluster().prepareState().setMetaData(true).get().getState().metaData().clusterUUID()));
assertThat(clusterStateMarvelDoc.getClusterUUID(),
equalTo(client().admin().cluster().prepareState().setMetaData(true).get().getState().metaData().clusterUUID()));
assertThat(clusterStateMarvelDoc.getTimestamp(), greaterThan(0L));
assertThat(clusterStateMarvelDoc.getType(), equalTo(ClusterStateCollector.TYPE));
assertThat(clusterStateMarvelDoc.getSourceNode(), notNullValue());
@ -157,7 +158,7 @@ public class ClusterStateCollectorTests extends AbstractCollectorTestCase {
}
private void assertMarvelDocs(Collection<MarvelDoc> results, final int nbShards) {
assertThat("expecting 1 document for the cluster state and 2 documents per node", results, hasSize(1 + internalCluster().size() * 2));
assertThat("expecting 1 document for cluster state and 2 documents per node", results, hasSize(1 + internalCluster().size() * 2));
final ClusterState clusterState = securedClient().admin().cluster().prepareState().get().getState();
final String clusterUUID = clusterState.getMetaData().clusterUUID();
@ -170,7 +171,8 @@ public class ClusterStateCollectorTests extends AbstractCollectorTestCase {
assertThat(marvelDoc.getClusterUUID(), equalTo(clusterUUID));
assertThat(marvelDoc.getTimestamp(), greaterThan(0L));
assertThat(marvelDoc.getSourceNode(), notNullValue());
assertThat(marvelDoc, anyOf(instanceOf(ClusterStateMarvelDoc.class), instanceOf(ClusterStateNodeMarvelDoc.class), instanceOf(DiscoveryNodeMarvelDoc.class)));
assertThat(marvelDoc, anyOf(instanceOf(ClusterStateMarvelDoc.class), instanceOf(ClusterStateNodeMarvelDoc.class),
instanceOf(DiscoveryNodeMarvelDoc.class)));
if (marvelDoc instanceof ClusterStateMarvelDoc) {
ClusterStateMarvelDoc clusterStateMarvelDoc = (ClusterStateMarvelDoc) marvelDoc;
@ -185,7 +187,8 @@ public class ClusterStateCollectorTests extends AbstractCollectorTestCase {
} else if (marvelDoc instanceof DiscoveryNodeMarvelDoc) {
DiscoveryNodeMarvelDoc discoveryNodeMarvelDoc = (DiscoveryNodeMarvelDoc) marvelDoc;
assertThat(discoveryNodeMarvelDoc.getIndex(), equalTo(MarvelSettings.MARVEL_DATA_INDEX_PREFIX + MarvelTemplateUtils.TEMPLATE_VERSION));
assertThat(discoveryNodeMarvelDoc.getIndex(),
equalTo(MarvelSettings.MARVEL_DATA_INDEX_PREFIX + MarvelTemplateUtils.TEMPLATE_VERSION));
assertThat(discoveryNodeMarvelDoc.getId(), not(isEmptyOrNullString()));
assertNotNull(discoveryNodeMarvelDoc.getNode());
discoveryNodes.add(discoveryNodeMarvelDoc);

View File

@ -39,18 +39,22 @@ public class ClusterStatsCollectorTests extends AbstractCollectorTestCase {
assertThat(marvelDoc, instanceOf(ClusterInfoMarvelDoc.class));
ClusterInfoMarvelDoc clusterInfoMarvelDoc = (ClusterInfoMarvelDoc) marvelDoc;
assertThat(clusterInfoMarvelDoc.getClusterUUID(), equalTo(client().admin().cluster().prepareState().setMetaData(true).get().getState().metaData().clusterUUID()));
assertThat(clusterInfoMarvelDoc.getClusterUUID(),
equalTo(client().admin().cluster().prepareState().setMetaData(true).get().getState().metaData().clusterUUID()));
assertThat(clusterInfoMarvelDoc.getTimestamp(), greaterThan(0L));
assertThat(clusterInfoMarvelDoc.getType(), equalTo(ClusterStatsCollector.CLUSTER_INFO_TYPE));
assertThat(clusterInfoMarvelDoc.getSourceNode(), notNullValue());
assertThat(clusterInfoMarvelDoc.getClusterName(), equalTo(client().admin().cluster().prepareState().setMetaData(true).get().getClusterName().value()));
assertThat(clusterInfoMarvelDoc.getVersion(), equalTo(client().admin().cluster().prepareNodesInfo().get().getNodes()[0].getVersion().toString()));
assertThat(clusterInfoMarvelDoc.getClusterName(),
equalTo(client().admin().cluster().prepareState().setMetaData(true).get().getClusterName().value()));
assertThat(clusterInfoMarvelDoc.getVersion(),
equalTo(client().admin().cluster().prepareNodesInfo().get().getNodes()[0].getVersion().toString()));
assertThat(clusterInfoMarvelDoc.getLicense(), notNullValue());
assertNotNull(clusterInfoMarvelDoc.getClusterStats());
assertThat(clusterInfoMarvelDoc.getClusterStats().getNodesStats().getCounts().getTotal(), equalTo(internalCluster().getNodeNames().length));
assertThat(clusterInfoMarvelDoc.getClusterStats().getNodesStats().getCounts().getTotal(),
equalTo(internalCluster().getNodeNames().length));
// Check cluster stats document
marvelDoc = results.stream().filter(o -> o instanceof ClusterStatsMarvelDoc).findFirst().get();
@ -58,13 +62,15 @@ public class ClusterStatsCollectorTests extends AbstractCollectorTestCase {
assertThat(marvelDoc, instanceOf(ClusterStatsMarvelDoc.class));
ClusterStatsMarvelDoc clusterStatsMarvelDoc = (ClusterStatsMarvelDoc) marvelDoc;
assertThat(clusterStatsMarvelDoc.getClusterUUID(), equalTo(client().admin().cluster().prepareState().setMetaData(true).get().getState().metaData().clusterUUID()));
assertThat(clusterStatsMarvelDoc.getClusterUUID(),
equalTo(client().admin().cluster().prepareState().setMetaData(true).get().getState().metaData().clusterUUID()));
assertThat(clusterStatsMarvelDoc.getTimestamp(), greaterThan(0L));
assertThat(clusterStatsMarvelDoc.getType(), equalTo(ClusterStatsCollector.CLUSTER_STATS_TYPE));
assertThat(clusterStatsMarvelDoc.getSourceNode(), notNullValue());
assertNotNull(clusterStatsMarvelDoc.getClusterStats());
assertThat(clusterStatsMarvelDoc.getClusterStats().getNodesStats().getCounts().getTotal(), equalTo(internalCluster().getNodeNames().length));
assertThat(clusterStatsMarvelDoc.getClusterStats().getNodesStats().getCounts().getTotal(),
equalTo(internalCluster().getNodeNames().length));
}
public void testClusterStatsCollectorWithLicensing() {

View File

@ -101,7 +101,8 @@ public class IndexRecoveryCollectorTests extends AbstractCollectorTestCase {
assertThat(marvelDoc, instanceOf(IndexRecoveryMarvelDoc.class));
IndexRecoveryMarvelDoc indexRecoveryMarvelDoc = (IndexRecoveryMarvelDoc) marvelDoc;
assertThat(indexRecoveryMarvelDoc.getClusterUUID(), equalTo(client().admin().cluster().prepareState().setMetaData(true).get().getState().metaData().clusterUUID()));
assertThat(indexRecoveryMarvelDoc.getClusterUUID(),
equalTo(client().admin().cluster().prepareState().setMetaData(true).get().getState().metaData().clusterUUID()));
assertThat(indexRecoveryMarvelDoc.getTimestamp(), greaterThan(0L));
assertThat(indexRecoveryMarvelDoc.getType(), equalTo(IndexRecoveryCollector.TYPE));
assertThat(indexRecoveryMarvelDoc.getSourceNode(), notNullValue());
@ -166,7 +167,8 @@ public class IndexRecoveryCollectorTests extends AbstractCollectorTestCase {
}
public void testEmptyCluster() throws Exception {
final String node = internalCluster().startNode(settingsBuilder().put(MarvelSettings.INDICES_SETTING.getKey(), Strings.EMPTY_ARRAY));
final String node = internalCluster().startNode(settingsBuilder().put(MarvelSettings.INDICES_SETTING.getKey(),
Strings.EMPTY_ARRAY));
waitForNoBlocksOnNode(node);
try {

View File

@ -98,7 +98,8 @@ public class IndexStatsCollectorTests extends AbstractCollectorTestCase {
assertThat(marvelDoc, instanceOf(IndexStatsMarvelDoc.class));
IndexStatsMarvelDoc indexStatsMarvelDoc = (IndexStatsMarvelDoc) marvelDoc;
assertThat(indexStatsMarvelDoc.getClusterUUID(), equalTo(client().admin().cluster().prepareState().setMetaData(true).get().getState().metaData().clusterUUID()));
assertThat(indexStatsMarvelDoc.getClusterUUID(),
equalTo(client().admin().cluster().prepareState().setMetaData(true).get().getState().metaData().clusterUUID()));
assertThat(indexStatsMarvelDoc.getTimestamp(), greaterThan(0L));
assertThat(indexStatsMarvelDoc.getType(), equalTo(IndexStatsCollector.TYPE));
assertThat(indexStatsMarvelDoc.getSourceNode(), notNullValue());

View File

@ -43,12 +43,14 @@ public class NodeStatsCollectorTests extends AbstractCollectorTestCase {
assertThat(marvelDoc, instanceOf(NodeStatsMarvelDoc.class));
NodeStatsMarvelDoc nodeStatsMarvelDoc = (NodeStatsMarvelDoc) marvelDoc;
assertThat(nodeStatsMarvelDoc.getClusterUUID(), equalTo(client().admin().cluster().prepareState().setMetaData(true).get().getState().metaData().clusterUUID()));
assertThat(nodeStatsMarvelDoc.getClusterUUID(),
equalTo(client().admin().cluster().prepareState().setMetaData(true).get().getState().metaData().clusterUUID()));
assertThat(nodeStatsMarvelDoc.getTimestamp(), greaterThan(0L));
assertThat(nodeStatsMarvelDoc.getType(), equalTo(NodeStatsCollector.TYPE));
assertThat(nodeStatsMarvelDoc.getSourceNode(), notNullValue());
assertThat(nodeStatsMarvelDoc.getNodeId(), equalTo(internalCluster().getInstance(DiscoveryService.class, node).localNode().id()));
assertThat(nodeStatsMarvelDoc.getNodeId(),
equalTo(internalCluster().getInstance(DiscoveryService.class, node).localNode().id()));
assertThat(nodeStatsMarvelDoc.isNodeMaster(), equalTo(node.equals(internalCluster().getMasterName())));
assertThat(nodeStatsMarvelDoc.isMlockall(), equalTo(BootstrapInfo.isMemoryLocked()));
assertNotNull(nodeStatsMarvelDoc.isDiskThresholdDeciderEnabled());

View File

@ -69,7 +69,8 @@ public class ShardsCollectorTests extends AbstractCollectorTestCase {
assertThat(shardMarvelDoc.getClusterUUID(), equalTo(clusterState.metaData().clusterUUID()));
assertThat(shardMarvelDoc.getTimestamp(), greaterThan(0L));
assertThat(shardMarvelDoc.getType(), equalTo(ShardsCollector.TYPE));
assertThat(shardMarvelDoc.getId(), equalTo(ShardsCollector.id(clusterState.stateUUID(), ((ShardMarvelDoc) marvelDoc).getShardRouting())));
assertThat(shardMarvelDoc.getId(),
equalTo(ShardsCollector.id(clusterState.stateUUID(), ((ShardMarvelDoc) marvelDoc).getShardRouting())));
assertThat(shardMarvelDoc.getSourceNode(), notNullValue());
assertThat(shardMarvelDoc.getClusterStateUUID(), equalTo(clusterState.stateUUID()));
@ -130,7 +131,8 @@ public class ShardsCollectorTests extends AbstractCollectorTestCase {
assertThat(shardMarvelDoc.getClusterUUID(), equalTo(clusterState.metaData().clusterUUID()));
assertThat(shardMarvelDoc.getTimestamp(), greaterThan(0L));
assertThat(shardMarvelDoc.getType(), equalTo(ShardsCollector.TYPE));
assertThat(shardMarvelDoc.getId(), equalTo(ShardsCollector.id(clusterState.stateUUID(), ((ShardMarvelDoc) marvelDoc).getShardRouting())));
assertThat(shardMarvelDoc.getId(),
equalTo(ShardsCollector.id(clusterState.stateUUID(), ((ShardMarvelDoc) marvelDoc).getShardRouting())));
assertThat(shardMarvelDoc.getClusterStateUUID(), equalTo(clusterState.stateUUID()));
ShardRouting shardRouting = shardMarvelDoc.getShardRouting();

Some files were not shown because too many files have changed in this diff Show More