modules{Global}{AttrList}

53 views
Skip to first unread message

Martin Fischer

unread,
May 25, 2012, 6:35:08 PM5/25/12
to fhem-de...@googlegroups.com
aktuell werden in fhem.pl die erlaubten globalen attribute gesetzt (wobei bei
backupdir übrigens ein space zuviel ist ;-) ):

$modules{Global}{AttrList} =
"archivecmd allowfrom apiversion archivedir configfile lastinclude logfile " .
"modpath nrarchive pidfilename port statefile title userattr " .
"verbose:1,2,3,4,5 mseclog version nofork logdir holiday2we " .
"autoload_undefined_devices dupTimeout latitude longitude backupdir";

ich brauche jetzt ein neues globales attribut <backupsymlink>. jetzt kann ich
zwar fhem.pl anpassen, will ich aber _nicht_

denn mir ist gerade die idee gekommen, das soll mal schön das modul selber
erledigen. also habe ich im sub backup_Initialize folgendes gesetzt:

$modules{Global}{AttrList} .= " backupsymlink";

welches auch tadellos funktioniert. nach einem <save> wird das in die config
geschrieben.. auch noch ok..

ABER:

wenn ich fhem nun beende und neu starte, dann bricht es:
configfile: global: unknown attribute backupsymlink, choose one of ...

was ja auch eigentlich nachvollziehbar ist und ich gerade nicht bedacht hatte.
mir ist klar, das erst das configfile gelesen wird und dann in abhängigkeit
die module.

dennoch:
irgendwie finde ich die idee charmant, nicht extra fhem.pl anpassen zu müssen
und deshalb konkret die frage ob wir ( oder in diesem fall genauer, du rudi )
das hinbekommen, das es so wie oben gedacht funktioniert?

wenn nicht, auch nicht schlimm. dann muss ich eben fhem.pl erweitern.

dabei ist mir übrigens auch aufgefallen, das es generell verboten ist globale
attribute mit deleteattr zu löschen. hatte ich vorher nie bedarf, bin nur eben
drüber gestolpert. vielleicht könnte man das aber auch beschränken auf nur die
absolut wichtigen ohne die fhem nicht laufen würde.

ein beispiel:
wenn ich mit <attr global backupsymlink> spiele, kann ich das auf "no" oder
"yes" setzen. wenn aber "no" default ist, dann kann ich es auch weglassen.
habe ich jedoch schon einmal <attr global backupsymlink> gesetzt, dann muss
ich das manuell aus der config schmeissen oder auf lebzeiten mit "no" in der
config lassen. frei nach KISS: keep it small and simple... ;-)

Rudolf Koenig

unread,
May 26, 2012, 4:30:05 AM5/26/12
to fhem-de...@googlegroups.com
> $modules{Global}{AttrList} .= " backupsymlink";

Ich dachte da eher an tar Parameter bzw. backup Kommando, das finde ich
flexibler. Das ist aber weder als Veto, noch als Wunsch zu verstehen.

Sehe ich das richtig, wir haetten jetzt 2 backup Loesungen in fhem, eins mit
updatefhem, und eins direkt? Ich haette gerne eins der beiden mittelfristig
(== 1 bis 2 Monaten, vor 5.3) geloescht

Module koennen Attribute zu userattr mit addToAttrList() hinzufuegen, das ist
aber nicht das was man hier braucht, weil dann man bei jedem Objekt dieses
Attribut setzen koennte. Es faellt mir im Moment nichts besseres ein als die
Liste in fhem.pl zu erweitern.


> dabei ist mir �brigens auch aufgefallen, das es generell verboten ist globale
> attribute mit deleteattr zu l�schen.

Das habe ich hiermit entfernt. Bin auf die Nebenwirkungen gespannt, aber Unix
verbietet ja auch kein "rm -rf /etc" :)

Martin Fischer

unread,
May 26, 2012, 6:53:08 AM5/26/12
to fhem-de...@googlegroups.com
Am Samstag, 26. Mai 2012, 10:30:05 schrieb Rudolf Koenig:
> > $modules{Global}{AttrList} .= " backupsymlink";
>
> Ich dachte da eher an tar Parameter bzw. backup Kommando, das finde ich
> flexibler. Das ist aber weder als Veto, noch als Wunsch zu verstehen.

hier kann ich dir nicht folgen. was ist flexibler als was?

> Sehe ich das richtig, wir haetten jetzt 2 backup Loesungen in fhem, eins mit
> updatefhem, und eins direkt? Ich haette gerne eins der beiden mittelfristig
> (== 1 bis 2 Monaten, vor 5.3) geloescht

ja, rudi! aber irgendwann musste ich heute morgen ach mal schlafen ;-) ist ja
wohl klar, das die aus updatefhem rausfliegt, bzw. updatefhem dann backup
aufruft.

deswegen: backup bitte auf allen OS testen. dann kann ich den rest schneller
umsetzen

> Module koennen Attribute zu userattr mit addToAttrList() hinzufuegen, das
> ist aber nicht das was man hier braucht, weil dann man bei jedem Objekt
> dieses Attribut setzen koennte. Es faellt mir im Moment nichts besseres ein
> als die Liste in fhem.pl zu erweitern.

ok. dann müssen wir das halt so machen.

> > dabei ist mir übrigens auch aufgefallen, das es generell verboten ist
> > globale attribute mit deleteattr zu löschen.
>
> Das habe ich hiermit entfernt. Bin auf die Nebenwirkungen gespannt, aber
> Unix verbietet ja auch kein "rm -rf /etc" :)

das war nur eine diskussion und keine aufforderung :-) nicht das du dann mir
die schuld bei dem "rm -rf /etc" in die schuhe schiebst ;-)

Rudolf Koenig

unread,
May 27, 2012, 3:37:26 AM5/27/12
to fhem-de...@googlegroups.com
> hier kann ich dir nicht folgen. was ist flexibler als was?

Ich habe an etwas analog zu archivecmd gedacht:
If the attribute archivecmd is specified, then it will be started as a shell
command (no enclosing " is needed), and each % in the command will be
replaced with the name of the old logfile.
Mit sowas kann man das backup direkt ins "cloud" laden, etc.

Martin Fischer

unread,
May 31, 2012, 1:41:44 PM5/31/12
to fhem-de...@googlegroups.com
ok, soweit verstanden. d.h. du meinst, das es dem user bei deinem beispiel
selber überlasen bleibt, wie das backup aufgerufen wird. also einer schreibt
da "tar -cjf" rein und ein anderer evtl. ein ganzes script oder einen anderen
befehl.

bliebe zu überlegen, wie dann übergeben werden soll:
a) wie das archiv heissen soll und
b) wie übergeben werden soll, welche dateien / verzeichnisse gesichert werden
sollen (welche mitunter eine längere liste werden kann).

allerdings habe ich da im moment noch meine bedenken ob da auch der "nicht so"
versierte anwender in der lage ist, diese angaben zu machen. bei aller in
deiner idee gegebenen flexibilität, erschwert es dann aber auch den support,
wenn dort jeder faktisch was anderes als backup-commando eintragen könnte.

ich würde erstmal den einfacheren weg gehen wollen und dann evtl. zu einem
späteren zeitpunkt backup so erweitern, das beide varianten möglich sind.
Reply all
Reply to author
Forward
0 new messages