Improve certificate path probing with demo UNC target and remove Sonic container scan.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,7 +1,5 @@
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Hashtable;
|
||||
import java.util.Iterator;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.management.ObjectName;
|
||||
|
||||
@@ -11,14 +9,13 @@ import javax.management.ObjectName;
|
||||
* Befehle:
|
||||
* validate - Anmeldung + lesender Container-Zugriff
|
||||
* restart - Container neu starten (stop/restart)
|
||||
* list - Container der Domain auflisten
|
||||
*
|
||||
* javac -source 8 -target 8 SonicMfContainerTool.java
|
||||
*/
|
||||
public final class SonicMfContainerTool
|
||||
{
|
||||
public static final String TOOL_VERSION =
|
||||
"2026-07-29-validate-restart-list";
|
||||
"2026-07-29-validate-restart";
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
@@ -29,16 +26,15 @@ public final class SonicMfContainerTool
|
||||
Args parsedArguments = Args.parse(args);
|
||||
|
||||
if (!"validate".equals(parsedArguments.command)
|
||||
&& !"restart".equals(parsedArguments.command)
|
||||
&& !"list".equals(parsedArguments.command))
|
||||
&& !"restart".equals(parsedArguments.command))
|
||||
{
|
||||
fail(
|
||||
"Usage: SonicMfContainerTool "
|
||||
+ "<validate|restart|list> "
|
||||
+ "<validate|restart> "
|
||||
+ "--domain D "
|
||||
+ "--url U "
|
||||
+ "--user U "
|
||||
+ "[--container C] "
|
||||
+ "--container C "
|
||||
+ "[--timeout SEC]");
|
||||
return;
|
||||
}
|
||||
@@ -51,12 +47,7 @@ public final class SonicMfContainerTool
|
||||
return;
|
||||
}
|
||||
|
||||
boolean needsContainer =
|
||||
"validate".equals(parsedArguments.command)
|
||||
|| "restart".equals(parsedArguments.command);
|
||||
|
||||
if (needsContainer
|
||||
&& isBlank(parsedArguments.container))
|
||||
if (isBlank(parsedArguments.container))
|
||||
{
|
||||
fail("container ist Pflicht fuer validate/restart.");
|
||||
return;
|
||||
@@ -82,13 +73,7 @@ public final class SonicMfContainerTool
|
||||
|
||||
try
|
||||
{
|
||||
if ("list".equals(parsedArguments.command))
|
||||
{
|
||||
listContainers(
|
||||
connector,
|
||||
parsedArguments.domain);
|
||||
}
|
||||
else if ("validate".equals(
|
||||
if ("validate".equals(
|
||||
parsedArguments.command))
|
||||
{
|
||||
validateConnection(
|
||||
@@ -126,115 +111,6 @@ public final class SonicMfContainerTool
|
||||
}
|
||||
}
|
||||
|
||||
private static void listContainers(
|
||||
Object connector,
|
||||
String domain)
|
||||
throws Exception
|
||||
{
|
||||
Method queryNamesMethod =
|
||||
findMethod(
|
||||
connector.getClass(),
|
||||
"queryNames",
|
||||
new Class[]
|
||||
{
|
||||
ObjectName.class,
|
||||
javax.management.QueryExp.class
|
||||
});
|
||||
|
||||
if (queryNamesMethod == null)
|
||||
{
|
||||
throw new IllegalStateException(
|
||||
"queryNames(ObjectName, QueryExp) wurde nicht gefunden.");
|
||||
}
|
||||
|
||||
ObjectName pattern =
|
||||
new ObjectName("*:ID=AGENT");
|
||||
|
||||
Object rawResult = queryNamesMethod.invoke(
|
||||
connector,
|
||||
new Object[]
|
||||
{
|
||||
pattern,
|
||||
null
|
||||
});
|
||||
|
||||
if (!(rawResult instanceof Set))
|
||||
{
|
||||
throw new IllegalStateException(
|
||||
"queryNames lieferte kein Set.");
|
||||
}
|
||||
|
||||
Set names = (Set) rawResult;
|
||||
String domainPrefix = domain + ".";
|
||||
int count = 0;
|
||||
|
||||
System.out.println("OK:ContainerListBegin");
|
||||
|
||||
Iterator iterator = names.iterator();
|
||||
|
||||
while (iterator.hasNext())
|
||||
{
|
||||
Object entry = iterator.next();
|
||||
|
||||
if (!(entry instanceof ObjectName))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
ObjectName objectName = (ObjectName) entry;
|
||||
String canonical = objectName.getCanonicalName();
|
||||
|
||||
if (canonical == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// Erwartet: domain.containerName:ID=AGENT
|
||||
if (!canonical.regionMatches(
|
||||
true,
|
||||
0,
|
||||
domainPrefix,
|
||||
0,
|
||||
domainPrefix.length()))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
int colon = canonical.indexOf(':');
|
||||
|
||||
if (colon <= domainPrefix.length())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
String containerName =
|
||||
canonical.substring(
|
||||
domainPrefix.length(),
|
||||
colon);
|
||||
|
||||
if (isBlank(containerName))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
System.out.println(
|
||||
"CONTAINER="
|
||||
+ containerName.trim());
|
||||
|
||||
count++;
|
||||
}
|
||||
|
||||
System.out.println(
|
||||
"OK:ContainerListEnd count="
|
||||
+ count
|
||||
+ " domain="
|
||||
+ domain
|
||||
+ " tool="
|
||||
+ TOOL_VERSION);
|
||||
|
||||
System.out.flush();
|
||||
}
|
||||
|
||||
private static Object connect(
|
||||
String url,
|
||||
String user,
|
||||
|
||||
Reference in New Issue
Block a user