jgroups-extras / jgroups-azure Goto Github PK
View Code? Open in Web Editor NEWImplementation of Azure ping protocol using storage blobs using official Azure SDK.
Home Page: http://jgroups.org
License: Apache License 2.0
Implementation of Azure ping protocol using storage blobs using official Azure SDK.
Home Page: http://jgroups.org
License: Apache License 2.0
WildFly tracks this as https://issues.redhat.com/browse/WFLY-14796
Add community docs:
I would like to simplify the configuration of jgroups in my current setup where I run my workload on Azure Container Apps. I have assigned my Container App instance all the necessary IAM permissions to interact with the blob storage that I want to utilize and therefore don't want to specify storage_access_key
, which is
storage_access_key
optionalUtilizing the AzureDefaultCredential
offers some other benefits as well, because the full chain
of posssible mechanisms to obtain credentials (6 steps as of writing this ticket) will be utilized, which is the standard way when working in/with Azure.
This reads like it requires a FQDN while what we need is just a simple name which later the azure client uses to form the URL thus the DNS requiremens.
Hi everybody,
I have created a storage account in azure with "enabled all networks" in network section.
After I have created a container named "keycloakping" of type "Container" in storage account.
I have tested the acces from my PC to this container with "Azure storage explorer" and I have connected with SAS (shared access signature) and I can access to the container blob and put and get a file.
But when I test the azure ping not works the test from my cmd.
mvn install
ALL OK
but..
C:\misproyectos\jgroups-azure>mvn test -Dazure.account_name="MYACCOUNTSTORAGE" -Dazure.access_key="MYACCESKEY" -Dazure.container="keycloakping" -Djava.net.preferIPv4Stack=true
[INFO] Running org.jgroups.protocols.azure.AZURE_PINGConfigurationTest
SLF4J: No SLF4J providers were found.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.272 s - in org.jgroups.protocols.azure.AZURE_PINGConfigurationTest
[INFO] Running org.jgroups.protocols.azure.AZURE_PINGDiscoveryTest
[ERROR] Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 1.234 s <<< FAILURE! - in org.jgroups.protocols.azure.AZURE_PINGDiscoveryTest
[ERROR] testDiscoveryObscureClusterName(org.jgroups.protocols.azure.AZURE_PINGDiscoveryTest) Time elapsed: 1.228 s <<< ERROR!
java.lang.Exception: JGRP000002: unable to load protocol FD (either with relative - FD - or absolute - org.jgroups.protocols.FD - class name)
at org.jgroups.util.Util.loadProtocolClass(Util.java:3093)
at org.jgroups.stack.Configurator.createLayer(Configurator.java:183)
at org.jgroups.stack.Configurator.createProtocols(Configurator.java:170)
at org.jgroups.stack.Configurator.createProtocolsAndInitializeAttrs(Configurator.java:104)
at org.jgroups.stack.Configurator.setupProtocolStack(Configurator.java:65)
at org.jgroups.stack.Configurator.setupProtocolStack(Configurator.java:55)
at org.jgroups.stack.ProtocolStack.setup(ProtocolStack.java:434)
at org.jgroups.JChannel.init(JChannel.java:899)
at org.jgroups.JChannel.<init>(JChannel.java:123)
at org.jgroups.JChannel.<init>(JChannel.java:105)
at org.jgroups.protocols.azure.AZURE_PINGDiscoveryTest.create(AZURE_PINGDiscoveryTest.java:84)
at org.jgroups.protocols.azure.AZURE_PINGDiscoveryTest.discover(AZURE_PINGDiscoveryTest.java:63)
at org.jgroups.protocols.azure.AZURE_PINGDiscoveryTest.testDiscoveryObscureClusterName(AZURE_PINGDiscoveryTest.java:55)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)
at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)
[ERROR] testDiscovery(org.jgroups.protocols.azure.AZURE_PINGDiscoveryTest) Time elapsed: 0.004 s <<< ERROR!
java.lang.Exception: JGRP000002: unable to load protocol FD (either with relative - FD - or absolute - org.jgroups.protocols.FD - class name)
at org.jgroups.util.Util.loadProtocolClass(Util.java:3093)
at org.jgroups.stack.Configurator.createLayer(Configurator.java:183)
at org.jgroups.stack.Configurator.createProtocols(Configurator.java:170)
at org.jgroups.stack.Configurator.createProtocolsAndInitializeAttrs(Configurator.java:104)
at org.jgroups.stack.Configurator.setupProtocolStack(Configurator.java:65)
at org.jgroups.stack.Configurator.setupProtocolStack(Configurator.java:55)
at org.jgroups.stack.ProtocolStack.setup(ProtocolStack.java:434)
at org.jgroups.JChannel.init(JChannel.java:899)
at org.jgroups.JChannel.<init>(JChannel.java:123)
at org.jgroups.JChannel.<init>(JChannel.java:105)
at org.jgroups.protocols.azure.AZURE_PINGDiscoveryTest.create(AZURE_PINGDiscoveryTest.java:84)
at org.jgroups.protocols.azure.AZURE_PINGDiscoveryTest.discover(AZURE_PINGDiscoveryTest.java:63)
at org.jgroups.protocols.azure.AZURE_PINGDiscoveryTest.testDiscovery(AZURE_PINGDiscoveryTest.java:47)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)
at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)
[INFO]
[INFO] Results:
[INFO]
[ERROR] Errors:
[ERROR] AZURE_PINGDiscoveryTest.testDiscovery:47->discover:63->create:84 » JGRP000002...
[ERROR] AZURE_PINGDiscoveryTest.testDiscoveryObscureClusterName:55->discover:63->create:84 »
[INFO]
[ERROR] Tests run: 5, Failures: 0, Errors: 2, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for JGroups Azure (parent) 2.0.3.Final-SNAPSHOT:
[INFO]
[INFO] JGroups Azure (parent) ............................. SUCCESS [ 3.069 s]
[INFO] JGroups Azure: Protocols ........................... FAILURE [ 9.429 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12.785 s
[INFO] Finished at: 2022-10-31T14:11:52+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test (default-test) on project jgroups-azure: There are test failures.
[ERROR]
[ERROR] Please refer to C:\misproyectos\jgroups-azure\azure\target\surefire-reports for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn <args> -rf :jgroups-azure
C:\misproyectos\jgroups-azure>
Thanks so much in advance.
Xavier.
Currently the group id that is used by Azure PING is org.jgroups
. This doesn't scale :)
It would be much better to use org.jgroups.azure
or something similar.
This might be counterintuitive to somebody, but for the CI to be of any value, we need to run against real Azure environment which requires valid credentials. Since anyone can open PRs, it would be easy to obtain the credentials of the CI environment setup. Therefore, only PRs which originate from the upstream branch will be able to run the tests.
See https://github.com/blog/2111-issue-and-pull-request-templates
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.