[opennms-devel] Question about how opennms-model handle isDown method on nodes, interfaces and services

Alejandro Galue <[email protected]> Mon, 20 Apr 2009 15:56:19 -0430
Newsgroups gmane.network.opennms.bugs,gmane.network.opennms.devel
Organization Sync Consultores
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------080907090302000401080008
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Hello All,

I'm creating a web service that returns a Json Tree with 
the availability of all services, and I found something 
weird on how isDown is implemented on OnmsNode, 
OnmsIpInterface and OnmsMonitoredService.

 From the code, the implementation of 
OnmsMonitoredService.isDown return false (i.e service is 
up) only if service has no current outages or status is 
different of "Managed". The current code is:

@Transient
public boolean isDown() {
   boolean down = true;
   if (!"A".equals(getStatus()) || 
m_currentOutages.isEmpty()) {
     return !down;
   }
   return down;
}

So, if a service has a status of "Not Monitored", isDown() 
will return false. I understand here that if a service is 
not managed will be trated always as "Up" (am I right?)

Let's see OnmsIpInterface isDown implementation:

@Transient
@XmlElement(name="isDown")
public boolean isDown() {
   boolean down = true;
   for (OnmsMonitoredService svc : m_monitoredServices) {
     if (!svc.isDown()) {
       return !down;
     }
   }
   return down;
}

This method return false, only if at least one service is 
"Up".... (interface down = all service down, am I right?)

Now imagine this scenario:

I have 6 services on one interface: 3 are "Not Monitored", 
and 3 are "Monitored", for example:

Postgres - Monitored
SNMP - Not Monitored
StrafePing - Not Monitored
SSH - Monitored
Router - Not Monitored
ICMP - Monitored

Now suppose that all services are down, because node is 
unreachable. In this case, ICMP, Postgres and SHH will be 
down and I will have 3 outages (apart from nodeDown alarm).

The problem is that ipinterface.isDown() will return false 
and node.isDown() will also return false (node down = all 
interfaces down), because of the existance of two "Not 
Monitored" service.....

I think that this is wrong. Am I right ? or am I missing 
something ?

I think that OnmsIpInterface.isDown must be check 
service.getStatus().equals("A").

Maybe this method must be implemented like this:

@Transient
@XmlElement(name="isDown")
public boolean isDown() {
   boolean down = true;
   for (OnmsMonitoredService svc : m_monitoredServices) {
     if (!svc.isDown() && svc.getStatus().equals("A")) {
       return !down;
     }
   }
   return down;
}

or like this:

@Transient
@XmlElement(name="isDown")
public boolean isDown() {
   boolean down = true;
   if (!isManaged())
     return !down;
   for (OnmsMonitoredService svc : m_monitoredServices) {
     if (!svc.isDown() && svc.getStatus().equals("A")) {
       return !down;
     }
   }
   return down;
}

If this second suggestion sounds good, then isDown for 
OnmsNode must be changed like this:

@Transient
public boolean isDown() {
   boolean down = true;
   for (OnmsIpInterface ipIf : m_ipInterfaces) {
     if (!ipIf.isDown() && ipIf.isManaged()) {
       return !down;
     }
   }
   return down;
}


I included an example picture of part of the result after 
applying only the FIRST change (this is a ExtJS Column 
Tree, Second Column is Status and Thrird Column is 
Availability). As you can see, the behavior looks correct. 
Without this, the ip address and node appears UP.


Alejandro.

--------------080907090302000401080008
Content-Type: image/png;
 name="availability.png"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="availability.png"

