Merge branch 'development' into CORE-12019/Fast-Check-for-Already-Running-CSDE
This commit is contained in:
		
						commit
						2bb1dacb5c
					
				@ -1,5 +0,0 @@
 | 
				
			|||||||
@Library('corda-shared-build-pipeline-steps@5.0') _
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cordaNexusScanPipeline(
 | 
					 | 
				
			||||||
    nexusAppId: 'com.corda.CSDE-Java.5.0'
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
@ -56,8 +56,6 @@ dependencies {
 | 
				
			|||||||
            extension = 'cpb'
 | 
					            extension = 'cpb'
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					 | 
				
			||||||
    implementation "org.codehaus.groovy:groovy-json:3.0.9"
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// task groupings
 | 
					// task groupings
 | 
				
			||||||
@ -85,7 +83,7 @@ def workflowBuildDir = rootDir.toString() + "/workflows/build"
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// todo: Need to read things from cordapp plugin - the cordapp names will be changed by the user
 | 
					// todo: Need to read things from cordapp plugin - the cordapp names will be changed by the user
 | 
				
			||||||
def appCpiName =  'cpi name'
 | 
					def appCpiName =  'cpi name' // !!! this must match with the cpi name in /config/static-network-config.json
 | 
				
			||||||
def notaryCpiName =  'CSDE Notary Server CPI'
 | 
					def notaryCpiName =  'CSDE Notary Server CPI'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -148,6 +146,19 @@ tasks.register("stopCorda") {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					tasks.register("stopAndCleanCorda") {
 | 
				
			||||||
 | 
					    group = cordaGroup
 | 
				
			||||||
 | 
					    dependsOn('clean')
 | 
				
			||||||
 | 
					    doLast {
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            cordaLifeCycle.stopCorda()
 | 
				
			||||||
 | 
					        } catch (Exception ignore) {
 | 
				
			||||||
 | 
					            println("ignoring exception: ${ignore.toString()}")
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        delete devEnvWorkspace
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
tasks.register("getPostgresJDBC") {
 | 
					tasks.register("getPostgresJDBC") {
 | 
				
			||||||
    group = supportingGroup
 | 
					    group = supportingGroup
 | 
				
			||||||
    doLast {
 | 
					    doLast {
 | 
				
			||||||
 | 
				
			|||||||
@ -1,44 +1,22 @@
 | 
				
			|||||||
package com.r3.csde;
 | 
					package com.r3.csde;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import kong.unirest.HttpResponse;
 | 
				
			||||||
import kong.unirest.JsonNode;
 | 
					import kong.unirest.JsonNode;
 | 
				
			||||||
import kong.unirest.Unirest;
 | 
					import kong.unirest.Unirest;
 | 
				
			||||||
import kong.unirest.json.JSONArray;
 | 
					import kong.unirest.json.JSONArray;
 | 
				
			||||||
import kong.unirest.json.JSONObject;
 | 
					import kong.unirest.json.JSONObject;
 | 
				
			||||||
import kong.unirest.HttpResponse;
 | 
					
 | 
				
			||||||
 | 
					import java.util.Arrays;
 | 
				
			||||||
 | 
					import java.util.LinkedList;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// todo: This class needs refactoring, see https://r3-cev.atlassian.net/browse/CORE-11624
 | 
					// todo: This class needs refactoring, see https://r3-cev.atlassian.net/browse/CORE-11624
 | 
				
			||||||
public class CordaStatusQueries {
 | 
					public class CordaStatusQueries {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ProjectContext pc;
 | 
					    ProjectContext pc;
 | 
				
			||||||
    public CordaStatusQueries(ProjectContext _pc){ pc = _pc; }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public CordaStatusQueries(ProjectContext _pc) {
 | 
				
			||||||
    public HttpResponse<JsonNode> getVNodeInfo() {
 | 
					        pc = _pc;
 | 
				
			||||||
        Unirest.config().verifySsl(false);
 | 
					 | 
				
			||||||
        return Unirest.get(pc.baseURL + "/api/v1/virtualnode/")
 | 
					 | 
				
			||||||
                .basicAuth(pc.rpcUser, pc.rpcPasswd)
 | 
					 | 
				
			||||||
                .asJson();
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    public void listVNodesVerbose() {
 | 
					 | 
				
			||||||
        HttpResponse<JsonNode> vnodeResponse = getVNodeInfo();
 | 
					 | 
				
			||||||
        pc.out.println("VNodes:\n" + vnodeResponse.getBody().toPrettyString());
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // X500Name, shorthash, cpiname
 | 
					 | 
				
			||||||
    public void listVNodes() {
 | 
					 | 
				
			||||||
        HttpResponse<JsonNode> vnodeResponse = getVNodeInfo();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        JSONArray virtualNodesJson = (JSONArray) vnodeResponse.getBody().getObject().get("virtualNodes");
 | 
					 | 
				
			||||||
        pc.out.println("X500 Name\tHolding identity short hash\tCPI Name");
 | 
					 | 
				
			||||||
        for(Object o: virtualNodesJson){
 | 
					 | 
				
			||||||
            if(o instanceof JSONObject) {
 | 
					 | 
				
			||||||
                JSONObject idObj = ((JSONObject) o).getJSONObject("holdingIdentity");
 | 
					 | 
				
			||||||
                JSONObject cpiObj = ((JSONObject) o).getJSONObject("cpiIdentifier");
 | 
					 | 
				
			||||||
                pc.out.print("\"" + idObj.get("x500Name") + "\"");
 | 
					 | 
				
			||||||
                pc.out.print("\t\"" + idObj.get("shortHash") + "\"");
 | 
					 | 
				
			||||||
                pc.out.println("\t\"" + cpiObj.get("cpiName") + "\"");
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public HttpResponse<JsonNode> getCpiInfo() {
 | 
					    public HttpResponse<JsonNode> getCpiInfo() {
 | 
				
			||||||
@ -48,17 +26,92 @@ public class CordaStatusQueries {
 | 
				
			|||||||
                .asJson();
 | 
					                .asJson();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public HttpResponse<JsonNode> getVNodeInfo() {
 | 
				
			||||||
 | 
					        Unirest.config().verifySsl(false);
 | 
				
			||||||
 | 
					        return Unirest.get(pc.baseURL + "/api/v1/virtualnode/")
 | 
				
			||||||
 | 
					                .basicAuth(pc.rpcUser, pc.rpcPasswd)
 | 
				
			||||||
 | 
					                .asJson();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // cpiName, cpiVersion
 | 
				
			||||||
    public void listCPIs() {
 | 
					    public void listCPIs() {
 | 
				
			||||||
        HttpResponse<JsonNode> cpiResponse = getCpiInfo();
 | 
					        HttpResponse<JsonNode> cpiResponse = getCpiInfo();
 | 
				
			||||||
        JSONArray jArray = (JSONArray) cpiResponse.getBody().getObject().get("cpis");
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for(Object o: jArray){
 | 
					        JSONArray cpisJson = (JSONArray) cpiResponse.getBody().getObject().get("cpis");
 | 
				
			||||||
            if(o instanceof JSONObject) {
 | 
					
 | 
				
			||||||
 | 
					        List<List<String>> lines = new LinkedList<>();
 | 
				
			||||||
 | 
					        for (Object o : cpisJson) {
 | 
				
			||||||
 | 
					            if (o instanceof JSONObject) {
 | 
				
			||||||
                JSONObject idObj = ((JSONObject) o).getJSONObject("id");
 | 
					                JSONObject idObj = ((JSONObject) o).getJSONObject("id");
 | 
				
			||||||
                pc.out.print("cpiName=" + idObj.get("cpiName"));
 | 
					                String cpiName = idObj.get("cpiName").toString();
 | 
				
			||||||
                pc.out.println(", cpiVersion=" + idObj.get("cpiVersion"));
 | 
					                String cpiVersion = idObj.get("cpiVersion").toString();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                lines.add(Arrays.asList(cpiName, cpiVersion));
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        List<String> title = Arrays.asList("CPI Name", "CPI Version");
 | 
				
			||||||
 | 
					        List<Integer> titleSizes = Arrays.asList(40, 20);
 | 
				
			||||||
 | 
					        printTable(titleSizes, title, lines);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void listVNodesVerbose() {
 | 
				
			||||||
 | 
					        HttpResponse<JsonNode> vnodeResponse = getVNodeInfo();
 | 
				
			||||||
 | 
					        pc.out.println("VNodes:\n" + vnodeResponse.getBody().toPrettyString());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // x500Name, shortHash, cpiName
 | 
				
			||||||
 | 
					    public void listVNodes() {
 | 
				
			||||||
 | 
					        HttpResponse<JsonNode> vnodeResponse = getVNodeInfo();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        JSONArray virtualNodesJson = (JSONArray) vnodeResponse.getBody().getObject().get("virtualNodes");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        List<List<String>> lines = new LinkedList<>();
 | 
				
			||||||
 | 
					        for (Object o : virtualNodesJson) {
 | 
				
			||||||
 | 
					            if (o instanceof JSONObject) {
 | 
				
			||||||
 | 
					                JSONObject idObj = ((JSONObject) o).getJSONObject("holdingIdentity");
 | 
				
			||||||
 | 
					                String x500Name = idObj.get("x500Name").toString();
 | 
				
			||||||
 | 
					                String shortHash = idObj.get("shortHash").toString();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                JSONObject cpiObj = ((JSONObject) o).getJSONObject("cpiIdentifier");
 | 
				
			||||||
 | 
					                String cpiName = cpiObj.get("cpiName").toString();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                lines.add(Arrays.asList(x500Name, shortHash, cpiName));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        List<String> title = Arrays.asList("X500 Name", "Holding identity short hash", "CPI Name");
 | 
				
			||||||
 | 
					        List<Integer> titleSizes = Arrays.asList(60, 30, 40);
 | 
				
			||||||
 | 
					        printTable(titleSizes, title, lines);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void printTable(List<Integer> titleSizes, List<String> title, List<List<String>> lines) {
 | 
				
			||||||
 | 
					        int width = titleSizes.stream().reduce(0, Integer::sum);
 | 
				
			||||||
 | 
					        String separator = "-".repeat(width + 1);
 | 
				
			||||||
 | 
					        pc.out.println(separator);
 | 
				
			||||||
 | 
					        pc.out.println(formatLine(titleSizes, title));
 | 
				
			||||||
 | 
					        pc.out.println(separator);
 | 
				
			||||||
 | 
					        for (List<String> line : lines) {
 | 
				
			||||||
 | 
					            pc.out.println(formatLine(titleSizes, line));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        pc.out.println(separator);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String formatLine(List<Integer> titleSizes, List<String> line) {
 | 
				
			||||||
 | 
					        StringBuilder sb = new StringBuilder();
 | 
				
			||||||
 | 
					        int delta = 0;
 | 
				
			||||||
 | 
					        for (int i = 0; i < titleSizes.size(); i++) {
 | 
				
			||||||
 | 
					            String s = line.get(i);
 | 
				
			||||||
 | 
					            sb.append("| ").append(s);
 | 
				
			||||||
 | 
					            delta += titleSizes.get(i) - (2 + s.length());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (delta > 0) {
 | 
				
			||||||
 | 
					                sb.append(" ".repeat(delta));
 | 
				
			||||||
 | 
					                delta = 0;
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                sb.append(" ");
 | 
				
			||||||
 | 
					                delta -= 1;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        sb.append("|");
 | 
				
			||||||
 | 
					        return sb.toString();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user