use of org.jinterop.dcom.core.JIVariant in project opennms by OpenNMS.
the class WmiClient method connect.
/**
* {@inheritDoc}
*/
@Override
public void connect(final String domain, final String username, final String password, final String namespace) throws WmiException {
try {
m_Session = JISession.createSession(domain, username, password);
m_Session.useSessionSecurity(true);
m_Session.setGlobalSocketTimeout(5000);
JIComServer m_ComStub = new JIComServer(JIProgId.valueOf(WMI_PROGID), m_Address, m_Session);
final IJIComObject unknown = m_ComStub.createInstance();
IJIComObject m_ComObject = unknown.queryInterface(WMI_CLSID);
// This will obtain the dispatch interface
IJIDispatch m_Dispatch = (IJIDispatch) JIObjectFactory.narrowObject(m_ComObject.queryInterface(IJIDispatch.IID));
final JIVariant[] results = m_Dispatch.callMethodA("ConnectServer", new Object[] { new JIString(m_Address), new JIString(namespace), JIVariant.OPTIONAL_PARAM(), JIVariant.OPTIONAL_PARAM(), JIVariant.OPTIONAL_PARAM(), JIVariant.OPTIONAL_PARAM(), 0, JIVariant.OPTIONAL_PARAM() });
m_WbemServices = (IJIDispatch) JIObjectFactory.narrowObject((results[0]).getObjectAsComObject());
} catch (final JIException e) {
if (m_Session != null) {
try {
JISession.destroySession(m_Session);
} catch (JIException e1) {
LOG.error("Failed to destroy session after incomplete connect with host '{}'.", m_Address, e1);
}
}
throw new WmiException("Failed to establish COM session with host '" + m_Address + "': " + e.getMessage(), e);
} catch (final UnknownHostException e) {
if (m_Session != null) {
try {
JISession.destroySession(m_Session);
} catch (JIException e1) {
LOG.error("Failed to destroy session after unknown host '{}'.", m_Address, e1);
}
}
throw new WmiException("Unknown host '" + m_Address + "'. Failed to connect to WMI agent.", e);
}
}
use of org.jinterop.dcom.core.JIVariant in project opennms by OpenNMS.
the class WmiClient method performWmiGet.
/**
* <p>performWmiGet</p>
*
* @param strObjectPath a {@link java.lang.String} object.
* @return a {@link org.opennms.protocols.wmi.wbem.OnmsWbemObject} object.
* @throws org.opennms.protocols.wmi.WmiException if any.
*/
public OnmsWbemObject performWmiGet(final String strObjectPath) throws WmiException {
try {
final JIVariant[] results = m_WbemServices.callMethodA("Get", new Object[] { new JIString(strObjectPath), JIVariant.OPTIONAL_PARAM(), JIVariant.OPTIONAL_PARAM() });
final IJIDispatch obj_dsp = (IJIDispatch) JIObjectFactory.narrowObject((results[0]).getObjectAsComObject());
return new OnmsWbemObjectImpl(obj_dsp);
} catch (final JIException e) {
throw new WmiException("Failed to perform get '" + strObjectPath + "': " + e.getMessage(), e);
}
}
use of org.jinterop.dcom.core.JIVariant in project opennms by OpenNMS.
the class WmiClient method performSubclassOf.
/**
* <p>performSubclassOf</p>
*
* @param strSuperClass a {@link java.lang.String} object.
* @return a {@link org.opennms.protocols.wmi.wbem.OnmsWbemObjectSet} object.
* @throws org.opennms.protocols.wmi.WmiException if any.
*/
public OnmsWbemObjectSet performSubclassOf(final String strSuperClass) throws WmiException {
try {
final JIVariant[] results = m_WbemServices.callMethodA("SubclassesOf", new Object[] { new JIString(strSuperClass), JIVariant.OPTIONAL_PARAM(), JIVariant.OPTIONAL_PARAM() });
final IJIDispatch objset_dsp = (IJIDispatch) JIObjectFactory.narrowObject((results[0]).getObjectAsComObject());
return new OnmsWbemObjectSetImpl(objset_dsp);
} catch (final JIException e) {
throw new WmiException("Failed to perform SubclassesOf '" + strSuperClass + "': " + e.getMessage(), e);
}
}
use of org.jinterop.dcom.core.JIVariant in project opennms by OpenNMS.
the class WmiClient method performSubclassOf.
/**
* <p>performSubclassOf</p>
*
* @return a {@link org.opennms.protocols.wmi.wbem.OnmsWbemObjectSet} object.
* @throws org.opennms.protocols.wmi.WmiException if any.
*/
public OnmsWbemObjectSet performSubclassOf() throws WmiException {
try {
final JIVariant[] results = m_WbemServices.callMethodA("SubclassesOf", new Object[] { JIVariant.OPTIONAL_PARAM(), JIVariant.OPTIONAL_PARAM(), JIVariant.OPTIONAL_PARAM() });
final IJIDispatch objset_dsp = (IJIDispatch) JIObjectFactory.narrowObject((results[0]).getObjectAsComObject());
return new OnmsWbemObjectSetImpl(objset_dsp);
} catch (final JIException e) {
throw new WmiException("Failed to perform SubclassesOf: " + e.getMessage(), e);
}
}
use of org.jinterop.dcom.core.JIVariant in project Payara by payara.
the class WindowsWmi method setCount.
private void setCount() throws WindowsException {
try {
JIVariant[] results = dispatch.callMethodA("ConnectServer", crazyLongMicrosoftArgs);
IJIDispatch wbemServices_dispatch = (IJIDispatch) JIObjectFactory.narrowObject((results[0]).getObjectAsComObject());
JIVariant[] results2 = wbemServices_dispatch.callMethodA("InstancesOf", new Object[] { new JIString("Win32_Process"), Integer.valueOf(0), JIVariant.OPTIONAL_PARAM() });
IJIDispatch wbemObjectSet_dispatch = (IJIDispatch) JIObjectFactory.narrowObject((results2[0]).getObjectAsComObject());
variant = wbemObjectSet_dispatch.get("_NewEnum");
JIVariant Count = wbemObjectSet_dispatch.get("Count");
count = Count.getObjectAsInt();
} catch (Exception e) {
throw new WindowsException(e);
}
}
Aggregations