Maximo automation script no module named socket - automation

I'm developing an automation script and I'm getting the next error:
ImportError: No module named socket in at line number 2
I'm using jython 2.7, maximo 7.6.
Someone knows a workaround? I know that not every package is installed as it were in python and as it seems the socket pckg is one of the not installed...

I was able to view the Maximo contents of the Maximo jython.jar (or any .jar file) by executing the following command as administrator at the command prompt on a Windows server:
assoc .jar=CompressedFolder
With that I was able to locate and browse the Lib folder within the jython.jar on a Windows server Websphere implementation at the following location:
C:\IBM\WebSphere\AppServer\profiles\ctgAppSrv01\installedApps\ctgCell01\MAXIMO.ear\lib\jython.jar\Lib
The socket.py module exists there so it should be possible to use it from within Jython in Maximo. It appears to be a version specifically written for Jython and references the following in the .py file:
https://wiki.python.org/jython/NewSocketModule
In vanilla Maximo 7.6.0 it appears the Jython path does not include the Lib folder of the jython.jar referenced above. You can find details of how to add it to the path programmatically in an automation script here:
https://expertinmaximo.wordpress.com/2016/08/26/import-python-libraries-to-use-in-automation-scripts/
Once that is done you should be able to import the socket library and use it in your script for example:
from java.lang import System
import sys
# Required : Appending to sys.path to refer to python libraries
if sys.path.count('__pyclasspath__/Lib') == 1:
service.log('\nPath to /Lib already exists\n')
else :
service.log('\nExtend path to /Lib \n')
sys.path.append('__pyclasspath__/Lib')
import socket
try:
#create an AF_INET, STREAM socket (TCP)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
service.log('\nsocket created\n')
except socket.error, msg:
service.log('\nFailed to create socket. Error code: ' + str(msg[0]) + ' , Error message : ' + msg[1] + '\n')
Once that is executed you should see similar to the following in the log (provided autoscript logging is functioning):
07 Jun 2020 15:18:04:949 [DEBUG] putting System value <type 'java.lang.System'>
07 Jun 2020 15:18:04:949 [DEBUG] putting sys value <module 'sys' (built-in)>
07 Jun 2020 15:18:04:949 [DEBUG] getting sys
07 Jun 2020 15:18:04:949 [DEBUG] putting socket value <module 'socket' from '__pyclasspath__/Lib/socket.py'>
07 Jun 2020 15:18:04:949 [DEBUG] getting socket
07 Jun 2020 15:18:04:949 [DEBUG] getting socket
07 Jun 2020 15:18:04:949 [DEBUG] getting socket
07 Jun 2020 15:18:04:949 [DEBUG] putting s value <socket._socketobject object at 0x5>
07 Jun 2020 15:18:04:949 [DEBUG] execution completed for cached compiled script MXC_SOCKET for launch point MXC_SOCKET_LP
07 Jun 2020 15:18:04:949 [DEBUG] Path to /Lib already existssocket created

I suggest using Java libraries to do what you want. All of the Java libraries needed to build Maximo are waiting for your call. This will also reduce the risk of compatibility problems if you want to send data back to Maximo.

Today I ran into the same problem but solved it rather quickly using Java libraries instead of Python. Here's a function I wrote that returns all IP addresses of a host name as a set:
from java.net import InetAddress
def getIpAddress(hostName):
hostIpAddresses = set()
try:
service.log_debug("DNS querying the host name: " + hostName)
hosts = InetAddress.getAllByName(hostName)
for i in range(len(hosts)):
hostIpAddresses.add(str(hosts[i].getHostAddress()))
service.log_debug("Address found: " + str(hostIpAddresses))
return hostIpAddresses
except:
return "NOT FOUND"

Related

Plain vanilla Apache Ignite cluster fails setting state back to ACTIVE

