(vm_name, vm_id, vm_ip, vm_ip6, vm_mac, vif, brname, sec_ips)
| 1363 | return False |
| 1364 | |
| 1365 | def verify_network_rules(vm_name, vm_id, vm_ip, vm_ip6, vm_mac, vif, brname, sec_ips): |
| 1366 | if vm_name is None or vm_ip is None or vm_mac is None: |
| 1367 | print("vm_name, vm_ip and vm_mac must be specifed") |
| 1368 | sys.exit(1) |
| 1369 | |
| 1370 | if vm_id is None: |
| 1371 | vm_id = vm_name.split("-")[-2] |
| 1372 | |
| 1373 | if brname is None: |
| 1374 | brname = execute("virsh domiflist %s |grep -w '%s' | awk '{print $3}'" % (vm_name, vm_mac)).strip() |
| 1375 | if not brname: |
| 1376 | print("Cannot find bridge") |
| 1377 | sys.exit(1) |
| 1378 | |
| 1379 | if vif is None: |
| 1380 | vif = execute("virsh domiflist %s |grep -w '%s' | awk '{print $1}'" % (vm_name, vm_mac)).strip() |
| 1381 | if not vif: |
| 1382 | print("Cannot find vif") |
| 1383 | sys.exit(1) |
| 1384 | |
| 1385 | #vm_name = "i-2-55-VM" |
| 1386 | #vm_id = 55 |
| 1387 | #vm_ip = "10.11.118.128" |
| 1388 | #vm_ip6 = "fe80::1c00:b4ff:fe00:5" |
| 1389 | #vm_mac = "1e:00:b4:00:00:05" |
| 1390 | #vif = "vnet11" |
| 1391 | #brname = "cloudbr0" |
| 1392 | #sec_ips = "10.11.118.133;10.11.118.135;10.11.118.138;" # end with ";" and separated by ";" |
| 1393 | |
| 1394 | vm_ips = [] |
| 1395 | if sec_ips is not None: |
| 1396 | vm_ips = sec_ips.split(';') |
| 1397 | vm_ips.pop() |
| 1398 | vm_ips.reverse() |
| 1399 | vm_ips.append(vm_ip) |
| 1400 | |
| 1401 | if not verify_ipset_for_vm(vm_name, vm_id, vm_ips, vm_ip6): |
| 1402 | sys.exit(2) |
| 1403 | if not verify_iptables_rules_for_bridge(brname): |
| 1404 | sys.exit(3) |
| 1405 | if not verify_default_iptables_rules_for_vm(vm_name, vm_id, vm_ips, vm_ip6, vm_mac, vif, brname): |
| 1406 | sys.exit(4) |
| 1407 | if not verify_ebtables_rules_for_vm(vm_name, vm_id, vm_ips, vm_ip6, vm_mac, vif, brname): |
| 1408 | sys.exit(5) |
| 1409 | |
| 1410 | sys.exit(0) |
| 1411 | |
| 1412 | def verify_ipset_for_vm(vm_name, vm_id, vm_ips, vm_ip6): |
| 1413 | vmipsetName = ipset_chain_name(vm_name) |
no test coverage detected