Add support for rrdcached(1) (2/2: create)

This commit is contained in:
Pierre Pronchery 2016-02-07 19:02:57 +01:00
parent 9b15ff87e6
commit 65ee4104c3

View File

@ -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;