Network_Guru: Thanks Vic,I had a brief look at it. I like your logic, this will come in handy for other things as well.If I can figure out how to list the Interface custom property in the Web admin GUI, I'll post it in the CSZ.
Thanks Vic,I had a brief look at it. I like your logic, this will come in handy for other things as well.If I can figure out how to list the Interface custom property in the Web admin GUI, I'll post it in the CSZ.
Torrie,
Maybe that the Admin account is the only account with the Allow View Customization box checked?
jtimes:Torrie, Maybe that the Admin account is the only account with the Allow View Customization box checked?
Guys thanks for you help. It was the EditCustomProperty.Update.asp. I didn't modify that file because all of my users should be able to edit. It works on both versions 8.1 as well as 7.5.
This worked, except that it only works for one "Down Alert" resource. I have two sections of down devices based on the SQL query filter. Anyone else experiencing this problem?
WINNT: This worked, except that it only works for one "Down Alert" resource. I have two sections of down devices based on the SQL query filter. Anyone else experiencing this problem?
Which methodology did you follow (Guru's, or mine)? Either one should work.
With Guru's, simply place two of the modified "Down Nodes" resources on your summary view and apply the appropriate filter to each.
Following my example, create two reports instead of one (with the appropriate filters on each), and add both of them as resources to your summary view.
I started over from scratch with a new resource and now it works.
Is there a way to change the "update" button in the node details so that it sets the value to NULL when you clear the field?
Thanks.
ding, ding, ding, ding..... congratulations, you have found the "leading space" bug.
All fields edited from the Web interface are pre-pended with a space.Currently there is no way to clear this space.The leading space is considered a separate character.Note, this can cause problems for any custom views, alerts or reports which rely on a custom property added with the CPE.
I used a custom property called "Notes" and to get them back to a Null value I run the following SQL querys from the DB server using SQL Query Analyzer once a week:
update Nodesset Notes = NULLWhere Notes = ' '
and the same for interfaces:
update Interfacesset Notes = NULLWhere Notes = ' '
RonCHenry:Oh and after the node service is restored, the fields clear out so next time it pops up you will see it needs a ticket number and comments added!
I had implemented a CustomProperty way back in the 7x NPM but eventually removed it because I couldn't figure out how to clear the "ticket/comments" fields after a node came back up. Each time a node went back down, the "old" custom property data was still in the database and it was causing confusion. I might have to give this another go if your process actually clears the information on an UP event!
chris.schear: I had implemented a CustomProperty way back in the 7x NPM but eventually removed it because I couldn't figure out how to clear the "ticket/comments" fields after a node came back up. Each time a node went back down, the "old" custom property data was still in the database and it was causing confusion. I might have to give this another go if your process actually clears the information on an UP event!
We chose to go the route of making the clearing of notes in this custom property a manual process. This way, you're not left with stale, hidden information that will pop back up later. This also serves the purpose of keeping up with long-term or chronic issues, as well as bouncing devices. Once the issue has been resolved, the tech who was working on it will go in and clear the text.
The mechanism we use to display the info on the web, which is a report from Report Writer, includes all the logic necessary to facilitate this. I don't remember off the top of my head if the out-of-the-box "Down Nodes" resource includes the ability to apply filters (I assume it does), but if so, you may be able to build the same logic into it as well.
I made a copy of 03-DownNodes.Resource located in your "...\NetPerfMon\Resources\1-1-SummaryReports" and called it 03-DownNodesAndStatusNotNull.Resource. I then edited the file using the suggestions from Vic and Network Guru and added my own functionality. This will not only display the nodes that are not up, but also nodes with comments (specifically NOT NULL, and NOT ' '<--- leading space issue in the post that someone has got to fix) in the Status_Info custom property. This is useful for monitoring unstable circuits, as well as for preventing stale information from being stored in the database. You can also create an alert suppression for nodes that have data in the status_info which will prevent multiple alerts for bouncing circuits. Once we have verified that the circuit is up and stable, we close our ticket in our ticketing system and then clear out the status_info field. After you have your new web resource, you will need to add it to your new custom view (it will be listed as Down Nodes and Non-Blank Status_Info under Summary Reports. Here is the content of the file with points of interest in bold (I will try to upload it as well):
----------------------- cut --------------------------------
<!-- Title=Down Nodes and Non-Blank Status_Info --><!-- Level=7 --><!--#include Virtual=/NetPerfMon/scripts/Resource.asp --><% Title=Resource.Title If Len(Title)=0 Then Title="Down Nodes and Non-Blank Status_Info"
SubTitle="The Following Nodes are not Responding" if Len(Resource.SubTitle)>0 Then SubTitle=Resource.SubTitle HelpPage="DownNodes" EditButton="/NetPerfMon/Resources/Filter.Edit.asp?ResourceID=" & Resource.ResourceID & "&ViewID=" & ViewID DoResourceHeader Set SQLResource = NetPerfMon.NewSQLResource SQLResource.SQL="Select * From Nodes Where (Status<>'1' OR NOT(Status_Info = NULL) OR NOT(Status_Info =' ')) Order By Caption" SQLResource.Filter= Resource.GetProperty("Filter") SQLResource.Execute%>
<table border="0" cellPadding="2" cellSpacing="0" width="100%">
<tr> <td class="ReportHeader" vAlign="center" width="20">Node</td> <td class="ReportHeader" vAlign="center"> </td> <td class="ReportHeader" vAlign="center">Status Info</td> <td class="ReportHeader" vAlign="center"> </td> </tr>
<% Do While Not SQLResource.EOF %><tr> <td class="Property" vAlign="center" width="20"><%=SQLResource.GetProperty("StatusLED;SmallIcon")%> </td> <td class="Property"><a <%=SQLResource.GetProperty("NodeParamString")%> href="/NetPerfMon/View.asp?View=NodeDetails&NetObject=N:<%=SQLResource.GetProperty(" mce_href="/NetPerfMon/View.asp?View=NodeDetails&NetObject=N:<%=SQLResource.GetProperty("NodeID")%>"><%=SQLResource.GetProperty("Caption")%></a> </td>
<td class="Property"><a href="/NetPerfMon/View.asp?View=NodeDetails&NetObject=N:<%=SQLResource.GetProperty(" mce_href="/NetPerfMon/View.asp?View=NodeDetails&NetObject=N:<%=SQLResource.GetProperty("NodeID")%>"><%=SQLResource.GetProperty("Status_Info")%></a> </td>
</tr>
<% SQLResource.MoveNext Loop%></table><br>
------------------------------- end cut ----------------------------------
chris.schear:I had implemented a CustomProperty way back in the 7x NPM but eventually removed it because I couldn't figure out how to clear the "ticket/comments" fields after a node came back up. Each time a node went back down, the "old" custom property data was still in the database and it was causing confusion. I might have to give this another go if your process actually clears the information on an UP event!
My workaround to this, is to mail out a weekly report to the whole team listing any node with a comment assigned to it, including the current status.This allows everyone to review their comments & update/delete them, as the case may be.
I also add the comments field to many of my scheduled Report Writer reports, as this can provide valuable additional outage info to many reports.
vhcato:YAY!!! :)Yeah, if you want all your users to be able to edit this info, then you don't need the hack, but you would have to give them the view customization priv, and that may not be a good thing. :)
I am having the same problem, once I allow edit customization everything works with no issues. This is not something I want to leave this way. :)
Has anyone else had this problem? or figured out how to get it to work?
Malvado: vhcato:YAY!!! :)Yeah, if you want all your users to be able to edit this info, then you don't need the hack, but you would have to give them the view customization priv, and that may not be a good thing. :) I am having the same problem, once I allow edit customization everything works with no issues. This is not something I want to leave this way. :) Has anyone else had this problem? or figured out how to get it to work?
Did you implement the change to the EditCustomProperty.Update.ASP as outlined in the README file that I attached? This only allows people who are allowed to clear events to have the ability to update the text in the custom property, but they can't make other changes (with the exception of the ability to clear events).
This is my update page
<!--#include Virtual=/NetPerfMon/scripts/NetPerfMon.asp --><% SelectWeb "NetPerfMon" VerifyLogin "USER" Dim ViewID Dim NetObject Dim NetDevice Dim PropertyName Dim PropertyValue ViewID = Request("ViewID") NetObject = Request("NetObject") Set NetDevice = NetPerfMon.GetNetObject(NetObject) If NetPerfMon.CurrentAccount.AllowEventClear Then PropertyName = Request("PropertyName") PropertyValue = Request("PropertyValue") NetDevice.SetProperty PropertyName, PropertyValue End If Set NetDevice = Nothing Response.Redirect "/NetPerfMon/View.asp?ViewID=" & ViewID & "&NetObject=" & NetObject %>
The only thing I can think of, is that my account is based on NT authentication, there is no local account, there is a local group that they belong to.
group name..
es\everyone
Yeap... You will need to have specific accounts either for those who you want to have the priv, or those who you don't want to have the priv (whichever is less). For example, let's say you only have 5 people who need to update this custom property via the web, and 500 people who don't. It would be easier to create 5 specific accounts for users who have the priv, and leave it disabled for the es\Everyone account. The same thing works in reverse. You can still configure the specific users to use Windows pass-thru authentication (for their specific domain accounts), and not the domain\Everyone account.
:(
Well I have about 100 people that need to have the update field and the rotate frequently, so administrating the account is a pain.
any other suggestion? I can grant everyone permission to update but do not want to allow them to customize.
Any other way anyone can thing of doing this?
Sure... Put them in a different domain. :)
OK, I know... Not funny. :(
Seriously, short of adding 100 specific accounts, or some other means to delineate responsibilities, I'm afraid I'm almost out of ideas at the moment. The only other thing that immediately comes to mind involves creating a single, local user account for the folks who need the additional priv, and have them login with the associated credentials. The "Node Details" view associated with this account would have the "Edit Custom Property" resource, but others would not. Others can still use the Windows pass-thru authentication, but these particular users would use the specific account with the additional priv. They could even login directly by passing the credentials in their URL. Naturally, this opens up the question of security, but it would work.
Approximately how many other users do you have?