private void registerCaCertIfNeeded(String caCert, String caKey, Operation startOp) {
Operation.createGet(this, ManagementUriParts.AUTH_CREDENTIALS_CA_LINK)
.setCompletion((o, e) -> {
String cert = caCert;
String key = caKey;
if (caCert == null || caKey == null) {
cert = loadFileContent(CA_CERT_PEM_FILE, true);
key = loadFileContent(CA_KEY_PEM_FILE, true);
}
if (e != null) {
registerCaCert(cert, key, startOp);
return;
}
AuthCredentialsServiceState caCred = o
.getBody(AuthCredentialsServiceState.class);
if (caCred.publicKey.equals(cert)) {
registerClientCredIfNeeded(caCred, cert, key, startOp);
} else {
registerCaCert(cert, key, startOp);
}
})
.sendWith(this);
}