diff options
Diffstat (limited to 'plugins/volcap/volCap.c')
-rw-r--r-- | plugins/volcap/volCap.c | 143 |
1 files changed, 0 insertions, 143 deletions
diff --git a/plugins/volcap/volCap.c b/plugins/volcap/volCap.c deleted file mode 100644 index 8c0c4e4..0000000 --- a/plugins/volcap/volCap.c +++ /dev/null @@ -1,143 +0,0 @@ -#include <Python.h> -#include <stdio.h> -#include <stdlib.h> -#include <errno.h> -#include <string.h> -#include <time.h> -#include <sys/types.h> -#include <sys/statvfs.h> -#include "/usr/include/glusterfs/api/glfs.h" -#include "/usr/include/glusterfs/api/glfs-handles.h" -#include <syslog.h> - -#define USAGE_ERROR -1 -#define GLFS_NEW_FAILURE -2 -#define GLFS_INIT_FAILURE -3 -#define GLFS_STATVFS_FAILURE -4 -#define GLFS_FINI_FAILURE -5 -#define DEFAULT_TRANSPORT "tcp" -#define DEFAULT_SERVER "127.0.0.1" -#define DEFAULT_SERVER_PORT 24007 - -static PyObject *StatvfsError; - -int get_volume_statvfs (const char *volume_name, const char *server_name, struct statvfs *buf) -{ - glfs_t *fs = NULL; - int ret = 0; - struct statvfs statvfsinfo = {0, }; - int rv = 0; - - if (!(volume_name && buf)) - { - return USAGE_ERROR; - } - - fs = glfs_new (volume_name); - if (!fs) - { - //fprintf (stderr, "glfs_new: returned NULL\n"); - syslog (LOG_ERR, "glfs_new: returned NULL"); - return GLFS_NEW_FAILURE; - } - - if (server_name) - { - ret = glfs_set_volfile_server(fs, DEFAULT_TRANSPORT, server_name, DEFAULT_SERVER_PORT); - } - else - { - ret = glfs_set_volfile_server(fs, DEFAULT_TRANSPORT, DEFAULT_SERVER, DEFAULT_SERVER_PORT); - } - - ret = glfs_set_logging (fs, "/tmp/libg.txt", 2); - - ret = glfs_init (fs); - if (ret != 0) - { - //fprintf (stderr, "glfs_init() failed with code %d\n", ret); - syslog (LOG_ERR, "glfs_init() failed with code %d",ret); - rv = GLFS_INIT_FAILURE; - goto out; - } - - /*fprintf (stdout, "waiting for 3 seconds to initialize\n");*/ - sleep (3); - - ret = glfs_statvfs (fs, "/", &statvfsinfo); - if (ret == 0) - { - *buf = statvfsinfo; - } - else - { - //fprintf (stderr, "glfs_statvfs() failed with [%d:%s] for \"/\"\n", ret, strerror (errno)); - syslog (LOG_ERR, "glfs_statvfs() failed with [%d:%s] for \"/\"\n", ret, strerror (errno)); - rv = GLFS_STATVFS_FAILURE; - } - - out: - ret = glfs_fini (fs); - if (ret != 0) - { - //fprintf (stderr, "glfs_fini() failed with code %d\n", ret); - syslog (LOG_ERR, "glfs_fini() failed with code %d\n", ret); - } - - return rv; -} - -static PyObject *glfspy_statvfs (PyObject *self, PyObject *args) -{ - char *volume_name = NULL; - char *server_name = NULL; - int port = 0; - char *transport = NULL; - struct statvfs buf = {0, }; - int rv = 0; -#define USAGE_ERROR -1 -#define GLFS_NEW_FAILURE -2 -#define GLFS_INIT_FAILURE -3 -#define GLFS_STATVFS_FAILURE -4 -#define GLFS_FINI_FAILURE -5 - - StatvfsError = PyErr_NewException("statvfs.error", NULL, NULL); - setlogmask (LOG_UPTO (LOG_DEBUG)); - openlog ("statvfs", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1); - syslog (LOG_INFO, "Invoking glfspy_statvfs to get the volume utlization"); - if (!PyArg_ParseTuple (args, "s|ziz", &volume_name, &server_name, &port, &transport)) - { - PyErr_SetString(StatvfsError, "Argument parsing failed"); - return NULL; - } - - rv = get_volume_statvfs (volume_name, server_name, &buf); - closelog (); - //return Py_BuildValue("i", rv); - if(rv == 0) - return Py_BuildValue("{s:l,s:l,s:l,s:l,s:l,s:l,s:l,s:l,s:l,s:l,s:l}","f_bsize",buf.f_bsize,"f_frsize",buf.f_frsize,"f_blocks",buf.f_blocks,"f_bfree",buf.f_bfree,"f_bavail",buf.f_bavail,"f_files",buf.f_files,"f_ffree",buf.f_ffree,"f_favail",buf.f_favail,"f_fsid",buf.f_fsid,"f_flag",buf.f_flag,"f_namemax",buf.f_namemax); - else { - if(rv == USAGE_ERROR) - PyErr_SetString(StatvfsError, "Usage error"); - if(rv == GLFS_NEW_FAILURE) - PyErr_SetString(StatvfsError, "glfs_new() failed"); - if(rv == GLFS_INIT_FAILURE) - PyErr_SetString(StatvfsError, "glfs_init() failed"); - if(rv == GLFS_STATVFS_FAILURE) - PyErr_SetString(StatvfsError, "glfs_statvfs() failed"); - //return Py_BuildValue("i", rv); - return NULL; - } -} - - -static PyMethodDef glfspy_methods[] = { - { "statvfs", (PyCFunction)glfspy_statvfs, METH_VARARGS, NULL }, - { NULL, NULL, 0, NULL } -}; - - -PyMODINIT_FUNC initcapacity () -{ - Py_InitModule3 ("capacity", glfspy_methods, "gluster gfapi top level extension module."); -} |