Migrating ACL, Groups, Classes...
Dears,
I would like to know if he is possible migrate groups, acls and classrooms between two servers with cmsdk 9,0,4
Somebody can help-me?
Grateful,
Marcelo
Use the following documents for your help. Cisco Security Manager Install and Upgrade Guides
http://www.cisco.com/en/US/products/ps6498/prod_installation_guides_list.html
Similar Messages
-
User group [$CLASS] not an Org level field in IA, whereas it is in DA
Hi All,
We have an authorization problem that we faced while SAP Upgrade. In the development system while we upgraded all the roles, we did not face any issue. User group field [$CLASS] was actually an org level field in that system and the roles were upgraded based on that condition.
When the Integration system was up and the upgraded roles were transported to IA, we noticed that they ended with a warning. On checking the logs we found out that User group [CLASS] actually was not an Org level value in the INtegration system, whereas it was an org level field in the development system.
Can someone tell me the reason why it is different? Is there any settings we have to change to make User group an org level field in IA. Thanks a lot for your help.
VijithHello, I ran into this also and found these notes to explain why this is suddenly an org value and how to fix it:
http://search.sap.com/notes?id=0001580048
http://search.sap.com/notes?id=0001739055
Basically, GRC 10 add-on makes the user group an org value and the note instructs how to undo this manually, but there is a required pre-requisite because you cannot modify this for SAP delivered fields normally.
You know what else would be nice.... maybe there's a note that explains why Account Type is an org value. It REALLY should not be, IMO. -
Hi everyone,
Migrating from lync 2010 to lync 2013 using this guide http://technet.microsoft.com/en-us/library/jj204854.aspx
Now i have run the Move-CsRgsConfiguration
command and now i can see the response group created in lync 2013 and still exist in lync 2010 for roll back purposes as the guide specified.
Now i want to turn of the lync 2010 sql, so how can i decommission the
old lync response groups in lync 2010 before i remove the whole lync 2010
ammarhasayenI would not remove the Workflows from 2010. The article states "If any Lync Server 2010 response groups have been migrated to a Lync Server 2013 deployment, do not remove the contact objects of the migrated response groups. If you remove the contact object
of a migrated response group, the new response group will stop working. The response groups that remained in Lync Server 2010 after the migration will be removed when the Lync Server 2010 deployment is decommissioned."
If you remove the Service Contact Object, it will be removed from AD and the workflow will no longer be valid. When you decomision 2010 server, the duplicates will no longer appear.
Drago
http://www.lynclog.com -
Migrating Distribution groups error
hi all experts,
I am trying to migrate user/computers/groups from one domain to another... I have migrated users and computers are fine..when migrating distribution groups one is success and another is getting failed error 7422 access is denied
what could be the issue
great full for help
AdnanCheck the Access Control List on the group you are having problems. Odds are, someone has changed them for some reason and the account you are using doesn't have the rights it needs. Fix that and it should come across fine.
If it answered your question, remember to “Mark as Answer”.
If you found this post helpful, please “Vote as Helpful”.
Postings are provided “AS IS” with no warranties, and confers no rights.
Active Directory: Ultimate Reading Collection -
Hi,
How to move(migrate) OAF files(class files,PG files) using tools(Kintana).
Just want to know process for moving(migrating) OAF Files(class,PG) one instance to over instance(i.e dev to testing) using tools like kintana. We are planning to PVCS as versioning tool.
ThanksNew Line Types need to be added to Kintana Workflows and these line types should be able to use the xmlimport/xmlexport scripts.
We have customized Kintana to migrate forms personalizations using FNDLOAD.
I think, Change Management team should be able to address this.
Srini -
Weblogic implementation of java.security.acl.Group
hi guys
Do you know of any specific reason why there isnt a implementation of the
java.security.acl.Group interface in the weblogic jar.
I am trying to create a simple user manager service which uses the mbeans
exposed by weblogic. However the interface I am coding to expects me to return
java.security.acl.Group when I create a Group. This has resulted in a deadlock
as I havent been able to locate a non deprecated implementation.
Thanks
anandYes, you can do this.
Alexandre Vauthey wrote:
Hi,
If I write my own securrity realm, am I able to use my own implementaion of
'java.security.acl.Acl' and 'java.security.acl.AclEntry' or do I have to use
the implementation provided by weblogic ? When Security.checkPermission() is
called, does it solely rely on APIs defined in 'java.security.acl' or does
it really expect to talk to an instance of weblogic 'AclImpl' ?
Thanks, Alexandre.
Alexandre Vauthey
Software Engineer
Application Networks
444 Ramona street
Palo Alto, CA 94301 -
Migrate function group from 4.6 to 6.0 ecc
how can we migrate function group and modules from 4.6 to 6.0 ecc
please replyHello Yogesh
If you do not want to replace any functionality with new functions from ECC 6.0 but just "move" it to the higher release then import your custom function group into the ECC 6.0 system and remove any Unicode errors.
Unfortunately, transaction UCCHECK appears to be not available on release 4.6.
Further reading: [ABAP and Unicode|http://help.sap.com/saphelp_nw04/helpdata/en/62/3f2cadb35311d5993800508b6b8b11/frameset.htm]
Regards
Uwe -
How to migrate data groups?? Is there any script for migrating datagroups using fndload ?? Or is there any special procedure to migrate them? Please help me.
Thanks in advance.As per the FNDLOAD docs, you cannot use this tool to migrate the data groups and you will need to do it manually.
You could log a SR to confirm this with Oracle Support.
Thanks,
Hussein -
Hi,
I have a login custom module which does the authentication for my application.
Till now I was using WLSUserImpl and WLSGroupIpml and everything was working fine.
Now to make the LoginModule weblogic independent , I replaced the User and Group
classes with my own classes which extend from java.security.Principal.
But for some reason this isnt working. Am I missing something obvious.??
This the exception stack trace which I get
java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[com.isone.security.providers.authentication.ISOUser@1698cbe,
com.isone.security.providers.authentication.ISOGroup@9719f4, com.isone.security.providers.authentication.ISOGroup@28ebb4,
com.isone.security.providers.authentication.ISOGroup@8ab721, com.isone.security.providers.authentication.ISOGroup@fcf06c,
com.isone.security.providers.authentication.ISOGroup@c7539, com.isone.security.providers.authentication.ISOGroup@1e41830,
com.isone.security.providers.authentication.ISOGroup@1f01b29, com.isone.security.providers.authentication.ISOGroup@8721bd,
com.isone.security.providers.authentication.ISOGroup@1b81d4f, com.isone.security.providers.authentication.ISOGroup@8c6e04,
com.isone.security.providers.authentication.ISOGroup@18aeabe, com.isone.security.providers.authentication.ISOGroup@13968f1,
com.isone.security.providers.authentication.ISOGroup@18c28a, com.isone.security.providers.authentication.ISOGroup@18bff68,
com.isone.security.providers.authentication.ISOGroup@2d2da4]
at weblogic.security.service.SecurityServiceManager.seal(SecurityServiceManager.java:682)
at weblogic.security.service.RoleManager.getRoles(RoleManager.java:279)
at weblogic.security.service.AuthorizationManager.isAccessAllowed(AuthorizationManager.java:694)
at weblogic.servlet.security.internal.WebAppSecurity.hasPermission(WebAppSecurity.java:567)
at weblogic.servlet.security.internal.SecurityModule.checkPerm(SecurityModule.java:134)
at weblogic.servlet.security.internal.FormSecurityModule.checkUserPerm(FormSecurityModule.java:327)
at weblogic.servlet.security.internal.SecurityModule.beginCheck(SecurityModule.java:182)
at weblogic.servlet.security.internal.FormSecurityModule.checkA(FormSecurityModule.java:181)
at weblogic.servlet.security.internal.ServletSecurityManager.checkAccess(ServletSecurityManager.java:145)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3539)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2585)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)And this will explain you why there is no way to do this right now:
(CR125681 -- although it says 7.0SP1 it is not fixed even in 8.1 SP2 and
there is no time frame for the fix)
http://support.bea.com/application?namespace=askbea&origin=ask_bea_answer.jsp&event=link.view_answer_page_clfydoc&answerpage=solution&page=wls/S-21705.htm
We've had the same issue and even have an open support case and for now
the only way to workaround the bug is to
use the WLSUserImpl and WLSGroupImpl classes.
HTH,
Dejan
Pavel wrote:
See if this will help:
http://edocs.bea.com/wls/docs81/dvspisec/pv.html
Pavel.
"Anil" <[email protected]> wrote:
I actually extended PrincipalValidatorImpl and returned java.security.Principal
as the base class.
But still I got the same exception.
PaulF <paulf@reply_in_newsgroup.com> wrote:
On 25 Feb 2004 06:45:50 -0800, Anil <[email protected]> wrote:
Hi,
I have a login custom module which does the authentication for my
application.
Till now I was using WLSUserImpl and WLSGroupIpml and everything was
working fine.
Now to make the LoginModule weblogic independent , I replaced the
User
and Group
classes with my own classes which extend from java.security.Principal.
But for some reason this isnt working. Am I missing something obvious.??
This the exception stack trace which I get
java.lang.SecurityException: [Security:090398]Invalid Subject:
principals=[com.isone.security.providers.authentication.ISOUser@1698cbe,
com.isone.security.providers.authentication.ISOGroup@9719f4,
com.isone.security.providers.authentication.ISOGroup@28ebb4,
com.isone.security.providers.authentication.ISOGroup@8ab721,
com.isone.security.providers.authentication.ISOGroup@fcf06c,
com.isone.security.providers.authentication.ISOGroup@c7539,
com.isone.security.providers.authentication.ISOGroup@1e41830,
com.isone.security.providers.authentication.ISOGroup@1f01b29,
com.isone.security.providers.authentication.ISOGroup@8721bd,
com.isone.security.providers.authentication.ISOGroup@1b81d4f,
com.isone.security.providers.authentication.ISOGroup@8c6e04,
com.isone.security.providers.authentication.ISOGroup@18aeabe,
com.isone.security.providers.authentication.ISOGroup@13968f1,
com.isone.security.providers.authentication.ISOGroup@18c28a,
com.isone.security.providers.authentication.ISOGroup@18bff68,
com.isone.security.providers.authentication.ISOGroup@2d2da4]
at
weblogic.security.service.SecurityServiceManager.seal(SecurityServiceManager.java:682)
at weblogic.security.service.RoleManager.getRoles(RoleManager.java:279)
at
weblogic.security.service.AuthorizationManager.isAccessAllowed(AuthorizationManager.java:694)
at
weblogic.servlet.security.internal.WebAppSecurity.hasPermission(WebAppSecurity.java:567)
at
weblogic.servlet.security.internal.SecurityModule.checkPerm(SecurityModule.java:134)
at
weblogic.servlet.security.internal.FormSecurityModule.checkUserPerm(FormSecurityModule.java:327)
at
weblogic.servlet.security.internal.SecurityModule.beginCheck(SecurityModule.java:182)
at
weblogic.servlet.security.internal.FormSecurityModule.checkA(FormSecurityModule.java:181)
at
weblogic.servlet.security.internal.ServletSecurityManager.checkAccess(ServletSecurityManager.java:145)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3539)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2585)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
I think that you need to extend WLSAbstractPrincipal I think instead
of
WLSPrincipal if you aren't going to implement your own
PrincipalValidator. The default PrincipalValidator is going to expect
a
principal that extends WLSAbstractPrincipal.
PaulF
Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/ -
Hi
i'm a little unsure of how using ACL's works within a class map.
I want to allow access to a web server 1.1.1.1 and deny all othetraffic coming from the outside zone to the inside zone, so i have created an acl with a
permit http to 1.1.1.1 and a deny ip any any statement and applied it to the class map.
when i apply this to the policy map i can either inspect, drop or pass the traffic.
what i don't understand is how this works with the ACL permit or deny statements or the implicit deny functionality of the ACL.
for example if I apply the pass action to this class-map/ACL how does it handle the deny ip any any statement in the ACL?
If i am passing the traffic in the policy, does it still deny any deny statements in the ACL?
also what about multiple class maps in a policy map, wouldn't a deny statement in the first acl stop further processing in the policy map
hope this makes sense..
thanks for any helpWhen using ACLs in a class map, a permit entry causes the ACL condition to match and a deny entry does not. So, for your ACL "permit tcp any host 1.1.1.1 eq www", any HTTP traffic to 1.1.1.1 on 80/tcp will be matched by the class map and the implicit "deny ip any any" will not be matched. There is no action implied by the ACL when used this way, only a match or no match.
ip access-list extended ACL_HTTP
permit tcp any host 1.1.1.1 eq www
class-map type inspect match-any CM_HTTP
match access-group name ACL_HTTP
In order to actually deny the traffic, you have to specify a drop in the policy map.
policy-map PM_HTTP
class CM_HTTP
inspect
class class-default
drop
To illustrate the point a bit further, let's say you were going to allow HTTP and HTTPS with two ACLs and did it like this:
ip access-list extended ACL_HTTP
permit tcp any host 1.1.1.1 eq www
ip access-list extended ACL_HTTPS
permit tcp any host 1.1.1.1 eq 443
class-map type inspect match-any CM_HTTP
match access-group name ACL_HTTP
match access-group name ACL_HTTPS
policy-map PM_HTTP
class CM_HTTP
inspect
class class-default
drop
In the above case, HTTP traffic to 1.1.1.1 is a hit on ACL_HTTP's permit statement, is matched by the class map and is inspected by the policy map. HTTPS traffic to 1.1.1.1 is a hit on ACL_HTTPS's permit statement, is likewise matched by the class map and is inspected by the policy map. The implicit deny statements (and any other deny statements you may add) only ensure that the packet doesn't match that element of the class map and doesn't prevent it from being matched against another. -
DMS Migration (DIR, charateristics, classes)
Hi All,
I have a requirement to migrate the Document Info Records, characteristics, classes, classification and the original documents from R/3 4.7 to ECC 6 Server, as well as move the original docs from the old KPRO server to the new KPRO Server.
So far i was able to find the IDOC type that i can use for characteristics, classes and classification as well as the reports to do a mass distribution.
My biggest problem is migrating the documents and to also ensure that, the links point to the new server. Your help would be really appreciated.
Thank you in Advance,
DannyHi,
U can use the message class DOCMAS.
Also consider that you would need to transfer the following message types where applicable:
Classification data needs to be ALEu2019d to the new system, in the sequence set out below:
1. Characteristics and Characteristic Values
Most objects for variant configuration are dependent on characteristics. For this reason, characteristics must be transferred first.
u2022 Characteristics with value hierarchies, long texts for characteristic values, or linked documents may lead to problems during transfer.
u2022 Message type: CHRMAS
u2022 Availability: as of R/3 3.0
2. Classes
When you use ALE to distribute classes, the characteristic assignments are also transferred.
u2022 Message type: CLSMAS
u2022 Availability: as of R/3 3.0
3. Variant Table Structures
These are the variant tables that are created to support data maintenance.
u2022 Message type: VTAMAS
u2022 Availability: as of R/3 3.1
4. Variant Table Contents
Once the structures of the variant tables have been distributed, their contents can be transferred.
u2022 Message type: VTMMAS
u2022 Availability: as of R/3 3.1
5. User-Defined Functions (Variant Functions, VC Functions)
User-defined functions in variant configuration let you use function modules that you have written, to check and infer characteristic values.
The distribution of functions only transfers the framework (texts, characteristics, and so on). The function modules that belong to the functions must be transferred first, using the usual R/3 transport system.
u2022 Message type: VFNMAS
u2022 Availability: as of R/3 4.5
6. Object Dependencies (Except Constraints)
Dependencies (preconditions, selection conditions, procedures, and actions) usually refer to characteristics, characteristic values, variant tables, and variant functions. For this reason, dependencies must be distributed after this other master data. The dependencies transferred here are global dependencies. Local dependencies are transferred with the objects to which they are assigned. For example, if you created a selection condition as a local dependency for a BOM item, this dependency is transferred when you use ALE to distribute the BOM (bill of material).
u2022 Message type: KNOMAS
u2022 Availability: as of R/3 3.1
7. Constraints
Constraints can only be distributed as of R/3 4.5.
u2022 Message type: KNOMAS
u2022 Availability: as of R/3 4.5
8. Constraint Nets
Constraint nets can only be distributed as of R/3 4.5.
u2022 Message type: DEPNET
u2022 Availability: as of R/3 4.5
9. Assignment of Dependencies to Characteristics and Characteristic Values
u2022 The characteristics are transferred once more to do this. Start ALE distribution for characteristics again, and the system transfers the assignments.
See point 1: Characteristics and Characteristic Values
Regards,
Freddie. -
We have been given the task of migrating our existing identity management systems to OIM (Oracle Identity Manager).
Part of our existing system uses OID (Oracle Internet Directory). All users have an entry in OID. Some of our systems use OID for authentication.
We also use OID to hold users' entitlements/privileges that control access to our applications. We use OID groups (represented by entries based on groupOfUniqueNames and orclGroup objects) to do this. For example we might have an application called 'Finance' with three levels of access represented by OID groups e.g. 'finance_enquiry', 'finance_updater', 'finance_superuser'. Those groups would all belong to a parent group called 'finance_application'. To access the application the user needs to be a member of 'finance_application' group or one of its child groups. Access to features of the application are controlled by membership of the 3 child groups. We have an application that maintains groups, group membership, and user entitlements in OID.
As part of the migration project we want to move maintenance of groups and group membership from our own application into OIM. The above scenario seems quite basic.
My main question is how would this be done in OIM? Do our current OID groups become OIM Groups? Do they become entries in some lookup table in OIM? Are there any case studies or other documentation that describes this kind of requirement?
I've looked at the OIM Connector for OID documentation but it doesn't describe typical scenarios. It assumes that you know what you are doing.
We also want to give users the ability to request entitlements, and to provide an approval process. So we could have a user who approves/rejects entitlement requests to access to the applications they control. But that's a another topic.
Cheers,
EricPeachEye wrote:
We have been given the task of migrating our existing identity management systems to OIM (Oracle Identity Manager).
As part of the migration project we want to move maintenance of groups and group membership from our own application into OIM. The above > scenario seems quite basic.You're about to find out otherwise.
>
My main question is how would this be done in OIM? Do our current OID groups become OIM Groups? Do they become entries in some lookup table > in OIM? Are there any case studies or other documentation that describes this kind of requirement?You'll need a custom connector and lots of OIM tweaks. Your groups will stay in OID, OIM will replace the current application you use to maintain them. That's one way of doing it, no impact to OID schema is the benefit of this way, there are other ways. -
ACL group permissions not propagating
I have a group of designers that are connected to X Server running Snow Leopard.
I have placed them in a group, "MarComm"
I have granted everyone full read/write access. ( I can trust them all)
I have tried to propagate these permissions..I saved the changes and restarted server.
For some reason there are 2 sets of permissions.
1) full access (desired configuration)
2) "custom" access
This "custom" access does erratic things..for ex:
Allows the designer to pull off a job folder containing 12 items. He has permission to use 8 items, but not the remaining 4.
Perhaps I need a step by step tutorial on how to create a proper "group" and to propagate permissions. I understand that the ACL should take precedence over the POSIX. I am not well-versed in using the terminal, but I am a careful person, and willing to try it.
Thank you in advanceSetting up groups in WGM is pretty fool proof. What I would try first is to remove all of the ACL's for the folder in question first.
Ensure that all of the files and folders within your folder have ACL's that can be removed. If not, then you'll have to clear the ACL's on each, one at a time.
The command to clear the ACL's from a folder and it's subfile and folders looks like this:
sudo chmod -R -N /path/to/folder
If you want to just remove an ACL from one file or folder, remove the -R from the command.
To write an ACL and have it apply to all folders within looks like this: (two commands, one to add read and one to add write permissions)
sudo chmod -R +a "groupname allow read" /path/to/file/
sudo chmod -R +a "groupname allow write" /path/to/file/
HTH!
-Graham -
SCOM SP1 Groups, Classes and SNMP
I've been working on a management pack using some of the examples on the net (Kristopher Bash from the operating-quadrantin has been a huge inspiration) to monitor an Isilon cluster. This had lead me to a number of interesting challenges to over come since I have to design this within the confines of SP1 and I have a unique networking to device configuration.
Device Overview:
The Isilon cluster itself is a number of FreeBSD systems (nodes) joined together via and infiniband backend to create a single NAS. While normally this would not be an issue, network connectivity to the device and SNMP response from the cluster have been. In my configuration I have a total of 8 nodes each node has 2 network interfaces. Of these 16 network interfaces only 2 are accessible/on the same network as my RMS (em1 node2, em1 node4).
Device SNMP Design:
While the cluster is highly dynamic the SNMP sub-systems are not. The MIB created by Isilon does not join the whole of the cluster into an index for SNMP polling. I can only poll a single nodes OID's. To over come this limitation Isilon implemented SNMP-Proxy or comtosec within the system. This allowed me to poll node 3 by changing the community name for the OID I was polling from the discovered name to <discoveredname>_node_3.
MP Design:
Now I'm not the best at MP design since I rarely work within SCOM so don't laugh too hard... I reused items from Kristopher's Cisco MP and created a number of classes for discovery and item hosting. To address the limitation I found within SCOM for dynamic discovery and 1 IP address 1 Community Name, I created a class property within the root called ConfiguredNodes. I can poll the Isilon an populate this value (8). Then I created a sub-class property value called NodeCommStr to fill in all the custom community names I generate using a VB script with Base64 encode/decode, the discovery community name and the ConfiguredNodes value, in the data source for sub-class discovery. public_node_1 public_node_2 etc...
All in all this is working well however I have run into a few design roadblocks and I have some questions.
1. When I discover a set of items within the Isilon cluster the health explorer is not sorting this information alphabetically. Is there a value I can include in the dependency roll-up to correct this?
2. I have run into an issue with the Isilon MIB and I'm looking for the best way to overcome the MIB's design. They included a fan table with fan information and speed of the fans however there is no status (success{0}, warning{1}, error{2}). I created a monitor type to compensate for this and included overrides for the warning and critical event points. This is where I found the curve ball, seems that the fans are not the same.... There are 2 sets of fans - Chassis and Power Supply - and they have different thresholds *rolls eyes*. Some I'm asking for the best design advice, should I create 2 classes, discoveries, monitor types, etc.? Or can I address this issue by creating 2 monitor types with a string filter?
3. I've been successful in creating this MP and displaying the information as a single device however I was wondering if there was a way to create dynamic groups with sub groups. This would have to be 100% dynamic since I can add a 9th 10th 192nd (yes 192) node to the cluster.
Cluster
-ClusterNode1
-ClusterNode1Power
-ClusterNode1Fans
-etc
The information is there in the NodeCommStr, I'm just in brain lock on how to design it right now.
Again, code is raw and a work in progress so please no giggling. Oh this is a multi post... Code is too long.
<Manifest>
<Identity>
<ID>IsilonSNMP</ID>
<Version>1.0.1.2</Version>
</Identity>
<Name>IsilonSNMP</Name>
<References>
<Reference Alias="MicrosoftSystemCenterNetworkDeviceLibrary">
<ID>Microsoft.SystemCenter.NetworkDevice.Library</ID>
<Version>6.0.6278.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
<Reference Alias="Snmp">
<ID>System.Snmp.Library</ID>
<Version>6.0.6278.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
<Reference Alias="SystemHardwareLibrary">
<ID>System.Hardware.Library</ID>
<Version>6.0.6278.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
<Reference Alias="Windows">
<ID>Microsoft.Windows.Library</ID>
<Version>6.0.6278.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
<Reference Alias="SystemPerformanceLibrary">
<ID>System.Performance.Library</ID>
<Version>6.0.6278.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
<Reference Alias="System">
<ID>System.Library</ID>
<Version>6.0.6278.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
<Reference Alias="SC">
<ID>Microsoft.SystemCenter.Library</ID>
<Version>6.0.6278.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
<Reference Alias="Health">
<ID>System.Health.Library</ID>
<Version>6.0.6278.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
</References>
</Manifest>
<TypeDefinitions>
<EntityTypes>
<ClassTypes>
<ClassType ID="IsilonSNMP.Class.IsilonCluster" Accessibility="Public" Abstract="false" Base="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice" Hosted="false" Singleton="false">
<Property ID="Hostname" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" />
<Property ID="ConfiguredNodes" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" />
<!-- <Property ID="NodeCommStr" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" /> -->
</ClassType>
<ClassType ID="IsilonSNMP.Class.IsilonCluster.Nodes" Accessibility="Public" Abstract="false" Base="SystemHardwareLibrary!System.Chassis" Hosted="true" Singleton="false">
<Property ID="Name" Type="string" Key="true" CaseSensitive="false" Length="256" MinLength="0" />
</ClassType>
<ClassType ID="IsilonSNMP.Class.IsilonCluster.PhysicalDisk" Accessibility="Public" Abstract="false" Base="SystemHardwareLibrary!System.PhysicalDisk" Hosted="true" Singleton="false">
<Property ID="Index" Type="string" Key="true" CaseSensitive="false" Length="256" MinLength="0" />
<!-- <Property ID="ConfiguredNodes" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" /> -->
<Property ID="NodeCommStr" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" />
<Property ID="BayIndex" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" />
</ClassType>
<ClassType ID="IsilonSNMP.Class.IsilonCluster.PhysicalFan" Accessibility="Public" Abstract="false" Base="SystemHardwareLibrary!System.Fan" Hosted="true" Singleton="false">
<Property ID="Index" Type="string" Key="true" CaseSensitive="false" Length="256" MinLength="0" />
<Property ID="NodeCommStr" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" />
<Property ID="FanNumber" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" />
</ClassType>
<ClassType ID="IsilonSNMP.Group.IsilonClusters" Accessibility="Public" Abstract="false" Base="System!System.Group" Hosted="false" Singleton="true" />
</ClassTypes>
<RelationshipTypes>
<RelationshipType ID="IsilonSNMP.Relationship.ClusterHostsNodes" Accessibility="Internal" Abstract="false" Base="System!System.Hosting">
<Source>IsilonSNMP.Class.IsilonCluster</Source>
<Target>IsilonSNMP.Class.IsilonCluster.Nodes</Target>
</RelationshipType>
<RelationshipType ID="IsilonSNMP.Relationship.IsilonClustersGroupContainsIsilonClusters" Accessibility="Public" Abstract="false" Base="System!System.Containment">
<Source>IsilonSNMP.Group.IsilonClusters</Source>
<Target>IsilonSNMP.Class.IsilonCluster</Target>
</RelationshipType>
<RelationshipType ID="IsilonSNMP.Relationship.NodesHostsPhysicalDisk" Accessibility="Public" Abstract="false" Base="System!System.Hosting">
<Source>IsilonSNMP.Class.IsilonCluster.Nodes</Source>
<Target>IsilonSNMP.Class.IsilonCluster.PhysicalDisk</Target>
</RelationshipType>
<RelationshipType ID="IsilonSNMP.Relationship.NodesHostsPhysicalFan" Accessibility="Public" Abstract="false" Base="System!System.Hosting">
<Source>IsilonSNMP.Class.IsilonCluster.Nodes</Source>
<Target>IsilonSNMP.Class.IsilonCluster.PhysicalFan</Target>
</RelationshipType>
</RelationshipTypes>
</EntityTypes>
<ModuleTypes>
<DataSourceModuleType ID="IsilonSNMP.DataSource.BasicSNMPProbe" Accessibility="Internal" Batching="false">
<Configuration>
<xsd:element minOccurs="1" name="Interval" type="xsd:integer" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="IPAddress" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="CommStr" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="OID" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="Interval" Selector="$Config/Interval$" ParameterType="int" />
</OverrideableParameters>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<DataSource ID="Scheduler" TypeID="System!System.Scheduler">
<Scheduler>
<SimpleReccuringSchedule>
<Interval>$Config/Interval$</Interval>
<SyncTime />
</SimpleReccuringSchedule>
<ExcludeDates />
</Scheduler>
</DataSource>
<ProbeAction ID="SNMPProbe" TypeID="Snmp!System.SnmpProbe">
<IsWriteAction>false</IsWriteAction>
<IP>$Config/IPAddress$</IP>
<CommunityString>$Config/CommStr$</CommunityString>
<SnmpVarBinds>
<SnmpVarBind>
<OID>$Config/OID$</OID>
<Syntax>0</Syntax>
<Value VariantType="8" />
</SnmpVarBind>
</SnmpVarBinds>
</ProbeAction>
<ConditionDetection ID="ValueFilter" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
</ValueExpression>
<Operator>NotEqual</Operator>
<ValueExpression>
<Value Type="String" />
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
</MemberModules>
<Composition>
<Node ID="ValueFilter">
<Node ID="SNMPProbe">
<Node ID="Scheduler" />
</Node>
</Node>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>Snmp!System.SnmpData</OutputType>
</DataSourceModuleType>
<DataSourceModuleType ID="IsilonSNMP.DataSource.DiscoverContainmentClasses" Accessibility="Internal" Batching="false">
<Configuration>
<IncludeSchemaTypes>
<SchemaType>System!System.ParamListSchema</SchemaType>
<SchemaType>System!System.Discovery.MapperSchema</SchemaType>
</IncludeSchemaTypes>
<xsd:element minOccurs="1" name="IPAddress" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="ClassID" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="InstanceSettings" type="SettingsType" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
</Configuration>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<DataSource ID="Scheduler" TypeID="System!System.Scheduler">
<Scheduler>
<SimpleReccuringSchedule>
<Interval>60</Interval>
<SyncTime />
</SimpleReccuringSchedule>
<ExcludeDates />
</Scheduler>
</DataSource>
<ConditionDetection ID="Mapper" TypeID="System!System.Discovery.ClassSnapshotDataMapper">
<ClassId>$Config/ClassID$</ClassId>
<InstanceSettings>$Config/InstanceSettings$</InstanceSettings>
</ConditionDetection>
</MemberModules>
<Composition>
<Node ID="Mapper">
<Node ID="Scheduler" />
</Node>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.Discovery.Data</OutputType>
</DataSourceModuleType>
<DataSourceModuleType ID="IsilonSNMP.DataSource.DiscoverCluster" Accessibility="Internal" Batching="false">
<Configuration>
<xsd:element minOccurs="1" name="Interval" type="xsd:integer" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="IP" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="CommunityString" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="SystemOID" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="Interval" Selector="$Config/Interval$" ParameterType="int" />
</OverrideableParameters>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<DataSource ID="Scheduler" TypeID="System!System.Scheduler">
<Scheduler>
<SimpleReccuringSchedule>
<Interval Unit="Seconds">$Config/Interval$</Interval>
</SimpleReccuringSchedule>
<ExcludeDates />
</Scheduler>
</DataSource>
<ProbeAction ID="Probe" TypeID="Snmp!System.SnmpProbe">
<IsWriteAction>false</IsWriteAction>
<IP>$Config/IP$</IP>
<CommunityString>$Config/CommunityString$</CommunityString>
<SnmpVarBinds>
<SnmpVarBind>
<OID>.1.3.6.1.4.1.12124.1.1.4.0</OID>
<Syntax>0</Syntax>
<Value VariantType="8" />
</SnmpVarBind>
<SnmpVarBind>
<OID>.1.3.6.1.4.1.12124.1.1.1.0</OID>
<Syntax>0</Syntax>
<Value VariantType="8" />
</SnmpVarBind>
<SnmpVarBind>
<OID>.1.3.6.1.2.1.1.5.0</OID>
<Syntax>0</Syntax>
<Value VariantType="8" />
</SnmpVarBind>
<SnmpVarBind>
<OID>.1.3.6.1.2.1.1.1.0</OID>
<Syntax>0</Syntax>
<Value VariantType="8" />
</SnmpVarBind>
<SnmpVarBind>
<OID>.1.3.6.1.2.1.1.4.0</OID>
<Syntax>0</Syntax>
<Value VariantType="8" />
</SnmpVarBind>
<SnmpVarBind>
<OID>.1.3.6.1.2.1.1.6.0</OID>
<Syntax>0</Syntax>
<Value VariantType="8" />
</SnmpVarBind>
<SnmpVarBind>
<OID>.1.3.6.1.2.1.1.2.0</OID>
<Syntax>0</Syntax>
<Value VariantType="8" />
</SnmpVarBind>
</SnmpVarBinds>
</ProbeAction>
<ConditionDetection ID="Mapper" TypeID="System!System.Discovery.FilteredClassSnapshotDataMapper">
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery>/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
</ValueExpression>
<Operator>ContainsSubstring</Operator>
<Pattern>1.3.6.1.4.1.12124.</Pattern>
</RegExExpression>
</Expression>
<ClassId>$MPElement[Name="IsilonSNMP.Class.IsilonCluster"]$</ClassId>
<InstanceSettings>
<Settings>
<Setting>
<Name>$MPElement[Name="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</Name>
<Value>$Data/Source$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/Name$</Name>
<Value>$Data/SnmpVarBinds/SnmpVarBind[5]/Value$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/SystemDescription$</Name>
<Value>$Data/SnmpVarBinds/SnmpVarBind[4]/Value$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/SystemContact$</Name>
<Value>$Data/SnmpVarBinds/SnmpVarBind[3]/Value$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/SystemLocation$</Name>
<Value>$Data/SnmpVarBinds/SnmpVarBind[2]/Value$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/SystemOID$</Name>
<Value>$Data/SnmpVarBinds/SnmpVarBind[1]/Value$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="System!System.Entity"]/DisplayName$</Name>
<Value>$Data/SnmpVarBinds/SnmpVarBind[5]/Value$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="IsilonSNMP.Class.IsilonCluster"]/Hostname$</Name>
<Value>$Data/SnmpVarBinds/SnmpVarBind[6]/Value$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="IsilonSNMP.Class.IsilonCluster"]/ConfiguredNodes$</Name>
<Value>$Data/SnmpVarBinds/SnmpVarBind[7]/Value$</Value>
</Setting>
</Settings>
</InstanceSettings>
</ConditionDetection>
<ConditionDetection ID="SystemOIDFilter" TypeID="System!System.ExpressionFilter">
<Expression>
<RegExExpression>
<ValueExpression>
<Value>$Config/SystemOID$</Value>
</ValueExpression>
<Operator>ContainsSubstring</Operator>
<Pattern>1.3.6.1.4.1.12124.</Pattern>
</RegExExpression>
</Expression>
</ConditionDetection>
</MemberModules>
<Composition>
<Node ID="Mapper">
<Node ID="Probe">
<Node ID="SystemOIDFilter">
<Node ID="Scheduler" />
</Node>
</Node>
</Node>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.Discovery.Data</OutputType>
</DataSourceModuleType>
<DataSourceModuleType ID="IsilonSNMP.DataSource.DiscoverPhysicalDisk" Accessibility="Internal" Batching="false">
<Configuration>
<xsd:element minOccurs="1" name="IPAddress" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="CommStr" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="Interval" type="xsd:integer" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="ConfiguredNodes" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="BayIndex" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="NodeCommStr" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="Interval" Selector="$Config/Interval$" ParameterType="int" />
</OverrideableParameters>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<DataSource ID="Scheduler" TypeID="System!System.Scheduler">
<Scheduler>
<SimpleReccuringSchedule>
<Interval>$Config/Interval$</Interval>
<SyncTime />
</SimpleReccuringSchedule>
<ExcludeDates />
</Scheduler>
</DataSource>
<ProbeAction ID="ScriptDiscovery" TypeID="Windows!Microsoft.Windows.ScriptDiscoveryProbe">
<ScriptName>DiscoverIsilonDisk.vbs</ScriptName>
<Arguments>$Config/IPAddress$ $Config/CommStr$ $MPElement$ $Target/Id$ $Config/ConfiguredNodes$</Arguments>
<ScriptBody>
<![CDATA['Discover PhysicalDisk
Dim oAPI, oDiscoveryData, oInst, objWMIServices, objWMILocator, oArgs
set oArgs = Wscript.Arguments
if oArgs.Count <5 Then
Wscript.Quit -1
End If
DeviceIP = oArgs(0)
CommStr = oArgs(1)
SourceID = oArgs(2)
ManagedEntityId = oArgs(3)
StrConfiguredNodes = oArgs(4)
CommStr = Decode(CommStr)
ConfiguredNodesCommStr = cstr(CommStr)
wscript.echo CommStr
Set oAPI = CreateObject("MOM.ScriptAPI")
set oDiscoveryData = oAPI.CreateDiscoveryData(0, SourceId, ManagedEntityId)
Set objWMILocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIServices = objWMiLocator.ConnectServer("","root\snmp\localhost")
'Name community name
GetPhysicalDisks
'Created community names
For i = 1 to StrConfiguredNodes
CommStr = ConfiguredNodesCommStr & "_node_" & i
GetPhysicalDisks
Next
'Return all data to SCOM
Call oAPI.Return(oDiscoveryData)
Sub GetPhysicalDisks
on error resume next
Set objWmiNamedValueSet = CreateObject("WbemScripting.SWbemNamedValueSet")
objWmiNamedValueSet.Add "AgentAddress", cstr(DeviceIP)
objWmiNamedValueSet.Add "AgentReadCommunityName", cstr(CommStr)
Set colPhysicalDisk = objWmiServices.InstancesOf("SNMP_ISILON_MIB_diskTable", , objWMINamedValueset)
For each objItem in colPhysicalDisk
nIndex = objItem.diskBay
sDesc = objItem.diskSerialNumber
if nIndex > 0 then
set oInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='IsilonSNMP.Class.IsilonCluster.PhysicalDisk']$")
call oInst.AddProperty("$MPElement[Name='MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice']/IPAddress$", DeviceIP)
call oInst.AddProperty("$MPElement[Name='IsilonSNMP.Class.IsilonCluster.PhysicalDisk']/Index$", cstr(CommStr) & "-" & cdbl(nIndex))
call oInst.AddProperty("$MPElement[Name='IsilonSNMP.Class.IsilonCluster.PhysicalDisk']/NodeCommStr$", Encode(CommStr))
call oInst.AddProperty("$MPElement[Name='IsilonSNMP.Class.IsilonCluster.PhysicalDisk']/BayIndex$", cdbl(nIndex))
call oInst.AddProperty("$MPElement[Name='IsilonSNMP.Class.IsilonCluster.Nodes']/Name$", "Cluster")
call oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "SNMP Host " & cstr(CommStr) & " - Bay " & nIndex & " - Serial Number " & HexToString(sDesc))
'call oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", HexToString(sDesc))
call oDiscoveryData.AddInstance(oInst)
'Test Section
'wscript.echo Base64Encode(CommStr)
'wscript.echo Base64Encoder(CommStr)
'wscript.Echo CommStr
'wscript.Echo nIndex
'Wscript.Echo HexToString(sDesc)
'wscript.echo cdbl(nIndex) & cstr(CommStr)
end if
Next
on error goto 0
End Sub
Function Decode(strB64)
strXML = "<B64DECODE xmlns:dt=" & Chr(34) & _
"urn:schemas-microsoft-com:datatypes" & Chr(34) & " " & _
"dt:dt=" & Chr(34) & "bin.base64" & Chr(34) & ">" & _
strB64 & "</B64DECODE>"
Set oXMLDoc = CreateObject("MSXML2.DOMDocument.3.0")
oXMLDoc.LoadXML(strXML)
decode = oXMLDoc.selectsinglenode("B64DECODE").nodeTypedValue
set oXMLDoc = nothing
End Function
Function Encode(Str)
'Use ADODB.Stream to write Ansi string to Unicode stream
Set objStream = CreateObject("ADODB.Stream")
objStream.Type = 2
objStream.Open
objStream.Charset = "unicode"
objStream.WriteText Str
objstream.Flush
'Read the stream back as a byte array
objStream.Position = 0
objStream.Type = 1
temp = objstream.read(2) 'read two bytes of the stream to discard the byte order mark
bArray = objStream.Read
objStream.Close
'Convert byte array to Base64
set objXML = createobject("MSXML2.DOMDocument.3.0")
Set objNode = objXML.createElement("b64")
objNode.dataType = "bin.base64"
objNode.nodeTypedValue = bArray
Encode = objNode.Text
Set Stream = Nothing
set objNode = nothing
set objXML = nothing
End Function
Function HexToString(str)
on error resume next
sOutput = ""
For x = 1 To len(str) Step 2
sChar = Chr(Clng("&h" & Mid(str,x,2)))
sOutput = sOutput & sChar
Next
if err.number = 0 then
HexToString = sOutput
Else
HexToString = str
end if
End Function
set oInst = nothing
set oDiscoveryData = nothing
set oArgs = nothing
set oAPI = nothing
set objWMILocator = nothing
set objWMIServices = nothing
set objWMINamedValueSet = nothing
]]>
</ScriptBody>
<TimeoutSeconds>120</TimeoutSeconds>
</ProbeAction>
</MemberModules>
<Composition>
<Node ID="ScriptDiscovery">
<Node ID="Scheduler" />
</Node>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.Discovery.Data</OutputType>
</DataSourceModuleType><DataSourceModuleType ID="IsilonSNMP.DataSource.DiscoverPhysicalFan" Accessibility="Internal" Batching="false">
<Configuration>
<xsd:element minOccurs="1" name="IPAddress" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="CommStr" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="Interval" type="xsd:integer" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="ConfiguredNodes" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="FanNumber" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="NodeCommStr" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="FanSpeedHighCritical" type="xsd:integer" />
<xsd:element minOccurs="1" name="FanSpeedLowWarn" type="xsd:integer" />
<xsd:element minOccurs="1" name="FanSpeedLowCritical" type="xsd:integer" />
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="Interval" Selector="$Config/Interval$" ParameterType="int" />
<OverrideableParameter ID="FanSpeedHighCritical" Selector="$Config/FanSpeedHighCritical$" ParameterType="int" />
<OverrideableParameter ID="FanSpeedLowWarn" Selector="$Config/FanSpeedLowWarn$" ParameterType="int" />
<OverrideableParameter ID="FanSpeedLowCritical" Selector="$Config/FanSpeedLowCritical$" ParameterType="int" />
</OverrideableParameters>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<DataSource ID="Scheduler" TypeID="System!System.Scheduler">
<Scheduler>
<SimpleReccuringSchedule>
<Interval>$Config/Interval$</Interval>
<SyncTime />
</SimpleReccuringSchedule>
<ExcludeDates />
</Scheduler>
</DataSource>
<ProbeAction ID="ScriptDiscovery" TypeID="Windows!Microsoft.Windows.ScriptDiscoveryProbe">
<ScriptName>DiscoverIsilonPhysicalFan.vbs</ScriptName>
<Arguments>$Config/IPAddress$ $Config/CommStr$ $MPElement$ $Target/Id$ $Config/ConfiguredNodes$</Arguments>
<ScriptBody>
<![CDATA['Discover PhysicalFan
Dim oAPI, oDiscoveryData, oInst, objWMIServices, objWMILocator, oArgs
set oArgs = Wscript.Arguments
if oArgs.Count <5 Then
Wscript.Quit -1
End If
DeviceIP = oArgs(0)
CommStr = oArgs(1)
SourceID = oArgs(2)
ManagedEntityId = oArgs(3)
StrConfiguredNodes = oArgs(4)
CommStr = Decode(CommStr)
ConfiguredNodesCommStr = cstr(CommStr)
wscript.echo CommStr
Set oAPI = CreateObject("MOM.ScriptAPI")
set oDiscoveryData = oAPI.CreateDiscoveryData(0, SourceId, ManagedEntityId)
Set objWMILocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIServices = objWMiLocator.ConnectServer("","root\snmp\localhost")
'Name community name
GetPhysicalFan
'Created community names
For i = 1 to StrConfiguredNodes
CommStr = ConfiguredNodesCommStr & "_node_" & i
GetPhysicalFan
Next
'Return all data to SCOM
Call oAPI.Return(oDiscoveryData)
Sub GetPhysicalFan
on error resume next
Set objWmiNamedValueSet = CreateObject("WbemScripting.SWbemNamedValueSet")
objWmiNamedValueSet.Add "AgentAddress", cstr(DeviceIP)
objWmiNamedValueSet.Add "AgentReadCommunityName", cstr(CommStr)
Set colPhysicalFan = objWmiServices.InstancesOf("SNMP_ISILON_MIB_FanTable", , objWMINamedValueset)
For each objItem in colPhysicalFan
nIndex = objItem.fanNumber
sDesc = objItem.fanDescription
if nIndex > 0 then
set oInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='IsilonSNMP.Class.IsilonCluster.PhysicalFan']$")
call oInst.AddProperty("$MPElement[Name='MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice']/IPAddress$", DeviceIP)
call oInst.AddProperty("$MPElement[Name='IsilonSNMP.Class.IsilonCluster.PhysicalFan']/Index$", cstr(CommStr) & "-" & cdbl(nIndex))
call oInst.AddProperty("$MPElement[Name='IsilonSNMP.Class.IsilonCluster.PhysicalFan']/NodeCommStr$", Encode(CommStr))
call oInst.AddProperty("$MPElement[Name='IsilonSNMP.Class.IsilonCluster.PhysicalFan']/FanNumber$", cdbl(nIndex))
call oInst.AddProperty("$MPElement[Name='IsilonSNMP.Class.IsilonCluster.Nodes']/Name$", "Cluster")
'call oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "SNMP Host " & cstr(CommStr) & " - Bay " & nIndex & " - Serial Number " & HexToString(sDesc))
call oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "SNMP Host " & cstr(CommStr) & " - " & HexToString(sDesc))
call oDiscoveryData.AddInstance(oInst)
'Test Section
'wscript.echo Base64Encode(CommStr)
'wscript.echo Base64Encoder(CommStr)
'wscript.Echo CommStr
'wscript.Echo nIndex
'Wscript.Echo HexToString(sDesc)
'wscript.echo cdbl(nIndex) & cstr(CommStr)
end if
Next
on error goto 0
End Sub
Function Decode(strB64)
strXML = "<B64DECODE xmlns:dt=" & Chr(34) & _
"urn:schemas-microsoft-com:datatypes" & Chr(34) & " " & _
"dt:dt=" & Chr(34) & "bin.base64" & Chr(34) & ">" & _
strB64 & "</B64DECODE>"
Set oXMLDoc = CreateObject("MSXML2.DOMDocument.3.0")
oXMLDoc.LoadXML(strXML)
decode = oXMLDoc.selectsinglenode("B64DECODE").nodeTypedValue
set oXMLDoc = nothing
End Function
Function Encode(Str)
'Use ADODB.Stream to write Ansi string to Unicode stream
Set objStream = CreateObject("ADODB.Stream")
objStream.Type = 2
objStream.Open
objStream.Charset = "unicode"
objStream.WriteText Str
objstream.Flush
'Read the stream back as a byte array
objStream.Position = 0
objStream.Type = 1
temp = objstream.read(2) 'read two bytes of the stream to discard the byte order mark
bArray = objStream.Read
objStream.Close
'Convert byte array to Base64
set objXML = createobject("MSXML2.DOMDocument.3.0")
Set objNode = objXML.createElement("b64")
objNode.dataType = "bin.base64"
objNode.nodeTypedValue = bArray
Encode = objNode.Text
Set Stream = Nothing
set objNode = nothing
set objXML = nothing
End Function
Function HexToString(str)
on error resume next
sOutput = ""
For x = 1 To len(str) Step 2
sChar = Chr(Clng("&h" & Mid(str,x,2)))
sOutput = sOutput & sChar
Next
if err.number = 0 then
HexToString = sOutput
Else
HexToString = str
end if
End Function
set oInst = nothing
set oDiscoveryData = nothing
set oArgs = nothing
set oAPI = nothing
set objWMILocator = nothing
set objWMIServices = nothing
set objWMINamedValueSet = nothing
]]>
</ScriptBody>
<TimeoutSeconds>120</TimeoutSeconds>
</ProbeAction>
</MemberModules>
<Composition>
<Node ID="ScriptDiscovery">
<Node ID="Scheduler" />
</Node>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.Discovery.Data</OutputType>
</DataSourceModuleType>
</ModuleTypes>
<MonitorTypes>
<UnitMonitorType ID="IsilonSNMP.MonitorType.PhysicalDiskStatus" Accessibility="Internal">
<MonitorTypeStates>
<MonitorTypeState ID="PhysicalDiskOK" NoDetection="false" />
<MonitorTypeState ID="PhysicalDiskNotOK" NoDetection="false" />
</MonitorTypeStates>
<Configuration>
<xsd:element minOccurs="1" name="Interval" type="xsd:integer" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="IPAddress" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="OID" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="NodeCommStr" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
</Configuration>
<MonitorImplementation>
<MemberModules>
<DataSource ID="DS1" TypeID="IsilonSNMP.DataSource.BasicSNMPProbe">
<Interval>$Config/Interval$</Interval>
<IPAddress>$Config/IPAddress$</IPAddress>
<CommStr>$Config/NodeCommStr$</CommStr>
<OID>$Config/OID$</OID>
</DataSource>
<ConditionDetection ID="CDPhysicalDiskOK" TypeID="System!System.ExpressionFilter">
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="String">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
</ValueExpression>
<Operator>ContainsSubstring</Operator>
<Pattern>HEALTHY</Pattern>
</RegExExpression>
</Expression>
</ConditionDetection>
<ConditionDetection ID="CDPhysicalDiskNotOK" TypeID="System!System.ExpressionFilter">
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="String">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
</ValueExpression>
<Operator>DoesNotContainSubstring</Operator>
<Pattern>HEALTHY</Pattern>
</RegExExpression>
</Expression>
</ConditionDetection>
</MemberModules>
<RegularDetections>
<RegularDetection MonitorTypeStateID="PhysicalDiskOK">
<Node ID="CDPhysicalDiskOK">
<Node ID="DS1" />
</Node>
</RegularDetection>
<RegularDetection MonitorTypeStateID="PhysicalDiskNotOK">
<Node ID="CDPhysicalDiskNotOK">
<Node ID="DS1" />
</Node>
</RegularDetection>
</RegularDetections>
</MonitorImplementation>
</UnitMonitorType>
<UnitMonitorType ID="IsilonSNMP.MonitorType.PhysicalFanStatus" Accessibility="Internal">
<MonitorTypeStates>
<MonitorTypeState ID="PhysicalFanOK" NoDetection="false" />
<MonitorTypeState ID="PhysicalFanWarn" NoDetection="false" />
<MonitorTypeState ID="PhysicalFanCritical" NoDetection="false" />
</MonitorTypeStates>
<Configuration>
<xsd:element minOccurs="1" name="Interval" type="xsd:integer" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="IPAddress" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="OID" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="NodeCommStr" type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
<xsd:element minOccurs="1" name="FanSpeedHighCritical" type="xsd:integer" />
<xsd:element minOccurs="1" name="FanSpeedLowWarn" type="xsd:integer" />
<xsd:element minOccurs="1" name="FanSpeedLowCritical" type="xsd:integer" />
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="Interval" Selector="$Config/Interval$" ParameterType="int" />
<OverrideableParameter ID="FanSpeedHighCritical" Selector="$Config/FanSpeedHighCritical$" ParameterType="int" />
<OverrideableParameter ID="FanSpeedLowWarn" Selector="$Config/FanSpeedLowWarn$" ParameterType="int" />
<OverrideableParameter ID="FanSpeedLowCritical" Selector="$Config/FanSpeedLowCritical$" ParameterType="int" />
</OverrideableParameters>
<MonitorImplementation>
<MemberModules>
<DataSource ID="DS1" TypeID="IsilonSNMP.DataSource.BasicSNMPProbe">
<Interval>$Config/Interval$</Interval>
<IPAddress>$Config/IPAddress$</IPAddress>
<CommStr>$Config/NodeCommStr$</CommStr>
<OID>$Config/OID$</OID>
</DataSource>
<ConditionDetection ID="CDPhysicalFanOK" TypeID="System!System.ExpressionFilter">
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Integer">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
</ValueExpression>
<Operator>Less</Operator>
<ValueExpression>
<Value Type="Integer">$Config/FanSpeedHighCritical$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Integer">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
</ValueExpression>
<Operator>Greater</Operator>
<ValueExpression>
<Value Type="Integer">$Config/FanSpeedLowWarn$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</ConditionDetection>
<ConditionDetection ID="CDPhysicalFanWarn" TypeID="System!System.ExpressionFilter">
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Integer">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
</ValueExpression>
<Operator>LessEqual</Operator>
<ValueExpression>
<Value Type="Integer">$Config/FanSpeedLowWarn$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Integer">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
</ValueExpression>
<Operator>Greater</Operator>
<ValueExpression>
<Value Type="Integer">$Config/FanSpeedLowWarn$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</ConditionDetection>
<ConditionDetection ID="CDPhysicalFanCritical" TypeID="System!System.ExpressionFilter">
<Expression>
<Or>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Integer">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
</ValueExpression>
<Operator>GreaterEqual</Operator>
<ValueExpression>
<Value Type="Integer">$Config/FanSpeedHighCritical$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Integer">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
</ValueExpression>
<Operator>LessEqual</Operator>
<ValueExpression>
<Value Type="Integer">$Config/FanSpeedLowCritical$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</Or>
</Expression>
</ConditionDetection>
</MemberModules>
<RegularDetections>
<RegularDetection MonitorTypeStateID="PhysicalFanOK">
<Node ID="CDPhysicalFanOK">
<Node ID="DS1" />
</Node>
</RegularDetection>
<RegularDetection MonitorTypeStateID="PhysicalFanWarn">
<Node ID="CDPhysicalFanWarn">
<Node ID="DS1" />
</Node>
</RegularDetection>
<RegularDetection MonitorTypeStateID="PhysicalFanCritical">
<Node ID="CDPhysicalFanCritical">
<Node ID="DS1" />
</Node>
</RegularDetection>
</RegularDetections>
</MonitorImplementation>
</UnitMonitorType>
</MonitorTypes>
</TypeDefinitions>
<Monitoring>
<Discoveries>
<Discovery ID="IsilonSNMP.Discovery.Cluster" Enabled="true" Target="IsilonSNMP.Class.IsilonCluster" ConfirmDelivery="true" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="IsilonSNMP.Class.IsilonCluster.Nodes" />
<DiscoveryRelationship TypeID="IsilonSNMP.Relationship.ClusterHostsNodes" />
</DiscoveryTypes>
<DataSource ID="DS1" TypeID="IsilonSNMP.DataSource.DiscoverContainmentClasses">
<IPAddress>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</IPAddress>
<ClassID>$MPElement[Name="IsilonSNMP.Class.IsilonCluster.Nodes"]$</ClassID>
<InstanceSettings>
<Settings>
<Setting>
<Name>$MPElement[Name="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</Name>
<Value>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="System!System.Entity"]/DisplayName$</Name>
<Value>Cluster</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="IsilonSNMP.Class.IsilonCluster.Nodes"]/Name$</Name>
<Value>Cluster</Value>
</Setting>
</Settings>
</InstanceSettings>
</DataSource>
</Discovery>
<Discovery ID="IsilonSNMP.Discovery.IsilonCluster" Enabled="true" Target="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice" ConfirmDelivery="true" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="IsilonSNMP.Class.IsilonCluster" />
</DiscoveryTypes>
<DataSource ID="DS1" TypeID="IsilonSNMP.DataSource.DiscoverCluster">
<Interval>600</Interval>
<IP>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</IP>
<CommunityString>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/CommunityString$</CommunityString>
<SystemOID>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/SystemOID$</SystemOID>
</DataSource>
</Discovery>
<Discovery ID="IsilonSNMP.Discovery.IsilonClustersGroup" Enabled="true" Target="IsilonSNMP.Group.IsilonClusters" ConfirmDelivery="true" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryRelationship TypeID="IsilonSNMP.Relationship.IsilonClustersGroupContainsIsilonClusters" />
</DiscoveryTypes>
<DataSource ID="GP1" TypeID="SC!Microsoft.SystemCenter.GroupPopulator">
<RuleId>$MPElement$</RuleId>
<GroupInstanceId>$MPElement[Name="IsilonSNMP.Group.IsilonClusters"]$</GroupInstanceId>
<MembershipRules>
<MembershipRule>
<MonitoringClass>$MPElement[Name="IsilonSNMP.Class.IsilonCluster"]$</MonitoringClass>
<RelationshipClass>$MPElement[Name="IsilonSNMP.Relationship.IsilonClustersGroupContainsIsilonClusters"]$</RelationshipClass>
<Expression>
<RegExExpression>
<ValueExpression>
<Property>$MPElement[Name="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</Property>
</ValueExpression>
<Operator>ContainsSubstring</Operator>
<Pattern>.</Pattern>
</RegExExpression>
</Expression>
</MembershipRule>
</MembershipRules>
</DataSource>
</Discovery>
<Discovery ID="IsilonSNMP.Discovery.PhysicalDisk" Enabled="true" Target="IsilonSNMP.Class.IsilonCluster.Nodes" ConfirmDelivery="true" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="IsilonSNMP.Class.IsilonCluster.PhysicalDisk" />
<DiscoveryRelationship TypeID="IsilonSNMP.Relationship.NodesHostsPhysicalDisk" />
</DiscoveryTypes>
<DataSource ID="DS1" TypeID="IsilonSNMP.DataSource.DiscoverPhysicalDisk">
<IPAddress>$Target/Host/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</IPAddress>
<CommStr>$Target/Host/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/CommunityString$</CommStr>
<Interval>7800</Interval>
<ConfiguredNodes>$Target/Host/Property[Type="IsilonSNMP.Class.IsilonCluster"]/ConfiguredNodes$</ConfiguredNodes>
<BayIndex>$MPElement[Name="IsilonSNMP.Class.IsilonCluster.PhysicalDisk"]/BayIndex$</BayIndex>
<NodeCommStr>$MPElement[Name="IsilonSNMP.Class.IsilonCluster.PhysicalDisk"]/NodeCommStr$</NodeCommStr>
</DataSource>
</Discovery>
<Discovery ID="IsilonSNMP.Discovery.PhysicalFan" Enabled="true" Target="IsilonSNMP.Class.IsilonCluster.Nodes" ConfirmDelivery="true" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="IsilonSNMP.Class.IsilonCluster.PhysicalFan" />
<DiscoveryRelationship TypeID="IsilonSNMP.Relationship.NodesHostsPhysicalFan" />
</DiscoveryTypes>
<DataSource ID="DS1" TypeID="IsilonSNMP.DataSource.DiscoverPhysicalFan">
<IPAddress>$Target/Host/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</IPAddress>
<CommStr>$Target/Host/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/CommunityString$</CommStr>
<Interval>8000</Interval>
<ConfiguredNodes>$Target/Host/Property[Type="IsilonSNMP.Class.IsilonCluster"]/ConfiguredNodes$</ConfiguredNodes>
<FanNumber>$MPElement[Name="IsilonSNMP.Class.IsilonCluster.PhysicalFan"]/FanNumber$</FanNumber>
<NodeCommStr>$MPElement[Name="IsilonSNMP.Class.IsilonCluster.PhysicalFan"]/NodeCommStr$</NodeCommStr>
<FanSpeedHighCritical>14500</FanSpeedHighCritical>
<FanSpeedLowWarn>3400</FanSpeedLowWarn>
<FanSpeedLowCritical>3000</FanSpeedLowCritical>
</DataSource>
</Discovery>
</Discoveries>
<Monitors>
<UnitMonitor ID="UIGeneratedMonitore2c4dd195da8497bb99c9711e4134d70" Accessibility="Public" Enabled="true" Target="IsilonSNMP.Class.IsilonCluster" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Snmp!System.SnmpTrapProvider.2SingleEvent2StateMonitorType" ConfirmDelivery="false">
<Category>Custom</Category>
<AlertSettings AlertMessage="UIGeneratedMonitore2c4dd195da8497bb99c9711e4134d70_AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UIGeneratedOpStateId843498792d7d4fbf80d83f3939255dd9" MonitorTypeStateID="SecondEventRaised" HealthState="Success" />
<OperationalState ID="UIGeneratedOpStateId9fd776cd21a747c5994738e863b31fb9" MonitorTypeStateID="FirstEventRaised" HealthState="Warning" />
</OperationalStates>
<Configuration>
<FirstIP>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</FirstIP>
<FirstCommunityString>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/CommunityString$</FirstCommunityString>
<FirstAllTraps>false</FirstAllTraps>
<FirstVersion>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/Version$</FirstVersion>
<FirstOIDProps>
<OIDProp>.1.3.6.1.4.1.12124.1.1.2.0</OIDProp>
</FirstOIDProps>
<FirstExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">1</Value>
</ValueExpression>
</SimpleExpression>
</FirstExpression>
<SecondIP>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</SecondIP>
<SecondCommunityString>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/CommunityString$</SecondCommunityString>
<SecondAllTraps>false</SecondAllTraps>
<SecondVersion>$Target/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/Version$</SecondVersion>
<SecondOIDProps>
<OIDProp>.1.3.6.1.4.1.12124.1.1.2.0</OIDProp>
</SecondOIDProps>
<SecondExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
</ValueExpression>
<Operator>NotEqual</Operator>
<ValueExpression>
<Value Type="String">1</Value>
</ValueExpression>
</SimpleExpression>
</SecondExpression>
</Configuration>
</UnitMonitor>
<UnitMonitor ID="IsilonSNMP.Monitor.PhysicalDiskStatus" Accessibility="Internal" Enabled="true" Target="IsilonSNMP.Class.IsilonCluster.PhysicalDisk" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="IsilonSNMP.MonitorType.PhysicalDiskStatus" ConfirmDelivery="true">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="IsilonSNMP.Monitor.PhysicalDiskStatus_AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="System!System.Entity"]/DisplayName$</AlertParameter1>
<AlertParameter2>$Data/Context/SnmpVarBinds/SnmpVarBind[1]/Value$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="IsilonSNMP.Monitor.PhysicalDiskStatus_PhysicalDiskOK" MonitorTypeStateID="PhysicalDiskOK" HealthState="Success" />
<OperationalState ID="IsilonSNMP.Monitor.PhysicalDiskStatus_PhysicalDiskNotOK" MonitorTypeStateID="PhysicalDiskNotOK" HealthState="Warning" />
</OperationalStates>
<Configuration>
<Interval>120</Interval>
<IPAddress>$Target/Host/Host/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</IPAddress>
<OID>.1.3.6.1.4.1.12124.2.52.1.5.$Target/Property[Type="IsilonSNMP.Class.IsilonCluster.PhysicalDisk"]/BayIndex$</OID>
<NodeCommStr>$Target/Property[Type="IsilonSNMP.Class.IsilonCluster.PhysicalDisk"]/NodeCommStr$</NodeCommStr>
</Configuration>
</UnitMonitor>
<UnitMonitor ID="IsilonSNMP.Monitor.PhysicalFanStatus" Accessibility="Internal" Enabled="true" Target="IsilonSNMP.Class.IsilonCluster.PhysicalFan" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="IsilonSNMP.MonitorType.PhysicalFanStatus" ConfirmDelivery="true">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="IsilonSNMP.Monitor.PhysicalFanStatus_AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="System!System.Entity"]/DisplayName$</AlertParameter1>
<AlertParameter2>$Data/Context/SnmpVarBinds/SnmpVarBind[1]/Value$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="IsilonSNMP.Monitor.PhysicalFanStatus_PhysicalFanOK" MonitorTypeStateID="PhysicalFanOK" HealthState="Success" />
<OperationalState ID="IsilonSNMP.Monitor.PhysicalFanStatus_PhysicalFanWarn" MonitorTypeStateID="PhysicalFanWarn" HealthState="Warning" />
<OperationalState ID="IsilonSNMP.Monitor.PhysicalFanStatus_PhysicalFanCritical" MonitorTypeStateID="PhysicalFanCritical" HealthState="Error" />
</OperationalStates>
<Configuration>
<Interval>120</Interval>
<IPAddress>$Target/Host/Host/Property[Type="MicrosoftSystemCenterNetworkDeviceLibrary!Microsoft.SystemCenter.NetworkDevice"]/IPAddress$</IPAddress>
<OID>.1.3.6.1.4.1.12124.2.53.1.4.$Target/Property[Type="IsilonSNMP.Class.IsilonCluster.PhysicalFan"]/FanNumber$</OID>
<NodeCommStr>$Target/Property[Type="IsilonSNMP.Class.IsilonCluster.PhysicalFan"]/NodeCommStr$</NodeCommStr>
<FanSpeedHighCritical>14500</FanSpeedHighCritical>
<FanSpeedLowWarn>3400</FanSpeedLowWarn>
<FanSpeedLowCritical>3000</FanSpeedLowCritical>
</Configuration>
</UnitMonitor>
<DependencyMonitor ID="IsilonSNMP.Monitor.ClusterPhysicalDiskAvailabilityDependency" Accessibility="Internal" Enabled="true" Target="IsilonSNMP.Class.IsilonCluster.Nodes" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" RelationshipType="IsilonSNMP.Relationship.NodesHostsPhysicalDisk" MemberMonitor="IsilonSNMP.Monitor.PhysicalDiskStatus">
<Category>AvailabilityHealth</Category>
<Algorithm>WorstOf</Algorithm>
<MemberUnAvailable>Error</MemberUnAvailable>
</DependencyMonitor>
<DependencyMonitor ID="IsilonSNMP.Monitor.ClusterPhysicalFanAvailabilityDependency" Accessibility="Internal" Enabled="true" Target="IsilonSNMP.Class.IsilonCluster.Nodes" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" RelationshipType="IsilonSNMP.Relationship.NodesHostsPhysicalFan" MemberMonitor="IsilonSNMP.Monitor.PhysicalFanStatus">
<Category>AvailabilityHealth</Category>
<Algorithm>WorstOf</Algorithm>
<MemberUnAvailable>Error</MemberUnAvailable>
</DependencyMonitor>
<DependencyMonitor ID="IsilonSNMP.Monitor.ClusterClusterAvailabilityDependency" Accessibility="Internal" Enabled="true" Target="IsilonSNMP.Class.IsilonCluster" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" RelationshipType="IsilonSNMP.Relationship.ClusterHostsNodes" MemberMonitor="Health!System.Health.AvailabilityState">
<Category>AvailabilityHealth</Category>
<Algorithm>WorstOf</Algorithm>
<MemberUnAvailable>Error</MemberUnAvailable>
</DependencyMonitor>
</Monitors>
</Monitoring>
<Presentation>
<StringResources>
<StringResource ID="UIGeneratedMonitore2c4dd195da8497bb99c9711e4134d70_AlertMessageResourceID" />
<StringResource ID="AlertMessageIDb1a3848769824949889fcc4c159cf462" />
<StringResource ID="IsilonSNMP.Monitor.PhysicalDiskStatus_AlertMessageResourceID" />
<StringResource ID="IsilonSNMP.Monitor.PhysicalFanStatus_AlertMessageResourceID" />
</StringResources>
</Presentation>
<LanguagePacks>
<LanguagePack ID="ENU" IsDefault="true">
<DisplayStrings>
<DisplayString ElementID="IsilonSNMP">
<Name>Isilon SNMP MP</Name>
<Description>Management pack to discover a Isilon cluster running OneFS 5.5</Description>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Class.IsilonCluster">
<Name>Isilon Cluster</Name>
<Description>Isilon SNMP Device</Description>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Class.IsilonCluster" SubElementID="Hostname">
<Name>Hostname</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Class.IsilonCluster" SubElementID="ConfiguredNodes">
<Name>ConfiguredNodes</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Class.IsilonCluster.Nodes" SubElementID="Name">
<Name>Name</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Class.IsilonCluster.Nodes">
<Name>Isilon Cluster Hosts Nodes</Name>
<Description>Containment class for the Isilon cluster with components such as hard disks, fans, power supplies, etc.</Description>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Relationship.ClusterHostsNodes">
<Name>Isilon Cluster Hosts Nodes</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Discovery.IsilonCluster">
<Name>Discover Isilon Cluster</Name>
<Description>Discovery of the Isilon Cluster using OID strings from RFC1213.</Description>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.DataSource.BasicSNMPProbe">
<Name>Isilon Basic Probe Data Source</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.DataSource.DiscoverCluster">
<Name>Discover Isilon Cluster</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Relationship.IsilonClustersGroupContainsIsilonClusters">
<Name>Isilon Devices Group Contains Isilon Cluster</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Discovery.Cluster">
<Name>Discover Isilon Cluster Containment Class</Name>
<Description>Discovers the Cluster containment class, which hosts managed objects such as fans</Description>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Discovery.IsilonClustersGroup">
<Name>Isilon Deivce Group Populator</Name>
</DisplayString>
<DisplayString ElementID="UIGeneratedMonitore2c4dd195da8497bb99c9711e4134d70">
<Name>PlaceHolder</Name>
<Description>Place Holder to detect isilon cluster</Description>
</DisplayString>
<DisplayString ElementID="UIGeneratedMonitore2c4dd195da8497bb99c9711e4134d70" SubElementID="UIGeneratedOpStateId843498792d7d4fbf80d83f3939255dd9">
<Name>Second Event Raised</Name>
</DisplayString>
<DisplayString ElementID="UIGeneratedMonitore2c4dd195da8497bb99c9711e4134d70" SubElementID="UIGeneratedOpStateId9fd776cd21a747c5994738e863b31fb9">
<Name>First Event Raised</Name>
</DisplayString>
<DisplayString ElementID="UIGeneratedMonitore2c4dd195da8497bb99c9711e4134d70_AlertMessageResourceID">
<Name>PlaceHolder</Name>
<Description>placeholder alert to detect isilon</Description>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Monitor.PhysicalDiskStatus">
<Name>Isilon PhysicalDisk Status Monitor</Name>
<Description>Monitor that generates an alert when the PhysicalDisk status is not ok.</Description>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Monitor.PhysicalDiskStatus" SubElementID="IsilonSNMP.Monitor.PhysicalDiskStatus_PhysicalDiskOK">
<Name>PhysicalDiskOK</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Monitor.PhysicalDiskStatus" SubElementID="IsilonSNMP.Monitor.PhysicalDiskStatus_PhysicalDiskNotOK">
<Name>PhysicalDiskOK</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Monitor.PhysicalDiskStatus_AlertMessageResourceID">
<Name>Isilon PhysicalDisk Status</Name>
<Description>The Disk ({0}) is in a warning or error state. The Disk state is: {1}.</Description>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Class.IsilonCluster.PhysicalDisk">
<Name>Isilon Disk</Name>
<Description>Disk</Description>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Class.IsilonCluster.PhysicalDisk" SubElementID="Index">
<Name>Index</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Relationship.NodesHostsPhysicalDisk">
<Name>Isilon Cluster Hosts PhysicalDisk</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Discovery.PhysicalDisk">
<Name>Discover Isilon Cluster Physical Disks</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.DataSource.DiscoverPhysicalDisk">
<Name>Discover Isilon Cluster PhysicalDisk</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Monitor.ClusterPhysicalDiskAvailabilityDependency">
<Name>Isilon Disk</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Monitor.PhysicalFanStatus">
<Name>Isilon PhysicalFan Status Monitor</Name>
<Description>Monitor that generates an alert when the PhysicalFan speed is not within a premited range.</Description>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Monitor.PhysicalFanStatus" SubElementID="IsilonSNMP.Monitor.PhysicalFanStatus_PhysicalFanOK">
<Name>PhysicalFanOK</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Monitor.PhysicalFanStatus" SubElementID="IsilonSNMP.Monitor.PhysicalFanStatus_PhysicalFanWarn">
<Name>PhysicalFanWarn</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Monitor.PhysicalFanStatus" SubElementID="IsilonSNMP.Monitor.PhysicalFanStatus_PhysicalFanCritical">
<Name>PhysicalFanCritical</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Monitor.PhysicalFanStatus_AlertMessageResourceID">
<Name>Isilon PhysicalFan Status</Name>
<Description>The Fan ({0}) is in a warning or error state. Current Fan speed is: {1}.</Description>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Class.IsilonCluster.PhysicalFan">
<Name>Isilon Fan</Name>
<Description>Fan</Description>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Class.IsilonCluster.PhysicalFan" SubElementID="Index">
<Name>Index</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Relationship.NodesHostsPhysicalFan">
<Name>Isilon Cluster Hosts PhysicalFan</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Discovery.PhysicalFan">
<Name>Discover Isilon Cluster Physical Fans</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.DataSource.DiscoverPhysicalFan">
<Name>Discover Isilon Cluster PhysicalFan</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Monitor.ClusterPhysicalFanAvailabilityDependency">
<Name>Isilon Fan</Name>
</DisplayString>
<DisplayString ElementID="IsilonSNMP.Monitor.ClusterClusterAvailabilityDependency">
<Name>Cluster</Name>
</DisplayString>
</DisplayStrings>
</LanguagePack>
</LanguagePacks> -
I successfully migrated the GDS and Database from ES to ES2. However, I am unable to retain the user groups created in DefaultDom.
The migration was a fresh install of ES2 with the ES database and GDS. Is there a way to migrate the uer settings?
AdityaCheck the Oracle reference I have provided earlier. Concept goes like this:
Important difference is that upgrading from 10g to 11g is called an "out-of-place upgrade" while upgrading to another 11g is called an "in-place upgrade," because the upgrade operates on existing files. Moving from one 11g release to another 11g release is sometimes referred to as "patching."
http://download.oracle.com/docs/cd/E21764_01/bi.1111/e16452/bi_plan.htm#BABECJJH
Follow patching and not out-of-place upgrade as you are required to upgrade component
http://download.oracle.com/docs/cd/E21764_01/doc.1111/e16793/patch_set_installer.htm#PATCH789
Hope this is clear now
Maybe you are looking for
-
My iPod will no longer charge with a wall charger, only the computer. I know it's not becuase of the wall piece or my cord, since I also use the same cord for computer charging, and the wall piece seems to work with others devices. It worked a couple
-
NVIDIA GeForce GT 130 Kernel Panics/Freezes in Lion & late Snow Leopard
I've found some other reports of these freezes scattered about the forums, but usually other people come in and post something about unrelated video cards. So this thread is specific to NVIDIA GeForce GT 130 running OS X Lion (10.7-10.7.3), to avoid
-
On the form linked below, I am trying to create a script for the red custom button (red button with white "X" ) that will delete only that particular meeting topic and renumber the remaining topics sequentially. I created a pop-up message to appear w
-
Can i use my phone to connect wifi from my ipad2?
Can i use my phone to connect wifi from my ipad2
-
Database logic problems.. very urgent
HI im having problems doing something that is quite possibly very easy.. i have written a few queries using JDBC anyway the problem is hwo can i see if no records have been returned? using the ResultSet... i have tried if Resultset == null but it doe