web: drush logger create now assigns 4 meters per device
This commit is contained in:
parent
8367d43828
commit
cb6e20bdcc
|
@ -12,6 +12,7 @@ function logger_drush_command() {
|
|||
'description' => 'Create a new sensor node entry.',
|
||||
'arguments' => array(
|
||||
'serial' => 'Sensor node serial number.',
|
||||
'country' => 'Destination country.',
|
||||
'uid' => 'User ID.',
|
||||
),
|
||||
);
|
||||
|
@ -31,7 +32,7 @@ function logger_drush_command() {
|
|||
/**
|
||||
* Drush command callbacks.
|
||||
*/
|
||||
function _logger_create($serial, $uid = 0) {
|
||||
function _logger_create($serial, $country, $uid = 0) {
|
||||
// guard against duplicating entries for the same S/N
|
||||
$count = db_result(db_query("SELECT COUNT(device) FROM {logger_devices} WHERE serial = %d", $serial));
|
||||
if ($count > 0) {
|
||||
|
@ -44,34 +45,45 @@ function _logger_create($serial, $uid = 0) {
|
|||
$sha = md5(uniqid(rand(), TRUE));
|
||||
$created = time();
|
||||
|
||||
$result = db_query("INSERT INTO {logger_devices} (device, serial, uid, sha, created) VALUES ('%s', %d, %d, '%s', %d)", $device, $serial, $uid, $sha, $created);
|
||||
$result = db_query("INSERT INTO {logger_devices} (device, serial, uid, sha, created, country) VALUES ('%s', %d, %d, '%s', %d, '%s')", $device, $serial, $uid, $sha, $created, $country);
|
||||
if (!$result) drush_set_error('LOGGER_CREATE_DEVICE_ENTRY', dt('Error creating a device entry for @device.', array('@device' => $device)));
|
||||
|
||||
if (!drush_get_error()) drush_log(dt('Successfully created the device/key: @device / @key for S/N: @serial', array('@device' => $device, '@key' => $sha, '@serial' => $serial)), 'ok');
|
||||
|
||||
// create an entry in the {logger_meters} table
|
||||
$meter = md5(uniqid(rand(), TRUE));
|
||||
$path = new stdClass();
|
||||
$path->root = DRUPAL_ROOT .'/'. drupal_get_path('module', 'logger');
|
||||
$path->base = $path->root .'/data/base/';
|
||||
$path->night = $path->root .'/data/night/';
|
||||
$result = db_query("INSERT INTO {logger_meters} (meter, uid, device, created) VALUES ('%s', %d, '%s', %d)", $meter, $uid, $device, $created);
|
||||
if (!$result) drush_set_error('LOGGER_CREATE_METER_ENTRY', dt('Error creating meter entry for @meter.', array('@meter' => $meter)));
|
||||
for ($i = 0; $i < 4; $i++) {
|
||||
if ($i == 0) {
|
||||
$type = 'electricity';
|
||||
}
|
||||
else {
|
||||
$type = 'undefined';
|
||||
}
|
||||
|
||||
// create the meter base rrd
|
||||
if (!file_exists($path->base . $meter .'.rrd')) {
|
||||
$command = $path->root .'/rrdtool create '. $path->base . $meter .'.rrd -b 1199487600 -s 60 DS:meter:DERIVE:8640000:-2:2 RRA:AVERAGE:0.5:1:120 RRA:AVERAGE:0.5:15:192 RRA:AVERAGE:0.5:1440:60 RRA:AVERAGE:0.5:10080:520';
|
||||
system($command, $return);
|
||||
if ($return <> 0) drush_set_error('LOGGER_CREATE_RRD_BASE_ERROR', dt('Error creating the base @meter rrd.', array('@meter' => $meter)));
|
||||
}
|
||||
$meter = md5(uniqid(rand(), TRUE));
|
||||
$path = new stdClass();
|
||||
$path->root = DRUPAL_ROOT .'/'. drupal_get_path('module', 'logger');
|
||||
$path->base = $path->root .'/data/base/';
|
||||
$path->night = $path->root .'/data/night/';
|
||||
$result = db_query("INSERT INTO {logger_meters} (meter, uid, device, created, type) VALUES ('%s', %d, '%s', %d, '%s')", $meter, $uid, $device, $created, $type);
|
||||
if (!$result) drush_set_error('LOGGER_CREATE_METER_ENTRY', dt('Error creating meter entry for @meter.', array('@meter' => $meter)));
|
||||
|
||||
// create the meter night rrd
|
||||
if (!file_exists($path->night . $meter .'.rrd')) {
|
||||
$command = $path->root .'/rrdtool create '. $path->night . $meter .'.rrd -b 1199487600 -s 86400 DS:meter:GAUGE:8640000:-2:2 RRA:AVERAGE:0.5:1:60 RRA:AVERAGE:0.5:7:520';
|
||||
system($command, $return);
|
||||
if ($return <> 0) drush_set_error('LOGGER_CREATE_RRD_NIGHT_ERROR', dt('Error creating the night @meter rrd.', array('@meter' => $meter)));
|
||||
// create the meter base rrd
|
||||
if (!file_exists($path->base . $meter .'.rrd')) {
|
||||
$command = $path->root .'/rrdtool create '. $path->base . $meter .'.rrd -b 1199487600 -s 60 DS:meter:DERIVE:8640000:-2:2 RRA:AVERAGE:0.5:1:120 RRA:AVERAGE:0.5:15:192 RRA:AVERAGE:0.5:1440:60 RRA:AVERAGE:0.5:10080:520';
|
||||
system($command, $return);
|
||||
if ($return <> 0) drush_set_error('LOGGER_CREATE_RRD_BASE_ERROR', dt('Error creating the base @meter rrd.', array('@meter' => $meter)));
|
||||
}
|
||||
|
||||
// create the meter night rrd
|
||||
if (!file_exists($path->night . $meter .'.rrd')) {
|
||||
$command = $path->root .'/rrdtool create '. $path->night . $meter .'.rrd -b 1199487600 -s 86400 DS:meter:GAUGE:8640000:-2:2 RRA:AVERAGE:0.5:1:60 RRA:AVERAGE:0.5:7:520';
|
||||
system($command, $return);
|
||||
if ($return <> 0) drush_set_error('LOGGER_CREATE_RRD_NIGHT_ERROR', dt('Error creating the night @meter rrd.', array('@meter' => $meter)));
|
||||
}
|
||||
|
||||
if (!drush_get_error()) drush_log(dt('Successfully created the meter: @meter with type: @type', array('@meter' => $meter, '@type' => $type)), 'ok');
|
||||
}
|
||||
}
|
||||
|
||||
if (!drush_get_error()) drush_log(dt('Successfully created the device/key: @device / @key and meter: @meter entries for S/N: @serial', array('@device' => $device, '@key' => $sha, '@meter' => $meter, '@serial' => $serial)), 'ok');
|
||||
}
|
||||
|
||||
function _logger_assign($serial, $uid) {
|
||||
|
|
Loading…
Reference in New Issue