SFTP supported for UpdateURL in ExaOperation ?

mwellbro
Xpert

Hi guys,

I was wondering, is sftp supported for usage as an Update URL ?

https://docs.exasol.com/6.2/administration/on-premise/manage_software/manage_update_url.htm?Highligh... only states FTP explicitly and a haven´t yet gotten ExaOperation to find the update package in question on my sftp - I´m rather sure that I´ve seen this functionality working in the past...but that might have been on FTP...

Any takers ?

Bonus points if you can also share the signature of the uploadSoftware from the https://github.com/exasol/exaoperation-xmlrpc - I remember @Charlie commenting on the documentation around xmlrpc..maybe you could "pitch in" again ?

Cheers,
Malte

8 REPLIES 8

exa-Benedikt
Team Exasol
Team Exasol

Hi Malte,

the Update URL functionality in Exaoperation only supports FTP servers. However, the integrity of the update is still verified with a signature that is embedded in the update file.

Regarding your second question:
The uploadSoftware method just takes the update package as base64 encoded binary data. (xmlrpc.client.Binary if you are using python as in the examples in the API documentation).

Cheers

Benedikt

mwellbro
Xpert

Hi @exa-Benedikt ,

thanks for the info´s ! A couple of follow-up´s:

  • "Update URL functionality in Exaoperation only supports FTP servers" => why, exactly ?!? While I approve of the verification of the package on the "exa-end" it would force me to use/maintain a FTP-server which I really rather wouldn´t do...
  • "The uploadSoftware method just takes the update package as base64 encoded binary data" => ah, this provides the actual update package from the location of the xmlrpc execution ? I thought it might be able to "point" to one of the packages residing at the UploadURL - is there such a method as well ?

Cheers,
Malte

exa-Benedikt
Team Exasol
Team Exasol

Hi Malte,

I don't think there's an inherent reason why it has to be ftp-only to be honest.

But I can still help you on your quest: There is a getSoftware call that you can use to install updates from the ftp server you don't want to maintain 😉

Assuming you have configured an update URL, you can use

getSoftware(relative_path_on_update_url)

to download one of the updates from there to the cluster and automatically install it.

Cheers
Benedikt

mwellbro
Xpert

Hi Benedikt,

hmm, sounds good, at least for a short time solution on an unwanted server 😀

I take it "automatically install it" means up to the point where the GUI would normally tell me "Part 1 of update complete, shutdown DB,Storage & reboot nodes / LicServer" ,
so I would need to code those steps ( let´s say in python ) around the getSoftware call ? Which hopefully will block until said Part 1 is finished ?

Cheers,
Malte

exa-Benedikt
Team Exasol
Team Exasol

Hi Malte,

yes, the getSoftware call essentially automates selecting and uploading the update in Exaoperation. The other parts of the update procedure would have to be automated using the api as well. getSoftware/uploadSoftware should block from what I can tell, but if you need progress information you can also use getUploadPackageState(), which returns the status string that is displayed in Exaoperation as well during the update (The "Part 1 of update complete, shutdown DB,Storage & reboot nodes...." bit)

There is some example code here (it uses uploadSoftware rather than getSoftware) https://github.com/exasol/exaoperation-xmlrpc/blob/master/tools-and-examples/auto_update_exaop/auto_...

Cheers

Benedikt

mwellbro
Xpert

Hi @exa-Benedikt ,

thanks for pointing me in the direction of the github code - question on that one: is it mandatory to execute this on a linux machine ? Adjusted a few ends for file path notation, but I do end up with the following error:

>>> pkg_dest_path='C:\\Temp\\EXAClusterOS-6.2.13_LS-Update.pkg'
>>> p = xmlrpclib.Binary(open(pkg_dest_path).read())
>>> cluster.uploadSoftware(p)
xmlrpclib.Fault: <Fault -1: '/bin/tar: Error is not recoverable: exiting now'>

mwellbro
Xpert

@exa-Benedikt : ping ?

mwellbro
Xpert

added https://github.com/exasol/exaoperation-xmlrpc/issues/20 as an enhancement request, in case anyone cares 😄