Closed ghost closed 8 years ago
Hoi,
Hoe probeer je de script te runnen? In Linux / Mac moet je de inhoud van github-payload.json eerst naar stdin
sturen met bijv.
cat github-payload.json | python build.py
Dit is nodig om script op server te laten werken: Apache voert de inhoud van POST requests via stdin.
Re vraag 1: er hoeft als het goed is niets in de source
dir te staan, deze wordt automatisch gevuld met de repo's in repos.json
door de fetch_repos
functie in backend.py
. Kun je de traceback sturen?
Kun je de aangepaste repos.json sturen (via bijv. https://jsfiddle.net/ oid)? Handmatig editen moet geen problemen opleveren. Het vergt wel enige oefening om typos te spotten. :)
Re vraag 2: cleanup
ruimt inderdaad destination_temp
en de source
op. Als de script voor regel 19 in build.py crasht wordt het niet aangeroepen en blijven de mappen staan.
Succes!
Hallo,
Bedankt voor je antwoord. Ik run het script nu door het voorbeeld payload bestand 'github-payload.json' te openen met het volgende commando: with open ('github-payload.json') as q: payload = load(q)
Maar ik zal proberen de andere manier ook werkend te krijgen.
Het probleem met repos.json is inmiddels opgelost, dankzij gebruik van notepad++ ipv notepad.
Ik heb het nogmaals geprobeerd. De code runt nu t/m de functie 'put_in_production' in de backend. Zonder tracebacks : ) Volgens mij heb ik de code daarmee nu in ieder geval lokaal werkend.
Een goed weekend alvast!
Top!
Hoor graag of je andere vragen en/of verbeteringen aan code hebt. :)
Hallo,
Ik loop toch nog tegen wat issues aan bij het lokaal runnen. Het werkt nog niet zoals zou moeten.
Allereerst lijkt de cleanup toch niet te werken bij mij. Eerder aangemaakte 'source' en 'destination_temp' maps worden bij mij niet zichtbaar verwijdert. Wel runt cleanup gewoon zonder foutmelding. Ik heb gecheckt of de working directory misschien verkeerd stond maar dit is niet het geval. Enig idee waar het misschien aan zou kunnen liggen dat het bij mij niet werkt?
Hetzelfde geld iets verderop bij het runnen van backend.fetch_repos(....). Ook hier lijkt alles normaal te gaan. Maar uiteindelijk blijkt er niets naar mijn source folder te zijn gecloned.
Even verderop bij backend.build_folder gaat het echt mis. Er verschijnt dan een traceback wanneer hij in de source directory gaat zoeken naar de standards. Logisch want de source directory is leeg (zie mijn vorige punt). De vraag is nu waarom mijn source directory leeg blijft.
Iemand een idee wat hier aan de hand kan zijn?
Vreemde vraag misschien, maar heb je git
geinstalleerd?
Zo ja, kun je via command line een van de repo's proberen te clonen? Het klinkt alsof het clonen niet goed gaat.
Ja deze heb ik geinstalleerd. Wat betreft libraries/modules heb ik git geimporteerd in python. Daarnaast heb ik voor de zekerheid de gitpython module geinstalleerd. clonen via de git command line 'Git Bash' werkt gewoon. In python zelf werkt het alleen niet. Ook niet via de commandline. Lijkt erop dat het probleem zit in het aanroepen van git vanuit python. Zijn er nog specifieke modules/libraries die ik hiervoor moet installeren en importeren?
Op 5 november 2015 16:30 schreef Simeon Nedkov notifications@github.com:
Vreemde vraag misschien, maar heb je git geinstalleerd?
Zo ja, kun je via command line een van de repo's proberen te clonen? Het klinkt alsof het clonen niet goed gaat.
— Reply to this email directly or view it on GitHub https://github.com/Geonovum/technisch-register/issues/22#issuecomment-154094036 .
Gebruik je Windows?
Ja windows
2015-11-05 17:57 GMT+01:00 Simeon Nedkov notifications@github.com:
Gebruik je Windows?
— Reply to this email directly or view it on GitHub https://github.com/Geonovum/technisch-register/issues/22#issuecomment-154121841 .
Ok, dat werkt inderdaad niet out-of-the-box. Script gebruikt Linux / Mac commando's om dirs te maken, te verplaatsen, etc.
Hoe run je de script nu? Je zei dat je cat
gebruikt...?
Je kan de script in Windows runnen door het in Git Bash uit te voeren aangezien deze de Linux / Mac commando's kent. Wat gebeurt er als je in 'Git Bash' Python intoetst?
Na runnen in Git CMD krijg ik de volgende output --> Zie bijlage. Het lijkt erop dat het inderdaad een 'windows herkent linux commando's niet' probleem is.
Nu vroeg ik me af waar jij het script op draait. Windows, linux of iets anders? In het geval jij het script niet op windows draait is het waarschijnlijk weinig zinvol om het script geschikt te maken voor windows. In dat geval kan ik waarschijnlijk beter zelf in een linux omgeving gaan werken.
Op 5 november 2015 20:20 schreef Simeon Nedkov notifications@github.com:
Ok, dat werkt inderdaad niet out-of-the-box. Script gebruikt Linux / Mac commando's om dirs te maken, te verplaatsen, etc.
Hoe run je de script nu? Je zei dat je cat gebruikt...?
Je kan de script in Windows runnen door het in Git Bash uit te voeren aangezien deze de Linux / Mac commando's kent. Wat gebeurt er als je in 'Git Bash' Python intoetst?
— Reply to this email directly or view it on GitHub https://github.com/Geonovum/technisch-register/issues/22#issuecomment-154160872 .
Aha, precies!
Ik run(de)* de script in de Bash shell die je krijgt als je Git bijv. van https://git-scm.com/ downloadt en installeert.
Je kan het ook in http://babun.github.io/ runnen, werkt wel fijn op Windows.
Ik zal de README updaten.
Ik ben op zich wel voor om put_in_production
om te schrijven zodat het OSFS gebruikt (net zoals build_folders
). Dat is een veel nettere oplossing. Ik weet echter niet hoe je daarmee de rechten van een map kan aanpassen (zie https://github.com/Geonovum/technisch-register/blob/master/backend.py#L79). Heb jij ideeen?
Bedankt voor de informatie. Vandaag heb ik de code in de Bash shell gerunt, dit ging aardig goed maar een aantal zaken in met name put_in_production gingen nog niet helemaal zoals verwacht.
Bij deze een overzicht van zaken waar ik tegenaan liep: 1 -De 'backups' folder werd niet automatisch aangemaakt 2 -Sommige directories zoals: register/register-staging en register-old/register worden niet automatisch opgeruimd. Dit geeft vervolgens problemen wanneer python bestanden naar deze folders wil verplaatsen. Zie onder andere de volgende traceback mv: cannot move ‘register’ to ‘register-old/register’: Directory not empty _3 -_Sommige directory's werden niet herkent. Zie ook het volgende traceback: mv: cannot move ‘register2’ to ‘../register/staging’: No such file or directory
Om dit op te lossen heb ik wat aanpassingen gedaan: 1 -Functie toegevoegd voor aanmaken van een backup directory. Hiervoor ook meteen maar gebruik gemaakt van OSFS 2- Functies toegevoegd voor het automatisch opruimen van directories indien aanwezig. Ook hiervoor meteen maar gebruik gemaakt van OSFS. 3 -Alle verwijzingen naar directories in de vorm: '../directoryname' omgeschreven naar de vorm 'directoryname'. 4- Alvast geprobeerd wat overige code in put_in_production over te schrijven zodat dit ook OSFS gebruikt. Maar is nog niet overal gelukt, hier heb ik nog wat meer tijd voor nodig.
Het alternatief voor chmod is ICACLS. Hiermee moet het in principe ook mogelijk zijn om de rechten van een map aan te passen. Maar dit heb ik nog niet uitgeprobeerd.
Volgende week zit ik de hele week bij een andere klant. Maar daarna hoop ik weer verder te kunnen met de code.
Goed weekend alvast!
Op 7 november 2015 16:10 schreef Simeon Nedkov notifications@github.com:
Aha, precies!
Ik run(de)* de script in de Bash shell die je krijgt als je Git bijv. van https://git-scm.com/ download en installeert.
Je kan het ook in http://babun.github.io/ runnen, werkt wel fijn op Windows.
Ik zal de README updaten.
Ik ben op zich wel voor om put_in_production om te schrijven zodat het OSFS gebruikt (net zoals build_folders). Dat is een veel nettere oplossing. Ik weet echter niet hoe je daarmee de rechten van een map kan aanpassen (zie https://github.com/Geonovum/technisch-register/blob/master/backend.py#L79). Heb jij ideeen?
— Reply to this email directly or view it on GitHub https://github.com/Geonovum/technisch-register/issues/22#issuecomment-154713148 .
Tof! Kun je een pull (liever een aantal kleinere) doen van je aanpassingen? Ik zal ze volgende week opnemen.
On 13 November 2015 17:47:15 CET, notifications@github.com wrote:
Bedankt voor de informatie. Vandaag heb ik de code in de Bash shell gerunt, dit ging aardig goed maar een aantal zaken in met name put_in_production gingen nog niet helemaal zoals verwacht.
Bij deze een overzicht van zaken waar ik tegenaan liep: 1 -De 'backups' folder werd niet automatisch aangemaakt 2 -Sommige directories zoals: register/register-staging en register-old/register worden niet automatisch opgeruimd. Dit geeft vervolgens problemen wanneer python bestanden naar deze folders wil verplaatsen. Zie onder andere de volgende traceback mv: cannot move ‘register’ to ‘register-old/register’: Directory not empty _3 -_Sommige directory's werden niet herkent. Zie ook het volgende traceback: mv: cannot move ‘register2’ to ‘../register/staging’: No such file or directory
Om dit op te lossen heb ik wat aanpassingen gedaan: 1 -Functie toegevoegd voor aanmaken van een backup directory. Hiervoor ook meteen maar gebruik gemaakt van OSFS 2- Functies toegevoegd voor het automatisch opruimen van directories indien aanwezig. Ook hiervoor meteen maar gebruik gemaakt van OSFS. 3 -Alle verwijzingen naar directories in de vorm: '../directoryname' omgeschreven naar de vorm 'directoryname'. 4- Alvast geprobeerd wat overige code in put_in_production over te schrijven zodat dit ook OSFS gebruikt. Maar is nog niet overal gelukt, hier heb ik nog wat meer tijd voor nodig.
Het alternatief voor chmod is ICACLS. Hiermee moet het in principe ook mogelijk zijn om de rechten van een map aan te passen. Maar dit heb ik nog niet uitgeprobeerd.
Volgende week zit ik de hele week bij een andere klant. Maar daarna hoop ik weer verder te kunnen met de code.
Goed weekend alvast!
Op 7 november 2015 16:10 schreef Simeon Nedkov notifications@github.com:
Aha, precies!
Ik run(de)* de script in de Bash shell die je krijgt als je Git bijv. van https://git-scm.com/ download en installeert.
Je kan het ook in http://babun.github.io/ runnen, werkt wel fijn op Windows.
Ik zal de README updaten.
Ik ben op zich wel voor om put_in_production om te schrijven zodat het OSFS gebruikt (net zoals build_folders). Dat is een veel nettere oplossing. Ik weet echter niet hoe je daarmee de rechten van een map kan aanpassen (zie
https://github.com/Geonovum/technisch-register/blob/master/backend.py#L79). Heb jij ideeen?
— Reply to this email directly or view it on GitHub
https://github.com/Geonovum/technisch-register/issues/22#issuecomment-154713148 .
Reply to this email directly or view it on GitHub: https://github.com/Geonovum/technisch-register/issues/22#issuecomment-156484414
Sent from my Android device with K-9 Mail. Please excuse my brevity.
Gemerged en mee verder gewerkt. Dank!
Hallo Simeon,
Frank heeft me met jou in contract gebracht voor vragen in verband met de python code achter technisch-register. Op dit moment probeer ik het technisch register lokaal aan de praat te krijgen. Als payload gebruik ik github-payload.json. Als 'source' voor de functie 'build folders' gebruik ik een zelf gemaakt repos directory waarin ik verschillende bestaande repositories (NEN3610 etc) heb staan. Dit gaat in beginsel goed alleen heb ik niet elk repository uit repos.json hierin staan waardoor ik een traceback krijg.
Mijn eerste vraag is of de manier waarop ik het technisch register nu lokaal aan de praat probeer te krijgen uberhaupt een slimme manier is. Wat is volgens jou de beste manier om dit te doen? En pas je dan het repos.json file aan? Of is er een andere manier waarmee ik mijn lokale repos directory en de repos.json file matchend kan krijgen? Wanneer ik in kladblok items uit mijn lokale repos.json verwijder pakt python hem trouwens sowieso niet meer. Is dit normaal? Ik dacht dat dit normaal gesproken wel zou moeten kunnen zolang de opmaak van bestaande elementen gewoon in json format blijven?
Mijn tweede vraag betreft de 'cleanup' functie. Begrijp ik het goed dat wanneer ik de code lokaal test er een folder 'register2' gecreeerd en gebouwd wordt. En dat 'cleanup' er bij een tweede keer runnen voor zorgt dat 'register2' weer wordt weggehaald om conflict met nieuw te bouwen 'register2' te voorkomen ? Wanneer ik het lokaal probeer zie ik helaas geen effect van de cleanup functie, waardoor ik de folder steeds handmatig moet verwijderen.
Alvast bedankt voor je reactie,
Met vriendelijke groet,