in src/main/java/com/awslabs/aws/greengrass/provisioner/implementations/helpers/BasicConfigFileHelper.java [52:118]
public String generateConfigJson(String caPath, String certPath, String keyPath, ThingArn coreThingArn, String iotHost, Region region, DeploymentArguments deploymentArguments, boolean functionsRunningAsRoot) {
Map<String, Object> coreThingMap = new HashMap<>();
Map<String, Object> runtimeMap = new HashMap<>();
Map<String, Object> cgroupMap = new HashMap<>();
Map<String, Object> cryptoMap = new HashMap<>();
Map<String, Object> principalsMap = new HashMap<>();
Map<String, Object> SecretsManagerMap = new HashMap<>();
Map<String, Object> IoTCertificateMap = new HashMap<>();
Map<String, Object> MQTTServerCertificate = new HashMap<>();
Map<String, Object> PKCS11Map = new HashMap<>();
coreThingMap.put(THING_ARN, coreThingArn.getArn());
coreThingMap.put(IOT_HOST, iotHost);
coreThingMap.put(GG_HOST, ggVariables.getGgHost(region));
coreThingMap.put(GG_MQTT_PORT, deploymentArguments.mqttPort);
if (deploymentArguments.noSystemD) {
cgroupMap.put(USE_SYSTEMD, NO);
} else {
cgroupMap.put(USE_SYSTEMD, YES);
}
runtimeMap.put(CGROUP, cgroupMap);
if (functionsRunningAsRoot) {
runtimeMap.put(ALLOW_FUNCTIONS_TO_RUN_AS_ROOT, YES);
}
cryptoMap.put(PRINCIPALS, principalsMap);
IoTCertificateMap.put(CERTIFICATE_PATH, CERTS_URI + certPath);
principalsMap.put(SECRETS_MANAGER, SecretsManagerMap);
principalsMap.put(IOT_CERTIFICATE, IoTCertificateMap);
principalsMap.put(MQTT_SERVER_CERTIFICATE, MQTTServerCertificate);
if (deploymentArguments.hsiParameters != null) {
HsiParameters hsiParameters = deploymentArguments.hsiParameters;
SecretsManagerMap.put(PRIVATE_KEY_PATH, hsiParameters.getPkcsPath());
IoTCertificateMap.put(PRIVATE_KEY_PATH, hsiParameters.getPkcsPath());
MQTTServerCertificate.put(PRIVATE_KEY_PATH, hsiParameters.getPkcsPath());
PKCS11Map.put(P_11_PROVIDER, hsiParameters.getP11Provider());
PKCS11Map.put(SLOT_LABEL, hsiParameters.getSlotLabel());
PKCS11Map.put(SLOT_USER_PIN, hsiParameters.getSlotUserPin());
hsiParameters.getOpenSSLEngine().ifPresent(openSslEngine -> PKCS11Map.put(OPENSSL_ENGINE, openSslEngine));
cryptoMap.put(PKCS_11, PKCS11Map);
} else {
// Avoids "private key for MqttCertificate is not set" error/warning
SecretsManagerMap.put(PRIVATE_KEY_PATH, CERTS_URI + keyPath);
IoTCertificateMap.put(PRIVATE_KEY_PATH, CERTS_URI + keyPath);
MQTTServerCertificate.put(PRIVATE_KEY_PATH, CERTS_URI + keyPath);
}
cryptoMap.put(CA_PATH, CERTS_URI + caPath);
Map<String, Object> config = new HashMap<>();
config.put(CORE_THING, coreThingMap);
config.put(RUNTIME, runtimeMap);
config.put(MANAGED_RESPAWN, false);
config.put(CRYPTO, cryptoMap);
return jsonHelper.toJson(config);
}