예제 #1
0
 def run_cli_delete_network_policy_egress(self, conf_list, itf):
     jsonconf = json.dumps(conf_list)
     cmd = f'''{self.trn_cli_delete_network_policy_egress} \'{jsonconf}\' -i \'{itf}\''''
     logger.info("delete_network_policy_egress: {}".format(cmd))
     returncode, text = run_cmd(cmd)
     logger.info(
         "delete_network_policy_egress returns {} {}".format(returncode, text))
예제 #2
0
 def update_agent_metadata(self, ep):
     itf = ep.get_veth_peer()
     jsonconf = {
         "ep": {
             "tunnel_id": ep.get_tunnel_id(),
             "ip": ep.get_ip(),
             "eptype": ep.get_eptype(),
             "mac": ep.get_mac(),
             "veth": ep.get_veth_name(),
             "remote_ips": ep.get_remote_ips(),
             "hosted_iface": ep.droplet_eth
         },
         "net": {
             "tunnel_id": ep.get_tunnel_id(),
             "nip": ep.get_nip(),
             "prefixlen": ep.get_prefix(),
             "switches_ips": ep.get_bouncers_ips()
         },
         "eth": {
             "ip": ep.droplet_ip,
             "mac": ep.droplet_mac,
             "iface": ep.droplet_eth
         }
     }
     jsonconf = json.dumps(jsonconf)
     cmd = f'''{self.trn_cli_update_agent_metadata} -i \'{itf}\' -j \'{jsonconf}\''''
     logger.info("update_agent_metadata: {}".format(cmd))
     returncode, text = run_cmd(cmd)
     logger.info(
         "update_agent_metadata returns {} {}".format(returncode, text))
예제 #3
0
    def update_ep(self, ep):
        peer = ""
        droplet_ip = ep.get_droplet_ip()
        # Only detail veth info if the droplet is also a host
        if (droplet_ip and self.ip == droplet_ip):
            peer = ep.get_veth_peer()

        jsonconf = {
            "tunnel_id": ep.get_tunnel_id(),
            "ip": ep.get_ip(),
            "eptype": ep.get_eptype(),
            "mac": ep.get_mac(),
            "veth": ep.get_veth_name(),
            "remote_ips": ep.get_remote_ips(),
            "hosted_iface": peer
        }

        jsonconf = json.dumps(jsonconf)
        cmd = f'''{self.trn_cli_update_ep} \'{jsonconf}\''''
        logger.info("update_ep: {}".format(cmd))
        returncode, text = run_cmd(cmd)
        logger.info("returns {} {}".format(returncode, text))
        remote_ports = ep.get_remote_ports()
        frontend_ports = ep.get_frontend_ports()
        protocols = ep.get_port_protocols()
        for i in range(len(remote_ports)):
            self.update_port(ep.get_tunnel_id(), ep.get_ip(),
                             frontend_ports[i], remote_ports[i], protocols[i])
예제 #4
0
 def unload_transit_agent_xdp(self, ep):
     itf = ep.veth_peer
     jsonconf = '\'{}\''
     cmd = f'''{self.trn_cli_unload_transit_agent_xdp} -i \'{itf}\' -j {jsonconf} '''
     logger.info("unload_transit_agent_xdp: {}".format(cmd))
     returncode, text = run_cmd(cmd)
     logger.info(
         "unload_transit_agent_xdp returns {} {}".format(returncode, text))
예제 #5
0
 def update_agent_substrate_ep(self, ep, ip, mac):
     itf = ep.get_veth_peer()
     jsonconf = self.get_substrate_ep_json(ip, mac)
     cmd = f'''{self.trn_cli_update_agent_ep} -i \'{itf}\' -j \'{jsonconf}\''''
     logger.info("update_agent_substrate_ep: {}".format(cmd))
     returncode, text = run_cmd(cmd)
     logger.info(
         "update_agent_substrate_ep returns {} {}".format(returncode, text))
예제 #6
0
 def run_cli_update_network_policy_protocol_port_ingress(self, conf_list):
     jsonconf = json.dumps(conf_list)
     cmd = f'''{self.trn_cli_update_network_policy_protocol_port_ingress} \'{jsonconf}\''''
     logger.info(
         "update_network_policy_protocol_port_ingress: {}".format(cmd))
     returncode, text = run_cmd(cmd)
     logger.info("update_network_policy_protocol_port_ingress returns {} {}".format(
         returncode, text))
