Add support for rrdcached(1) (2/2: create)
This commit is contained in:
parent
9b15ff87e6
commit
65ee4104c3
14
src/rrd.c
14
src/rrd.c
|
@ -66,12 +66,18 @@ static int _create_directories(char const * filename);
|
||||||
int rrd_create(RRDType type, char const * rrdcached, char const * filename)
|
int rrd_create(RRDType type, char const * rrdcached, char const * filename)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
char * argv[16] = { RRDTOOL, "create", NULL, "--start", NULL, NULL };
|
char * argv[18] = { RRDTOOL, "create", NULL, "--start", NULL };
|
||||||
size_t i = 5;
|
size_t i = 5;
|
||||||
|
|
||||||
/* create parent directories */
|
/* create parent directories */
|
||||||
if(_create_directories(filename) != 0)
|
if(_create_directories(filename) != 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
if(rrdcached != NULL)
|
||||||
|
{
|
||||||
|
argv[i++] = "--daemon";
|
||||||
|
if((argv[i++] = string_new(rrdcached)) == NULL)
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
switch(type)
|
switch(type)
|
||||||
{
|
{
|
||||||
case RRDTYPE_LOAD:
|
case RRDTYPE_LOAD:
|
||||||
|
@ -123,7 +129,9 @@ int rrd_create(RRDType type, char const * rrdcached, char const * filename)
|
||||||
argv[i++] = RRD_AVERAGE_YEAR;
|
argv[i++] = RRD_AVERAGE_YEAR;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
/* FIXME implement */
|
/* unsupported graph */
|
||||||
|
if(rrdcached != NULL)
|
||||||
|
string_delete(argv[6]);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
argv[2] = string_new(filename);
|
argv[2] = string_new(filename);
|
||||||
|
@ -134,6 +142,8 @@ int rrd_create(RRDType type, char const * rrdcached, char const * filename)
|
||||||
ret = _rrd_exec(argv);
|
ret = _rrd_exec(argv);
|
||||||
else
|
else
|
||||||
ret = -1;
|
ret = -1;
|
||||||
|
if(rrdcached != NULL)
|
||||||
|
string_delete(argv[6]);
|
||||||
string_delete(argv[4]);
|
string_delete(argv[4]);
|
||||||
string_delete(argv[2]);
|
string_delete(argv[2]);
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user