Help - Search - Members - Calendar
Full Version: ESXi System_State - Beta
Intellipool Network Monitor - Forum > Intellipool Network Monitor > Lua scripts
Jazz
Download a free trial of Intellipool Network Monitor today!

Hulla/Guten Tag/Hello/ Bonjour,

I've managed to throw together a script that will work with ESXi via WBEM however It has not been fully tested. It is still a beta release however if feel free to do with as you see fit. The script is essentially a port of David Ligeret's check_ESXi_WBEM.py.

Ive tested it on Dell Hardware with the DELL specific ESXi Install however have not had a chance to test it on HP machines. I know there are reports of Earlier Versions of the HP installs not supporting the hardware specific Class(es). HP has supposedly fixed this in later releases however i have not been able to verify this. .

If anyone is curious in helping with testing the HP side of things let me know, I just don't have any suitable testing environments.

As usual comments, criticism, improvements are all welcome.

Thanks,

Jazz Alyxzander Turner-Baggs

::Patch Log::
7/1/2009 - Fixed Syntax error in Exception handling + added utilitys for IDE Debug.

CODE
--[[

Permission is hereby granted, free of charge, to any person

obtaining a copy of this software and associated documentation

files (the "Software"), to deal in the Software without

restriction, including without limitation the rights to use,

copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the

Software is furnished to do so, subject to the following

conditions:



THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,

EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES

OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND

NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT

HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,

WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING

FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR

OTHER DEALINGS IN THE SOFTWARE



--]]





ScriptName= "Beta - WBEM_ESXi_OperationalStatus"

date= "Jun 14, 2009"

Author = "Jazz Alyxzander Turner-Baggs"

VersionMaj = 0

VersionMin = 8

Description = "Detects any errors on a ESXi Machine - DELL"
----------------------------------------------------------------
--[[
Documentation:

This Script is Based Entirely off of Check_ESXi_WBEM.py by David Ligeret.
http://communities.vmware.com/docs/DOC-7170

BETA _ BETA _ BETA _ BETA _ BETA _ BETA _ BETA _ BETA _ BETA _ BETA _ BETA
***Currently Only Tested With Dell Hardware with the DELL flavor of ESXi***
BETA _ BETA _ BETA _ BETA _ BETA _ BETA _ BETA _ BETA _ BETA _ BETA _ BETA


The Following Script Loops over a set of Classes and enumerates all Instances. The
OperationalStatus property is pulled from each Instance and compared Against a
value in the Status Table.

If that Status is defined as OK then then it is not added to the error String. If
any Errors are Detected the Script alarms.



--]]




-----------------------------------------------------------------

--[[



ToDo:

  - Add WQL -> Raw XML function
  - Make Pretty

--]]

-----------------------------------------------------------------







-----------------------------------------------------------------------------------

--------------------------------WBEM Class-----------------------------------------


