<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Python on Cisco Redes</title>
        <link>https://ciscoredes.com.br/tags/python/</link>
        <description>Recent content in Python on Cisco Redes</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>pt-br</language>
        <lastBuildDate>Tue, 23 Jun 2020 00:00:00 +0000</lastBuildDate><atom:link href="https://ciscoredes.com.br/tags/python/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>BLOG – Primeiro post sobre Python</title>
            <link>https://ciscoredes.com.br/2020/06/23/blog-primeiro-post-sobre-python/</link>
            <pubDate>Tue, 23 Jun 2020 00:00:00 +0000</pubDate>
            <guid>https://ciscoredes.com.br/2020/06/23/blog-primeiro-post-sobre-python/</guid>
            <description>&lt;img src=&#34;https://ciscoredes.com.br/wp-content/uploads/2020/06/Logo_Post_Python.jpeg&#34; alt=&#34;Featured image of post BLOG – Primeiro post sobre Python&#34; /&gt;&lt;p&gt;&lt;figure&gt;&#xA;    &lt;img src=&#34;https://ciscoredes.com.br/wp-content/uploads/2020/06/Logo_Post_Python.jpeg&#34; alt=&#34;&#34; loading=&#34;lazy&#34;&gt;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Olá Pessoal,&lt;/p&gt;&#xA;&lt;p&gt;Como podem observar pelo título, digo que hoje será nosso primeiro post efetivamente relacionado a &lt;strong&gt;Python&lt;/strong&gt;, e de fato tenho que mencionar que vocês também estão certo, pois podemos começar uma nova jornada aqui em nosso BLOG.&lt;/p&gt;&#xA;&lt;p&gt;Como vocês podem notar em nosso BLOG, eu sempre tento desenvolver algo que de fato é motivacional para mim buscar a informação, pesquisar, desenvolver, concluir, testar e depois tento compartilhar com vocês essa ideia, que por sua vez pode ajudar algum de vocês e também sempre aprendo algo à mais com vocês.&lt;/p&gt;&#xA;&lt;h1 id=&#34;projeto&#34;&gt;Projeto&#xA;&lt;/h1&gt;&lt;p&gt;Esse papo iniciou-se em um dos grupos e acabei me interessando na ideia, pois de momento pensei em 4 formas para poder utilizar essas facilidades:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Ambiente corporativo tanto a nível de TI Interno, como também para empresas de terceiros, que em muitos casos precisamos executar troubleshooting.&lt;/li&gt;&#xA;&lt;li&gt;Nível de usuario domestico, para ter algum historico e avaliar se esta de acordo com os planos contratados.&lt;/li&gt;&#xA;&lt;li&gt;Executar um teste em guest shell em roteadores Cisco rodando diretamente o script Python.&lt;/li&gt;&#xA;&lt;li&gt;Para aprendizagem sobre os conceitos de Python.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h1 id=&#34;speedtest&#34;&gt;SpeedTest&#xA;&lt;/h1&gt;&lt;p&gt;Acredito que a maioria de vocês em algum momento já utilizou o site do &lt;strong&gt;SpeedTest&lt;/strong&gt; ou qualquer outra variação nesse sentido ( &lt;em&gt;Fast – Netflix, Brasil Banda Larga, OKLA, Cloudflare, etc&lt;/em&gt; ).&lt;/p&gt;&#xA;&lt;p&gt;Talvez muitos de vocês vão achar que estou sendo maluco, pois esses testes muito das vezes não significam muito em troubleshooting, pois nem sempre os valores indicados são reais, já que sempre irá buscar o servidor mais proximo de seu ponto, depende também da disponibilidade desse provedor, não tem preferência esse tráfego, os servidores que estão medindo esse tráfego nem sempre estão disponivéis em estruturas dedicadas, etc.&lt;/p&gt;&#xA;&lt;p&gt;Também concordo nesses ítens, mas foi um aprendizado para eu aplicar algo em Python, então sempre olhe com outra perspectiva seu aprendizado. Pode ser, que para alguma situação de um leitor, isso possa ser útil, então por isso resolvi compartilhar e não guardar a informação comigo. 🙂&lt;/p&gt;&#xA;&lt;p&gt;Devemos lembrar que temos uma biblioteca Python definida como &lt;a class=&#34;link&#34; href=&#34;https://pypi.org/project/speedtest-cli/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;speedtest-cli&lt;/a&gt;, ou seja, não iremos precisar utilizar um navegador para obter os valores.&lt;/p&gt;&#xA;&lt;h1 id=&#34;lab&#34;&gt;Lab&#xA;&lt;/h1&gt;&lt;p&gt;Nesse laboratório utilizei alguns outros conceitos que depois posso detalhar em outros posts, pois a ideia é que esse teste fique em execução, assim pode-se fazer a validação conforme sua necessidade, ou seja, para nosso exemplo eu fiz com que meu script execute automaticamente a cada 30 minutos.&lt;/p&gt;&#xA;&lt;p&gt;Após esse período, ele irá passar as informações desejadas para um dashboard, onde iremos poder consultar essas informações através da Internet. Esse ambiente que temos é free, porém temos algumas ressalvas, pois a base de dados que fica guardada no dashboard é de 30 dias, podemos ter apenas 3 devices cadastrados e no máximo cada dashboard desses devices pode ter 10 gráficos. A ferramenta que utilizei foi da &lt;a class=&#34;link&#34; href=&#34;https://ubidots.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Ubidots&lt;/a&gt;, mas como informado o plano free atende muito bem para estruturar seus testes e &lt;em&gt;” brincadeiras…rs “.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Segue a estrutura:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Docker Ubuntu – &lt;a class=&#34;link&#34; href=&#34;https://hub.docker.com/_/ubuntu&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;image 18.04&lt;/a&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Python 2.7&lt;/li&gt;&#xA;&lt;li&gt;Crontab&lt;/li&gt;&#xA;&lt;li&gt;speedtest-cli&lt;/li&gt;&#xA;&lt;li&gt;Python Library &lt;a class=&#34;link&#34; href=&#34;https://pypi.org/project/requests/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;request&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Conta na Ubidots&lt;/li&gt;&#xA;&lt;li&gt;Link de Internet ( rsrs )&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h1 id=&#34;código&#34;&gt;Código&#xA;&lt;/h1&gt;&lt;p&gt;Conforme mencionando anteriormente iremos utilizar algumas bibliotecas do Python, e a partir dela iremos utilizar as variáveis para construir nosso código. Não tenho também a ideia de explicar toda a estrutura do Python neste momento, pois espero publicar mais &lt;em&gt;&lt;strong&gt;” 101 – Python “&lt;/strong&gt;&lt;/em&gt; para trazer testes mais lógico e simples.&lt;/p&gt;&#xA;&lt;p&gt;Com isso, segue o código definido para essa tarefa. Se observarem o código também já esta explicando cada funcionalidade.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;#!/usr/bin/python&#xA;import speedtest&#xA;import requests&#xA;&#xA;#Global variables&#xA;ENDPOINT = &amp;#34;things.ubidots.com&amp;#34; #URL related webpage to create dashboard&#xA;DEVICE_LABEL = &amp;#34;raspberry-pi&amp;#34; #Not necessary to be raspeberry and can use any linux inside container or run in your machine&#xA;VARIABLE_LABEL = &amp;#34;city&amp;#34; #Variable created inside Ubidots portal&#xA;TOKEN = &amp;#34;YOUR TOKEN&amp;#34;&#xA;&#xA;#Get value related your connection using library SpeedTest&#xA;st = speedtest.Speedtest()&#xA;&#xA;#Get values related class of server near of your provider&#xA;st.get_best_server()&#xA;&#xA;#Execute Post Related City and Provider of SpeedTest&#xA;def post_var(payload_ci_sp, url=ENDPOINT, device=DEVICE_LABEL, token=TOKEN):&#xA;    url = &amp;#34;http://{}/api/v1.6/devices/{}&amp;#34;.format(url, device)&#xA;    headers = {&amp;#34;X-Auth-Token&amp;#34;: TOKEN, &amp;#34;Content-Type&amp;#34;: &amp;#34;application/json&amp;#34;}&#xA;&#xA;    if VARIABLE_LABEL == &amp;#39;city&amp;#39;:&#xA;        req = requests.post(url=url, headers=headers, json=payload_ci_sp)&#xA;&#xA;    else:&#xA;        print(&amp;#34;Error with variable City&amp;#34;)&#xA;&#xA;#Main function to capture payload each variable(city,provider)&#xA;def main():&#xA;    # Builds Payload and topic&#xA;    payload_ci_sp = {VARIABLE_LABEL: {&amp;#34;value&amp;#34;: 30, &amp;#34;context&amp;#34;: {&amp;#34;city&amp;#34;: st.best[&amp;#39;name&amp;#39;], &amp;#34;provider&amp;#34;: st.best[&amp;#39;sponsor&amp;#39;]}}}&#xA;&#xA;    #Send Data&#xA;    post_var(payload_ci_sp)&#xA;&#xA;#It only to execute main function + post_var&#xA;if __name__ == &amp;#34;__main__&amp;#34;:&#xA;    main()&#xA;&#xA;#Capture all values related your connection&#xA;payload = {&amp;#39;Download&amp;#39;: round(st.download() / 1000000, 2) , &amp;#39;Upload&amp;#39;: round(st.upload() / 1000000, 2), &amp;#39;Ping&amp;#39;: round(st.results.ping, 2)}&#xA;&#xA;#Execute post of values&#xA;r = requests.post(&amp;#39;http://things.ubidots.com/api/v1.6/devices/raspberry-pi/?token=&amp;#39;TOKEN&amp;#39;&amp;#39;, data=payload)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h1 id=&#34;dashboard&#34;&gt;Dashboard&#xA;&lt;/h1&gt;&lt;p&gt;Após essa estrutura iremos avaliar se de fato as informações estão sendo populadas no portal da Ubidots. Vale lembrar que é necessário abrir uma conta no portal e também gerar uma &lt;strong&gt;” API Key “,&lt;/strong&gt; pois é através dessa API que você irá conseguir popular suas informações.&lt;/p&gt;&#xA;&lt;p&gt;Uma outra dica é que para esse dashboard, as variáveis serão populadas através da estrutura como sendo um ” &lt;strong&gt;Raspberry PI&lt;/strong&gt; “, porém como explicado acima não existe a necessidade de ter o equipamento, pois você pode executar através de qualquer equipamento baseando-se em &lt;strong&gt;Python 2.7&lt;/strong&gt; e versões posteriores.&lt;/p&gt;&#xA;&lt;p&gt;Isso foi uma forma de utilizar essa facilidade de APIs do fabricante, que já disponibiliza isso através de seu dashboard.&lt;/p&gt;&#xA;&lt;p&gt;Após obter as informações populadas, você pode montar seu dashboard da forma que achar mais interessante. Eu acabei colocando desta forma.&lt;/p&gt;&#xA;&lt;p&gt;&lt;figure&gt;&#xA;    &lt;img src=&#34;https://ciscoredes.com.br/wp-content/uploads/2020/06/Graphs_Internet_Speed_Ubidots.png&#34; alt=&#34;&#34; loading=&#34;lazy&#34;&gt;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;PS.:&lt;/strong&gt; Eu coloquei também diferença de cores para simbolizar alguns limites que podem demonstrar para você, como amarelo o threshold 1 já excedeu.&lt;/p&gt;&#xA;&lt;p&gt;&lt;figure&gt;&#xA;    &lt;img src=&#34;https://ciscoredes.com.br/wp-content/uploads/2020/06/List_Last_Test_SpeedTest_Python.png&#34; alt=&#34;&#34; loading=&#34;lazy&#34;&gt;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Neste caso acima estou populado os valores bem como mostrando as variavéis que escolhi no meu código Python para representar &lt;em&gt;&lt;strong&gt;” City “&lt;/strong&gt;&lt;/em&gt; e &lt;em&gt;&lt;strong&gt;” Provider “.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;conclusão&#34;&gt;Conclusão&#xA;&lt;/h1&gt;&lt;p&gt;Neste desenvolvimento tentei de fato mais aprender a trabalhar com o Python, bem como tentar transferir informações para outras plataformas, do que propriamente o fato de ser o teste do SpeedTest. Acho que isso de alguma forma incentivou para usar uma situação real e transformar ela em algo mais palpável, do que visualizar isso através de um Browser.&lt;/p&gt;&#xA;&lt;p&gt;O que vocês acharam? Qual sua opinião sobre a utilização do SpeedTest? Tem pensando em alguma facilidade utilizando Python?&lt;/p&gt;&#xA;&lt;p&gt;Descreva abaixo em nossos comentários. 🙂&lt;/p&gt;&#xA;&lt;p&gt;Vale ressaltar que esses códigos eu já havia populado no Github, então se deseja ter mais detalhes ou se deseja contribuir mais com o código fique a vontade. Vai lá para dar uma conferida -&amp;gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/rarodrigo/inet_validation_speed&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Inet_Validation_Speed&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;PS.:&lt;/strong&gt; Um dos testes que estou achando bem mais interessante hoje é da &lt;a class=&#34;link&#34; href=&#34;https://speed.cloudflare.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;CloudFlare&lt;/a&gt;, que tem mostrando o jitter e as variações por banda.&lt;/p&gt;&#xA;&lt;p&gt;Abs,&lt;br&gt;&#xA;Rodrigo&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>Cisco DevNet Webinar – Netacad – Sessão 2</title>
            <link>https://ciscoredes.com.br/2017/09/06/cisco-devnet-webinar-netacad-sessao-2/</link>
            <pubDate>Wed, 06 Sep 2017 00:00:00 +0000</pubDate>
            <guid>https://ciscoredes.com.br/2017/09/06/cisco-devnet-webinar-netacad-sessao-2/</guid>
            <description>&lt;img src=&#34;https://ciscoredes.com.br/wp-content/uploads/2017/07/DevNet_Webinar_Netacad.jpg&#34; alt=&#34;Featured image of post Cisco DevNet Webinar – Netacad – Sessão 2&#34; /&gt;&lt;p&gt;&lt;figure&gt;&#xA;    &lt;img src=&#34;https://ciscoredes.com.br/wp-content/uploads/2017/07/DevNet_Webinar_Netacad.jpg&#34; alt=&#34;&#34; loading=&#34;lazy&#34;&gt;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Olá Pessoal,&lt;/p&gt;&#xA;&lt;p&gt;   Eu já havia comentado sobre esse tópico em nosso &lt;a class=&#34;link&#34; href=&#34;https://ciscoredes.com.br/2017/07/20/cisco-devnet-webinar-netacad/&#34; &gt;post de Julho&lt;/a&gt;, e hoje venho para avisar sobre a próxima sessão que será feita neste mês ( &lt;strong&gt;14/09/2017&lt;/strong&gt; ). Não sei se todos assistiram Webinar anterior, mas nesse evento será comentado sobre mais alguns ítens sobre o entendimento de conceitos básicos de software e código e vantagens que engenheiro de redes pode ganhar colaborando with desenvolvimento de software. Irá ser feito uma pequena demo mostrando codificação Python e JSON&lt;/p&gt;&#xA;&lt;p&gt;   Você pode conferir com mais detalhes através do &lt;a class=&#34;link&#34; href=&#34;https://www.netacad.com/hr/web/netacad-advantage/prepare-for-work-blog/-/blogs/cisco-devnet-webinar-series-?_33_redirect=%2Fhr%2Fweb%2Fnetacad-advantage%2Fhome%3F&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;link do NETACAD&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Abs,&lt;br&gt;&#xA;Rodrigo&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>Nova Carreira de Certificação Cisco – Programmability</title>
            <link>https://ciscoredes.com.br/2017/04/10/nova-carreira-de-certificacao-cisco-programmability/</link>
            <pubDate>Mon, 10 Apr 2017 00:00:00 +0000</pubDate>
            <guid>https://ciscoredes.com.br/2017/04/10/nova-carreira-de-certificacao-cisco-programmability/</guid>
            <description>&lt;img src=&#34;https://ciscoredes.com.br/wp-content/uploads/2017/04/Programmability_Certification.jpg&#34; alt=&#34;Featured image of post Nova Carreira de Certificação Cisco – Programmability&#34; /&gt;&lt;p&gt;&lt;figure&gt;&#xA;    &lt;img src=&#34;https://ciscoredes.com.br/wp-content/uploads/2017/04/Programmability_Certification.jpg&#34; alt=&#34;&#34; loading=&#34;lazy&#34;&gt;&lt;/figure&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Olá Pessoal,&lt;/p&gt;&#xA;&lt;p&gt;   Recentemente a Cisco lançou mais uma cadeia de certificações para essas novas tendências que estão surgindo, baseando na estrutura do Cisco DNA.&lt;/p&gt;&#xA;&lt;p&gt;   Essas certificações estão dentro da cadeia de ” &lt;em&gt;&lt;strong&gt;Specialist&lt;/strong&gt;&lt;/em&gt; “, para qual temos 3 níveis de certificações voltados para Design e Implementação, Desenvolvimento ( ODL, onePK, APIC ) e Desenvolvedores especificos para aplicaçãoes ( SAP, Oracle ). Nas certificações de Design e Desenvolvimento os pré-requisitos seriam a nível de &lt;strong&gt;CC*P&lt;/strong&gt;. Para maiores informações verifique as &lt;a class=&#34;link&#34; href=&#34;http://www.cisco.com/c/en/us/training-events/training-certifications/certifications/specialist/network-programmability.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;certificações de Programability&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;   Para os candidatos que são novos nessa area, eles indicam um treinamento que irá abordar alguns temas como Python, NX-APi, DevNet, etc. Entretanto, esse treinamento está sendo oferecido por &lt;strong&gt;U$499,00&lt;/strong&gt; (  😯 ), na qual eu sinceramente acho pesado este valor.&lt;/p&gt;&#xA;&lt;p&gt;   Para maiores informações acesse o site que está oferecendo o curso de &lt;a class=&#34;link&#34; href=&#34;https://learningnetworkstore.cisco.com/on-demand-e-learning/programming-for-network-engineers-prne-v1-0-elt-prne-v1-0-020276&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;PRNE&lt;/a&gt; e deixem seus comentários em relação as essa nova abordagem.&lt;/p&gt;&#xA;&lt;p&gt;Atenciosamente,&lt;br&gt;&#xA;Rodrigo&lt;/p&gt;&#xA;</description>
        </item></channel>
</rss>
