NSX REST API - Python
NSX REST API - Python
Hej, ostatnio spedzam troche czasu nad REST API i postanowilem skrobnac
przyklad w pythonie. Co ciekawe NSX pozwala na deployment logical switchy
z ta sama nazwa (odroznia je tylko VNI). Postanowilem zmierzyc sie z tym problemem
i za pomoca REST API uniemozliwic tworzenie logical switchy z ta sama nazwa
https://www.linkedin.com/pulse/why-you- ... =prof-post
Oczywiscie przedstawiam core funkcjonalnosc, natomiast w jaki frontend sie to ubierze to juz bez znaczenia czy to bedzie
web app, czy konsola czy jakies gui
P.S Kodze bloga, niedlugo skoncze to bede wiecej wrzucal na niego kolejne kody, zamiast na linkedin
przyklad w pythonie. Co ciekawe NSX pozwala na deployment logical switchy
z ta sama nazwa (odroznia je tylko VNI). Postanowilem zmierzyc sie z tym problemem
i za pomoca REST API uniemozliwic tworzenie logical switchy z ta sama nazwa
https://www.linkedin.com/pulse/why-you- ... =prof-post
Oczywiscie przedstawiam core funkcjonalnosc, natomiast w jaki frontend sie to ubierze to juz bez znaczenia czy to bedzie
web app, czy konsola czy jakies gui
P.S Kodze bloga, niedlugo skoncze to bede wiecej wrzucal na niego kolejne kody, zamiast na linkedin
-
- wannabe
- Posty: 581
- Rejestracja: 27 wrz 2007, 01:13
Re: NSX REST API - Python
powinienes uzywac try except by lapac problemy z request a nie if
do tego warto by bylo sie trzymac substytucji wszedzie w kodzie niz na przemiennie z konkatynacja
Docstringi pisze sie w funkcji / klasie do ktorej naleza nie nad nia
Radze stosowac sie do pep8 tu masz output z linta na twoim kodzie (zwlaszcza gdy publikujesz cos na linkedin)
do tego warto by bylo sie trzymac substytucji wszedzie w kodzie niz na przemiennie z konkatynacja
Docstringi pisze sie w funkcji / klasie do ktorej naleza nie nad nia
Radze stosowac sie do pep8 tu masz output z linta na twoim kodzie (zwlaszcza gdy publikujesz cos na linkedin)
Kod: Zaznacz cały
Check results
=============
E302:8:1:expected 2 blank lines, found 1
E231:8:24:missing whitespace after ':'
E501:8:80:line too long (81 > 79 characters)
E113:9:5:unexpected indentation
E251:11:68:unexpected spaces around keyword / parameter equals
E251:11:70:unexpected spaces around keyword / parameter equals
E501:11:80:line too long (93 > 79 characters)
E711:17:19:comparison to None should be 'if cond is not None:'
E265:19:17:block comment should start with '# '
E231:22:20:missing whitespace after ','
E302:28:1:expected 2 blank lines, found 1
E501:30:80:line too long (80 > 79 characters)
E501:32:80:line too long (92 > 79 characters)
E711:38:27:comparison to None should be 'if cond is not None:'
E302:47:1:expected 2 blank lines, found 1
E231:63:21:missing whitespace after ','
E112:67:13:expected an indented block
E501:68:80:line too long (117 > 79 characters)
E231:68:97:missing whitespace after ','
E225:70:33:missing whitespace around operator
E501:71:80:line too long (111 > 79 characters)
E501:72:80:line too long (125 > 79 characters)
E501:76:80:line too long (116 > 79 characters)
E231:76:95:missing whitespace after ','
E501:78:80:line too long (91 > 79 characters)
E501:82:80:line too long (86 > 79 characters)
E231:83:31:missing whitespace after ':'
E711:91:15:comparison to None should be 'if cond is not None:'
E501:92:80:line too long (82 > 79 characters)
E711:97:14:comparison to None should be 'if cond is not None:'
E501:101:80:line too long (97 > 79 characters)
E231:101:88:missing whitespace after ','
E231:102:32:missing whitespace after ','
E231:102:40:missing whitespace after ','
E231:102:47:missing whitespace after ','
W292:102:56:no newline at end of file
Ostatnio zmieniony 25 paź 2016, 23:14 przez freel4ncer, łącznie zmieniany 4 razy.
- peper
- CCIE / Site Admin
- Posty: 5005
- Rejestracja: 13 sie 2004, 12:19
- Lokalizacja: Warsaw, PL
- Kontakt:
Re: NSX REST API - Python
To ja się boje swoje perlowe rzeczy publikować
Szkoła DevNet: https://szkoladevnet.pl
Facebook: https://www.facebook.com/Piotr.Wojciechowski.CCIE
LinkedIn: https://www.linkedin.com/in/peper
Twitter: https://www.twitter.com/PiotrW_CCIE
"Zapomniałem że od kilku lat wszyscy giną jakby nigdy ich nie miało być
w stu tysiącach jednakowych miast giną jak psy"
Facebook: https://www.facebook.com/Piotr.Wojciechowski.CCIE
LinkedIn: https://www.linkedin.com/in/peper
Twitter: https://www.twitter.com/PiotrW_CCIE
"Zapomniałem że od kilku lat wszyscy giną jakby nigdy ich nie miało być
w stu tysiącach jednakowych miast giną jak psy"
-
- wannabe
- Posty: 581
- Rejestracja: 27 wrz 2007, 01:13
Re: NSX REST API - Python
Ja sie boje czytac i modyfikowac swoje perlowe wypociny Tzn nie przypominam sobie bym cos napisal w Perlu od 3-4 lat ale napewno niechcialbym byc zmuszony zagladac do tego kodupeper pisze:To ja się boje swoje perlowe rzeczy publikować
Re: NSX REST API - Python
To objectId jest unikalnym identyfikatorem obiektu virtualwire, czyli logicznego switcha (LS). Ani nazwa, ani VNI takimi identyfikatorami nie są. Zatem logiczne switche nie odróżniają się tylko poprzez VNI w Twoim przypadku. Posiadanie możliwości nadawania tych samych nazw logicznym przełącznikom jest przydatne zwłaszcza w środowiskach multitenant z vCloud Director. Klienci mogą wówczas tworzyć swoje nazwy i nie ma problemu, by się powtarzały z nazwami obiektów u innych klientów. Jeżeli zarządzacie tworzeniem LS dla klientów, to wystarczy dodawać identyfikator lub nazwę klienta do nazw obiektów.horac pisze:Co ciekawe NSX pozwala na deployment logical switchy
z ta sama nazwa (odroznia je tylko VNI).
- peper
- CCIE / Site Admin
- Posty: 5005
- Rejestracja: 13 sie 2004, 12:19
- Lokalizacja: Warsaw, PL
- Kontakt:
Re: NSX REST API - Python
Ja generalnie programowania się nie dotykałem od prawie 10 lat bawiąc się Java, C i C++ wcześniej przez około 10 lat. Perla mało dotykałem ale dotykałem więc do REST API wydal mi się najbardziej naturalnym rozwiązaniem szczególnie na to co testuję i opisuję. Podejścia do programowania się nie zapomina, co najwyżej składni języków i best practicefreel4ncer pisze:Ja sie boje czytac i modyfikowac swoje perlowe wypociny Tzn nie przypominam sobie bym cos napisal w Perlu od 3-4 lat ale napewno niechcialbym byc zmuszony zagladac do tego kodupeper pisze:To ja się boje swoje perlowe rzeczy publikować
Szkoła DevNet: https://szkoladevnet.pl
Facebook: https://www.facebook.com/Piotr.Wojciechowski.CCIE
LinkedIn: https://www.linkedin.com/in/peper
Twitter: https://www.twitter.com/PiotrW_CCIE
"Zapomniałem że od kilku lat wszyscy giną jakby nigdy ich nie miało być
w stu tysiącach jednakowych miast giną jak psy"
Facebook: https://www.facebook.com/Piotr.Wojciechowski.CCIE
LinkedIn: https://www.linkedin.com/in/peper
Twitter: https://www.twitter.com/PiotrW_CCIE
"Zapomniałem że od kilku lat wszyscy giną jakby nigdy ich nie miało być
w stu tysiącach jednakowych miast giną jak psy"
Re: NSX REST API - Python
Wiem, tylko zeby robic try except trzeba wiedziec co sie lapie bo robienie Except exception as error moze czasemfreel4ncer pisze:powinienes uzywac try except by lapac problemy z request a nie if
do tego warto by bylo sie trzymac substytucji wszedzie w kodzie niz na przemiennie z konkatynacja
Docstringi pisze sie w funkcji / klasie do ktorej naleza nie nad nia
Radze stosowac sie do pep8 tu masz output z linta na twoim kodzie (zwlaszcza gdy publikujesz cos na linkedin)
przyniesc wiecej problemow. To nie kod produkcyjny ;] brakuje unit testow itp.
W kazdym badz razie GET jak nie zwroci 200 to jest problem, a w przypadku POST 201.
Pisane na kolanie to w godzine, chodzi o koncepcje - zeby nasze srodowisko nie balo sie programowac
bo nie jestesmy gorsi.
Nie ma czego sie bac, konstruktywna krytyka zawsze ci pomoze a nie zaszkodzi w razie czego. Dla przykladu Gynvael Coldwindpeper pisze:To ja się boje swoje perlowe rzeczy publikować
wydal ksiazke, i juz klika errat robil, ludzie mu krytyczne bledy w kodzie zglaszali w przykladach ktore opublikowal ( w tym ja mu dzial sieciowy pomagalem poprawiac)
a ma ponad 2x lat doswiadczenia z kodem. Nawet w produkcji kod nie jest wolny od bledow, dlatego wychodza patche/latki i kolejne edycje. Takze publikuj
Staram sie przeciwstawic powszechnej opinni, ze Sieciowcy to zajeli sie sieciami bo nie potrafili/nie chcieli/nie umieli programowac.
Masz racje, ale zauwaz ze jak dodajesz nazwe klienta pod obiekt LSa to juz on staje sie unikalny, nie widze sensu np dla jednego klienta posiadania zduplikowanych nazw LSow. Dlatego napisalem maly skrypt ktory nie zezwala na stworzenie wiecej niz jednego switcha o takiej samej nazwie. Klient zazwyczaj jak ma srodowisko dev/test/prod to sobie nazwie www-tier-klient-test, www-tier-klient-dev, www-tier-klient-prod. Raczej by nie chcial dwoch www-tier-klient-prod i omylkowo pomylil gdzie podlacza workloady.gangrena pisze:To objectId jest unikalnym identyfikatorem obiektu virtualwire, czyli logicznego switcha (LS). Ani nazwa, ani VNI takimi identyfikatorami nie są. Zatem logiczne switche nie odróżniają się tylko poprzez VNI w Twoim przypadku. Posiadanie możliwości nadawania tych samych nazw logicznym przełącznikom jest przydatne zwłaszcza w środowiskach multitenant z vCloud Director. Klienci mogą wówczas tworzyć swoje nazwy i nie ma problemu, by się powtarzały z nazwami obiektów u innych klientów. Jeżeli zarządzacie tworzeniem LS dla klientów, to wystarczy dodawać identyfikator lub nazwę klienta do nazw obiektów.horac pisze:Co ciekawe NSX pozwala na deployment logical switchy
z ta sama nazwa (odroznia je tylko VNI).
Ostatnio zmieniony 26 paź 2016, 11:17 przez horac, łącznie zmieniany 2 razy.
-
- wannabe
- Posty: 581
- Rejestracja: 27 wrz 2007, 01:13
Re: NSX REST API - Python
Kod: Zaznacz cały
except requests.exceptions.RequestException
Kod: Zaznacz cały
except requests.exceptions.HTTPError
Generalnie +1 za propagowanie automatyzacji
Ostatnio zmieniony 26 paź 2016, 14:45 przez freel4ncer, łącznie zmieniany 1 raz.
Re: NSX REST API - Python
No i dzieki, o to chodzi. Co do automatyzacji, dokladnie to jest wlasciwy kierunek ktory obralem juz jakis czas temu.freel4ncer pisze: Zeby byla jasnosc ja nie hejtuje tylko staram sie radzic wedlog mojej skromnej wiedzy
Generalnie +1 za propagowanie automatyzacji
p.s popraw na "wedlug"
- peper
- CCIE / Site Admin
- Posty: 5005
- Rejestracja: 13 sie 2004, 12:19
- Lokalizacja: Warsaw, PL
- Kontakt:
Re: NSX REST API - Python
@horac - to był sarkazm z mojej strony.
Szkoła DevNet: https://szkoladevnet.pl
Facebook: https://www.facebook.com/Piotr.Wojciechowski.CCIE
LinkedIn: https://www.linkedin.com/in/peper
Twitter: https://www.twitter.com/PiotrW_CCIE
"Zapomniałem że od kilku lat wszyscy giną jakby nigdy ich nie miało być
w stu tysiącach jednakowych miast giną jak psy"
Facebook: https://www.facebook.com/Piotr.Wojciechowski.CCIE
LinkedIn: https://www.linkedin.com/in/peper
Twitter: https://www.twitter.com/PiotrW_CCIE
"Zapomniałem że od kilku lat wszyscy giną jakby nigdy ich nie miało być
w stu tysiącach jednakowych miast giną jak psy"
-
- wannabe
- Posty: 581
- Rejestracja: 27 wrz 2007, 01:13
Re: NSX REST API - Python
Poprawione bardzo malo pisze/czytam po Polsku od przeszlo 10 lat i juz nie ogarniam ortorgrafiihorac pisze:No i dzieki, o to chodzi. Co do automatyzacji, dokladnie to jest wlasciwy kierunek ktory obralem juz jakis czas temu.freel4ncer pisze: Zeby byla jasnosc ja nie hejtuje tylko staram sie radzic wedlog mojej skromnej wiedzy
Generalnie +1 za propagowanie automatyzacji
p.s popraw na "wedlug"
Re: NSX REST API - Python
Nakładka vCloud Director umożliwia wygodniejszy podział jednego DC na kilka wirtualnych. Pod spodem działa sobie jeden NSX. Wówczas klienci nie widzą swoich obiektów. Nazwy mogą się powtarzać i nikt nie musi uzgadniać nazwy z kimś innym. W Waszym przypadku nie jest to potrzebne, gdyż jeden NSX to jeden klient.horac pisze:Masz racje, ale zauwaz ze jak dodajesz nazwe klienta pod obiekt LSa to juz on staje sie unikalny, nie widze sensu np dla jednego klienta posiadania zduplikowanych nazw LSow. Dlatego napisalem maly skrypt ktory nie zezwala na stworzenie wiecej niz jednego switcha o takiej samej nazwie. Klient zazwyczaj jak ma srodowisko dev/test/prod to sobie nazwie www-tier-klient-test, www-tier-klient-dev, www-tier-klient-prod. Raczej by nie chcial dwoch www-tier-klient-prod i omylkowo pomylil gdzie podlacza workloady.