[lib] Replace host_{add,remove} with read_hosts_config function
authorMatthias Bolte <matthias.bolte@googlemail.com>
Thu, 30 Apr 2009 22:16:07 +0000 (00:16 +0200)
committerMatthias Bolte <matthias.bolte@googlemail.com>
Thu, 30 Apr 2009 23:12:46 +0000 (01:12 +0200)
Signed-off-by: Matthias Bolte <matthias.bolte@googlemail.com>

Makefile
include/libvscmgmt/host.h
include/libvscmgmt/network.h
include/libvscmgmt/types.h
lib/host.c
lib/host.h
lib/types.h [new file with mode: 0644]
python/module.c
tests/host.c
utils/host.c
utils/host.h

index e64b263..e17370e 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -13,11 +13,11 @@ PWD = $(shell pwd)
 
 .PHONY: all clean install check docs
 
-all: backend-all utils-all lib-all daemon-all proxy-all cli-all python-all tests-all
+all: backend-all utils-all lib-all cli-all python-all tests-all
 
-clean: backend-clean utils-clean lib-clean daemon-clean proxy-clean cli-clean python-clean tests-clean
+clean: backend-clean utils-clean lib-clean cli-clean python-clean tests-clean
 
-install: backend-install utils-install lib-install daemon-install proxy-install cli-install python-install include-install
+install: backend-install utils-install lib-install cli-install python-install include-install
 
 check: all
        $(MAKE) -I $(PWD) -C tests check
