Skip to content
This repository has been archived by the owner on Jan 13, 2025. It is now read-only.

Commit

Permalink
[feat][cli][v0.1.0]: add more cli functions
Browse files Browse the repository at this point in the history
  • Loading branch information
zouxyan committed Dec 21, 2023
1 parent 3dcf340 commit c256b97
Show file tree
Hide file tree
Showing 11 changed files with 85 additions and 45 deletions.
22 changes: 2 additions & 20 deletions .github/workflows/install_acbsdk.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,26 +18,8 @@

CURR_DIR="$(cd `dirname $0`; pwd)"

echo "install BID SDK ..."
git clone -b release/1.0.0 https://github.com/caict-4iot-dev/BID-SDK-JAVA.git
cd BID-SDK-JAVA/BID-SDK
mvn install -Dmaven.test.skip=true
cd -
git clone -b release/1.0.2 https://github.com/caict-4iot-dev/BIF-Core-SDK.git
cd BIF-Core-SDK/bif-chain-sdk
mvn install -Dmaven.test.skip=true
cd -
echo "install BID SDK finished"

echo "install ACB SDK ..."
git clone -b feat/bcdns_support https://github.com/AntChainOpenLabs/AntChainBridgePluginSDK.git
cd AntChainBridgePluginSDK/antchain-bridge-commons
mvn install -Dmaven.test.skip=true
cd -
cd AntChainBridgePluginSDK/antchain-bridge-spi
mvn install -Dmaven.test.skip=true
cd -
cd AntChainBridgePluginSDK/antchain-bridge-bcdns
git clone -b dev/v0.2.0-SNAPSHOT https://github.com/AntChainOpenLabs/AntChainBridgePluginSDK.git
cd AntChainBridgePluginSDK
mvn install -Dmaven.test.skip=true
cd -
echo "install ACB SDK finished"
1 change: 1 addition & 0 deletions r-bootstrap/desc_tar.xml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
<outputDirectory>${file.separator}config</outputDirectory>
<includes>
<include>application.yml</include>
<include>db${file.separator}ddl.sql</include>
</includes>
</fileSet>
<fileSet>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -177,8 +177,8 @@ public void testQueryAndSaveDomainCertificateFromBCDNS() {
new QueryDomainNameCertificateResponse(true, antchainDotCommCert)
);

