class K8s(Base): id = fields.Integer() size = fields.Integer() network_id = fields.String(default="") ipaddress = fields.IPAddress() cluster_secret = fields.String(default="") master_ips = fields.List(fields.IPAddress()) ssh_keys = fields.List(fields.String()) public_ip = fields.Integer() stats_aggregator = fields.List(fields.Object(Statsaggregator)) info = fields.Object(ReservationInfo) datastore_endpoint = fields.String(default="") disable_default_ingress = fields.Boolean(default=True) SIZES = VMSIZES def resource_units(self): resource_units = ResourceUnitAmount() size = VMSIZES.get(self.size) if not size: raise j.exceptions.Input(f"kubernetes size {self.size} not supported") resource_units.cru += size["cru"] resource_units.mru += size["mru"] resource_units.sru += size["sru"] return resource_units
class K8s(Base): id = fields.Integer() size = fields.Integer() network_id = fields.String(default="") ipaddress = fields.IPAddress() cluster_secret = fields.String(default="") master_ips = fields.List(fields.IPAddress()) ssh_keys = fields.List(fields.String()) stats_aggregator = fields.List(fields.Object(Statsaggregator)) info = fields.Object(ReservationInfo)
def test_ipaddress_v4(self): """Success scenario for ipaddress ipv4 validation""" ipaddress = fields.IPAddress("192.168.0.1") self.assertEqual(ipaddress.default, "192.168.0.1") self.assertIsNone(ipaddress.validate("192.168.0.1")) """Failure scenario for ipaddress validation""" ipaddress = fields.IPAddress("192.168.0.1") self.assertEqual(ipaddress.default, "192.168.0.1") with self.assertRaises(ValidationError): ipaddress.validate("test")
class VirtualMachine(Base): id = fields.Integer() name = fields.String(default="") hub_url = fields.String(default="") description = fields.String(default="") network_connection = fields.List(fields.Object(ContainerNetworkConnection)) network_id = fields.String() farmer_tid = fields.Integer() size = fields.Integer() info = fields.Object(ReservationInfo) ssh_keys = fields.List(fields.String()) public_ip = fields.Integer() ipaddress = fields.IPAddress() SIZES = VMSIZES def resource_units(self): resource_units = ResourceUnitAmount() size = VMSIZES.get(self.size) if not size: raise j.exceptions.Input(f"VM size {self.size} not supported") resource_units.cru += size["cru"] resource_units.mru += size["mru"] resource_units.sru += size["sru"] return resource_units
class K8s(Base): id = fields.Integer() size = fields.Integer() network_id = fields.String(default="") ipaddress = fields.IPAddress() cluster_secret = fields.String(default="") master_ips = fields.List(fields.IPAddress()) ssh_keys = fields.List(fields.String()) public_ip = fields.Integer() stats_aggregator = fields.List(fields.Object(Statsaggregator)) info = fields.Object(ReservationInfo) def resource_units(self): size_table = { 1: {"cru": 1, "mru": 2, "sru": 50}, 2: {"cru": 2, "mru": 4, "sru": 100}, 3: {"cru": 2, "mru": 8, "sru": 25}, 4: {"cru": 2, "mru": 5, "sru": 50}, 5: {"cru": 2, "mru": 8, "sru": 200}, 6: {"cru": 4, "mru": 16, "sru": 50}, 7: {"cru": 4, "mru": 16, "sru": 100}, 8: {"cru": 4, "mru": 16, "sru": 400}, 9: {"cru": 8, "mru": 32, "sru": 100}, 10: {"cru": 8, "mru": 32, "sru": 200}, 11: {"cru": 8, "mru": 32, "sru": 800}, 12: {"cru": 16, "mru": 64, "sru": 200}, 13: {"cru": 16, "mru": 64, "sru": 400}, 14: {"cru": 16, "mru": 64, "sru": 800}, 15: {"cru": 1, "mru": 2, "sru": 25}, 16: {"cru": 2, "mru": 4, "sru": 50}, 17: {"cru": 4, "mru": 8, "sru": 50}, 18: {"cru": 1, "mru": 1, "sru": 25}, } resource_units = ResourceUnitAmount() size = size_table.get(self.size) if not size: raise j.exceptions.Input(f"kubernetes size {self.size} not supported") resource_units.cru += size["cru"] resource_units.mru += size["mru"] resource_units.sru += size["sru"] return resource_units
class VDCHostBase(VDCWorkloadBase): ip_address = fields.IPAddress() @classmethod def from_workload(cls, workload): host = cls() host.node_id = workload.info.node_id host.pool_id = workload.info.pool_id host.wid = workload.id host.ip_address = workload.network_connection[0].ipaddress return host
class Machine(Base): ip = fields.IPAddress()
class FarmerIP(Base): address = fields.IPRange() gateway = fields.IPAddress() reservation_id = fields.Integer()
class ContainerNetworkConnection(Base): network_id = fields.String(default="") ipaddress = fields.IPAddress() public_ip6 = fields.Boolean()
def test_ipaddress_network(self): """Success scenario for ipaddress network validation""" ipaddress = fields.IPAddress("192.168.0.0/28") self.assertEqual(ipaddress.default, "192.168.0.0/28") self.assertIsNone(ipaddress.validate("192.168.0.0/28"))
def test_ipaddress_v6(self): """Success scenario for ipaddress ipv6 validation""" ipaddress = fields.IPAddress("2001:db8::") self.assertEqual(ipaddress.default, "2001:db8::") self.assertIsNone(ipaddress.validate("2001:db8::"))
class Server(Base): host = fields.IPAddress() network = fields.IPRange() port = fields.Port() uid = fields.GUID() key = fields.Bytes()