aboutsummaryrefslogtreecommitdiff
path: root/src/testbed/testbed_api_hosts.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/testbed/testbed_api_hosts.h')
-rw-r--r--src/testbed/testbed_api_hosts.h130
1 files changed, 92 insertions, 38 deletions
diff --git a/src/testbed/testbed_api_hosts.h b/src/testbed/testbed_api_hosts.h
index 401d4e0..c0f4290 100644
--- a/src/testbed/testbed_api_hosts.h
+++ b/src/testbed/testbed_api_hosts.h
@@ -23,16 +23,17 @@
* @brief internal API to access the 'hosts' subsystem
* @author Christian Grothoff
*/
+
#ifndef NEW_TESTING_API_HOSTS_H
#define NEW_TESTING_API_HOSTS_H
#include "gnunet_testbed_service.h"
-#include "gnunet_helper_lib.h"
+#include "testbed_helper.h"
/**
* Lookup a host by ID.
- *
+ *
* @param id global host ID assigned to the host; 0 is
* reserved to always mean 'localhost'
* @return handle to the host, NULL on error
@@ -45,7 +46,7 @@ GNUNET_TESTBED_host_lookup_by_id_ (uint32_t id);
* Create a host by ID; given this host handle, we could not
* run peers at the host, but we can talk about the host
* internally.
- *
+ *
* @param id global host ID assigned to the host; 0 is
* reserved to always mean 'localhost'
* @return handle to the host, NULL on error
@@ -55,51 +56,104 @@ GNUNET_TESTBED_host_create_by_id_ (uint32_t id);
/**
- * Create a host to run peers and controllers on. This function is used
- * if a peer learns about a host via IPC between controllers (and thus
- * some higher-level controller has already determined the unique IDs).
- *
- * @param id global host ID assigned to the host; 0 is
- * reserved to always mean 'localhost'
- * @param hostname name of the host, use "NULL" for localhost
- * @param username username to use for the login; may be NULL
- * @param port port number to use for ssh; use 0 to let ssh decide
- * @return handle to the host, NULL on error
- */
-struct GNUNET_TESTBED_Host *
-GNUNET_TESTBED_host_create_with_id_ (uint32_t id,
- const char *hostname,
- const char *username,
- uint16_t port);
-
-
-/**
* Obtain a host's unique global ID.
- *
+ *
* @param host handle to the host, NULL means 'localhost'
* @return id global host ID assigned to the host (0 is
* 'localhost', but then obviously not globally unique)
*/
uint32_t
-GNUNET_TESTBED_host_get_id_ (struct GNUNET_TESTBED_Host *host);
+GNUNET_TESTBED_host_get_id_ (const struct GNUNET_TESTBED_Host *host);
/**
- * Run a given helper process at the given host. Communication
- * with the helper will be via GNUnet messages on stdin/stdout.
- * Runs the process via 'ssh' at the specified host, or locally.
- * Essentially an SSH-wrapper around the 'gnunet_helper_lib.h' API.
- *
- * @param host host to use, use "NULL" for localhost
- * @param binary_argv binary name and command-line arguments to give to the binary
- * @param cb function to call for messages received from the binary
- * @param cb_cls closure for cb
- * @return handle to terminate the command, NULL on error
+ * Obtain the host's username
+ *
+ * @param host handle to the host, NULL means 'localhost'
+ * @return username to login to the host
+ */
+const char *
+GNUNET_TESTBED_host_get_username_ (const struct GNUNET_TESTBED_Host *host);
+
+
+/**
+ * Obtain the host's ssh port
+ *
+ * @param host handle to the host, NULL means 'localhost'
+ * @return username to login to the host
*/
-struct GNUNET_HELPER_Handle *
-GNUNET_TESTBED_host_run_ (struct GNUNET_TESTBED_Host *host,
- char *const binary_argv[],
- GNUNET_SERVER_MessageTokenizerCallback cb, void *cb_cls);
+uint16_t
+GNUNET_TESTBED_host_get_ssh_port_ (const struct GNUNET_TESTBED_Host *host);
+
+
+/**
+ * Opaque wrapper around GNUNET_HELPER_Handle
+ */
+struct GNUNET_TESTBED_HelperHandle;
+
+
+/* /\** */
+/* * Run a given helper process at the given host. Communication */
+/* * with the helper will be via GNUnet messages on stdin/stdout. */
+/* * Runs the process via 'ssh' at the specified host, or locally. */
+/* * Essentially an SSH-wrapper around the 'gnunet_helper_lib.h' API. */
+/* * */
+/* * @param controller_ip the ip address of the controller. Will be set as TRUSTED */
+/* * host when starting testbed controller at host */
+/* * @param host host to use, use "NULL" for localhost */
+/* * @param binary_argv binary name and command-line arguments to give to the */
+/* * binary */
+/* * @param cfg template configuration to use for the remote controller; the */
+/* * remote controller will be started with a slightly modified */
+/* * configuration (port numbers, unix domain sockets and service home */
+/* * values are changed as per TESTING library on the remote host) */
+/* * @param cb the callback to run when helper process dies; cannot be NULL */
+/* * @param cb_cls the closure for the above callback */
+/* * @return handle to terminate the command, NULL on error */
+/* *\/ */
+/* struct GNUNET_TESTBED_HelperHandle * */
+/* GNUNET_TESTBED_host_run_ (const char *controller_ip, */
+/* const struct GNUNET_TESTBED_Host *host, */
+/* const struct GNUNET_CONFIGURATION_Handle *cfg, */
+/* GNUNET_HELPER_ExceptionCallback cb, */
+/* void *cb_cls); */
+
+
+
+/* /\** */
+/* * Stops a helper in the HelperHandle using GNUNET_HELPER_stop */
+/* * */
+/* * @param handle the handle returned from GNUNET_TESTBED_host_start_ */
+/* *\/ */
+/* void */
+/* GNUNET_TESTBED_host_stop_ (struct GNUNET_TESTBED_HelperHandle *handle); */
+
+
+/**
+ * Marks a host as registered with a controller
+ *
+ * @param host the host to mark
+ * @param controller the controller at which this host is registered
+ */
+void
+GNUNET_TESTBED_mark_host_registered_at_ (struct GNUNET_TESTBED_Host *host,
+ const struct GNUNET_TESTBED_Controller
+ *controller);
+
+
+/**
+ * Checks whether a host has been registered with the given controller
+ *
+ * @param host the host to check
+ * @param controller the controller at which host's registration is checked
+ * @return GNUNET_YES if registered; GNUNET_NO if not
+ */
+int
+GNUNET_TESTBED_is_host_registered_ (const struct GNUNET_TESTBED_Host *host,
+ const struct GNUNET_TESTBED_Controller
+ *controller);
+
+
#endif
/* end of testbed_api_hosts.h */