Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 14:01

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Python] Brauche Rat bei Script

Discussion on [Python] Brauche Rat bei Script within the General Coding forum part of the Coders Den category.

Closed Thread
 
Old   #1


 
xinput.dll's Avatar
 
elite*gold: 133
Join Date: Jan 2011
Posts: 3,376
Received Thanks: 310
[Python] Brauche Rat bei Script

Guten Morgen zusammen,

ich stehe hier vor einer kleinen Herausforderung. Leider bin ich absoluter Neuling was Python angeht.
Ich habe hier ein Script welches in Python geschrieben ist. Ich habe es als Template von Github und dieses Template ist genau für dieses Szenario geschrieben (es ist ein Community Script für das Tool was ich nutze).


Folgende Situation:
Ich habe auf meinem Mac unter dem Pfad
Code:
 /Library/Preferences/
eine Datei mit dem Namen
Code:
ManagedInstalls.plist
Auf einem Server im Netzwerk liegt eine Datei mit dem Namen
Code:
ManagedMunkiServer.plist
.
Nun kommt das Script zum Einsatz: Dieses Script läuft als Preflight Script vor jeder Ausführung des Tools und sieht wie folgt aus:


Code:
#!/usr/bin/python

import sys
import os
sys.path.append('/usr/local/munki')
from munkilib import updatecheck
from munkilib import FoundationPlist
#Dynamic Config Munki Preflight Script by John Rozewicki
#2010-12-08
#
#Script merges config from Munki repo into local config if newer.

RepoURL = "http://myserver"
ConfigName = "ManagedInstalls.plist"
ServerConfigName = "ManagedMunkiServer.plist"
ConfigDir = "/Library/Preferences"
ConfigPath = os.path.join(ConfigDir, ConfigName)
ServerConfigURL = os.path.join(RepoURL, ServerConfigName)
ServerConfigPath = os.path.join(ConfigDir, ServerConfigName)

def MergePlists(FromPlist, ToPlist):
      FromPlistData = FoundationPlist.readPlist(FromPlist)
      ToPlistData = FoundationPlist.readPlist(ToPlist)
      for item in FromPlistData:
           ToPlistData[item] = FromPlistData[item]
      FoundationPlist.writePlist(ToPlistData, ToPlist)


if (sys.argv[1] != "logoutinstall") and (sys.argv[1] !="installwithnologout"):
      os.system("touch Users/Shared/.com.googlecode.munki.checkandinstallatstartup")
print "Checking for new %s" % (ServerConfigName)
if updatecheck.getResourceIfChangedAtomically(ServerConfigURL, ServerConfigPath):
Merging new server settings into configuration."
MergePlists(ServerConfigPath, ConfigPath)

erwartetes verhalten:
Das preflight Script checkt die SHA-checksum von
Code:
ManagedMunkiServer.plist
auf dem Server und schaut ob diese sich von der gleichnamigen Datei auf dem Lokalen Pfad unter
Code:
/Library/Preferences/
unterscheidet. Ist auf dem Lokalen Pfad eine solche Datei nicht vorhanden (was bei der ersten Ausführung der Fall wäre) wird diese Datei lokal angelegt. Im Nachgang werden diese beiden Dateien verglichen:
Code:
/Library/Preferences/ManagedInstalls.plist
Code:
/Library/Preferences/ManagedMunkiServer.plist
Sollte die Datei ManagedMunkiServer.plist andere Werte in den Keys erhalten, dann werden diese in der Datei ManagedInstalls überschrieben.
wird die Datei Auf dem Server geändert, so sollte das Script beim nächsten ausführen sehen dass sich die Checksum geändert hat und die Datei auf dem Lokalen Pfad /Library/Preferences/ManagedMunkiServer.plist anpassen. dann erneut beide Dateien  vergleichen und die Änderungen auf die Datei ManagedInstalls.plist überschreiben.


_______________________________


IST-Zustand:


Bei der ersten Ausführung funktioniert alles wie es soll. Ändere ich nun die Datei auf dem Server und das Script wird erneut ausgeführt, dann erkennt es, dass die Checksum der Datei auf dem Server sich geändert hat und aktualisiert die Datei
Code:
/Library/Preferences/ManagedMunkiServer.plist
Jedoch schreibt er die Änderungen nicht in die eigentliche Datei


Code:
/Library/Preferences/ManagedInstalls.plist

Ich hoffe ich habe das ausreichend Verständlich erklärt.


Falls nicht dürft ihr mich gerne drauf hinweisen, aber diejenigen die sich mit Python auskennen, sollten verstehen was die Aufgabe des Scriptes ist.


Hat jemand eine Idee warum die Änderungen im letzten Schritt nicht auf die Eigentliche Datei geschrieben werden, oder kann mir einen Hinweis geben wo ich suchen sollte?


VG
xinput.dll is offline  
Closed Thread


Similar Threads Similar Threads
[Frage][Python]Brauche hilfe im script
05/06/2012 - Metin2 Private Server - 0 Replies
Wie kann ich diesen script editieren so das er 200 tote zander verkauft Das id fuer toten zander ist 27833
[Frage][Python]Brauche hilfe im script
05/06/2012 - Metin2 - 0 Replies
Wie kann ich diesen script editieren so das er 200 tote zander verkauft Das id fuer toten zander ist 27833



All times are GMT +2. The time now is 14:01.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.