W zasadzie koniec

DSP2017 kończy się w najbliższą środę. W moim projekcie zastój i marazm – trochę bardziej zmęczony z pracy przychodzę w tygodniu, trochę za dobra pogoda w pozostałym czasie, trochę co innego zaprząta głowę, kupiłem też trochę książek…

Ostatnio został dorobiony licznik postów i… pojawił się mały motywator, bo okazało się, że na liczniku jest 19 postów. Znaczy być powinno, bo okazało się, że są problemy ze zliczaniem. Pojawiła się prośba o zwiększenie ilości postów w feedzie ale oczywiście Blox na takie fanaberie nie pozwala. Z kolei mój skrypt do tworzenia feeda dla pojedynczej kategorii[1] nie został niestety wyposażony w logowanie wyjścia. Co po namyśle uznałem za średnio roztropne, ale trudno, mleko się rozlało. Gdybym miał teraz koniecznie wygenerować pełny feed to albo muszę napisać generator, albo tymczasowo wyeksportować bloga z Blox na WordPressa (ma się sposoby ;-)). No ale wygląda, że nie jest to konieczne – wystarczyło zgłosić.

Tak czy inaczej, zakładając, że pozostałe posty spełniają wymogi konkursu (a powinny, bo tylko takie powinny być w kategorii), to ten wpis zamyka wymagane minimalne dwadzieścia wpisów.

Co się zmieniło? Skrypt nadal nie jest skończony, nawet w wariancie minimalnym, ale dowiedziałem się, że nieprawidłowo korzystałem z logowania. Pozbyłem się też tymczasowych printów na rzecz logowania, dodałem krótkie opcje, wygodniejsze w użyciu.

Co dalej? Na pewno chciałbym w ten weekend osiągnąć wersję minimalną, używalną z crona i aktualizacja opisu i dokumentacji. Kolejnym planowanym krokiem jest doczytanie o docstringach, dokonfigurowanie domowego Atoma i systemu tak, żeby działało sprawdzanie składni (włączyłem to w pracy – kosmos) i poprawki pod tym kątem. Raczej nie planuję skończyć przed wakacjami projektu w pierwotnie zakładanej formie – zwykle na urlopie mam dużo wolnego czasu wieczorami, więc może wtedy…

[1] Swoją drogą już niepotrzebny, bo opcja feeda dla pojedynczej kategorii wróciła na Blox.

Porównywanie tras

Dodałem porównywanie tras i poprawiłem logowanie, by było bardziej zgodne z założeniami. Nie jest to fragment kodu, który mi się szczególnie podoba i nawet nie testowałem go w praktyce (ech, przydałaby się stacja testowa…), ale oznacza to, że w zasadzie całość jest gotowa – zostało przełączenie routingu dla danej trasy, jeśli jest taka potrzeba i zrobienie demona. W zasadzie przełączenie może być analogiczne jak przy tymczasowej zmianie routingu dla pojedynczego IP – jeszcze przemyślę, czy na pewno tak jest.

Skrypty pomocnicze

Wspominałem, że pewna część działania skryptu odbędzie się w zewnętrznych skryptach. Powiedzmy, że pluginach, choć to myląca nazwa. I że będą w Bashu.

Zrobiłem listę skryptów pomocniczych, których planuję używać:

  • ustawianie routingu do danego IP przez dany interfejs (bardziej gateway)
  • usunięcie routingu do danego IP przez dany interfejs (gateway)
  • ustawienie (domyślnego) routingu przez dany interfejs i gateway
  • zdjęcie (domyślnego) routingu przez dany interfejs i gateway

Jeśli chodzi o postępy, to pojawiło się wsparcie dla interfejsów, zarówno po stronie skryptu, jak i konfiguracji. Tak naprawdę pojawiła się cała sekcja interfaces, dla każdego interfejsu są określone nazwy tras, których parametry są zdefiniowane w sekcji routes. Taka konstrukcja, bo przecież nie każdy interfejs musi umożliwiać routing do każdej sieci, a nie chcę wymuszać cokolwiek długiej definicji trasy dla każdego interfejsu. Poza tym, łatwo byłoby w takim przypadku o błąd typu inne wagi czy IP.

Żeby można było mierzyć jakoś łącza do danej sieci (route) przez dany interfejs brakuje tak naprawdę pierwszych dwóch skryptów i ich wywołania – stosowne funkcje istnieją, ale są puste. Pewnie jutro/pojutrze. Mam nadzieję, że od razu pokażę pierwsze realne efekty działania, czyli wyniki pierwszych pomiarów. Stay tuned!