Add supoprt for D release use-case.
[sim/o1-interface.git] / ntsimulator / ntsim-ng / core / docker.h
index 0185594..a44cab6 100644 (file)
 #pragma once
 
 #include <stdbool.h>
-#include "core/app/manager.h"
+#include <stdint.h>
+
+typedef struct {
+    char *repo;
+    char *tag;
+} docker_available_images_t;
+
+typedef struct {
+    char *image;
+    docker_available_images_t *available_images;
+    int available_images_count;
+} docker_context_t;
+
+typedef struct {
+    char *name;
+    char *id;
+
+    char *docker_ip;
+    uint16_t docker_netconf_ssh_port;
+    uint16_t docker_netconf_tls_port;
+    uint16_t docker_ftp_port;
+    uint16_t docker_sftp_port;
+
+    char *host_ip;
+    uint16_t host_netconf_ssh_port;
+    uint16_t host_netconf_tls_port;
+    uint16_t host_ftp_port;
+    uint16_t host_sftp_port;
+} docker_container_t;
 
 typedef struct {
     float cpu;
     float mem;
 } docker_usage_t;
 
-//init current container. used *only* with --docker-init
-bool docker_container_init(void);
-
 //docker container functions for manager
-int docker_device_init(void);
-int docker_device_start(const manager_network_function_type *function_type, manager_network_function_instance_t *instance);
-int docker_device_stop(manager_network_function_instance_t *instance);
+int docker_init(const char **filter, int filter_count, const char *min_version, docker_context_t **context);
+void docker_free(docker_context_t *context, int count);
+
+int docker_start(const char *container_name, const char *tag, const char *image, const char *repo, uint16_t host_netconf_ssh_port, uint16_t host_netconf_tls_port, uint16_t host_ftp_port, uint16_t host_sftp_port, docker_container_t *container);
+int docker_stop(docker_container_t *container);
 
-docker_usage_t docker_usage_get(const manager_network_function_type *function_type, int function_type_count);
+int docker_usage_get(const char **instances_id, int count, docker_usage_t *usage);