curl_easy_reset(curl);
set_curl_common_info();
- char url[100];
- sprintf(url, "http:/v%s/containers/NTS_Manager/json", getenv("DOCKER_ENGINE_VERSION"));
+ char url[200];
+ sprintf(url, "http:/v%s/containers/%s/json", getenv("DOCKER_ENGINE_VERSION"), getenv("HOSTNAME"));
curl_easy_setopt(curl, CURLOPT_URL, url);
return NULL;
}
+ if (cJSON_AddStringToObject(labels, "NTS_Manager", getenv("HOSTNAME")) == NULL)
+ {
+ printf("Could not create JSON object: NTS Manager\n");
+ return NULL;
+ }
+
cJSON *env_variables_array = cJSON_CreateArray();
if (env_variables_array == NULL)
{
printf("Could not kill and remove docker container with uuid=\"%s\"\n", last_id);
}
+ rc = removeDeviceEntryFromStatusFile(last_id);
+ if (rc != SR_ERR_OK)
+ {
+ printf("Could not remove entry from status file for uuid=\"%s\"\n", last_id);
+ }
+
pop_device(theStack);
return SR_ERR_OK;
if (rc != SR_ERR_OK)
{
printf("Could not set the operational state for the device with uuid=\"%s\"\n", container_id_short);
+ return SR_ERR_OPERATION_FAILED;
}
}
}
return NULL; /* return with exit code indicating success. */
}
-int notification_delay_period_changed(int period)
+int notification_delay_period_changed(sr_val_t *val, size_t count)
{
char *stringConfiguration = readConfigFileInString();
if (!cJSON_IsObject(notifConfig))
{
printf("Configuration JSON is not as expected: notification-config is not an object");
- free(jsonConfig);
+ cJSON_Delete(jsonConfig);
return SR_ERR_OPERATION_FAILED;
}
cJSON *faultNotifDelay = cJSON_GetObjectItemCaseSensitive(notifConfig, "fault-notification-delay-period");
- if (!cJSON_IsNumber(faultNotifDelay))
+ if (!cJSON_IsArray(faultNotifDelay))
{
- printf("Configuration JSON is not as expected: fault-notification-delay-period is not an object");
- free(jsonConfig);
+ printf("Configuration JSON is not as expected: fault-notification-delay-period is not an array.");
+ cJSON_Delete(jsonConfig);
return SR_ERR_OPERATION_FAILED;
}
- //we set the value of the fault-notification-delay-period object
- cJSON_SetNumberValue(faultNotifDelay, period);
+ cJSON_DeleteItemFromObject(notifConfig, "fault-notification-delay-period");
+
+ faultNotifDelay = NULL;
+
+ faultNotifDelay = cJSON_CreateArray();
+ if (faultNotifDelay == NULL)
+ {
+ cJSON_Delete(jsonConfig);
+ return SR_ERR_OPERATION_FAILED;
+ }
+ cJSON_AddItemToObject(notifConfig, "fault-notification-delay-period", faultNotifDelay);
+
+ if (val != NULL && count > 0)
+ {
+ cJSON *arrayEntry = NULL;
+ for (size_t i=0; i<count; ++i)
+ {
+ arrayEntry = cJSON_CreateNumber(val[i].data.uint32_val);
+ if (arrayEntry == NULL)
+ {
+ cJSON_Delete(jsonConfig);
+ return SR_ERR_OPERATION_FAILED;
+ }
+ cJSON_AddItemToArray(faultNotifDelay, arrayEntry);
+ }
+ }
+ else
+ {
+ cJSON *arrayEntry = cJSON_CreateNumber(0);
+ if (arrayEntry == NULL)
+ {
+ cJSON_Delete(jsonConfig);
+ return SR_ERR_OPERATION_FAILED;
+ }
+ cJSON_AddItemToArray(faultNotifDelay, arrayEntry);
+ }
//writing the new JSON to the configuration file
stringConfiguration = cJSON_Print(jsonConfig);
writeConfigFile(stringConfiguration);
- free(jsonConfig);
+ cJSON_Delete(jsonConfig);
return SR_ERR_OK;
}
if (!cJSON_IsObject(notifConfig))
{
printf("Configuration JSON is not as expected: notification-config is not an object");
- free(jsonConfig);
+ cJSON_Delete(jsonConfig);
return SR_ERR_OPERATION_FAILED;
}
if (!cJSON_IsNumber(vesHeartbeatPeriod))
{
printf("Configuration JSON is not as expected: ves-heartbeat-period is not an object");
- free(jsonConfig);
+ cJSON_Delete(jsonConfig);
return SR_ERR_OPERATION_FAILED;
}
stringConfiguration = cJSON_Print(jsonConfig);
writeConfigFile(stringConfiguration);
- free(jsonConfig);
+ cJSON_Delete(jsonConfig);
return SR_ERR_OK;
}
if (!cJSON_IsObject(vesDetails))
{
printf("Configuration JSON is not as expected: ves-endpoint-details is not an object");
- free(jsonConfig);
+ cJSON_Delete(jsonConfig);
return SR_ERR_OPERATION_FAILED;
}
if (!cJSON_IsString(vesIp))
{
printf("Configuration JSON is not as expected: ves-endpoint-ip is not a string");
- free(jsonConfig);
+ cJSON_Delete(jsonConfig);
return SR_ERR_OPERATION_FAILED;
}
stringConfiguration = cJSON_Print(jsonConfig);
writeConfigFile(stringConfiguration);
- free(jsonConfig);
+ cJSON_Delete(jsonConfig);
return SR_ERR_OK;
}
if (!cJSON_IsObject(vesDetails))
{
printf("Configuration JSON is not as expected: ves-endpoint-details is not an object");
- free(jsonConfig);
+ cJSON_Delete(jsonConfig);
return SR_ERR_OPERATION_FAILED;
}
if (!cJSON_IsNumber(vesPort))
{
printf("Configuration JSON is not as expected: ves-endpoint-port is not a number.");
- free(jsonConfig);
+ cJSON_Delete(jsonConfig);
return SR_ERR_OPERATION_FAILED;
}
stringConfiguration = cJSON_Print(jsonConfig);
writeConfigFile(stringConfiguration);
- free(jsonConfig);
+ cJSON_Delete(jsonConfig);
return SR_ERR_OK;
}
if (!cJSON_IsObject(vesDetails))
{
printf("Configuration JSON is not as expected: ves-endpoint-details is not an object");
- free(jsonConfig);
+ cJSON_Delete(jsonConfig);
return SR_ERR_OPERATION_FAILED;
}
if (!cJSON_IsBool(vesRegistration))
{
printf("Configuration JSON is not as expected: ves-registration is not a bool.");
- free(jsonConfig);
+ cJSON_Delete(jsonConfig);
return SR_ERR_OPERATION_FAILED;
}
stringConfiguration = cJSON_Print(jsonConfig);
writeConfigFile(stringConfiguration);
- free(jsonConfig);
+ cJSON_Delete(jsonConfig);
return SR_ERR_OK;
}
if (!cJSON_IsObject(notifConfig))
{
printf("Configuration JSON is not as expected: notification-config is not an object");
- free(jsonConfig);
+ cJSON_Delete(jsonConfig);
return SR_ERR_OPERATION_FAILED;
}
if (!cJSON_IsBool(isNetconfAvailable))
{
printf("Configuration JSON is not as expected: is-netconf-available is not a bool.");
- free(jsonConfig);
+ cJSON_Delete(jsonConfig);
return SR_ERR_OPERATION_FAILED;
}
stringConfiguration = cJSON_Print(jsonConfig);
writeConfigFile(stringConfiguration);
- free(jsonConfig);
+ cJSON_Delete(jsonConfig);
return SR_ERR_OK;
}
if (!cJSON_IsObject(notifConfig))
{
printf("Configuration JSON is not as expected: notification-config is not an object");
- free(jsonConfig);
+ cJSON_Delete(jsonConfig);
return SR_ERR_OPERATION_FAILED;
}
if (!cJSON_IsBool(isVesAvailable))
{
printf("Configuration JSON is not as expected: is-ves-available is not a bool.");
- free(jsonConfig);
+ cJSON_Delete(jsonConfig);
return SR_ERR_OPERATION_FAILED;
}
stringConfiguration = cJSON_Print(jsonConfig);
writeConfigFile(stringConfiguration);
- free(jsonConfig);
+ cJSON_Delete(jsonConfig);
return SR_ERR_OK;
}