I've got a plain vanilla install of ignite 2.14, with the binaries downloaded from https://ignite.apache.org/download.cgi (exact link https://dlcdn.apache.org/ignite/2.14.0/apache-ignite-2.14.0-bin.zip). I'm on Windows 10, IGNITE_HOME is not set in the PATH (this is optional), and Ignite's using this java runtime:
OpenJDK Runtime Environment 1.8.0_201-2-redhat-b09 Oracle Corporation
OpenJDK 64-Bit Server VM 25.201-b09
I start an ignite node using the default configuration provided in the downloaded zip apache-ignite-2.14.0-bin.zip :
ignite.bat ..\config\default-config.xml
This starts fine. Following the instructions at https://ignite.apache.org/docs/latest/tools/control-script I can check the state and see I've got a single node cluster in state ACTIVE (the default-config.xml must not have native persistence enabled, so the cluster goes to ACTIVE state automatically).
I can then set the state to INACTIVE like so:
control.bat --set-state INACTIVE
This works fine. However if I set the state to active again like so:
control.bat --set-state ACTIVE
I get the error pasted below and the cluster stays in the INACTIVE state. I first came across this error when using Ignite in embedded server mode, but I can still reproduce it with a fresh out-of-the-box ignite install (not using embedded). I'm surprised that a plain vanilla install just calling a couple of basic commands falls over like this. Any idea what's happening?
This is the error:
C:\temp\apache-ignite-2.14.0-bin\bin>control.bat --set-state ACTIVE
Nov 17, 2022 4:27:17 PM
org.apache.ignite.internal.client.impl.connection.GridClientNioTcpConnection
INFO: Client TCP connection established: /127.0.0.1:11211 Nov
17, 2022 4:27:17 PM
org.apache.ignite.internal.client.impl.connection.GridClientNioTcpConnection
close INFO: Client TCP connection closed: /127.0.0.1:11211 Nov 17,
2022 4:27:17 PM org.apache.ignite.internal.client.util.GridClientUtils
shutdownNow WARNING: Runnable tasks outlived thread pool executor
service [owner=GridClientConnectionManager,
tasks=[java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask#6d7b4f4c]]
Control utility [ver. 2.14.0#20220929-sha1:951e8deb] 2022 Copyright(C)
Apache Software Foundation User: info Time: 2022-11-17T16:27:16.344
null suppressed:
Command [SET-STATE] finished with code: 4 Error stack trace: class
org.apache.ignite.internal.client.GridClientException: null
suppressed:
at org.apache.ignite.internal.client.impl.connection.GridClientNioTcpConnection.handleClientResponse(GridClientNioTcpConnection.java:632)
at org.apache.ignite.internal.client.impl.connection.GridClientNioTcpConnection.handleResponse(GridClientNioTcpConnection.java:563)
at org.apache.ignite.internal.client.impl.connection.GridClientConnectionManagerAdapter$NioListener.onMessage(GridClientConnectionManagerAdapter.java:691)
at org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279)
at org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
at org.apache.ignite.internal.util.nio.GridNioCodecFilter.onMessageReceived(GridNioCodecFilter.java:116)
at org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
at org.apache.ignite.internal.util.nio.GridNioServer$HeadFilter.onMessageReceived(GridNioServer.java:3734)
at org.apache.ignite.internal.util.nio.GridNioFilterChain.onMessageReceived(GridNioFilterChain.java:175)
at org.apache.ignite.internal.util.nio.GridNioServer$ByteBufferNioClientWorker.processRead(GridNioServer.java:1211)
at org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.processSelectedKeysOptimized(GridNioServer.java:2508)
at org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:2273)
at org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1910)
at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
at java.lang.Thread.run(Thread.java:748)
Control utility has completed execution at: 2022-11-17T16:27:17.642
Execution time: 1298 ms Press any key to continue . . .
It's a known issue, which is, unfortunately, not fixed yet.
As a workaround, you can execute the command with the autoconfirmation flag --yes, as shown below:
control.bat --set-state ACTIVE --yes

Package 'jdk' isn't signed with proper key

can some one tell what below lines indicates. I am using tomcat7 its suddenly goes down after some time . i can see below log in /var/log/messages file. is jvm got crashed ?
Dec 28 17:39:06 track03 abrt[23595]: Saved core dump of pid 9849 (/usr/java/jdk1.6.0_27/bin/java) to /var/spool/abrt/ccpp-2016-12-28-17:38:14-9849 (12624896000 bytes)
Dec 28 17:39:06 track03 abrtd: Directory 'ccpp-2016-12-28-17:38:14-9849' creation detected
Dec 28 17:39:07 track03 abrtd: Package 'jdk' isn't signed with proper key
Dec 28 17:39:07 track03 abrtd: 'post-create' on '/var/spool/abrt/ccpp-2016-12-28-17:38:14-9849' exited with 1
Dec 28 17:39:07 track03 abrtd: Deleting problem directory '/var/spool/abrt/ccpp-2016-12-28-17:38:14-9849'
That means process /usr/java/jdk1.6.0_27/bin/java crashed and core dump was saved to directory /var/spool/abrt/ccpp-2016-12-28-17:38:14-9849. But abrtd daemon recognized that package jdk was not signed with GPG key so directory was deleted.
For some more information check:
ABRT logs messages with "Package isn't signed with proper key."
Red Hat Linux error - Package 'rmmagent' isn't signed with proper key
If you want to inspect core dumps you can change default behavior of abrtd in case of third-party packages:
Edit the file /etc/abrt/abrt-action-save-package-data.conf
Set OpenGPGCheck = no
Reload abrtd with the command: service abrtd reload

cobbler sync - generating dhcpd.template file

