Demo Discussion
Forum Config Examples Contributions Vulnerabilities
  Discussion forum about ELOG, Page 262 of 808  Not logged in ELOG logo
ID Date Icon Author Author Email Category OS ELOG Version Subjectdown
  65947   Fri Aug 8 14:50:56 2008 Reply T. Ribbrockemgaron+elog@ribbrock.orgQuestionLinux2.7.4-2111Re: Using the command line tool to edit

Yoshio Imai wrote:

T. Ribbrock wrote:
NOTE: I found that this does not work if LOGBOOK has any spaces in it - I would get error messages where the logbook was not found.


You might try to escape the space in the form
elog -a 'Attribute1=value' -x -h localhost -l 'LOG\ BOOK' -p 8080 -u USER PASSWD


I forgot to mention that I tried both 'LOG\ BOOK' and 'LOG%20BOOK' - neither worked. Running elog with -v seemed to indicate in both cases that the correct logbook could not be found.



Yoshio Imai wrote:

T. Ribbrock wrote:
What is the easiest way to retrieve an ID from the command line

I don't know if this helps you (depends on how much the application that edits the entry communicates with the application the generates the entry), but the elog client should output something like
Message successfully transmitted, ID=12345
which you could e.g. redirect into a file that the editing application then reads to determine the ID.


Good point, thanks - I'll have to generate some kind of mapping table (ID<->Attribute) when the logbook gets populated, but that should be possible. It would be very cool, though, if elog was able to identify an entry by attribute value - maybe something for a day when Stefan gets bored... Wink

However, none of this will have any relevance unless I can solve the non-working "edit" function... Frown
  65949   Mon Aug 11 11:02:18 2008 Reply Stefan Rittstefan.ritt@psi.chQuestionLinux2.7.4-2111Re: Using the command line tool to edit

T. Ribbrock wrote:

I intend to create a script that updates one of our elog logbooks based on mails it receives. I was hoping to be able to do this using the "elog" command line tool. Adding a new entry works fine, as does "replying" to an existing entry. The only thing I cannot get to work is editing an existing entry. All entries ahve several attributes and I intend not to use the "message" itself. I tried the following (on the machine this elogd is running on):

  1. Create a new entry with Attribute1 set to "value":

    elog -a 'Attribute1=value' -x -h localhost -l 'LOGBOOK' -p 8080 -u USER PASSWD

    This works - the entry gets created and is displayed properly.
    NOTE: I found that this does not work if LOGBOOK has any spaces in it - I would get error messages where the logbook was not found.
     
  2. Edit this entry to set a second attribute:

    elog -e 1 -a 'Attribute2=something' -x -h localhost -l 'LOGBOOK' -p 8080 -u USER PASSWD

    The result was: Error transmitting message. Running the same command with -v gives me a whole bunch of text with at the end this message (I've stripped the HTML): "This entry has in meantime been modified by someone else. Submitting it now would overwrite the other modification and is therefore prohibited." However, I know for certain that this entry is not being editied by anyone at that moment, so I'm wondering what I'm doing wrong here...

Also, I have a second, related question: Editing by the ID of the entry seems to be the only way of editing an entry - this makes it a bit difficult for me, as all entries already have a unique ID (which is defined as one of the attributes) that is non-numerical and not sequential. What is the easiest way to retrieve an ID from the command line (basically something like: "What ID has the entry with Attribute1==NAME?")? Is it possible at all? Otherwise, I would not be able to automatically edit the entries, as I don't know which is which... :-}

 I fixed two things:

  • The logbook can now contain a space. Enclose it in double quotes such as elog -l "LOG BOOK" ...
  • The error you report comes from the fact that you are the first person using elog submissions together with "use lock=1" in the configuration file. This has never been tested and therefore does not work . So I fixed this by adding a new hidden parameter. If you update to SVN revision 2122, things should work

Concerning your request of editing existing entries by their idea, I agree with Yoshi that you could grab the ID upon the first submission. An alternative is to make a direct search on a logbook. Since this is not implemented in the elog command line tool, you have to use wget for it:

wget "http://localhost:8080/LOGBOOK/?mode=raw&Attribute1=something" -O elog.txt

A problem here is that the username and password are normally transmitted in an encrypted form as cookies by your browser after you logged in. Now you have to convince wget first to log in like

wget "http://localhost:8080/LOGBOOK/?unamee=USER&upassword=PASSWD"--save-cookies cookies.txt

followed by a second call to wget with --load-cookies cookies.txt. I tried that but was not successful since the login procedure above redirects to the elog listing page, and only the cookies set after the redirection were saved in cookies.txt. Maybe you can figure out how to do that. The only way I could get it to work is to supply the encoded password, which I manually obtained from the password file. The URL was then

wget "http://localhost:8080/LOGBOOK/?mode=raw&Attribute1=something&unm=USER&upwd=ENC_PWD" -O elog.txt

  65950   Mon Aug 11 15:14:40 2008 Reply T. Ribbrockemgaron+elog@ribbrock.orgQuestionLinux2.7.4-2111Re: Using the command line tool to edit
Stefan Ritt wrote:

I fixed two things:

  • The logbook can now contain a space. Enclose it in double quotes such as elog -l "LOG BOOK" ...
  • The error you report comes from the fact that you are the first person using elog submissions together with "use lock=1" in the configuration file. This has never been tested and therefore does not work . So I fixed this by adding a new hidden parameter. If you update to SVN revision 2122, things should work

Tehe, leave it to us "stupid users" to break your nice little program in new and exiting ways... ;-) But: THANK YOU! Both things are indeed working now - that brings me one step closes to my automated logbook, which is great!

 