--[[
CLASS:     J_WBEM
AUTHOR: JAzz Alyxzander Turner-Baggs
DESC:    Generic WBEM Class that can be used Much Like TLuaWMIQuery and TLuaHTTPClient
USAGE:
  A = J_WBEM.new()
  A:Connect(user,pass)
  A:Query(query)
  while A:NextInstance() do
    print( A:GetProperty(Property)
  end

--]]


J_WBEM = {}

J_WBEM.__index = J_WBEM



--[[
Desc:        Alertnative Constructor
Parameters     <None>
ReturnValue     J_WBEM Object if successfull
Notes        
--]]

function J_WBEM.new_default()

   local wbem = {}            

   setmetatable(wbem,J_WBEM)  

    wbem.inst = ""

    wbem.error = ""

    wbem.conn = ""

    wbem.data = ""



    --Defaults

    wbem.URI = "\\cimom"

    wbem.port_num = 5989

    wbem.use_https = true

      

      

   return wbem

end


--[[
Desc:        Constructor
Parameters     Int PortNumber, Bool use_Https, string URI
ReturnValue     WBEM Object if successfull
Notes         Calling this function with no parameters results in invocation of the alternative Constructor
--]]

function J_WBEM.new(port,secure, uri)

       local wbem = {}            

       setmetatable(wbem,J_WBEM)  



    -- Function Overloading Hack

    if uri== nil then    

        return J_WBEM.new_default()

    elseif secure ~= nil and uri ~= nil then

        wbem.inst = ""

        wbem.error = ""

        wbem.conn = ""

        wbem.data = ""



        wbem.URI = uri

        wbem.port_num = port

        wbem.use_https = secure

        return wbem

    else

        print("Ill Formatted Parameters.")

    end      

      

end


--[[
Desc:        Send Query to Server and stores Content in Object
Parameters     <None>
ReturnValue     True If Successfull
Notes        
--]]

function J_WBEM:Query()

  



    self.conn:Post(sURI, Extra_Headers, wbem_query)

    self.data = self.conn:GetContent(1)



    if string.len(self.data) == nil then

        self.error = "Unable to Query"

        return false

    elseif string.len(self.data) == 0 then

        self.error = "No Data Returned, check User and Pass"

        return false

    else

        return true

    end

end



--[[
Desc:        Opens Connection to the Network Object
Parameters     String Username, String PAssword
ReturnValue     True if Successfull
Notes         uses parameters from Initialization
        
--]]

function J_WBEM:Connect(user,pass)

      

    self.conn = TLuaHTTPClient()



    local iRet = self.conn:Connect(self.port_num,self.use_https, user, pass  )

    if iRet == 0 then

         self.error = "Unable To Establish a Connection"

        return false

    end



    return true

    

    

end


--[[
Desc:        Loads Next instance into object
Parameters     <none>
ReturnValue     Returns True if an instance was found, false otherwise
Notes         Can only be called after a Query
        
--]]

function J_WBEM:NextInstance()

      

    _,_,inst_class_name,self.inst, self.data= string.find(self.data,[[<INSTANCE CLASSNAME="(.-)">(.-)</INSTANCE>(.+)]])



    if self.inst == nil then

        return false

    else    

        return true

    end



end


--[[
Desc:        Returns Property From Current Instance
Parameters     string name_of_property
ReturnValue     Boolean was_Successfull, <variable> PropertyValue
Notes         Can only be called after NextInstance() has been invoked
        Arrays are returned as Tables all others returned as string.
--]]

function J_WBEM:GetProperty(prop_name)

      



    _,_, prop_type , data_type, prop_data = string.find(self.inst,"<PROPERTY%.?(%w-) NAME=\""..prop_name.."\" TYPE=(.-)>(.-)</PROPERTY%.?%1>")

    if prop_type == nil then

        print("Error No property Found")

        return false,nil

    end



    if prop_type == "ARRAY" then

        prop_value = {}

        s,f,values = string.find(prop_data,"<VALUE.ARRAY>(.-)</VALUE.ARRAY>")

        while values ~= nil do



            _,_,val,values = string.find(values,"<VALUE>(.-)</VALUE>(.+)")

            table.insert(prop_value,val)

        end

    else

        

         _,_,prop_value = string.find(prop_data,"<VALUE>(.-)</VALUE>")

        

    end

    return true,prop_value



end


--[[
Desc:        Returns Last Error
Parameters     <None>
ReturnValue     String Error
Notes         Not a Whole lot of testing done here to be honest..
--]]

function J_WBEM:GetLastError()

   return self.error

end



---------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------









-- Status Translation Table

status_table = {}

table.insert(status_table,"0","OK(Unknown)")                -- Unknown

table.insert(status_table,"1","Critical(Other)")            -- Other

table.insert(status_table,"2","OK(OK)")                    -- OK

table.insert(status_table,"3","Warning(Degraded)")            -- Degraded

table.insert(status_table,"4","Warning(Stressed)")            -- Stressed

table.insert(status_table,"5","Warning(Predictive Failure)")        -- Predictive Failure

table.insert(status_table,"6","Critical(Error)")            -- Error

table.insert(status_table,"7","Critical(Non-Recoverable Error)")    -- Non-Recoverable Error

table.insert(status_table,"8","Warning(Starting)")            -- Starting

table.insert(status_table,"9","Warning(Stopping)")            -- Stopping

table.insert(status_table,"10","Critical(Stopped)")            -- Stopped

table.insert(status_table,"11","OK(In Service)")            -- In Service

table.insert(status_table,"12","Warning(No Contact)")            -- No Contact

table.insert(status_table,"13","Critical(Lost Communication)")        -- Lost Communication

table.insert(status_table,"14","Critical(Aborted)")            -- Aborted

table.insert(status_table,"15","OK(Dormant)")                -- Dormant

table.insert(status_table,"16","Critical(Supporting Entity in Error)")    -- Supporting Entity in Error

table.insert(status_table,"17","OK(Completed)")                -- Completed

table.insert(status_table,"18","OK(Power Mode)")            -- Power Mode

table.insert(status_table,"19","OK(DMTF Reserved)")            -- DMTF Reserved

table.insert(status_table,"20","OK(Vendor Reserved)")            -- Vendor Reserved

-- End Status Translation Table

















function OnConfigure()



    Config = LuaScriptConfigurator()

    Config:SetAuthor(Author)

    Config:SetDescription(Description)

    Config:SetMinBuildVersion(0)

    Config:SetScriptVersion(VersionMaj, VersionMin )

    

    if IsIDE() then

        Config:AddArgument("username", "",LuaScriptConfigurator.CHECK_NOT_EMPTY)
        Config:AddArgument("password", "",LuaScriptConfigurator.CHECK_NOT_EMPTY)

    end

    Config:SetEntryPoint("main")

    return Config



end





function main()

   DEBUG = true

    --Initialize Variables

    user_name = GetAccountUser()
    password = GetAccountPassword()

    if IsIDE() then

      user_name = GetArgument(0)
    password = GetArgument(1)

    end

    error_string = ""

    

    property_to_query = "OperationalStatus"        -- Property To pull status

    inst_ID_prop = "ElementName"                 -- Property To Identify Instance



    classes = {    "CIM_ComputerSystem",            -- List of Classes to enumerate

        "CIM_NumericSensor",

        "CIM_Memory",

        "CIM_Processor",

        "CIM_RecordLog",

        "OMC_DiscreteSensor",

        "VMware_StorageExtent",

        "VMware_Controller",

        "VMware_StorageVolume",

        "VMware_Battery",

        "VMware_SASSATAPort"

          }



  

    

    

   -- For every Class, Get Operational State of all Instances and compare to value in Status-Table

   for __,class in pairs(classes) do

   if DEBUG then
    print("Class: " .. class)
   end

    wbem_query = [[<?xml version="1.0" encoding="utf-8" ?>

               <CIM CIMVERSION="2.0" DTDVERSION="2.0">

                <MESSAGE ID="1001" PROTOCOLVERSION="1.0">

                   <SIMPLEREQ>

                    <IMETHODCALL NAME="EnumerateInstances">

                       <LOCALNAMESPACEPATH>

                        <NAMESPACE NAME="root"/>

                        <NAMESPACE NAME="cimv2"/>

                       </LOCALNAMESPACEPATH>

                       <IPARAMVALUE NAME="ClassName">

                        <CLASSNAME NAME="]] .. class .. [["/>

                       </IPARAMVALUE>

                         </IMETHODCALL>

                   </SIMPLEREQ>

                </MESSAGE>

               </CIM>]]

    

    --WBEM = J_WBEM.new("\cimom",5989,true)

    WBEM = J_WBEM.new()

    if not WBEM:Connect(user_name , password) then

        SetExitStatus("Error - " .. WBEM:GetLastError(),false)

        return

    end



    if not WBEM:Query(wbem_query) then

        SetExitStatus("Error - Query Failed: " .. WBEM:GetLastError(),false)

        return

    end

    

    while WBEM:NextInstance() do

        



    --Get Property

          bOk,inst_state = WBEM:GetProperty(property_to_query)

        bOk,inst_name = WBEM:GetProperty(inst_ID_prop)



        -- Pulls the first element from the Array        

        if inst_state ~= nil and type(inst_state) == "table"  then

            inst_state = inst_state[1]

        end



        

        

    --Check that State is OK    

        if inst_state ~= nil then

                        --

            state_str = status_table[tonumber(inst_state)]

            _,_,status,status_details = string.find(state_str,"(.+)%((.+)%)")

        

            if status ~= "OK" then    

                error_string = error_string .. status ..": " .. inst_name .. "\n"

            end

        end

        

    end

    

   end



      -- Summarize & Return

   if error_string == "" then

    error_string = "OK"



    SetExitStatus("OK",true )

   else

    error_string = "\n" .. error_string

    SetExitStatus("Error: " .. error_string,false)

   end    

      

end
master_k
I've got this error message (French but understandable!):
QUOTE
Erreur de syntaxe dans le script LUA ESXi.lua, [string ""]:623: error in function 'SetExitStatus'.
argument #2 is '[no object]'; 'boolean' expected.


The server is an Esxi V4 with the root shell access activated.
zefrench
Just in case the french error message is not clear to everyone:
QUOTE
Erreur de syntaxe dans le script

is in English
QUOTE
Syntax error in script




Jazz
QUOTE(master_k @ Jun 30 2009, 09:06 PM) *
I've got this error message (French but understandable!):
The server is an Esxi V4 with the root shell access activated.


Patched in the original post.

However it means there was an error in submitting the Query.
If you are using the IDE: Ive added a Username and Password Prompt, so you can supply the correct Credentials (SSH Login Credentials).
If you are running in intellipool make sure the object is configured with the correct login account.

If that doest fix the errors let me know and i'll add more debug data to find the problem.

Thanks,
JAzz
dtsgk
QUOTE(Jazz @ Jul 1 2009, 08:43 PM) *
Patched in the original post.

However it means there was an error in submitting the Query.
If you are using the IDE: Ive added a Username and Password Prompt, so you can supply the correct Credentials (SSH Login Credentials).
If you are running in intellipool make sure the object is configured with the correct login account.

If that doest fix the errors let me know and i'll add more debug data to find the problem.

Thanks,
JAzz


Hi, I can run the script OK against a HP Proliant ML350 G6 server, but a disk fault is not recognized. I have unplugged one harddrive. Please look at the screen dump from vSphere Client and compare the output from your script.

Maybe I can help debug why this is happening, but I have no programming skills so I need you help to figure out why the status is OK.

dtsgk
More info on runnning this script on Proliant Servers:

I have tried to run the check_esxi_wbem Python script, both script and result is below. As you can see, almost every Element Name is just a name, and the operational status follows on next line, Element Op Status. Besides for the storage controller! The status for this class is appended to the Element Name, and therefore not picked up by the script.

Not sure if this helps you guys, but it would be nice if you could reprogram the LUA script for HP Proliant servers so even storage errors is reported.
Maybe, if the element name doesn´t have a corresponding Op Status, seek for some keywords like Failed, Intermim, Error, Degraded and so on?

Regards,
Göran K

Python script (run with "python https://ipadress username password verbose)

import sys
import time
import pywbem

NS = 'root/cimv2'

# define classes to check 'OperationStatus' instance
ClassesToCheck = [
'CIM_ComputerSystem',
'CIM_NumericSensor',
'CIM_Memory',
'CIM_Processor',
'CIM_RecordLog',
'OMC_DiscreteSensor',
'VMware_StorageExtent',
'VMware_Controller',
'VMware_StorageVolume',
'VMware_Battery',
'VMware_SASSATAPort'
]

# define exit codes
ExitOK = 0
ExitWarning = 1
ExitCritical = 2
ExitUnknown = 3

def verboseoutput(message, verbose) :
if verbose == 1:
print "%s %s" % (time.strftime("%Y%m%d %H:%M:%S"), message)

# check input arguments
if len(sys.argv) < 4:
sys.stderr.write('Usage : ' + sys.argv[0] + ' hostname user password\n')
sys.stderr.write('Example : ' + sys.argv[0] + ' https://myesxi:5989 root password\n')
sys.exit(1)
verbose = 0
if len(sys.argv) == 5 :
if sys.argv[4] == "verbose" :
verbose = 1

# connection to host
verboseoutput("Connection to "+sys.argv[1], verbose)
wbemclient = pywbem.WBEMConnection(sys.argv[1], (sys.argv[2], sys.argv[3]), NS)

# run the check for each defined class
GlobalStatus = ExitOK
ExitMsg = ""
for classe in ClassesToCheck :
verboseoutput("Check classe "+classe, verbose)
instance_list = wbemclient.EnumerateInstances(classe)
for instance in instance_list :
elementName = instance['ElementName']
verboseoutput("Element Name = "+elementName, verbose)
if instance['OperationalStatus'] is not None :
elementStatus = instance['OperationalStatus'][0]
verboseoutput("Element Op Status = %d" % elementStatus, verbose)
interpretStatus = {
0 : ExitOK, # Unknown
1 : ExitCritical, # Other
2 : ExitOK, # OK
3 : ExitWarning, # Degraded
4 : ExitWarning, # Stressed
5 : ExitWarning, # Predictive Failure
6 : ExitCritical, # Error
7 : ExitCritical, # Non-Recoverable Error
8 : ExitWarning, # Starting
9 : ExitWarning, # Stopping
10 : ExitCritical, # Stopped
11 : ExitOK, # In Service
12 : ExitWarning, # No Contact
13 : ExitCritical, # Lost Communication
14 : ExitCritical, # Aborted
15 : ExitOK, # Dormant
16 : ExitCritical, # Supporting Entity in Error
17 : ExitOK, # Completed
18 : ExitOK, # Power Mode
19 : ExitOK, # DMTF Reserved
20 : ExitOK # Vendor Reserved
}[elementStatus]
if (interpretStatus == ExitCritical) :
verboseoutput("GLobal exit set to CRITICAL", verbose)
GlobalStatus = ExitCritical
ExitMsg += "CRITICAL : %s<br>" % elementName
if (interpretStatus == ExitWarning and GlobalStatus != ExitCritical) :
verboseoutput("GLobal exit set to WARNING", verbose)
GlobalStatus = ExitWarning
ExitMsg += "WARNING : %s<br>" % elementName

if GlobalStatus == 0 :
print "OK"
else :
print ExitMsg
sys.exit (GlobalStatus)

--- ENd of script

--- Start of output

20090723 23:29:20 Connection to https://192.168.xxx.xxx
20090723 23:29:20 Check classe CIM_ComputerSystem
20090723 23:29:20 Element Name = System Board 7:1
20090723 23:29:20 Element Op Status = 0
20090723 23:29:20 Element Name = System Internal Expansion Board 16:1
20090723 23:29:20 Element Op Status = 0
20090723 23:29:20 Element Name = localhost.xxxxx.local
20090723 23:29:20 Element Name = Hardware Management Controller (Node 0)
20090723 23:29:20 Element Op Status = 0
20090723 23:29:20 Element Name = HP Smart Array E200i Controller : HPSA1
20090723 23:29:20 Check classe CIM_NumericSensor
20090723 23:29:20 Element Name = System Board 1 Power Meter
20090723 23:29:20 Element Op Status = 2
20090723 23:29:20 Element Name = System Internal Expansion Board 1 Temp 5
20090723 23:29:20 Element Op Status = 2
20090723 23:29:20 Element Name = Processor 4 Temp 4
20090723 23:29:20 Element Op Status = 2
20090723 23:29:20 Element Name = Processor 3 Temp 3
20090723 23:29:20 Element Op Status = 2
20090723 23:29:20 Element Name = Memory Device 1 Temp 2
20090723 23:29:20 Element Op Status = 2
20090723 23:29:20 Element Name = External Environment 1 Temp 1
20090723 23:29:20 Element Op Status = 2
20090723 23:29:20 Element Name = Processor 1 Fan 5
20090723 23:29:20 Element Op Status = 2
20090723 23:29:20 Element Name = System Chassis 7 Fan 3
20090723 23:29:20 Element Op Status = 2
20090723 23:29:20 Element Name = System Chassis 4 Fan 1
20090723 23:29:20 Element Op Status = 2
20090723 23:29:20 Check classe CIM_Memory
20090723 23:29:21 Element Name = Proc 1 Level-1 Cache
20090723 23:29:21 Element Op Status = 0
20090723 23:29:21 Element Name = Proc 1 Level-1 Cache
20090723 23:29:21 Element Op Status = 0
20090723 23:29:21 Element Name = Proc 1 Level-1 Cache
20090723 23:29:21 Element Op Status = 0
20090723 23:29:21 Element Name = Proc 1 Level-1 Cache
20090723 23:29:21 Element Op Status = 0
20090723 23:29:21 Element Name = Proc 1 Level-2 Cache
20090723 23:29:21 Element Op Status = 0
20090723 23:29:21 Element Name = Proc 1 Level-2 Cache
20090723 23:29:21 Element Op Status = 0
20090723 23:29:21 Element Name = Proc 1 Level-2 Cache
20090723 23:29:21 Element Op Status = 0
20090723 23:29:21 Element Name = Proc 1 Level-2 Cache
20090723 23:29:21 Element Op Status = 0
20090723 23:29:21 Element Name = Proc 1 Level-3 Cache
20090723 23:29:21 Element Op Status = 0
20090723 23:29:21 Element Name = Memory
20090723 23:29:21 Check classe CIM_Processor
20090723 23:29:21 Element Name = Proc 1
20090723 23:29:21 Element Op Status = 2
20090723 23:29:21 Check classe CIM_RecordLog
20090723 23:29:21 Element Name = IPMI SEL
20090723 23:29:21 Element Op Status = 2
20090723 23:29:21 Check classe OMC_DiscreteSensor
20090723 23:29:21 Element Name = System Chassis 9 Fans 3 and 4
20090723 23:29:21 Element Op Status = 2
20090723 23:29:21 Element Name = System Chassis 6 Fans 1 and 2
20090723 23:29:21 Element Op Status = 2
20090723 23:29:21 Element Name = Processor Module 1 VRM (CPU1)
20090723 23:29:21 Element Name = Power Domain 1 Power Supplies
20090723 23:29:21 Element Op Status = 2
20090723 23:29:21 Element Name = Power Supply 1 Power Supply 1: Presence detected
20090723 23:29:21 Element Name = Power Supply 1 Power Supply 1: Failure detected
20090723 23:29:21 Element Op Status = 2
20090723 23:29:21 Element Name = System Chassis 3 Ext. Health LED
20090723 23:29:21 Element Name = System Chassis 2 Int. Health LED
20090723 23:29:21 Element Name = System Chassis 1 UID Light
20090723 23:29:21 Check classe VMware_StorageExtent
20090723 23:29:22 Element Name = Disk 1 on HPSA1 : Port 1I Box 1 Bay 2 : 0GB : Data Disk : Disk Error
20090723 23:29:22 Element Name = Disk 2 on HPSA1 : Port 1I Box 1 Bay 1 : 68GB : Data Disk

20090723 23:29:22 Check classe VMware_Controller
20090723 23:29:22 Element Name = HP Smart Array E200i Controller : HPSA1
20090723 23:29:22 Check classe VMware_StorageVolume
20090723 23:29:22 Element Name = Logical Volume 1 on HPSA1 : RAID 1 : 68GB : Disk 1,2 : Interim Recovery
20090723 23:29:22 Check classe VMware_Battery
20090723 23:29:22 Element Name = Battery on HPSA1
20090723 23:29:22 Check classe VMware_SASSATAPort
OK

------ End of output
Jazz
Göran,

I apologize for the late reply it's a busy time of year. Regardless your help would be greatly appreciated.

Problem is the scripts are looking for the Element Op value for each instance. If you look at the Python Script output you can see the string is reporting the dead drive, however the Class does not contain the Element Op Status tag which explains why it is not being reported. Hopefully we can add the HP classes to provide these. If you could replace the old Class list with the one below and provide the output again.

CODE
ClassesToCheck = [
'CIM_ComputerSystem',
'CIM_NumericSensor',
'CIM_Memory',
'CIM_Processor',
'CIM_RecordLog',
'HP_PhysicalMemory',  
'HP_MemoryLocation',
'HP_MemoryInLocation',
'HP_ManagementProcessor',
'HP_ComputerSystemPackage',
'HP_ComputerSystemChassis',
'OMC_DiscreteSensor',
'VMware_StorageExtent',
'VMware_Controller',
'VMware_StorageVolume',
'VMware_Battery',
'VMware_SASSATAPort'
]


Thanks Again,

Jazz
dtsgk
Hi,

I just got "unknown class" for all of the HP classes you mentioned. I tried namespace /root/hpq instead of /root/cimv2, same result.
dtsgk
Hi again,

When I run the above script through Intellipool Lua IDE, it runs just fine (asking for username and password).
But when running inside Intellipool Network Monitor, I always get a error message:

Error - Query Failed: No Data Returned, check User and Pass

In the LUA Script monitor, I have the correct username and password, and have also checked "No logon account". In fact, there is no wrong with the username/password, I altered the script so the name/pass was printed in the error message, and it is correct.

What is wrong?? in Lua IDE, everything works fine.

Regards, Göran Karlsson
Jazz
QUOTE(dtsgk @ Aug 11 2009, 01:31 AM) *
When I run the above script through Intellipool Lua IDE, it runs just fine (asking for username and password).


When you say it runs "fine" does that mean that hard drive and power-supply errors are returned correctly? or just that the script does not error?

If all is well except for the authentication error in INM i should be able to patch it before the weekend.

Thanks,
Jazz Alyxzander


dtsgk
When running in Lua IDE, I choose a host name/ip address and start Debug. I get a dialog box asking for username and password.
Then I got a completely result. (OK).

If you want I could give you access to the https port of WBEM on one of my HP Proliant test servers with ESXi 4.0 installed?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2010 Invision Power Services, Inc.