예제 #7
0
 def delete_vpc(self, bouncer):
     jsonconf = {
         "tunnel_id": bouncer.vni
     }
     jsonconf = json.dumps(jsonconf)
     cmd = f'''{self.trn_cli_delete_vpc} \'{jsonconf}\''''
     logger.info("delete_vpc: {}".format(cmd))
     returncode, text = run_cmd(cmd)
     logger.info("delete_vpc returns {} {}".format(returncode, text))
예제 #8
0
 def unload_transit_xdp_pipeline_stage(self, stage, obj_file):
     jsonconf = {
         "stage": stage
     }
     jsonconf = json.dumps(jsonconf)
     cmd = f'''{self.trn_cli_unload_pipeline_stage} \'{jsonconf}\' '''
     logger.info("unload_transit_xdp_pipeline_stage: {}".format(cmd))
     returncode, text = run_cmd(cmd)
     logger.info(
         "unload_transit_xdp_pipeline_stage returns {} {}".format(returncode, text))
예제 #9
0
 def delete_substrate_ep(self, ip):
     jsonconf = {
         "tunnel_id": "0",
         "ip": ip,
     }
     jsonconf = json.dumps(jsonconf)
     cmd = f'''{self.trn_cli_delete_ep} \'{jsonconf}\''''
     logger.info("delete_substrate_ep: {}".format(cmd))
     returncode, text = run_cmd(cmd)
     logger.info(
         "delete_substrate_ep returns {} {}".format(returncode, text))
예제 #10
0
 def delete_net(self, net):
     jsonconf = {
         "tunnel_id": net.vni,
         "nip": net.get_nip(),
         "prefixlen": net.get_prefixlen()
     }
     jsonconf = json.dumps(jsonconf)
     cmd = f'''{self.trn_cli_delete_net} \'{jsonconf}\''''
     logger.info("delete_net: {}".format(cmd))
     returncode, text = run_cmd(cmd)
     logger.info("delete_net returns {} {}".format(returncode, text))
예제 #11
0
 def delete_agent_substrate_ep(self, ep, ip):
     itf = ep.get_veth_peer()
     jsonconf = {
         "tunnel_id": "0",
         "ip": ip,
     }
     cmd = f'''{self.trn_cli_delete_agent_ep} -i \'{itf}\' -j \'{jsonconf}\''''
     logger.info("delete_agent_substrate_ep: {}".format(cmd))
     returncode, text = run_cmd(cmd)
     logger.info(
         "delete_agent_substrate_ep returns {} {}".format(returncode, text))
예제 #12
0
 def delete_ep(self, ep):
     jsonconf = {
         "tunnel_id": ep.get_tunnel_id(),
         "ip": ep.get_ip(),
     }
     jsonconf = json.dumps(jsonconf)
     cmd = f'''{self.trn_cli_delete_ep} \'{jsonconf}\''''
     log_string = "delete_ep for a {} {}".format(ep.type, ep.ip)
     logger.info(log_string)
     returncode, text = run_cmd(cmd)
     logger.info("returns {} {}".format(returncode, text))
예제 #13
0
 def delete_network_policy_enforcement_map_ingress(self, endpointEnforced):
     jsonconf = {
         "tunnel_id": endpointEnforced.vni,
         "ip": endpointEnforced.ip,
     }
     jsonconf = json.dumps(jsonconf)
     cmd = f'''{self.trn_cli_delete_network_policy_enforcement_map_ingress} \'{jsonconf}\''''
     logger.info(
         "delete_network_policy_enforcement_map_ingress: {}".format(cmd))
     returncode, text = run_cmd(cmd)
     logger.info("delete_network_policy_enforcement_map_ingress returns {} {}".format(
         returncode, text))
예제 #14
0
 def update_port(self, tunid, ip, port, target_port, protocol):
     jsonconf = {
         "tunnel_id": tunid,
         "ip": ip,
         "port": port,
         "target_port": target_port,
         "protocol": protocol,
     }
     jsonconf = json.dumps(jsonconf)
     cmd = f'''{self.trn_cli_update_port} \'{jsonconf}\''''
     logger.info("update_port: {}".format(cmd))
     returncode, text = run_cmd(cmd)
     logger.info("returns {} {}".format(returncode, text))