Stefan Ritt wrote:

Concerning your request of editing existing entries by their idea, I agree with Yoshi that you could grab the ID upon the first submission. An alternative is to make a direct search on a logbook. Since this is not implemented in the elog command line tool, you have to use wget for it:

wget "http://localhost:8080/LOGBOOK/?mode=raw&Attribute1=something" -O elog.txt

A problem here is that the username and password are normally transmitted in an encrypted form as cookies by your browser after you logged in. Now you have to convince wget first to log in like

wget "http://localhost:8080/LOGBOOK/?unamee=USER&upassword=PASSWD"--save-cookies cookies.txt

followed by a second call to wget with --load-cookies cookies.txt. I tried that but was not successful since the login procedure above redirects to the elog listing page, and only the cookies set after the redirection were saved in cookies.txt. Maybe you can figure out how to do that. The only way I could get it to work is to supply the encoded password, which I manually obtained from the password file. The URL was then

wget "http://localhost:8080/LOGBOOK/?mode=raw&Attribute1=something&unm=USER&upwd=ENC_PWD" -O elog.txt

I thought about grabbing the ID on first creation. The problem with that is that I really would have to run parallel "databases" - one in elog to keep the information I want plus a second one which maps the elog-IDs to the "real" IDs - and the second one would also have to deal with things like "ID exists", "ID doesn't exist", "ID gets deleted" and so on - just the kind of hassle I want to avoid. But what you suggest with wget will most likely be sufficient. The logbook in question is readable for everyone (only editing/writing requires authentication), so I can search without password hassle. In fact, this will work:

 

wget -q "http://localhost:8080/LOGBOOK/?mode=raw&Attribute1=something" -O -| grep '\$@MID'|awk '{print $2}'

Et voila, I have an ID. This will generate a bit more traffic than a parallel "DB", but I think it will be less susceptible to errors, as all information is kept within the elog logbook at all times. Thanks again for your help - time to do some scripting! :-)

  558   Mon Jun 7 15:58:10 2004 Reply Stefan Rittstefan.ritt@psi.ch  2.52Re: Using select menu option to move multiple logbook entries to another logbook
> I've been able to select a specific logbook entry and move it, and I've 
> been able to filter and select and toggle, but I can't figure out how to 
> get the Move To option to show up on the main logbook menu....

To be able to move entries between logbooks, you have to enable the "move to"
command with the option "Menu commands" like:

Menu commands = Back, New, Edit, Delete, Reply, Find, Config, Move to, Help

