Accessing wsadmin objects via Jython - websphere

I'm trying to access the Admin objects via a Jython script in order to update a Maven app deployed to a WebSphere Application Server without having to march through the Integrated Solutions Console every time I make a change. My question is simple: I know how to invoke the commands once I access the Admin objects, but I'm having difficulty getting that far. Once I'm in the bin folder of my server profile, do I need to assign them to objects, or can I just call them directly? And how, specifically, would I do that? Here's the code I have now:
#!usr/bin/local/python
import sys
import os
try:
serverPath = 'c:\IBM\WebSphere8\AppServerND\profiles\\WAS8\\bin\\'
os.chdir(serverPath)
print AdminApp.listModules('restreportscore-application')
except:
e = sys.exc_info()[0]
print( "Error: %s" % e )
endSelect = raw_input("Press Enter to continue...")
But it's throwing an error of type 'exceptions.NameError.'

It doesn't work the way it looks like you think it works. The jython interface mirrors the cmd line actions, but isn't the same. You call a jython script like this:
sudo /opt/IBM/WebSphere/AppServer/bin/wsadmin.sh lang jython -f ./trecs-installer.py
So it already knows "where" it is. At that point you execute your commands through the AdminApp, AdminConfig and AdminTask APIs like this:
AdminApp.install(earDir + "trecs.ear", "[" + settings + ' -MapModulesToServers [' + mapModulesToServers + '] -MapRolesToUsers [' + mapRolesToUsers + "]")
or
# Add destinations and queues...
for item in trecsQueues:
if isNetworkDeploy:
AdminTask.createSIBDestination("[-bus " + trecsBus + " -name " + item + " -type Queue -reliability ASSURED_PERSISTENT -cluster " + clusterName + ']')
AdminTask.createSIBJMSQueue(clusterLongName, "[-name " + item + " -jndiName queue/" + item + " -busName " + trecsBus + " -queueName " + item + ']')
else:
AdminTask.createSIBDestination("[-bus " + trecsBus + " -name " + item + " -type Queue -reliability ASSURED_PERSISTENT -node " + nodeName + ' -server ' + serverName + ']')
AdminTask.createSIBJMSQueue(serverLongName, "[-name " + item + " -jndiName queue/" + item + " -busName " + trecsBus + " -queueName " + item + ']')

Related

SQL query error when creating a table in PostgreSQL /SpringBoot

I am using Spring Boot and PostgreSQL to create a table in which I want to insert the latest data from another table.
I was using H2 and everything was fine but when I migrated to PostgreSQL, the error "SELECT ... FROM must be followed by a reference to the table appeared e.g. SELECT * FROM table as FOO" .
However, when modifying my query with AS, I am still having the same error.
"CREATE TABLE IF NOT EXISTS EOD AS " +
"(SELECT ID, " +
"CUSIP, " +
"NAME, " +
"ISIN, " +
"NAV, " +
"RIC, " +
"RTV," +
"VOLATILITY as volatility, " +
"CURRENCY as currency, "+
"ASK_ISSUER as ask_issuer, " +
"ASK_KECH as ask_kech, " +
"AVERAGE_SCORE as average_score, " +
"BID_ISSUER as bid_issuer, " +
"BID_KECH as bid_kech, " +
"BID_ONLY as bid_only, " +
"CREATOR as creator, " +
"DECENTER as decenter, " +
"DENOMINATION as denomination, " +
"FORCE_PUBLISH as force_publish, " +
"ISSUER_SPREAD as issuer_spread, " +
"KECH_MARGIN as kech_margin, " +
"KECH_SPREAD as kech_spread, " +
"DISTANCE_TO_BANDS_SCORE as distance_to_bands_score, " +
"DIFFERENCE_TO_LEXIFI_PRICE_SCORE as difference_to_lexifi_price_score, " +
"METRIC_C as metric_c, " +
"PRICE_EXPRESSION as price_expression, " +
"PRODUCT_TYPE as product_type, " +
"PUBLISHED as published, " +
"PUBLISHING as publishing, " +
"TIMESTAMP as timestamp " +
"FROM " +
"(" +
"SELECT * FROM RTDATABASE AS T " +
"JOIN (SELECT MAX(CONVERT(TIMESTAMP, DATETIME)) AS LATESTDATE FROM T GROUP BY ISIN)" +
") tm " +
"WHERE CONVERT(tm.TIMESTAMP, DATETIME) = tm.LATESTDATE) AS LATESTDATA;";
Any idea how to solve this issue?
Many thanks in advance !

Ruby - Parsing XML with Nokogiri

