57 lines
2.0 KiB
Python
57 lines
2.0 KiB
Python
"""
|
|
**Consignes :**
|
|
1. Écrivez une classe `Equipement` avec :
|
|
- un constructeur `__init__(self, hostname, ip, latence_ms, actif=True)` ;
|
|
- une méthode `__str__` renvoyant une description lisible ;
|
|
- une méthode `est_operationnel(self, seuil_ms=100)` qui renvoie `True` si l'équipement est **actif ET** que sa latence est **sous le seuil**.
|
|
|
|
2. Écrivez une fonction `hotes_disponibles(bits_hote)` qui renvoie le nombre d'adresses **hôtes utilisables** d'un sous-réseau (indice : `2 ** bits - 2`).
|
|
|
|
3. Écrivez une fonction `trier_par_latence(equipements)` qui renvoie la liste triée par latence croissante (utilisez `sorted` + `lambda`).
|
|
|
|
4. Créez 3 équipements, affichez-les **triés par latence** avec leur état opérationnel, puis affichez le nombre d'hôtes d'un `/24` (soit 8 bits d'hôte).
|
|
"""
|
|
|
|
class Equipment():
|
|
def __init__(self, hostname:str, up:str, latency:float, active:bool=True):
|
|
self.hostname = hostname
|
|
self.up = up
|
|
self.latency = latency
|
|
self.active = active
|
|
|
|
def __str__(self) -> str:
|
|
if self.active:
|
|
return f"=====\n \
|
|
HOST : {self.hostname}\n \
|
|
IS_UP : {self.up}\n \
|
|
LATENCY : {self.latency}"
|
|
else:
|
|
return f"=====\n \
|
|
Host is currently inactive."
|
|
|
|
__repr__ = __str__
|
|
|
|
def is_operational(self, max_latency=100) -> bool:
|
|
return self.active and self.latency < max_latency
|
|
|
|
def available_host(host_bits):
|
|
return f"{2 ** (32 - host_bits) - 2} hôtes sont disponibles sur {host_bits} bits."
|
|
|
|
def sort_by_latency(equipments):
|
|
return sorted(equipments, key=lambda e: e.latency)
|
|
|
|
# Equipements
|
|
|
|
e1 = Equipment("Berillium", "Yes", 15, True)
|
|
e2 = Equipment("Thorium", "No", 7, False)
|
|
e3 = Equipment("Cadmium", "Yes", 12.4, True)
|
|
e4 = Equipment("Polonium", "Yes", 145, True)
|
|
e5 = Equipment("Actinium", "Yes", 2.7, True)
|
|
|
|
eX = [e1, e2, e3, e4, e5]
|
|
|
|
for e in sort_by_latency(eX):
|
|
if e.up == "Yes":
|
|
print(e)
|
|
|
|
print(available_host(24)) |