def ports_update_eps_config(): eps_list = [ eps[i:i + EP_BATCH_MAX] for i in range(0, len(eps), EP_BATCH_MAX) ] for eps_chunk in eps_list: eps_conf = {'size': len(eps_chunk), 'eps': eps_chunk} for ip in node_ips: logger.info('Sending EP batch to {}-{}'.format(ip, eps_conf)) rpc = TrnRpc(ip) rpc.update_ep(eps_conf) del rpc eps.clear()
def droplet_update_itf_config(node_ip, droplet): entrances = [] ips = droplet.get('spec', {}).get('ip') macs = droplet.get('spec', {}).get('mac') for idx, ip in enumerate(ips): entrance = {'ip': ip, 'mac': macs[idx]} entrances.append(entrance) itf_conf = { 'interface': droplet['spec']['itf'], 'num_entrances': len(ips), 'entrances': entrances } logger.info('Sending RPC: {}-{}'.format(node_ip, itf_conf)) rpc = TrnRpc(node_ip) rpc.update_droplet(itf_conf) del rpc
def rpc(self): return TrnRpc(self.ip, self.mac)
def rpc(self): return TrnRpc(self.droplet_ip, self.droplet_mac)
def node_unload_transit_xdp(ip, itf_tenant, itf_zgc): node_ips.pop(ip, None) rpc = TrnRpc(ip) rpc.unload_transit_xdp(ip, itf_tenant, itf_zgc) del rpc
def node_load_transit_xdp(ip, inf_tenant, inf_zgc): node_ips[ip] = ip logger.info('Sending RPC: {}-{} {}'.format(ip, inf_tenant, inf_zgc)) rpc = TrnRpc(ip) rpc.load_transit_xdp(inf_tenant, inf_zgc, int(activeZgc["port_ibo"])) del rpc
def rpc(self): return TrnRpc(self.ip)