I am trying to resolve a cobbler issue, request your help/guidance on the same. we have spacewalk with cobbler. when I add a new host and do a cobbler sync, i am getting the below error and TASK FAILED.
rendering DHCP files
generating /etc/dhcp/dhcpd.conf
Exception occured: <class 'cexceptions.CX'>
Exception value: 'Error templating file, check cobbler.log for more details'
when I cross check the cobbler.log, these entries were recorded...
Mon Apr 25 14:44:45 2016 - WARNING | errors were encountered rendering the template
Mon Apr 25 14:44:45 2016 - WARNING |
[{'code': u'VFFSL(SL,"net0",True)/mac',
'exc_val': NotFound("cannot find 'net0'",),
'lineCol': (2, 11),
'rawCode': u'${net0/mac}',
'time': 'Mon Apr 25 14:44:45 2016'}]
Thanks
Nandakumar
we found its was a profile with the system Profile with a wrong name, which was stopping creating the dhcpd.conf file. After removing the particular system profile, everything works well.
Thanks
Nandakumar

command start-domain failed glassfish 4.1

I successfully installed glassfish 4.1 on my centos server via ssh but I am unable to start the server.
when I type ./asadmin start-domain I got this error below.
Waiting for domain1 to start ......Error starting domain domain1.
The server exited prematurely with exit code 137.
Before it died, it produced the following output:
Launching GlassFish on Felix platform
Registered com.sun.enterprise.glassfish.bootstrap.osgi.EmbeddedOSGiGlassFishRuntime#33903879 in service registry.
Nov 24, 2014 10:42:08 PM com.sun.enterprise.glassfish.bootstrap.osgi.BundleProvisioner createBundleProvisioner
INFO: Create bundle provisioner class = class com.sun.enterprise.glassfish.bootstrap.osgi.BundleProvisioner.
Nov 24, 2014 10:42:08 PM com.sun.enterprise.glassfish.bootstrap.osgi.BundleProvisioner$DefaultCustomizer getLocations
WARNING: Skipping entry because it is not an absolute URI.
Nov 24, 2014 10:42:08 PM com.sun.enterprise.glassfish.bootstrap.osgi.BundleProvisioner$DefaultCustomizer getLocations
WARNING: Skipping entry because it is not an absolute URI.
Command start-domain failed.
Can anyone help with this one?
Thanks.
It seems that Glassfish cannot start because an address is trying to bind is already in use.
Shutting down server due to startup exception
java.net.BindException: Address already in use: bind
Try to edit the domain.xml.
/glassfish/domains/domain1/config/domain.xml
The most common problem would be that the http-listener ports are reused by another application. Find the following lines:
name="http-listener-1" port="8080" name="http-listener-1" port="9090"
And replace them with something like:
name="http-listener-2" port="8181" name="http-listener-2" port="9191"
You can also read more about the domain.xml

Running Jboss 7.1.1 on Fedora 20 as service

I have encountered a problem with running Jboss as service on Fedora. Here is the log I have after using command: systemctl status jboss-as.service
Here is the log I have been receiving:
jboss-as.service - SYSV: JBoss AS Standalone
Loaded: loaded (/etc/rc.d/init.d/jboss-as)
Active: failed (Result: resources) since Thu 2014-01-16 09:31:54 CET; 46min ago
Process: 501 ExecStart=/etc/rc.d/init.d/jboss-as start (code=exited, status=0/SUCCESS)
Jan 16 09:31:22 servername.domain systemd[1]: Starting SYSV: JBoss AS Standalone...
Jan 16 09:31:23 servername.domain jboss-as[501]: Starting jboss-as: chown: missing operand after ‘/var/run/jboss-as’
Jan 16 09:31:23 servername.domain jboss-as[501]: Try 'chown --help' for more information.
Jan 16 09:31:54 servername.domain jboss-as[501]: [ OK ]
Jan 16 09:31:54 servername.domain systemd[1]: PID file /var/run/jboss-as/jboss-as-standalone.pid not readable (yet?) after start.
Jan 16 09:31:54 servername.domain systemd[1]: Failed to start SYSV: JBoss AS Standalone.
Jan 16 09:31:54 servername.domain systemd[1]: Unit jboss-as.service entered failed state.
First, I tried to find a solution for the chown: missin operand after ... problem and found something: here but it did not help. And also, I was looking for the answer for the PID file problem but it does not even exist in in the location: var/run/jboss-as/
This is because the startup script uses the variable $JBOSS_USER but it is not defined inside the script.
Please put in the file /etc/jboss-as/jboss-as.conf the following line:
JBOSS_USER=root
(change the root with other dedicated linux user e.g. jboss-as)
It looks like the service startup script expects to be able to write to the /var/run/jboss-as directory but doesn't have permissions to do so.
In your place I'd ensure that this directory is owned by the user that runs JBoss and that it is writable.
Check that there aren't other errors (particularly missing or incorrect paths) in your /etc/rc.d/init.d/jboss-as file (I assume you copied it from the jboss install folder to create a startup script.
I had the same issue until I fixed a completely unrelated link in that script, then it went away.
In Centos 7, if you straight way copying the jboss-as-standalone.sh in /etc/rc.d/init.d/, ensure JBOSS_CONF and JBOSS_HOME path is correct.
For me, it was with systemd. When I set the service y put wrong the PID File.
Example:
In the service was like
/var/run/jboss-as/jboss-as-standalone.pid
But in the script was like
/var/run/jboss-as/jboss-as.pid