AbstractCrossChainCertificate certificate = bcdnsManager.queryAndSaveDomainCertificateFromBCDNS(
antChainDotComDomain, CrossChainDomain.ROOT_DOMAIN_SPACE
AbstractCrossChainCertificate certificate = bcdnsManager.queryDomainCertificateFromBCDNS(
antChainDotComDomain, CrossChainDomain.ROOT_DOMAIN_SPACE, true
);
Assert.assertNotNull(certificate);
Assert.assertEquals(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,12 @@ Object fetchDomainNameCertFromBCDNS(@ArgsConstraint(name = "domain") String doma
return queryAPI("fetchDomainNameCertFromBCDNS", domain, domainSpace);
}

Object queryDomainNameCertFromBCDNS(@ArgsConstraint(name = "domain") String domain,
@ArgsConstraint(name = "domainSpace") String domainSpace) {

return queryAPI("queryDomainNameCertFromBCDNS", domain, domainSpace);
}

Object registerDomainRouter(@ArgsConstraint(name = "domain") String domain) {

return queryAPI("registerDomainRouter", domain);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,13 @@ Object getBlockchain(@ArgsConstraint(name = "product") String product,
return queryAPI("getBlockchain", product, blockchainId);
}

Object addHeteroBlockchainAnchor(
Object getBlockchainContracts(@ArgsConstraint(name = "product") String product,
@ArgsConstraint(name = "blockchainId") String blockchainId) {

return queryAPI("getBlockchainContracts", product, blockchainId);
}

Object addBlockchainAnchor(
@ArgsConstraint(name = "product") String product,
@ArgsConstraint(name = "blockchainId") String blockchainId,
@ArgsConstraint(name = "domain") String domain,
Expand All @@ -53,7 +59,7 @@ Object addHeteroBlockchainAnchor(
) {

return queryAPI(
"addHeteroBlockchainAnchor",
"addBlockchainAnchor",
product, blockchainId, domain, pluginServerId, alias, desc, heteroConfFilePath
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,23 +37,19 @@

public class Shell {

private static String PROMPT = "\033[0;37mrelayer> \033[0m";
private static final String PROMPT = "\n\033[0;37mrelayer> \033[0m";

private NamespaceManager namespaceManager;

private Terminal terminal;
private final NamespaceManager namespaceManager;

private GlLineReader reader;

private Map<String, ReservedWord> reservedWord = new HashMap<>();

private AtomicBoolean loopRunning = new AtomicBoolean(false);
private final Map<String, ReservedWord> reservedWord = new HashMap<>();

private ReentrantLock shellLock = new ReentrantLock();
private final AtomicBoolean loopRunning = new AtomicBoolean(false);

private PromptCompleter completer;
private final ReentrantLock shellLock = new ReentrantLock();

private ShellProvider shellProvider;
private final ShellProvider shellProvider;

public final static Runtime Runtime = new Runtime();

Expand All @@ -67,8 +63,7 @@ public Shell(ShellProvider shellProvider, PromptCompleter completer, GrpcClient
this.shellProvider = shellProvider;
this.namespaceManager = namespaceManager;

this.completer = completer;
this.reservedWord.keySet().forEach(reservedWord -> this.completer.addReservedWord(reservedWord));
this.reservedWord.keySet().forEach(completer::addReservedWord);

reader.setCompleter(completer);

Expand All @@ -78,6 +73,7 @@ public Shell(ShellProvider shellProvider, PromptCompleter completer, GrpcClient

void init() {
// init term
Terminal terminal;
try {
terminal = TerminalBuilder.builder()
.system(true)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -467,7 +467,7 @@ public String applyDomainCertificate(String domainSpace, String domain, ObjectId
}

@Override
public AbstractCrossChainCertificate queryAndSaveDomainCertificateFromBCDNS(String domain, String domainSpace) {
public AbstractCrossChainCertificate queryDomainCertificateFromBCDNS(String domain, String domainSpace, boolean saveOrNot) {
log.info("try to get domain cert of {} from BCDNS {}", domain, domainSpace);
try {
IBlockChainDomainNameService bcdnsService = getBCDNSService(domainSpace);
Expand Down Expand Up @@ -499,7 +499,9 @@ public AbstractCrossChainCertificate queryAndSaveDomainCertificateFromBCDNS(Stri
)
);
}
blockchainRepository.saveDomainCert(new DomainCertWrapper(response.getCertificate()));
if (saveOrNot) {
blockchainRepository.saveDomainCert(new DomainCertWrapper(response.getCertificate()));
}
return response.getCertificate();
}
return null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ boolean validateCrossChainCertificate(

String applyDomainCertificate(String domainSpace, String domain, ObjectIdentity applicantOid, byte[] rawSubject);

AbstractCrossChainCertificate queryAndSaveDomainCertificateFromBCDNS(String domain, String domainSpace);
AbstractCrossChainCertificate queryDomainCertificateFromBCDNS(String domain, String domainSpace, boolean saveOrNot);

List<DomainCertApplicationDO> getAllApplyingDomainCertApplications();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -294,6 +294,9 @@ public void startBlockchainAnchor(String product, String blockchainId) {
}

blockchainMeta.getProperties().setAnchorRuntimeStatus(BlockchainStateEnum.RUNNING);
if (ObjectUtil.isNull(blockchainMeta.getProperties().getAmServiceStatus())) {
blockchainMeta.getProperties().setAmServiceStatus(OnChainServiceStatusEnum.INIT);
}
if (!updateBlockchainMeta(blockchainMeta)) {
throw new RuntimeException(
StrUtil.format(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ public BCDNSNamespace() {
addCommand("applyDomainNameCert", this::applyDomainNameCert);
addCommand("queryDomainCertApplicationState", this::queryDomainCertApplicationState);
addCommand("fetchDomainNameCertFromBCDNS", this::fetchDomainNameCertFromBCDNS);
addCommand("queryDomainNameCertFromBCDNS", this::queryDomainNameCertFromBCDNS);
addCommand("registerDomainRouter", this::registerDomainRouter);
addCommand("queryDomainRouter", this::queryDomainRouter);
addCommand("addBlockchainTrustAnchor", this::addBlockchainTrustAnchor);
Expand Down Expand Up @@ -214,7 +215,7 @@ Object applyDomainNameCert(String... args) {
return "your receipt is " + receipt;
} catch (Throwable e) {
log.error("failed to apply domain cert from domain space [{}]", args[0], e);
return "failed to restart BCDNS: " + e.getMessage();
return "failed to apply domain cert : " + e.getMessage();
}
}

Expand All @@ -235,11 +236,11 @@ Object queryDomainCertApplicationState(String... args) {
return "your application not finished: " + domainCertApplicationDO.getState().getCode();
} catch (Throwable e) {
log.error("failed to query domain cert from BCDNS with domain space [{}]", args[0], e);
return "failed to restart BCDNS: " + e.getMessage();
return "failed to query domain cert: " + e.getMessage();
}
}

Object fetchDomainNameCertFromBCDNS(String... args) {
Object queryDomainNameCertFromBCDNS(String... args) {
if (args.length != 2) {
return "wrong number of arguments";
}
Expand All @@ -248,7 +249,7 @@ Object fetchDomainNameCertFromBCDNS(String... args) {
String domainSpace = args[1];

try {
AbstractCrossChainCertificate certificate = bcdnsManager.queryAndSaveDomainCertificateFromBCDNS(domain, domainSpace);
AbstractCrossChainCertificate certificate = bcdnsManager.queryDomainCertificateFromBCDNS(domain, domainSpace, false);
if (ObjectUtil.isNull(certificate)) {
return StrUtil.format("none cert found for domain {} on BCDNS {}", domain, domainSpace);
}
Expand All @@ -259,6 +260,26 @@ Object fetchDomainNameCertFromBCDNS(String... args) {
}
}

Object fetchDomainNameCertFromBCDNS(String... args) {
if (args.length != 2) {
return "wrong number of arguments";
}

String domain = args[0];
String domainSpace = args[1];

try {
AbstractCrossChainCertificate certificate = bcdnsManager.queryDomainCertificateFromBCDNS(domain, domainSpace, true);
if (ObjectUtil.isNull(certificate)) {
return StrUtil.format("none cert found for domain {} on BCDNS {}", domain, domainSpace);
}
return "the cert is : \n" + CrossChainCertificateUtil.formatCrossChainCertificateToPem(certificate);
} catch (Throwable e) {
log.error("failed to query from BCDNS:", e);
return "failed to query from BCDNS: " + ObjectUtil.defaultIfNull(e.getCause(), e).getMessage();
}
}

Object registerDomainRouter(String... args) {
if (args.length != 1) {
return "wrong number of arguments";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,8 @@ public class BlockchainNamespace extends AbstractNamespace {
public BlockchainNamespace() {
addCommand("getBlockchainIdByDomain", this::getBlockchainIdByDomain);
addCommand("getBlockchain", this::getBlockchain);
addCommand("addHeteroBlockchainAnchor", this::addHeteroBlockchainAnchor);
addCommand("getBlockchainContracts", this::getBlockchainContracts);
addCommand("addBlockchainAnchor", this::addBlockchainAnchor);
addCommand("deployBBCContractsAsync", this::deployBBCContractsAsync);
addCommand("updateBlockchainAnchor", this::updateBlockchainAnchor);
addCommand("updateBlockchainProperty", this::updateBlockchainProperty);
Expand Down Expand Up @@ -107,7 +108,29 @@ Object getBlockchain(String... args) {
return JSONObject.toJSONString(blockchainMeta, SerializerFeature.PrettyFormat);
}

Object addHeteroBlockchainAnchor(String... args) {
/**
* 查询区块链
*
* @return
*/
Object getBlockchainContracts(String... args) {
String product = args[0];
String blockchainId = args[1];

BlockchainMeta blockchainMeta = blockchainManager.getBlockchainMeta(product, blockchainId);
if (blockchainMeta == null) {
return "blockchain not exist.";
}

JSONObject jsonObject = new JSONObject();
jsonObject.put("state", ObjectUtil.defaultIfNull(blockchainMeta.getProperties().getAmServiceStatus(), ""));
jsonObject.put("am_contract", ObjectUtil.defaultIfEmpty(blockchainMeta.getProperties().getAmClientContractAddress(), "empty"));
jsonObject.put("sdp_contract", ObjectUtil.defaultIfEmpty(blockchainMeta.getProperties().getSdpMsgContractAddress(), "empty"));

return jsonObject.toJSONString();
}

Object addBlockchainAnchor(String... args) {
if (args.length != 7) {
return "wrong number of arguments";
}
Expand Down

0 comments on commit c256b97

Please sign in to comment.