예제 #15
0
 def update_network_policy_enforcement_map_egress(self, ep, endpointEnforced):
     itf = ep.get_veth_peer()
     jsonconf = {
         "tunnel_id": endpointEnforced.vni,
         "ip": endpointEnforced.ip,
     }
     jsonconf = json.dumps(jsonconf)
     cmd = f'''{self.trn_cli_update_network_policy_enforcement_map_egress} \'{jsonconf}\' -i \'{itf}\''''
     logger.info(
         "update_network_policy_enforcement_map_egress: {}".format(cmd))
     returncode, text = run_cmd(cmd)
     logger.info("update_network_policy_enforcement_map_egress returns {} {}".format(
         returncode, text))
예제 #16
0
 def update_vpc(self, bouncer):
     if len(bouncer.get_divider_ips()) < 1:
         logger.info("Bouncer list of dividers, LEN IS ZERO")
         return
     jsonconf = {
         "tunnel_id": bouncer.vni,
         "routers_ips": bouncer.get_divider_ips()
     }
     jsonconf = json.dumps(jsonconf)
     cmd = f'''{self.trn_cli_update_vpc} \'{jsonconf}\''''
     logger.info("update_vpc: {}".format(cmd))
     returncode, text = run_cmd(cmd)
     logger.info("update_vpc returns {} {}".format(returncode, text))
예제 #17
0
 def update_packet_metadata(self, ep):
     itf = ep.get_veth_peer()
     jsonconf = {
         "tunnel_id": ep.get_tunnel_id(),
         "ip": ep.get_ip(),
         "pod_label_value": ep.pod_label_value,
         "namespace_label_value": ep.namespace_label_value,
     }
     jsonconf = json.dumps(jsonconf)
     cmd = f'''{self.trn_cli_update_packet_metadata} -i \'{itf}\' -j \'{jsonconf}\''''
     logger.info("update_packet_metadata: {}".format(cmd))
     returncode, text = run_cmd(cmd)
     logger.info(
         "update_packet_metadata returns {} {}".format(returncode, text))
예제 #18
0
 def load_transit_agent_xdp(self, veth_peer):
     itf = veth_peer
     agent_pcap_file = itf + '.pcap'
     jsonconf = {
         "xdp_path": self.agent_xdp_path,
         "pcapfile": agent_pcap_file,
         "xdp_flag": CONSTANTS.XDP_GENERIC
     }
     jsonconf = json.dumps(jsonconf)
     cmd = f'''{self.trn_cli_load_transit_agent_xdp} -i \'{itf}\' -j \'{jsonconf}\' '''
     logger.info("load_transit_agent_xdp: {}".format(cmd))
     returncode, text = run_cmd(cmd)
     logger.info(
         "load_transit_agent_xdp returns {} {}".format(returncode, text))
예제 #19
0
 def update_net(self, net):
     if len(net.get_bouncers_ips()) < 1:
         logger.info("net list of bouncers LEN IS ZERO")
         return
     jsonconf = {
         "tunnel_id": net.vni,
         "nip": net.get_nip(),
         "prefixlen": net.get_prefixlen(),
         "switches_ips": net.get_bouncers_ips()
     }
     jsonconf = json.dumps(jsonconf)
     cmd = f'''{self.trn_cli_update_net} \'{jsonconf}\''''
     logger.info("update_net: {}".format(cmd))
     returncode, text = run_cmd(cmd)
     logger.info("update_net returns {} {}".format(returncode, text))
예제 #20
0
 def update_substrate_ep(self, ip, mac):
     jsonconf = self.get_substrate_ep_json(ip, mac)
     cmd = f'''{self.trn_cli_update_ep} \'{jsonconf}\''''
     logger.info("update_substrate_ep: {}".format(cmd))
     returncode, text = run_cmd(cmd)
     logger.info("returns {} {}".format(returncode, text))
예제 #21
0
 def run_cli_delete_pod_and_namespace_label_policy(self, conf_list):
     jsonconf = json.dumps(conf_list)
     cmd = f'''{self.trn_cli_delete_pod_and_namespace_label_policy} \'{jsonconf}\''''
     logger.info("delete_pod_and_namespace_label_policy: {}".format(cmd))
     returncode, text = run_cmd(cmd)
     logger.info("delete_pod_and_namespace_label_policy returns {} {}".format(returncode, text))