print device description

This commit is contained in:
Wolfgang Hottgenroth
2015-10-10 16:01:09 +02:00
parent 4df6273c95
commit 9285eaaaee
2 changed files with 74 additions and 61 deletions

View File

@ -67,11 +67,13 @@ namespace Snmp2Mysql
{ {
private int mId; private int mId;
private string mOid; private string mOid;
private string mDescription;
public DeviceDataItemTuple(int id, string oid) public DeviceDataItemTuple(int id, string oid, string description)
{ {
mId = id; mId = id;
mOid = oid; mOid = oid;
mDescription = description;
} }
public int Id public int Id
@ -83,6 +85,10 @@ namespace Snmp2Mysql
{ {
get { return mOid; } get { return mOid; }
} }
public string Description {
get { return mDescription; }
}
} }
class DeviceDataItemProvider : DatabaseConnectionHelper, IEnumerable<DeviceDataItemTuple> class DeviceDataItemProvider : DatabaseConnectionHelper, IEnumerable<DeviceDataItemTuple>
@ -101,7 +107,7 @@ namespace Snmp2Mysql
IEnumerator<DeviceDataItemTuple> IEnumerable<DeviceDataItemTuple>.GetEnumerator() IEnumerator<DeviceDataItemTuple> IEnumerable<DeviceDataItemTuple>.GetEnumerator()
{ {
string stmt = "SELECT dedi.id, di.oid FROM devicedataitem_t dedi, dataitem_t di WHERE dedi.device = " + mDevice + " AND dedi.dataitem = di.id"; string stmt = "SELECT dedi.id, di.oid, di.description FROM devicedataitem_t dedi, dataitem_t di WHERE dedi.device = " + mDevice + " AND dedi.dataitem = di.id";
MySqlCommand cmd = new MySqlCommand(stmt, mConn); MySqlCommand cmd = new MySqlCommand(stmt, mConn);
using (MySqlDataReader reader = cmd.ExecuteReader()) using (MySqlDataReader reader = cmd.ExecuteReader())
@ -109,7 +115,7 @@ namespace Snmp2Mysql
while (reader.Read()) while (reader.Read())
{ {
// Console.WriteLine("{0} {1}", reader[0], reader[1]); // Console.WriteLine("{0} {1}", reader[0], reader[1]);
DeviceDataItemTuple r = new DeviceDataItemTuple((int)reader[0], (string)reader[1]); DeviceDataItemTuple r = new DeviceDataItemTuple((int)reader[0], (string)reader[1], (string)reader[2]);
yield return r; yield return r;
} }
} }
@ -123,12 +129,14 @@ namespace Snmp2Mysql
private DeviceDataItemProvider mDeviceDataItemProvider; private DeviceDataItemProvider mDeviceDataItemProvider;
private string mDeviceAddress; private string mDeviceAddress;
private string mCommunity; private string mCommunity;
private string mDescription;
public DeviceTuple(DeviceDataItemProvider deviceDataItemProvider, string deviceAddress, string community) public DeviceTuple(DeviceDataItemProvider deviceDataItemProvider, string deviceAddress, string community, string description)
{ {
mDeviceDataItemProvider = deviceDataItemProvider; mDeviceDataItemProvider = deviceDataItemProvider;
mDeviceAddress = deviceAddress; mDeviceAddress = deviceAddress;
mCommunity = community; mCommunity = community;
mDescription = description;
} }
public DeviceDataItemProvider DeviceDataItemProvider public DeviceDataItemProvider DeviceDataItemProvider
@ -145,6 +153,10 @@ namespace Snmp2Mysql
{ {
get { return mCommunity; } get { return mCommunity; }
} }
public string Description {
get { return mDescription; }
}
} }
@ -160,7 +172,7 @@ namespace Snmp2Mysql
IEnumerator<DeviceTuple> IEnumerable<DeviceTuple>.GetEnumerator() IEnumerator<DeviceTuple> IEnumerable<DeviceTuple>.GetEnumerator()
{ {
string stmt = "SELECT id, address, community FROM device_t"; string stmt = "SELECT id, address, community, description FROM device_t";
MySqlCommand cmd = new MySqlCommand(stmt, mConn); MySqlCommand cmd = new MySqlCommand(stmt, mConn);
using (MySqlDataReader reader = cmd.ExecuteReader()) using (MySqlDataReader reader = cmd.ExecuteReader())
@ -171,8 +183,9 @@ namespace Snmp2Mysql
int deviceId = (int)reader[0]; int deviceId = (int)reader[0];
string deviceAddress = (string)reader[1]; string deviceAddress = (string)reader[1];
string community = (string)reader[2]; string community = (string)reader[2];
string description = (string)reader[3];
DeviceDataItemProvider deviceDataItemProvider = new DeviceDataItemProvider(mDbConnStr, deviceId); DeviceDataItemProvider deviceDataItemProvider = new DeviceDataItemProvider(mDbConnStr, deviceId);
DeviceTuple r = new DeviceTuple(deviceDataItemProvider, deviceAddress, community); DeviceTuple r = new DeviceTuple(deviceDataItemProvider, deviceAddress, community, description);
yield return r; yield return r;
} }
} }

