Merge branch 'master' into kibana-shield-require-import
Original commit: elastic/x-pack-elasticsearch@04142b4701
This commit is contained in:
commit
849918d723
|
@ -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>
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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()));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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));
|
||||
|
||||
|
|
|
@ -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);
|
|
@ -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")
|
||||
});
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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));
|
|
@ -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;
|
||||
|
|
|
@ -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()}",
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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()}",
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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()}",
|
||||
|
|
|
@ -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()}",
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
|
|
@ -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"/>
|
||||
|
|
|
@ -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"/>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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()}",
|
||||
|
|
|
@ -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'
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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'
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
||||
|
|
|
@ -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" }
|
||||
|
|
|
@ -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()}",
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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>
|
|
@ -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.
|
|
@ -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>
|
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
}
|
|
@ -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() {
|
|
@ -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
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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()));
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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<>();
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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");
|
||||
}
|
||||
}
|
|
@ -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());
|
||||
|
|
|
@ -146,4 +146,4 @@ public abstract class AbstractCollector<T> extends AbstractLifecycleComponent<T>
|
|||
return index;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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()) {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 + "]");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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
Loading…
Reference in New Issue