Having done this, the menu "Move to xxx" should show up when you select an
individual entry, where xxx is the name of the other logbook(s). If you so a
"Select" on several entries, a new button should show up which lets you move
all selected entries to the other logbook(s). See elog:/1 for an example. If
you do not observer this behaviour, please let me know.
  66342   Mon May 4 11:25:15 2009 Reply soren poulsensoren.poulsen@cern.chQuestionLinux2.7.5-2172Re: Using preset text files

soren poulsen wrote:

Hi,

I am trying the Preset text option from the documentation: like:

Attributes = Author, Type
Options Type = Network check{1}, System check{2}

{1} Preset text = network.txt
{2} Preset text = system.txt

I have two questions:

1. Where are the preset text files searched from ? I guess I could put them in the logbook (and specify a relative path like in this example) but it appeared only to work when I specifiy an abcolute path. That is even better in my case.

2. How do I specify line feeds in the file ? I tried Linux and Windows new line characters - but I always end up with just  one line in my e-log. I would really like a multi-line form.

Soren

 

 Dear Soren,

 

Just use HTML (and call the file network.html to remember).

 

  66343   Mon May 4 11:50:30 2009 Reply Stefan Rittstefan.ritt@psi.chQuestionLinux2.7.5-2172Re: Using preset text files

 

soren poulsen wrote:

Hi,

I am trying the Preset text option from the documentation: like:

Attributes = Author, Type
Options Type = Network check{1}, System check{2}

{1} Preset text = network.txt
{2} Preset text = system.txt

I have two questions:

1. Where are the preset text files searched from ? I guess I could put them in the logbook (and specify a relative path like in this example) but it appeared only to work when I specifiy an abcolute path. That is even better in my case.

2. How do I specify line feeds in the file ? I tried Linux and Windows new line characters - but I always end up with just  one line in my e-log. I would really like a multi-line form.

Soren

 

Without path, the file must reside in the "scripts" subdirectory.

For the multi-line form, it depends how you want to format your elog entry. If you format in "plain", the simple line breaks are sufficient. If you format in HTML, your preset file must be in HTML as well, so a line break has to be a <br> tag. If you format in ELCode, a simple line break again would be ok. 

  66344   Mon May 4 18:06:01 2009 Reply soren poulsensoren.poulsen@cern.chQuestionLinux2.7.5-2172Re: Using preset text files

Stefan Ritt wrote:

 

soren poulsen wrote:

Hi,

I am trying the Preset text option from the documentation: like:

Attributes = Author, Type
Options Type = Network check{1}, System check{2}

{1} Preset text = network.txt
{2} Preset text = system.txt

I have two questions:

1. Where are the preset text files searched from ? I guess I could put them in the logbook (and specify a relative path like in this example) but it appeared only to work when I specifiy an abcolute path. That is even better in my case.

2. How do I specify line feeds in the file ? I tried Linux and Windows new line characters - but I always end up with just  one line in my e-log. I would really like a multi-line form.

Soren

 

Without path, the file must reside in the "scripts" subdirectory.

For the multi-line form, it depends how you want to format your elog entry. If you format in "plain", the simple line breaks are sufficient. If you format in HTML, your preset file must be in HTML as well, so a line break has to be a <br> tag. If you format in ELCode, a simple line break again would be ok. 

 Thanks for the hints on the "scripts" dir.  For the formatting, that's clear. I started with the sample "network.txt" file from the doc and the default encoding (HTML), so that did (of course) not render correctly (before inserting a few tags).

Soren

 

  545   Fri May 21 15:03:48 2004 Reply Stefan Rittstefan.ritt@psi.chQuestionLinux2.5.2Re: Using date and subst date
> I'm trying capture any edit/modified entry with the following, Using the
> real date format instead of text string so that I could do a quick filter on it.
> 
> Type modified = date
> Subst on Edit modified = $date
> 
> Problem: It seem that the Subst on Edit always default to 1 Jan 1970 instead
> of current date on edit screen. 

I fixed that problem, new version under
http://midas.psi.ch/cgi-bin/cvsweb/elog/src/elogd.c?rev=1.328
ELOG V3.1.5-3fb85fa6