View File

@ -1,55 +1,55 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace Snmp2Mysql namespace Snmp2Mysql
{ {
class Program class Program
{ {
static void Main(string[] args) static void Main(string[] args)
{ {
string dbConnStr = "SERVER=localhost;" + string dbConnStr = "SERVER=localhost;" +
"DATABASE=statsdb;" + "DATABASE=statsdb;" +
"UID=statsuser;" + "UID=statsuser;" +
"PASSWORD=test123;"; "PASSWORD=test123;";
DatabaseLink dbLink = new DatabaseLink(dbConnStr); DatabaseLink dbLink = new DatabaseLink(dbConnStr);
using (DataCollector dc = dbLink.DataCollector) using (DataCollector dc = dbLink.DataCollector)
using (DeviceProvider dp = dbLink.DeviceProvider) using (DeviceProvider dp = dbLink.DeviceProvider)
{ {
foreach (DeviceTuple dt in dp) foreach (DeviceTuple dt in dp)
{ {
// Console.WriteLine("dt: {0}, {1}", dt.DeviceAddress, dt.Community); // Console.WriteLine("dt: {0}, {1}", dt.DeviceAddress, dt.Community);
using (SnmpGetter snmpGetter = new SnmpGetter(dt.Community, dt.DeviceAddress)) using (SnmpGetter snmpGetter = new SnmpGetter(dt.Community, dt.DeviceAddress))
{ {
using (DeviceDataItemProvider ddip = dt.DeviceDataItemProvider) using (DeviceDataItemProvider ddip = dt.DeviceDataItemProvider)
{ {
foreach (DeviceDataItemTuple ddit in dt.DeviceDataItemProvider) foreach (DeviceDataItemTuple ddit in dt.DeviceDataItemProvider)
{ {
// Console.WriteLine(" ddit: {0}, {1}", ddit.Id, ddit.Oid); // Console.WriteLine(" ddit: {0}, {1}", ddit.Id, ddit.Oid);
snmpGetter.AddOid(ddit.Id, ddit.Oid); snmpGetter.AddOid(ddit.Id, ddit.Oid);
} }
} }
try try
{ {
SnmpGetterResultProvider res = snmpGetter.Exec(); SnmpGetterResultProvider res = snmpGetter.Exec();
foreach (SnmpGetterResult r in res) foreach (SnmpGetterResult r in res)
{ {
Console.WriteLine("{0} {1} {2}: {3}", r.Index, r.Oid, r.Type, r.Value); Console.WriteLine("{0} {1} {2} {3}: {4}", dt.Description, r.Index, r.Oid, r.Type, r.Value);
dc.add((int)r.Index, r.Value); dc.add((int)r.Index, r.Value);
} }
} }
catch (SnmpGetterException e) { catch (SnmpGetterException e) {
Console.WriteLine ("no result: {0}", e.Message); Console.WriteLine ("{0}, no result: {1}", dt.Description, e.Message);
} }
} }
} }
} }
} }
} }
} }