def main(): # Obtenemos gateway gateway = get_gateway() nodos = [gateway] # Empezamos con el gateway visited_nodes = [] connections = {} ip_to_hostname = {} t = time.time() while nodos: print("Nodo actual: ", nodos[0]) router = Router(nodos[0], USERNAME, PASSWORD) # VALIDACION if not router.is_connected: print("Error al iniciar SSH en el nodo: ", nodos[0]) nodos.pop(0) # ES POSIBLEMENTE UNA PC continue # CREAMOS NUEVO USUARIO SSH router.create_user("pirata", "pirata") # OBTENEMOS A DONDE IR visited_nodes, nodos = router.get_jump_connections( visited_nodes, nodos) # IP A HOSTNAME ip_to_hostname.update(router.interfaces_ip) #CONEXIONES QUE TIENE EL ROUTER -> IP connections[router.hostname] = router.connections print("Tiempo de ejecución: ", time.time() - t) topologia = Graph("Mi topología") for nodo in connections: topologia.node(nodo) for ip in connections[nodo]: try: topologia.edge(nodo, ip_to_hostname[ip]) except: pass topologia.render("topologia")
from aws_lambda_powertools import Logger import logging from utils import Invocation from utils import Router from aws_lambda_powertools.utilities.typing import LambdaContext log: Logger = Logger() Logger("botocore").setLevel(logging.INFO) Logger("urllib3").setLevel(logging.INFO) router: Router = Router() # Handler @log.inject_lambda_context() def handler(event: dict, context: LambdaContext) -> dict: return Invocation(router, event).call() # # Query Actions # @router.direct("list_students") # Resolves for a direct invoke @router.rest("GET", "/students") # Resolves for a ReST endpoint @router.graphql("Query", "listStudents") # Resolves for graphQL endpoint def list_students(args: dict) -> list: return list(students.values()) @router.direct("get_student") # Resolves for a direct invoke @router.rest("GET", "/students/{studentId}") # Resolves for a ReST endpoint
#-*- coding: utf-8 -*- import os import sys import json from flask import Flask, request, jsonify, abort from database import DataBase from utils import Router app = Flask(__name__) app.config['JSON_AS_ASCII'] = False app.config["JSON_SORT_KEYS"] = False db = DataBase() TOKEN = os.environ["WEB_SERVER_TOKEN"] router = Router() # 最新情報の取得API @app.route("/request/now", methods=["POST"]) def request_now(): global router data = request.get_json() if type(data) != dict: data = json.loads(data) major = data["major"] try: res = router.now(major) return jsonify({ "status":"200", "response":res })