-/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
- * vim:expandtab:shiftwidth=8:tabstop=8:
+/*
+ * GPL HEADER START
*
- * Copyright (c) 2005 Cluster File Systems, Inc.
- * Author: PJ Kirner <pjkirner@clusterfs.com>
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * This file is part of Lustre, http://www.lustre.org.
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 only,
+ * as published by the Free Software Foundation.
*
- * Lustre is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
+ * This program 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
+ * General Public License version 2 for more details (a copy is included
+ * in the LICENSE file that accompanied this code).
*
- * Lustre 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 General Public License for more details.
+ * You should have received a copy of the GNU General Public License
+ * version 2 along with this program; If not, see
+ * http://www.gnu.org/licenses/gpl-2.0.html
*
- * You should have received a copy of the GNU General Public License
- * along with Lustre; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * GPL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Use is subject to license terms.
+ */
+/*
+ * This file is part of Lustre, http://www.lustre.org/
+ * Lustre is a trademark of Sun Microsystems, Inc.
+ *
+ * snmp/lustre-snmp-util.c
+ *
+ * Author: PJ Kirner <pjkirner@clusterfs.com>
*/
/*
*/
#include <sys/types.h>
-#if defined (__linux__)
#include <sys/vfs.h>
-#endif
#include <dirent.h>
#include <sys/stat.h>
#include <unistd.h>
int get_sysstatus(void)
{
- FILE *fptr = NULL;
- int len = 0;
int ret_val = ERROR ;
char sys_status[50] = {0};
size_t *var_len)
{
static unsigned char string[SPRINT_MAX_LEN];
- if( SUCCESS != read_string(file_path, string,sizeof(string)))
+ if( SUCCESS != read_string(file_path, (char *)string,sizeof(string)))
return NULL;
- *var_len = strlen(string);
+ *var_len = strlen((char *)string);
return (unsigned char *) string;
}
extern int mds_stats_values(char * name_value, unsigned long long * nb_sample, unsigned long long * min, unsigned long long * max, unsigned long long * sum, unsigned long long * sum_square)
{
unsigned long long tmp_nb_sample=0,tmp_min=0,tmp_max=0,tmp_sum=0,tmp_sum_square=0;
+ glob_t path;
+
/*we parse the three MDS stat files and sum values*/
- if( stats_values(FILEPATH_MDS_SERVER_STATS,name_value,&tmp_nb_sample,&tmp_min,&tmp_max,&tmp_sum,&tmp_sum_square) == ERROR ) {
+ if (cfs_get_param_paths(&path, "mdt/MDS/mds/stats") != 0)
+ return ERROR;
+ if( stats_values(path.gl_pathv[0],name_value,&tmp_nb_sample,&tmp_min,&tmp_max,&tmp_sum,&tmp_sum_square) == ERROR ) {
+ cfs_free_param_data(&path);
return ERROR;
} else {
*nb_sample=tmp_nb_sample;
*sum=tmp_sum;
*sum_square=tmp_sum_square;
}
+ cfs_free_param_data(&path);
- if( stats_values(FILEPATH_MDS_SERVER_READPAGE_STATS,name_value,&tmp_nb_sample,&tmp_min,&tmp_max,&tmp_sum,&tmp_sum_square) == ERROR ) {
+ if (cfs_get_param_paths(&path, "mdt/MDS/mds_readpage/stats") != 0)
+ return ERROR;
+ if( stats_values(path.gl_pathv[0],name_value,&tmp_nb_sample,&tmp_min,&tmp_max,&tmp_sum,&tmp_sum_square) == ERROR ) {
+ cfs_free_param_data(&path);
return ERROR;
} else {
*nb_sample += tmp_nb_sample;
*sum += tmp_sum;
*sum_square += tmp_sum_square;
}
+ cfs_free_param_data(&path);
- if( stats_values(FILEPATH_MDS_SERVER_SETATTR_STATS,name_value,&tmp_nb_sample,&tmp_min,&tmp_max,&tmp_sum,&tmp_sum_square) == ERROR ) {
+ if (cfs_get_param_paths(&path, "mdt/MDS/mds_setattr/stats") != 0)
+ return ERROR;
+ if( stats_values(path.gl_pathv[0],name_value,&tmp_nb_sample,&tmp_min,&tmp_max,&tmp_sum,&tmp_sum_square) == ERROR ) {
+ cfs_free_param_data(&path);
return ERROR;
} else {
*nb_sample += tmp_nb_sample;
*sum += tmp_sum;
*sum_square += tmp_sum_square;
}
+ cfs_free_param_data(&path);
return SUCCESS;
}
+
+void convert_ull(counter64 *c64, unsigned long long ull, size_t *var_len)
+{
+ *var_len = sizeof(*c64);
+ c64->low = (unsigned long long) (0x0ffffffff & ull);
+ ull >>= 32;
+ c64->high = (unsigned long long) (0x0ffffffff & ull);
+}
+