index 7a39ca8..7573538 100644 (file)
@@ -30,13 +30,10 @@ extern "C" {
 #endif
 
 void
-vsc_mgmt_host_add (struct VscError *error, const struct VscMgmtIpv4 *host_ipv4,
-                   enum VscMgmtHostType host_type, const char *username,
-                   const char *password);
+vsc_mgmt_read_hosts_config (struct VscError *error, const char *filename);
 
-void
-vsc_mgmt_host_remove (struct VscError *error,
-                      const struct VscMgmtIpv4 *host_ipv4);
+struct VscMgmtIpv4 * /* host_ipv4_list */
+vsc_mgmt_get_host_list (struct VscError *error);
 
 void
 vsc_mgmt_host_get_info (struct VscError *error,
@@ -47,16 +44,6 @@ struct VscMgmtUuid * /* vm_uuid_list */
 vsc_mgmt_host_get_vm_list (struct VscError *error,
                            const struct VscMgmtIpv4 *host_ipv4);
 
-struct VscMgmtIpv4 * /* host_ipv4_list */
-vsc_mgmt_host_get_list (struct VscError *error);
-
-enum VscMgmtHostType /* host_type */
-vsc_mgmt_host_type_parse (struct VscError *error,
-                          const char *host_type_string);
-
-const char * /* host_type_string */
-vsc_mgmt_host_type_string (enum VscMgmtHostType host_type);
-
 #ifdef __cplusplus
 }
 #endif
index 59f80d0..c26d660 100644 (file)
@@ -35,7 +35,7 @@ vsc_mgmt_network_add (struct VscError *error,
                       const struct VscMgmtNetwork *network_list);
 
 struct VscMgmtUuid * /* network_uuid */
-vsc_mgmt_network_setup (struct VscError *error, unsigned int num_hosts);
+vsc_mgmt_network_setup (struct VscError *error);
 
 void
 vsc_mgmt_network_teardown (struct VscError *error,
index 5a3cb6d..fdb816d 100644 (file)
@@ -53,7 +53,7 @@ enum VscMgmtHostType {
        VSC_MGMT__HOST_TYPE__VIRTUAL,
        VSC_MGMT__HOST_TYPE__XEN,
        VSC_MGMT__HOST_TYPE__ESX,
-       VSC_MGMT__HOST_TYPE__ESX_CENTER,
+       VSC_MGMT__HOST_TYPE__ESX_VCENTER,
        VSC_MGMT__HOST_TYPE__KVM,
 };
 
@@ -113,11 +113,10 @@ struct VscMgmtCheckpointInfo {
 };
 
 struct VscMgmtHostInfo {
-       struct VscMgmtHostInfo *next;
        struct VscMgmtIpv4 host_ipv4;
        enum VscMgmtHostType host_type;
-       char *username;
-       char *password;
+       struct timeval last_modified;
+       struct timeval last_resource_allocation;
 };
 
 #ifdef __cplusplus
index 42de318..1cfcde1 100644 (file)
@@ -38,6 +38,7 @@
 #include "../utils/utils.h"
 #include "host.h"
 
+#if 0
 struct HostConnection {
        struct HostConnection *next;
        struct VscMgmtIpv4 host_ipv4;
@@ -174,20 +175,18 @@ static virConnectAuth _host_connection_auth = {
        .cb = _host_connection_cred_callback,
        .cbdata = NULL,
 };
+#endif
 
 void
-vsc_mgmt_host_add (struct VscError *error, const struct VscMgmtIpv4 *host_ipv4,
-                   enum VscMgmtHostType host_type, const char *username,
-                   const char *password)
+vsc_mgmt_read_hosts_config (struct VscError *error,
+                            const char *filename VSC__ATTR__UNUSED)
 {
-       struct VscMgmtHostInfo host_info;
-
        VSC__ASSERT (error != NULL);
        VSC__ASSERT (! error->occured);
-       VSC__ASSERT (host_ipv4 != NULL);
-       VSC__ASSERT (username != NULL);
-       VSC__ASSERT (password != NULL);
 
+       VSC__ERROR0 (error, VSC__ERROR_CODE__NOT_IMPLEMENTED_YET);
+
+#if 0
        host_info.next = NULL;
        host_info.username = NULL;
        host_info.password = NULL;
@@ -259,40 +258,7 @@ disconnect:
        }
 
        goto unlock;
-}
-
-void
-vsc_mgmt_host_remove (struct VscError *error,
-                      const struct VscMgmtIpv4 *host_ipv4)
-{
-       VSC__ASSERT (error != NULL);
-       VSC__ASSERT (! error->occured);
-       VSC__ASSERT (host_ipv4 != NULL);
-
-       if (! _vsc_mgmt_ipv4_is_valid (host_ipv4)) {
-               VSC__ERROR1 (error, VSC__ERROR_CODE__INVALID_ARGUMENT,
-                            "IPv4 is invalid");
-               return;
-       }
-
-       _vsc_mgmt_data_lock();
-
-       _vsc_mgmt_data_host_remove (error, host_ipv4);
-
-       if (error->occured) {
-               VSC__APPEND_ERROR0 (error, VSC__ERROR_CODE__TRACE);
-               goto unlock;
-       }
-
-       _vsc_mgmt_host_disconnect (error, host_ipv4);
-
-       if (error->occured) {
-               VSC__APPEND_ERROR0 (error, VSC__ERROR_CODE__TRACE);
-               goto unlock;
-       }
-
-unlock:
-       _vsc_mgmt_data_unlock();
+#endif
 }
 
 void
@@ -328,6 +294,7 @@ vsc_mgmt_host_get_vm_list (struct VscError *error,
        return NULL;
 }
 
+#if 0
 /*!
  * @brief Returns a connection to the host.
  * @internal
@@ -469,3 +436,4 @@ _vsc_mgmt_host_disconnect (struct VscError *error,
                _host_connection_list_remove (host_connection);
        }
 }
+#endif
index 5ad3864..d1bdee7 100644 (file)
@@ -29,6 +29,7 @@
 
 #include "../include/libvscmgmt/types.h"
 
+#if 0
 virConnectPtr
 _vsc_mgmt_host_connect (struct VscError *error,
                         const struct VscMgmtHostInfo *host_info);
@@ -36,5 +37,6 @@ _vsc_mgmt_host_connect (struct VscError *error,
 void
 _vsc_mgmt_host_disconnect (struct VscError *error,
                            const struct VscMgmtIpv4 *host_ipv4);
+#endif
 
 #endif /* __VSC_MGMT__LIB__HOST_H__ */
diff --git a/lib/types.h b/lib/types.h
new file mode 100644 (file)
index 0000000..2e73030
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * types.h: Library for Virtualized Supercomputer Management
+ *
+ * Copyright (C) 2009 Matthias Bolte <matthias.bolte@googlemail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
+ */
+
+/*!
+ * @file
+ */
+
+#ifndef __VSC_MGMT__LIB__TYPES_H__
+#define __VSC_MGMT__LIB__TYPES_H__
+
+#include "../include/libvscmgmt/types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct VscMgmtHostInfoInternal {
+       struct VscMgmtHostInfoInternal *next;
+       struct VscMgmtHostInfo external;
+       char* username;
+       char* password;
+       virConnectPtr connection;
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __VSC_MGMT__LIB__TYPES_H__ */
index 368d405..09e4005 100644 (file)
@@ -47,23 +47,23 @@ _format_error (struct VscError *error)
  */
 
 PyDoc_STRVAR (backup__doc__,
-"backup(path)\n\n"
-"Write a backup of the internal state to a file at the given path.");
+"backup(filename)\n\n"
+"Write a backup of the internal state to a file referenced by filename.");
 
 static PyObject *
 _backup (PyObject *self VSC__ATTR__UNUSED, PyObject *args)
 {
        struct VscError error;
        PyObject *result = Py_None;
-       const char *path;
+       const char *filename;
 
-       if (! PyArg_ParseTuple (args, "s", &path)) {
+       if (! PyArg_ParseTuple (args, "s", &filename)) {
                return NULL;
        }
 
        vsc_error_init (&error);
 
-       vsc_mgmt_backup (&error, path);
+       vsc_mgmt_backup (&error, filename);
 
        if (error.occured) {
                goto failure;
@@ -91,16 +91,16 @@ static PyObject *
 _recover (PyObject *self VSC__ATTR__UNUSED, PyObject *args)
 {
        struct VscError error;
-       const char *path;
+       const char *filename;
        PyObject *result = Py_None;
 
-       if (! PyArg_ParseTuple (args, "s", &path)) {
+       if (! PyArg_ParseTuple (args, "s", &filename)) {
                return NULL;
        }
 
        vsc_error_init (&error);
 
-       vsc_mgmt_recover (&error, path);
+       vsc_mgmt_recover (&error, filename);
 
        if (error.occured) {
                goto failure;
@@ -121,78 +121,23 @@ failure:
 
 
 /*
- * host add
+ * read hosts config
  */
 
 static PyObject *
-_host_add (PyObject *self VSC__ATTR__UNUSED, PyObject *args)
+_read_hosts_config (PyObject *self VSC__ATTR__UNUSED, PyObject *args)
 {
        struct VscError error;
        PyObject *result = Py_None;
-       const char *host_ipv4_string;
-       struct VscMgmtIpv4 host_ipv4;
-       enum VscMgmtHostType host_type;
-       const char *username;
-       const char *password;
-
-       if (! PyArg_ParseTuple (args, "siss", &host_ipv4_string, &host_type,
-                               &username, &password)) {
-               return NULL;
-       }
-
-       vsc_error_init (&error);
-
-       vsc_mgmt_ipv4_parse (&error, host_ipv4_string, &host_ipv4);
+       const char *filename;
 
-       if (error.occured) {
-               goto failure;
-       }
-
-       vsc_mgmt_host_add (&error, &host_ipv4, host_type, username, password);
-
-       if (error.occured) {
-               goto failure;
-       }
-
-cleanup:
-       vsc_error_cleanup (&error);
-
-       return result;
-
-failure:
-       _format_error (&error);
-
-       result = NULL;
-
-       goto cleanup;
-}
-
-
-/*
- * host remove
- */
-
-static PyObject *
-_host_remove (PyObject *self VSC__ATTR__UNUSED, PyObject *args)
-{
-       struct VscError error;
-       PyObject *result = Py_None;
-       const char *host_ipv4_string;
-       struct VscMgmtIpv4 host_ipv4;
-
-       if (! PyArg_ParseTuple (args, "s", &host_ipv4_string)) {
+       if (! PyArg_ParseTuple (args, "s", &filename)) {
                return NULL;
        }
 
        vsc_error_init (&error);
 
-       vsc_mgmt_ipv4_parse (&error, host_ipv4_string, &host_ipv4);
-
-       if (error.occured) {
-               goto failure;
-       }
-
-       vsc_mgmt_host_remove (&error, &host_ipv4);
+       vsc_mgmt_read_hosts_config (&error, filename);
 
        if (error.occured) {
                goto failure;
@@ -214,8 +159,7 @@ failure:
 static PyMethodDef _methods[] = {
        { "backup", _backup, METH_VARARGS, backup__doc__ },
        { "recover", _recover, METH_VARARGS, "FIXME" },
-       { "host_add", _host_add, METH_VARARGS, "FIXME" },
-       { "host_remove", _host_remove, METH_VARARGS, "FIXME" },
+       { "read_hosts_config", _read_hosts_config, METH_VARARGS, "FIXME" },
        { NULL, NULL, 0, NULL}
 };
 
index 8048eb1..04274f8 100644 (file)
@@ -59,10 +59,11 @@ teardown (void)
 START_TEST (test_add_remove)
 {
        struct VscError error;
-       struct VscMgmtIpv4 host_ipv4;
+       /*struct VscMgmtIpv4 host_ipv4;*/
 
        vsc_error_init (&error);
 
+#if 0
        vsc_mgmt_ipv4_parse (&error, "10.0.0.1", &host_ipv4);
        fail_if (error.occured);
 
@@ -72,6 +73,7 @@ START_TEST (test_add_remove)
 
        vsc_mgmt_host_remove (&error, &host_ipv4);
        fail_if (error.occured);
+#endif
 
        vsc_error_cleanup (&error);
 }
index ac789d5..6a0aebd 100644 (file)
@@ -43,9 +43,10 @@ _host_info_match (struct VscList *item, void *match_data)
 
 /*!
  * @brief Parses a host type from its string representation and returns it.
+ * @internal
  */
 enum VscMgmtHostType
-vsc_mgmt_host_type_parse (struct VscError *error,
+_vsc_mgmt_host_type_parse (struct VscError *error,
                           const char *host_type_string)
 {
        VSC__ASSERT (error != NULL);
@@ -57,8 +58,8 @@ vsc_mgmt_host_type_parse (struct VscError *error,
                return VSC_MGMT__HOST_TYPE__XEN;
        } else if (strcasecmp (host_type_string, "ESX") == 0) {
                return VSC_MGMT__HOST_TYPE__ESX;
-       } else if (strcasecmp (host_type_string, "ESX Center") == 0) {
-               return VSC_MGMT__HOST_TYPE__ESX_CENTER;
+       } else if (strcasecmp (host_type_string, "ESX vCenter") == 0) {
+               return VSC_MGMT__HOST_TYPE__ESX_VCENTER;
        } else if (strcasecmp (host_type_string, "KVM") == 0) {
                return VSC_MGMT__HOST_TYPE__KVM;
        }
@@ -71,11 +72,12 @@ vsc_mgmt_host_type_parse (struct VscError *error,
 
 /*!
  * @brief Returns the string representaion of the host type.
+ * @internal
  *
  * The string must not be freed by the caller.
  */
 const char *
-vsc_mgmt_host_type_string (enum VscMgmtHostType host_type)
+_vsc_mgmt_host_type_string (enum VscMgmtHostType host_type)
 {
        switch (host_type) {
        case VSC_MGMT__HOST_TYPE__VIRTUAL:
@@ -87,8 +89,8 @@ vsc_mgmt_host_type_string (enum VscMgmtHostType host_type)
        case VSC_MGMT__HOST_TYPE__ESX:
                return "ESX";
 
-       case VSC_MGMT__HOST_TYPE__ESX_CENTER:
-               return "ESX Center";
+       case VSC_MGMT__HOST_TYPE__ESX_VCENTER:
+               return "ESX vCenter";
 
        case VSC_MGMT__HOST_TYPE__KVM:
                return "KVM";
@@ -105,7 +107,7 @@ _vsc_mgmt_host_type_is_valid (enum VscMgmtHostType host_type)
        case VSC_MGMT__HOST_TYPE__VIRTUAL:
        case VSC_MGMT__HOST_TYPE__XEN:
        case VSC_MGMT__HOST_TYPE__ESX:
-       case VSC_MGMT__HOST_TYPE__ESX_CENTER:
+       case VSC_MGMT__HOST_TYPE__ESX_VCENTER:
                return TRUE;
 
        default:
@@ -131,22 +133,6 @@ _vsc_mgmt_host_info_duplicate (struct VscError *error,
                goto failure;
        }
 
-       host_info_duplicate->username = vsc_strdup (error, host_info->username);
-
-       if (error->occured) {
-               VSC__APPEND_ERROR0 (error, VSC__ERROR_CODE__TRACE);
-               goto failure;
-       }
-
-       host_info_duplicate->password = vsc_strdup (error, host_info->password);
-
-       if (error->occured) {
-               VSC__APPEND_ERROR0 (error, VSC__ERROR_CODE__TRACE);
-               goto failure;
-       }
-
-       host_info_duplicate->next = NULL;
-
        return host_info_duplicate;
 
 failure:
@@ -160,11 +146,6 @@ _vsc_mgmt_host_info_free (struct VscMgmtHostInfo **host_info)
 {
        VSC__ASSERT (host_info != NULL);
 
-       if (*host_info != NULL) {
-               vsc_free (&(*host_info)->username);
-               vsc_free (&(*host_info)->password);
-       }
-
        vsc_free (host_info);
 }
 
@@ -181,14 +162,6 @@ _vsc_mgmt_host_info_is_valid (const struct VscMgmtHostInfo *host_info)
                return FALSE;
        }
 
-       if (host_info->username == NULL) {
-               return FALSE;
-       }
-
-       if (host_info->password == NULL) {
-               return FALSE;
-       }
-
        return TRUE;
 }
 
index b297d19..76d8cf7 100644 (file)
 
 #include "../include/libvscmgmt/types.h"
 
+enum VscMgmtHostType /* host_type */
+_vsc_mgmt_host_type_parse (struct VscError *error,
+                           const char *host_type_string);
+
+const char * /* host_type_string */
+_vsc_mgmt_host_type_string (enum VscMgmtHostType host_type);
+
 int /* is_valid */
 _vsc_mgmt_host_type_is_valid (enum VscMgmtHostType host_type);