Re: Review Request 39445: GEODE-12/GEODE-304 Fix Pulse tests (WIP)
--- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/39445/#review104160 --- pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/JMXDataUpdater.java (line 2350) <https://reviews.apache.org/r/39445/#comment162438> We can Remove gemXD realated code completely from Geode pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseTests.java (line 258) <https://reviews.apache.org/r/39445/#comment162439> Lot of test fail due to id/selection not found error mainly bcoz targeted elements are not visible or present in DOM. To avoid that test when checking for particular view should first navigate to that view by clicking some button or widget to make it visible. PulseAutomatedTests have lot of navigatTo** methods. Optionally if you can separate out all tests inside PulseTests class and run as a separate test it would avoid issues where test is at different html page/html view/html widget. All tests in Pulsetests expect current page to be default dashboard which may not be the case bcoz tests in PulseAutomatedTests navigate to lot of differnt pages. pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseTests.java (line 293) <https://reviews.apache.org/r/39445/#comment162437> We should remove GemXD realated tests completely - Tushar Khairnar On Oct. 19, 2015, 6:35 p.m., Nitin Lamba wrote: > > --- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/39445/ > --- > > (Updated Oct. 19, 2015, 6:35 p.m.) > > > Review request for geode, Dick Cavender, Tushar Khairnar, and Dan Smith. > > > Repository: geode > > > Description > --- > > This includes several clean-ups for Pulse tests including: > - Build gradle (to invoke the right set of tests) > - Pulse JMX test beans update based on Geode JMX changes in recent releases > - Test references (corrected or ignored) > > Still a few more clean-ups pending. This is an WIP commit on feature/GEODE-12 > branch. > > > Diffs > - > > pulse/build.gradle b2bd5fc > > pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/data/JMXDataUpdater.java > 27aed67 > pulse/src/main/resources/pulse.properties 17299c2 > pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/Member.java > 812e055 > > pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseAutomatedTests.java > 21c14d5 > pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseTestData.java > d1a92a2 > pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseTests.java > b6dd7c6 > > pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/RegionOnMember.java > 7402a8b > pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/ServerObject.java > 97acac7 > > pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/ServerObjectMBean.java > 9487c0e > pulse/src/test/resources/test.properties fabeea1 > > Diff: https://reviews.apache.org/r/39445/diff/ > > > Testing > --- > > Tests done on local setup. A total of 4 tests are failing, down from 28 > initially. > > > Thanks, > > Nitin Lamba > >
Review Request 39585: Integrated Security DUnitTest
--- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/39585/ --- Review request for geode, Anthony Baker, Kirk Lund, and Dan Smith. Repository: geode Description --- 1. CommandTestBase - Base class for all the CLI/gfsh command dunit tests. 2. HeadlessGfsh - Gfsh as an API (and not a shell in terminal) which can be used to submit random commands and get command-result object, output string and errors 3. IntegratedSecDUnitTest - Tests gfsh data-commands, monitoring commands by granting/revoking different Roles - DATA_READ/DATA_WRITE/ADMIN/MONITOR, JMX as well as GemFire cache APIs 4. MBeanSecurityJUnitTest - Test all mbean operations by granting and revoking the access levels required for performing that operation 5. TestAccessControl & TestAuthenticator - In-memory implementation of GemFire Security Plging with verbose logging used for testing. Diffs - gemfire-core/src/test/java/com/gemstone/gemfire/management/internal/security/CommandTestBase.java PRE-CREATION gemfire-core/src/test/java/com/gemstone/gemfire/management/internal/security/HeadlessGfsh.java PRE-CREATION gemfire-core/src/test/java/com/gemstone/gemfire/management/internal/security/HeadlessGfshJUnitTest.java PRE-CREATION gemfire-core/src/test/java/com/gemstone/gemfire/management/internal/security/IntegratedSecDUnitTest.java PRE-CREATION gemfire-core/src/test/java/com/gemstone/gemfire/management/internal/security/MBeanSecurityJUnitTest.java PRE-CREATION gemfire-core/src/test/java/com/gemstone/gemfire/management/internal/security/ResultHandler.java PRE-CREATION gemfire-core/src/test/java/com/gemstone/gemfire/management/internal/security/TestAccessControl.java PRE-CREATION gemfire-core/src/test/java/com/gemstone/gemfire/management/internal/security/TestAuthenticator.java PRE-CREATION Diff: https://reviews.apache.org/r/39585/diff/ Testing --- File Attachments Dunit Patch https://reviews.apache.org/media/uploaded/files/2015/10/23/7e17def8-8451-459e-b5fe-56aa753fdc8e__int-sec-dunit.patch Thanks, Tushar Khairnar
Re: Review Request 37209: GEODE-17 : Integrated Security Code Merge
/EnvironmentVariablesHandlerInterceptor.java 8ebed02 gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/web/http/support/SimpleHttpRequester.java 8bd9d37 gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/web/shell/AbstractHttpOperationInvoker.java dac1271 gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/web/shell/RestHttpOperationInvoker.java 0dfbdbd gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/web/shell/SimpleHttpOperationInvoker.java a122339 gemfire-core/src/test/java/com/gemstone/gemfire/internal/cache/extension/mock/MockExtensionCommands.java 89644f0 gemfire-core/src/test/java/com/gemstone/gemfire/management/internal/cli/CommandManagerJUnitTest.java ab9333d gemfire-core/src/test/java/com/gemstone/gemfire/management/internal/cli/shell/GfshExecutionStrategyJUnitTest.java 44aef44 gemfire-core/src/test/java/com/gemstone/gemfire/management/internal/security/JSONAuthCodeTest.java 384493b gemfire-core/src/test/java/com/gemstone/gemfire/management/internal/security/ResourceOperationJUnit.java f061240 gemfire-web-api/src/main/java/com/gemstone/gemfire/rest/internal/web/controllers/AbstractBaseController.java feed8c7 gemfire-web-api/src/main/java/com/gemstone/gemfire/rest/internal/web/controllers/BaseControllerAdvice.java 5ae88bc gemfire-web-api/src/main/java/com/gemstone/gemfire/rest/internal/web/controllers/CommonCrudController.java ef52347 gemfire-web-api/src/main/java/com/gemstone/gemfire/rest/internal/web/controllers/FunctionAccessController.java 45d6f66 gemfire-web-api/src/main/java/com/gemstone/gemfire/rest/internal/web/controllers/PdxBasedCrudController.java 96551c6 gemfire-web-api/src/main/java/com/gemstone/gemfire/rest/internal/web/controllers/QueryAccessController.java b20c849 gemfire-web-api/src/main/webapp/WEB-INF/web.xml 554ef4b Diff: https://reviews.apache.org/r/37209/diff/ Testing --- Thanks, Tushar Khairnar
Re: Dynamic classloading in Geode
Is this going to be implementation for deploy jars. If yes then GEODE-17 (integrated security) will subject it for authorization scrutiny. On Fri, Aug 14, 2015 at 1:50 AM, Anthony Baker aba...@pivotal.io wrote: Thanks for the suggestions Mike. At this point we are just exploring ideas and putting them out for discussion. Regarding restricting access to this feature, we used the Geode Java client so standard security and authorizations would apply. Anthony On Aug 13, 2015, at 12:24 PM, Michael Stolz mst...@pivotal.io wrote: If this feature makes it into an actual release please make sure this option is not enabled by default and is securely turned off for environments where there are strong controls around releasing software into production. Also make sure that it is secured in terms of Authentication and Authorization via the Geode security framework when it is enabled, so that not just anyone can push code. -- Mike Stolz Principal Technical Account Manager Mobile: 631-835-4771 On Thu, Aug 13, 2015 at 1:57 PM, Anthony Baker aba...@pivotal.io mailto:aba...@pivotal.io wrote: Vito and I spent some time hacking up a prototype for dynamic and distributed classloading of Geode functions. Currently a user has to compile a function into a jar and deploy it using gfsh before it can be executed. If we could enable automatic deployment of functions across a running cluster it would speed up the development cycle for Geode applications and pave the way for other interesting features (like Java8 lambdas). Here’s how it works: A function wrapper (DynamicFunction) serializes the original function object and captures dependent classes as byte arrays. We generate an MD5 hash over the bytecode and use that as the key for storing the bytecode in a replicated region (“hackday”) within the cache. When the function is invoked, we call putIfAbsent() to distribute the byte code prior to executing the function across the cluster. During execution, we extend the TCCL with a new class loader that loads classes from our region while the original function is being deserialized. The original function is then executed in parallel on the cluster members. This allows an application developer to iteratively modify and test function code without any manual steps to upload class files. Obviously, there is a lot more thinking and design work to do around these ideas. Here’s our super-hacky code if you’re interested: https://gist.github.com/metatype/9b1f39a24e52f5c6f3e1 https://gist.github.com/metatype/9b1f39a24e52f5c6f3e1 https://gist.github.com/metatype/9b1f39a24e52f5c6f3e1 Caveats: 1) Currently we only capture static class dependencies. Any class dependencies present during method invocations are ignored. This could be addressed by doing byte code inspection (using ASM, javaassist, etc). 2) The region we use to cache class byte code should be automatically recreated as a metadata region, similar to how we store pdx types. We also need to configure eviction and expiration attributes to control resource usage and remove garbage. 3) We only injected the byte code caching hack into the code path for FunctionService.onServers(pool). Also, the putIfAbsent() call adds another network roundtrip. Anthony Vito
Review Request 37209: GEODE-77 : Integrated Security Code Merge
/internal/security/AccessControlContext.java 1926db5 gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/security/AccessControlMXBean.java e217045 gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/security/CLIOperationContext.java b0198e4 gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/security/JMXOperationContext.java 375cc27 gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/security/JSONAuthorization.java d85ce65 gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/security/MBeanServerWrapper.java 50942c1 gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/security/ManagementInterceptor.java 1851977 gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/security/Resource.java 4dc27e1 gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/security/ResourceConstants.java 3f4d7cb gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/security/ResourceOperation.java f149479 gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/security/ResourceOperationContext.java aa1c38c gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/web/controllers/AbstractCommandsController.java 73ce926 gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/web/controllers/ConfigCommandsController.java 517d942 gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/web/controllers/DataCommandsController.java 6767ec1 gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/web/controllers/DiskStoreCommandsController.java 2df3432 gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/web/controllers/FunctionCommandsController.java de81543 gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/web/controllers/MiscellaneousCommandsController.java 66d344f gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/web/controllers/WanCommandsController.java 1e22bd9 gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/web/controllers/support/EnvironmentVariablesHandlerInterceptor.java 8ebed02 gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/web/http/support/SimpleHttpRequester.java 8bd9d37 gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/web/shell/AbstractHttpOperationInvoker.java dac1271 gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/web/shell/RestHttpOperationInvoker.java 0dfbdbd gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/web/shell/SimpleHttpOperationInvoker.java a122339 gemfire-core/src/test/java/com/gemstone/gemfire/internal/cache/extension/mock/MockExtensionCommands.java 89644f0 gemfire-core/src/test/java/com/gemstone/gemfire/management/internal/cli/CommandManagerJUnitTest.java ab9333d gemfire-core/src/test/java/com/gemstone/gemfire/management/internal/cli/shell/GfshExecutionStrategyJUnitTest.java 44aef44 gemfire-core/src/test/java/com/gemstone/gemfire/management/internal/security/JSONAuthCodeTest.java 384493b gemfire-core/src/test/java/com/gemstone/gemfire/management/internal/security/ResourceOperationJUnit.java f061240 gemfire-web-api/src/main/java/com/gemstone/gemfire/rest/internal/web/controllers/AbstractBaseController.java feed8c7 gemfire-web-api/src/main/java/com/gemstone/gemfire/rest/internal/web/controllers/BaseControllerAdvice.java 5ae88bc gemfire-web-api/src/main/java/com/gemstone/gemfire/rest/internal/web/controllers/CommonCrudController.java ef52347 gemfire-web-api/src/main/java/com/gemstone/gemfire/rest/internal/web/controllers/FunctionAccessController.java 45d6f66 gemfire-web-api/src/main/java/com/gemstone/gemfire/rest/internal/web/controllers/PdxBasedCrudController.java 96551c6 gemfire-web-api/src/main/java/com/gemstone/gemfire/rest/internal/web/controllers/QueryAccessController.java b20c849 gemfire-web-api/src/main/webapp/WEB-INF/web.xml 554ef4b Diff: https://reviews.apache.org/r/37209/diff/ Testing --- Thanks, Tushar Khairnar
Re: Functional spec review
Yes. I did not have required rights for editing jira. I will add the reference. regards, Tushar On Mon, Aug 3, 2015 at 10:18 PM, robert geiger rob...@ampool.io wrote: Minor nit: the spec should be referenced in the JIRA, Thanks, Bob On 8/3/15, 5:35 AM, Tushar Khairnar tkhair...@pivotal.io wrote: This is to address https://issues.apache.org/jira/browse/GEODE-17 The functional spec is here: https://cwiki.apache.org/confluence/display/GEODE/Integrated+Security regards, Tushar
Functional spec review
This is to address https://issues.apache.org/jira/browse/GEODE-17 The functional spec is here: https://cwiki.apache.org/confluence/display/GEODE/Integrated+Security regards, Tushar