#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);
+int docker_pull(const char *repo, const char *image, const char *tag);