I'm not familiar with XML and trying to get a bit network automation going. I get some XML responses like the following, and try to convert it to a hash or something to easily work with it. I have no idea if I'm doing something wrong. I get the output shown below.
Anyone can push me into a direction ? I tried the nokogiri documentation and guides, but I'm kinda lost.
My Data:
"show ip int brief vrf all | xml\r\n" +
"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n" +
"<nf:rpc-reply xmlns:nf=\"urn:ietf:params:xml:ns:netconf:base:1.0\" xmlns=\"http://www.cisco.com/nxos:1.0:ip\">\n" +
" <nf:data>\n" +
" <show>\n" +
" <ip>\n" +
" <interface>\n" +
" <__XML__BLK_Cmd_ip_show_interface_command_brief>\n" +
" <__XML__OPT_Cmd_ip_show_interface_command_operational>\n" +
" <__XML__OPT_Cmd_ip_show_interface_command_vrf>\n" +
" <__XML__OPT_Cmd_ip_show_interface_command___readonly__>\n" +
" <__readonly__>\n" +
" <TABLE_vrf>\n" +
" <ROW_vrf>\n" +
" <vrf-name-out>management</vrf-name-out>\n" +
" </ROW_vrf>\n" +
" </TABLE_vrf>\n" +
" <TABLE_intf>\n" +
" <ROW_intf>\n" +
" <intf-name>mgmt0</intf-name>\n" +
" <prefix>10.70.237.15</prefix>\n" +
" <ip-disabled>FALSE</ip-disabled>\n" +
" <iod>316</iod>\n" +
" <proto-state>up</proto-state>\n" +
" <link-state>up</link-state>\n" +
" <admin-state>up</admin-state>\n" +
" </ROW_intf>\n" +
" </TABLE_intf>\n" +
" </__readonly__>\n" +
" </__XML__OPT_Cmd_ip_show_interface_command___readonly__>\n" +
" </__XML__OPT_Cmd_ip_show_interface_command_vrf>\n" +
" </__XML__OPT_Cmd_ip_show_interface_command_operational>\n" +
" </__XML__BLK_Cmd_ip_show_interface_command_brief>\n" +
" </interface>\n" +
" </ip>\n" +
" </show>\n" +
" </nf:data>\n" +
"</nf:rpc-reply>\n" +
2.4.1 :363 > doc = Nokogiri::XML(my_data)
=> #<Nokogiri::XML::Document:0x173dda8 name="document">
2.4.1 :364 > doc.elements
=> []
Get rid of anything before <?xml version=\"1.0\" encoding=\"ISO-8859-1\"?> XML declaration - in you case, omit "show ip int brief vrf all | xml\r\n" line.
Once your document is parsed, follow official tutorial on searching - for a beginner IMHO it's best to avoid Xpath and just stick with .css selectors, which will be easy to grasp if you've ever done any CSS or Jquery.

hybris Flexiblesearch - where clause with enums

I successfully create and execute a flexiblesearch query with a WHERE clause comparing a custom property, added to CartModel, with a enum value.
But I don't know how to "translate" it to try on HAC (just to try and fix it before coding inside a class).
In my class I've the working code:
String MY_QUERY = "SELECT {" + CartModel.PK + "} FROM {" + CartModel._TYPECODE + "} "
+ "WHERE " + "( {" + CartModel.RESERVATIONORDERSTATUS + "} = ?reservedOnHybris)";
And I set the reservedOnHybris parameter with
searchQuery.addQueryParameter("reservedOnHybris", ReservationOrderStatus.INITIAL_STATUS);
How can I translate this to try it on the FlexibleSearch panel in the HAC?
Thanks in advance.
Ale
This should work:
String MY_QUERY = "SELECT {" + CartModel.PK + "} FROM {" + CartModel._TYPECODE + "} "
+ "WHERE " + "( {" + CartModel.RESERVATIONORDERSTATUS + "} =
({{SELECT {crse.PK} FROM {" + CartReservationStatusEnum._TYPECODE
+ " as crse} WHERE {crse.code} = '" + ?reservedOnHybris + "'}}))"
You should get the PK of your enum, you could do this by using a select query.
Try :
SELECT {PK} FROM {Cart} WHERE {RESERVATIONORDERSTATUS} = "Your status"
Basically things like "CartModel.PK" could be replaced by the String.

os.rename not changing file extension in windows

I have a simple Python 3's script that rename all files in a folder, in the shell it shows the new name applied correctly, but when I go to the folder in windows, the files does not have any extension.
i.e: In python I rename somefile to: "newname.jpg", but on windows it is only "newname", without extension. I guess this is more a Windows 10's problem than a Python's problem.
This is the code:
import os
from os import listdir
i = 0
dir = "./PHOTO GALLERY 1"
for archivo in listdir(dir):
i=i+1
if i<10:
j="0"+str(i)
else:
j=str(i)
print ("Nombre original: " + archivo)
os.rename(dir + "/" + archivo, dir + "/" + "photogallery1_" + j)
print ("Nombre nuevo: " + "photogallery1_" + j + ".jpg")
It looks like you're leaving off the file extension:
os.rename(dir + "/" + archivo, dir + "/" + "photogallery1_" + j)
should be
os.rename(dir + "/" + archivo, dir + "/" + "photogallery1_" + j + ".jpg")
like in your print statement.

Parameters in Crystal Reports from Visual Studio 2010

My report donĀ“t accept the parameter.
I have created a parameter with "City" name.
In my code i want to full it:
ReportDocument crystalReport = new ReportDocument();
crystalReport.Load(Server.MapPath("CrystalReport.rpt"));
crystalReport.SetParameterValue("City", lblCiudad.Text);
viewer.ReportSource = crystalReport;
the problem is that the report doesnt filter with my parameter, show without it.
Solution with formula:
crystalReportViewer.SelectionFormula = "{Clientes.Nombre} = '" + nombreCliente + "' AND {Registros.Host} = '" + host + "' AND {Registros.Servicio} = '" + service + "' AND {Registros.Fecha} <= " + "DateTime(" + fF.Year.ToString() + "," + fF.Month.ToString() + "," + fF.Day.ToString() + ","+fF.Hour.ToString() + "," + fF.Minute.ToString()+","+fF.Second.ToString()+") AND {Registros.Fecha} >= " + " DateTime(" + fI.Year.ToString() + "," + fI.Month.ToString() + "," + fI.Day.ToString() + ","+fI.Hour.ToString() + "," + fI.Minute.ToString()+","+fI.Second.ToString()+")";

Resources