iVBORw0KGgoAAAANSUhEUgAAArwAAACuCAIAAABbWUmtAAAPNmlDQ1BJQ0MgUHJvZmlsZQAA
eAGtWHk0Vd/b3+fey+UaMo/FzTyPmec58zxkjOviGi6ueSgKiRJRkhKSQiTJVBIhkqEipUiG
lChDQsb3XNX3+1vrXb/1/vPutc7Zn/3Zz/Psvc9n3fPc5wDAMOoZEhKIAAAEEcNJNka6WKcj
zlj0CIAAAtABBiDhiQsL0bGyMoNN/ktbHYat4TYoSY7las35OSagypA1IAfHs5nI91+c/tL0
JHhBACAJmGDx/Y21ydjrN7Yj46jwkHDYxo+McX6e3jCOh7EEyc5GD8ZlMKb3/Y0bydjrN+4m
40icL9n3LQCUTERvAhEA9DyMNb3xYTh4mryut3cYLgjGWbDdTlBQMByfAcZABBdCgn0ZyDEF
yM8F7uHmiQFA2RqO4/QvF2IKwN0wAPgy/+UETwDA7ghAuea/3A+bvWcFsQ2E+cjL7YWDaHUB
oPiwu/tDCI6ZDcD2+d3dzeu7u9slACBHAWgNxEWQIvds4Q1CfQD8X+PfZ/7jgYTFIQt8AODB
KygeYYLkQVFR8FO6ou9RC2Bqad3o6fcNMl5jxrNKsH3juMalzz1+IIDnOxZ3sJ9fViBNcFxY
VuSYaLc4vYStZI7UCxlqWS25IPlLh5oVxhRXlelUDqiKqsmrK2moaqpqKWnL60jpiurx6XMZ
sBjSGqGMdg6vGS+YfDGdMBs1H7Z4adln1WPdbdNl22XXZd/t0OPY6zRwZND5jcuY66TbrPui
x7on8KLGMXvz4MV8FH11/SwJLv5+AZGByUHZxMLgqpAHod2k12GT4QsRW1HoaKaY/bHCcTLx
Sse0jhskmCRanrA5aZ/kkOyY4njKIdXutE2aVbr5GZOzRhl657QzNbLUzitnK+UoXlC4qJCr
eEkpT+WyWr7mFd2rBgXG18wKrYrsip2uu5Z43PAq9blJuBVYFlweWhF+O6Iyqir6Tkx1zN2Y
muh7kbXh90PriPWEBlyjW5PDA/OHes0qjyRbeB8ztILWb20jT9rbKzoyO0OfWndJd2O6p581
92Q99+5V6KPoG+wvHPB/If9i6+WTV6mDJkN0Q/2vzw6bvKF60/H2+IjyyPK7ivdeo1yjr8bS
P+h++DVe89FvAjvxdjJzymhqd7r+U9CM4Mzo54tfLGcxs11fT8+ZzbPMT35r+J69ELHosWS9
bPbDcsXlZ9Bq6tqt9b5f65v8W3bb6Tsdu7uw/vuBF+iBfBAiiM/IflQfxSpageoChoLmMp0s
/RuGVCZp5lHWY+ysHDe4hLkvH0DxuPHew+7yGfGnCLQJbgpLibiLZog1in+URErxSavJWMi6
yXnL+x3yUTiq6KBkpKyowqtKpbqgNqjeoJGvGa/lrq2lc1AX0p3Ua9e/YXDKkGBkfljGmM14
y2TatM+swbzEItsy0SrE2tPG1tbATtle3IHHkcEJ6bR65LPziMtz10dud9yLPLKOnvAkeeFw
dt6GeGUfcV+sHwsB44/w3whYCfwe9JU4EzwVMhE6ThoLex8+EjEcORg1EN0b0x37JK45vv7Y
neO3EgoTc09knExKik0OTsGfck21PW2cppOuckb2rFiG4DneTK4s1vOM2fQ5NBeoLlLkInJ3
L23nbVxey1+5snh1vuDLtanC8aJ3xUPX+0u6b7SXttxsulVXVlNeXVF1+05lddW9Ow3VzXfb
a57fG6oduz9Tt1i/3gg1UT/Y95ClmeMRVwvXY45W1jaGJ9TtUPtqx1zn2NOBrsfdVc/ye1Ke
h/Q69Wn3Cw3QDCy8ePWy9lXOIGnI+rX0MN3w3Jtnb2+NpLzDvzccFR2jH/v5YXy892PzRPVk
6dS16fxPeTOXP1/5Ujh742vFXM1807e27z0LQ4sflr4ur62gfrKsCq4prZv8OroRtXlu6+Z2
687Ynv5swAJch5igcoQ5Yh3ZhaqiKKNsQn+gZsc40RTTLtHr7TvLMMzExmzBEst6ja2RvYdj
mPMd1zvu4f39B9p56nnLsJcOJvMF8zsKqAseENwUGhIuF4kRNRSjF3spfl7CQhIt+VAqWBor
3ScTIyso2ysXLs8t33oIr4BRuKNoq7iqlK+sqTyhkqwqovpcLVidSb1Ow0ljQ7NAS1trSvuU
jqhOn26oHptesz7OgMbgvqGHEcao4TDemMW43STMVNB02CzNXN180eKG5REreqsO6zgbOZtZ
22I7Z3sm+16HFEctx19OtUeCnEWcJ10KXJ3cmN363dM9DI8ijrZ4xnmpeK3h6rwj8Ar4NZ8m
32N+ugQqwoB/XoBXoGTgelAnMSfYM0QmZDd0gFQUFhquG8Ea8TnyQdS5aK8YpVja2Im4xvjM
Y/jj6gksCfOJnScKTkYlWSWLpaBSPpxqSr14OjTNPF3sDNWZmbMdGSXnkjK9swzPi2TTZC/m
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
--------------080907090302000401080008
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

------------------------------------------------------------------------------
Stay on top of everything new and different, both inside and 
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today. 
Use priority code J9JMT32. http://p.sf.net/sfu/p
--------------080907090302000401080008
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Please read the OpenNMS Mailing List FAQ:
http://www.opennms.org/index.php/Mailing_List_FAQ

opennms-devel mailing list

To *unsubscribe* or change your subscription options, see the bottom of this page:
https://lists.sourceforge.net/lists/listinfo/opennms-devel
--------------080907090302000401080008--