Demo Discussion
Forum Config Examples Contributions Vulnerabilities
  Discussion forum about ELOG, Page 775 of 808  Not logged in ELOG logo
ID Date Icon Authordown Author Email Category OS ELOG Version Subject
  69398   Thu Oct 21 00:42:42 2021 Reply Andreas Luedekeandreas.luedeke@psi.chInfoLinuxUnknownRe: How to access PSI Elog data from other web clients

There is a python API to access ELOG via HTTP: https://github.com/paulscherrerinstitute/py_elog

Lin Wang wrote:

We want to develop separate mobile web pages for the web applications deployed at CSNS accelerator, including the PSI Elog.

In Elog, is there RESTful API or HTTP/JSON or HTTP/XML interface for other web clients to access?

Or is there any workaround?

 

  69399   Thu Oct 21 11:00:46 2021 Warning Andreas Luedekeandreas.luedeke@psi.chBug reportLinux3.1.4-2e1708bRedirect in Execute new needs space after ">"

EDIT: forget the tip below. Instead just call script files: inline scripting in the ELOG config shows very strange behavior. Doing the same in external scripts works reliable.

 

I just spend an hour searching for a problem. To avoid others to spend the hour again, here's a little "special behaviour" of shell execution in ELOG you should know about:

If you want to do redirect to a file in a shell execution, put a space before and after the redirecting. The following does not work:

Execute new = if ! [ -z "$CampaignID" ] ; then echo "$CampaignID" >/usr/local/elog/logbooks/elog-campaign.default ; fi

You will not get an error message, but the file is not created. But if you add a space it will work as expected:

Execute new = if ! [ -z "$CampaignID" ] ; then echo "$CampaignID" > /usr/local/elog/logbooks/elog-campaign.default ; fi

It is not really a bug; if you know about it, then it is not a big deal: hence this entry here. I saw this behavior on a Linux RHEL7 system.

In case you are wondering: I use this to create a default for the field CampaignID, to be used for new entries in combination with a Preset:

Preset CampaignID = $shell( if [ -r /usr/local/elog/logbooks/elog-campaign.default ] ; then cat /usr/local/elog/logbooks/elog-campaign.default;fi )
  69400   Thu Oct 21 11:15:20 2021 Idea Andreas Luedekeandreas.luedeke@psi.chRequestAll3.1.4How about string constants in config files?

My config files are often large and use some shell scripting. In these shell scripting part I interact with files and execute scripts in specific folder.
It would be nice to have the ability to define for example a file path once and reuse it in different parts of the config file. It would help to make config files cleaner. For example:

Constant c_cid = "/usr/local/elog/logbooks/elog-campaignID.default"
Execute new = if ! [ -z "$CampaignID" ] ; then echo "$CampaignID" > $c_cid; fi

Preset CampaignID = $shell( if [ -r $c_cid ] ; then cat $c_cid; else echo None > $c_cid; echo None; fi )

  69430   Tue Dec 7 11:56:37 2021 Reply Andreas Luedekeandreas.luedeke@psi.chQuestionLinux3.1.4Re: Unclear how to use the command line tool /usr/bin/elog

If you need HTTPS then you must specify the "-s" option.

You could have looked into the help of the elog command:

> elog -h
elogd 3.1.4 built Jun 14 2021, 18:01:54 revision 611489b
usage: elog
elog -h <hostname> [-p port] [-d subdir]
                              Location where elogd is running
     -l logbook/experiment    Name of logbook or experiment
     -s                       Use SSL for communication
     [-v]                     For verbose output
     [-u username password]   User name and password
     [-f <attachment>]        (up to 50 attachments)
     -a <attribute>=<value>   (up to 50 attributes)
     [-r <id>]                Reply to existing message
     [-q]                     Quote original text on reply
     [-e <id>]                Edit existing message
     [-w <id>|last]           Download existing message (last message)
     [-x]                     Suppress email notification
     [-n 0|1|2]               Encoding: 0:ELcode,1:plain,2:HTML
     -m <textfile>] | <text>
Arguments with blanks must be enclosed in quotes
The elog message can either be submitted on the command line, piped in like
"cat text | elog -h ... -l ... -a ..." or in a file with the -m flag.
Multiple attributes and attachments can be supplied

 
Jose Caballero wrote:

Hi Stefan,

Here is the, I believe, relevant part of the output:

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

Response received:
HTTP/1.1 404 Not Found
Date: Tue, 07 Dec 2021 07:26:07 GMT
Server: Apache/2.4.6 (Scientific Linux) OpenSSL/1.0.2k-fips PHP/5.4.16
Content-Length: 204
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /LogBook/ was not found on this server.</p>
</body></html>

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

Note that the URL https://elog-1.matrix.com/LogBook/ exists and works. That's how we create all our log entries via web browser. 

 

Thanks,

Jose

 

Stefan Ritt wrote:

Please issue the elog command with an added "-v" flag and post the output here.

Stefan

Jose Caballero wrote:

Hello,

 

I am trying first time to use the tool /usr/bin/elog. From the documentation is not clear to if everything must be in quotes or not, if every attribute requires -a.

Here is how my attempt looks like (changing actual data by fake one):

      /usr/bin/elog -h elog-1.matrix.com -l LogBook -u jcaballero mypassword -a Team='Team Name Here' Category='Category Here' -a 'Affected service'='Name of affected service here' -a Criticality=Normal -a 'Oncall Documentation'='No modifications required' -a Subject='here is the subject line' 'here is the text'

I just get "Error transmitting message". 

Attributes Team and Category are of checkbox type. Attributes Criticality and Oncall Documentation are of radio type.

What is wrong with my command attempt?

 

Thanks a lot in advance.

Cheers,

Jose

 

 

 

 

 

 

  69435   Tue Dec 7 18:24:42 2021 Reply Andreas Luedekeandreas.luedeke@psi.chQuestionLinux3.1.4Re: Unclear how to use the command line tool /usr/bin/elog

But this is real progress! Now elog successfully connected, and all your data was transmitted, but elogd refused your content.

A possible explanation is that one required attribute of this logbook was not provided in your elog command, or that one value of an attribute does not match any allowed value for that attribute.
Here we can only help if you post the config of your logbook.

Cheers, Andreas

PS: you did not provide the -s option?!? Just in case you lack the knowledge: providing a port number 443 does not imply the use of the SSL protocoll.

Jose Caballero wrote:

Not really. The full URL in the browser is https://elog-1.matrix.com/LogBook. That's why I am trying with "-h elog-1.matrix.com -l LogBook"

I have just tried with -p, here is the full output:

[root@elog-1 ~]# /usr/bin/elog -h elog-1.matrix.com -p 443 -v -x -l LogBook -u jcaballero xxxx -a Team='Team Name' -a Category='Category Name' -a 'Affected service'='Affected Service' -a Criticality=Normal -a 'Oncall Documentation'='No modifications required' -a Subject='This is a test, ignore me' 'This is a test, ignore me'
Successfully connected to host elog-1.matrix.com, port 443
Request sent to host:
POST /Tier1/ HTTP/1.0
Content-Type: multipart/form-data; boundary=---------------------------462A01443E24BC6541C5BB72
Host: elog1.matrix.com:443
User-Agent: ELOG
Content-Length: 1610


Content sent to host:
---------------------------462A01443E24BC6541C5BB72
Content-Disposition: form-data; name="cmd"

Submit
---------------------------462A01443E24BC6541C5BB72
Content-Disposition: form-data; name="unm"

jcaballero
---------------------------462A01443E24BC6541C5BB72
Content-Disposition: form-data; name="upwd"

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
---------------------------462A01443E24BC6541C5BB72
Content-Disposition: form-data; name="exp"

LogBook
---------------------------462A01443E24BC6541C5BB72
Content-Disposition: form-data; name="suppress"

1
---------------------------462A01443E24BC6541C5BB72
Content-Disposition: form-data; name="encoding"

ELCode
---------------------------462A01443E24BC6541C5BB72
Content-Disposition: form-data; name="Team"

Team Name
---------------------------462A01443E24BC6541C5BB72
Content-Disposition: form-data; name="Category"

Category Name
---------------------------462A01443E24BC6541C5BB72
Content-Disposition: form-data; name="Affected_service"

Affected Service
---------------------------462A01443E24BC6541C5BB72
Content-Disposition: form-data; name="Criticality"

Normal
---------------------------462A01443E24BC6541C5BB72
Content-Disposition: form-data; name="Oncall_Documentation"

No modifications required
---------------------------462A01443E24BC6541C5BB72
Content-Disposition: form-data; name="Subject"

This is a test, ignore me
---------------------------462A01443E24BC6541C5BB72
Content-Disposition: form-data; name="Text"

This is a test, ignore me
---------------------------462A01443E24BC6541C5BB72

Response received:

Error transmitting message

 

 

Stefan Ritt wrote:

If you use HTTPS, you have to connect to port 443 of your server, using the "-p" option.

Furthermore, you run under an Apache server, right? How do you do the redirecting to elogd? I guess you specified a subdir in the URL named /LogBook to redirect to elogd. The you use another part of the URL to select the logbook, which again might be "LogBook". Is that correct? So your full URL in the browser would be https://elog-1.matrix.com/LogBook/LogBook. If that's the case, you have to tell the elog tool that you use a subdir in the URL using the "-d" option.

Stefan

Jose Caballero wrote:

This is what I get with -s:

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

Successfully connected to host elog-1.matrix.com, port 80
elogd server does not run SSL protocol

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

And the entry has not been created. 

 

Andreas Luedeke wrote:

If you need HTTPS then you must specify the "-s" option.

You could have looked into the help of the elog command:

> elog -h
elogd 3.1.4 built Jun 14 2021, 18:01:54 revision 611489b
usage: elog
elog -h <hostname> [-p port] [-d subdir]
                              Location where elogd is running
     -l logbook/experiment    Name of logbook or experiment
     -s                       Use SSL for communication
     [-v]                     For verbose output
     [-u username password]   User name and password
     [-f <attachment>]        (up to 50 attachments)
     -a <attribute>=<value>   (up to 50 attributes)
     [-r <id>]                Reply to existing message
     [-q]                     Quote original text on reply
     [-e <id>]                Edit existing message
     [-w <id>|last]           Download existing message (last message)
     [-x]                     Suppress email notification
     [-n 0|1|2]               Encoding: 0:ELcode,1:plain,2:HTML
     -m <textfile>] | <text>
Arguments with blanks must be enclosed in quotes
The elog message can either be submitted on the command line, piped in like
"cat text | elog -h ... -l ... -a ..." or in a file with the -m flag.
Multiple attributes and attachments can be supplied

 
Jose Caballero wrote:

Hi Stefan,

Here is the, I believe, relevant part of the output:

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

Response received:
HTTP/1.1 404 Not Found
Date: Tue, 07 Dec 2021 07:26:07 GMT
Server: Apache/2.4.6 (Scientific Linux) OpenSSL/1.0.2k-fips PHP/5.4.16
Content-Length: 204
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /LogBook/ was not found on this server.</p>
</body></html>

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

Note that the URL https://elog-1.matrix.com/LogBook/ exists and works. That's how we create all our log entries via web browser. 

 

Thanks,

Jose

 

Stefan Ritt wrote:

Please issue the elog command with an added "-v" flag and post the output here.

Stefan

Jose Caballero wrote:

Hello,

 

I am trying first time to use the tool /usr/bin/elog. From the documentation is not clear to if everything must be in quotes or not, if every attribute requires -a.

Here is how my attempt looks like (changing actual data by fake one):

      /usr/bin/elog -h elog-1.matrix.com -l LogBook -u jcaballero mypassword -a Team='Team Name Here' Category='Category Here' -a 'Affected service'='Name of affected service here' -a Criticality=Normal -a 'Oncall Documentation'='No modifications required' -a Subject='here is the subject line' 'here is the text'

I just get "Error transmitting message". 

Attributes Team and Category are of checkbox type. Attributes Criticality and Oncall Documentation are of radio type.

What is wrong with my command attempt?

 

Thanks a lot in advance.

Cheers,

Jose

 

 

 

 

 

 

 

 

 

 

  69443   Fri Dec 10 21:41:05 2021 Reply Andreas Luedekeandreas.luedeke@psi.chQuestionLinux3.1.4Re: Unclear how to use the command line tool /usr/bin/elog

It is the default. If you install ELOG on your PC and run it, then every access will be directly to the ELOG web service. If you want to have Apache inbetween, it is some extra effort.

Jose Caballero wrote:

Nope. How? Is it documented? 

Stefan Ritt wrote:

Have you tried to connect directly to elogd and not going through Apache? 

Jose Caballero wrote:

Thanks for the comments. I will pass them to the admins. 

 

 

  69445   Sun Dec 12 08:12:57 2021 Reply Andreas Luedekeandreas.luedeke@psi.chQuestionWindowslatestRe: Dump screenshot to new elog entry

I am no Windows expert. An option is to write your own application and use the "elog" command to post the output of the application to your ELOG.
There is as well a python library to access ELOG via http: https://github.com/paulscherrerinstitute/py_elog

Anthony J Krishock wrote:

Hello,

I am interested in finding a preferrably single-click way to capture a screenshot and posting it automatically to a new elog entry . I would be doing this from Windows. Is this possible?

Thanks

 

  69450   Thu Dec 16 18:24:41 2021 Reply Andreas Luedekeandreas.luedeke@psi.chQuestionLinux3.1.4Re: Unclear how to use the command line tool /usr/bin/elog

Now you've totally lost me.

elogd is a web service. You connect to it with a web browser. You don't pass arguments at startup of the service that refers to specific atrributes. I have no idea what you intend to do, you need to explain a lot more.

Jose Caballero wrote:

Hi Andreas,

I realize from your response that my question was not clear. I was not asking how to get it. Note that I am just a regular user, I am not the administrator of the service.

My question was about how to use it. From the man page, or from the explanation in the Administration Guide, it is not clear to me how to pass the same arguments I have been trying for /usr/bin/elog. For example, how to pass the list of attributes. I don't see a "-a" option for elogd. 

Thanks.

Andreas Luedeke wrote:

It is the default. If you install ELOG on your PC and run it, then every access will be directly to the ELOG web service. If you want to have Apache inbetween, it is some extra effort.

Jose Caballero wrote:

Nope. How? Is it documented? 

Stefan Ritt wrote:

Have you tried to connect directly to elogd and not going through Apache? 

Jose Caballero wrote:

Thanks for the comments. I will pass them to the admins. 

 

 

 

 

ELOG V3.1.5-3fb85fa6