#2453 - Correcting errors found from pipeline pre-commit checks
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -141,16 +141,16 @@
|
||||
"+------------+----------------------------------------+-------------------+------------------------------------------+-------+-------------------+--------------+\n",
|
||||
"| Endpoint A | A Port | Endpoint B | B Port | is Up | Bandwidth (MBits) | Current Load |\n",
|
||||
"+------------+----------------------------------------+-------------------+------------------------------------------+-------+-------------------+--------------+\n",
|
||||
"| router_1 | Port 2: eb:31:e8:11:28:ac/192.168.10.1 | switch_2 | Port 8: d3:59:e2:73:4e:b8 | True | 100.0 | 0.00006% |\n",
|
||||
"| router_1 | Port 1: 3f:c3:3d:00:74:c4/192.168.1.1 | switch_1 | Port 8: a9:ea:54:9f:35:f8 | True | 100.0 | 0.00018% |\n",
|
||||
"| switch_1 | Port 7: 63:ea:45:e6:f4:22 | security_suite | Port 1: 18:9d:a1:f0:6f:0b/192.168.1.110 | True | 100.0 | 0.00003% |\n",
|
||||
"| switch_1 | Port 4: 08:0e:a9:03:d7:3c | backup_server | Port 1: c3:e5:81:c9:8b:74/192.168.1.16 | True | 100.0 | 0.00003% |\n",
|
||||
"| switch_1 | Port 2: 75:c5:30:0f:5d:92 | web_server | Port 1: 90:94:52:a6:1f:c5/192.168.1.12 | True | 100.0 | 0.00015% |\n",
|
||||
"| switch_1 | Port 3: f1:62:75:5d:d9:59 | database_server | Port 1: 2e:e8:cb:a5:97:12/192.168.1.14 | True | 100.0 | 0.00017% |\n",
|
||||
"| switch_1 | Port 1: 08:79:a7:3f:b5:96 | domain_controller | Port 1: 00:c3:ff:62:87:8f/192.168.1.10 | True | 100.0 | 0.00003% |\n",
|
||||
"| switch_2 | Port 7: 88:9c:57:5c:53:5e | security_suite | Port 2: 9e:b2:c8:04:d8:97/192.168.10.110 | True | 100.0 | 0.00000% |\n",
|
||||
"| switch_2 | Port 2: a8:1b:b2:78:12:34 | client_2 | Port 1: 6a:b1:ff:36:ef:40/192.168.10.22 | True | 100.0 | 0.00003% |\n",
|
||||
"| switch_2 | Port 1: 42:08:3f:1e:ea:dd | client_1 | Port 1: f6:6d:35:8a:67:d8/192.168.10.21 | True | 100.0 | 0.00003% |\n",
|
||||
"| router_1 | Port 2: 6e:3e:9f:58:c3:f8/192.168.10.1 | switch_2 | Port 8: 00:a7:49:9f:b7:40 | True | 100.0 | 0.00006% |\n",
|
||||
"| router_1 | Port 1: 7c:0a:49:bd:2d:5f/192.168.1.1 | switch_1 | Port 8: e6:5e:9e:61:f6:71 | True | 100.0 | 0.00018% |\n",
|
||||
"| switch_1 | Port 7: 8c:96:32:d5:ef:4b | security_suite | Port 1: 92:17:67:5f:09:f0/192.168.1.110 | True | 100.0 | 0.00003% |\n",
|
||||
"| switch_1 | Port 4: ef:da:44:ee:68:1d | backup_server | Port 1: 82:23:ff:c5:03:45/192.168.1.16 | True | 100.0 | 0.00003% |\n",
|
||||
"| switch_1 | Port 2: ab:84:4b:96:bc:b6 | web_server | Port 1: 30:3c:b4:54:b2:ef/192.168.1.12 | True | 100.0 | 0.00015% |\n",
|
||||
"| switch_1 | Port 3: d8:07:d0:d6:27:52 | database_server | Port 1: 7c:cd:b5:ba:46:33/192.168.1.14 | True | 100.0 | 0.00017% |\n",
|
||||
"| switch_1 | Port 1: e0:06:93:2c:45:cf | domain_controller | Port 1: 6d:3e:3e:b3:f6:6f/192.168.1.10 | True | 100.0 | 0.00003% |\n",
|
||||
"| switch_2 | Port 7: 4f:55:6c:c3:ff:e9 | security_suite | Port 2: 64:6f:aa:ba:cb:d0/192.168.10.110 | True | 100.0 | 0.00000% |\n",
|
||||
"| switch_2 | Port 2: f7:42:43:63:75:c9 | client_2 | Port 1: 21:bb:1b:75:02:fb/192.168.10.22 | True | 100.0 | 0.00003% |\n",
|
||||
"| switch_2 | Port 1: 45:93:50:03:48:f5 | client_1 | Port 1: ca:f5:26:85:a7:54/192.168.10.21 | True | 100.0 | 0.00003% |\n",
|
||||
"+------------+----------------------------------------+-------------------+------------------------------------------+-------+-------------------+--------------+\n"
|
||||
]
|
||||
}
|
||||
@@ -206,11 +206,11 @@
|
||||
"+------+-------------------+-----------------+-------+----------+\n",
|
||||
"| Port | MAC Address | Address | Speed | Status |\n",
|
||||
"+------+-------------------+-----------------+-------+----------+\n",
|
||||
"| 1 | 3f:c3:3d:00:74:c4 | 192.168.1.1/24 | 100 | Enabled |\n",
|
||||
"| 2 | eb:31:e8:11:28:ac | 192.168.10.1/24 | 100 | Enabled |\n",
|
||||
"| 3 | 7b:4f:23:8d:b5:18 | 127.0.0.1/8 | 100 | Disabled |\n",
|
||||
"| 4 | cd:89:ba:42:ee:04 | 127.0.0.1/8 | 100 | Disabled |\n",
|
||||
"| 5 | 8d:92:27:76:79:c5 | 127.0.0.1/8 | 100 | Disabled |\n",
|
||||
"| 1 | 7c:0a:49:bd:2d:5f | 192.168.1.1/24 | 100 | Enabled |\n",
|
||||
"| 2 | 6e:3e:9f:58:c3:f8 | 192.168.10.1/24 | 100 | Enabled |\n",
|
||||
"| 3 | 44:c9:4c:25:4c:9b | 127.0.0.1/8 | 100 | Disabled |\n",
|
||||
"| 4 | 4a:99:e4:a0:87:ba | 127.0.0.1/8 | 100 | Disabled |\n",
|
||||
"| 5 | ca:5c:3b:6e:52:ef | 127.0.0.1/8 | 100 | Disabled |\n",
|
||||
"+------+-------------------+-----------------+-------+----------+\n"
|
||||
]
|
||||
}
|
||||
@@ -244,13 +244,13 @@
|
||||
"+---------------+-------------------+-------------------+\n",
|
||||
"| IP Address | MAC Address | Via |\n",
|
||||
"+---------------+-------------------+-------------------+\n",
|
||||
"| 192.168.10.21 | f6:6d:35:8a:67:d8 | eb:31:e8:11:28:ac |\n",
|
||||
"| 192.168.10.22 | 6a:b1:ff:36:ef:40 | eb:31:e8:11:28:ac |\n",
|
||||
"| 192.168.1.10 | 00:c3:ff:62:87:8f | 3f:c3:3d:00:74:c4 |\n",
|
||||
"| 192.168.1.14 | 2e:e8:cb:a5:97:12 | 3f:c3:3d:00:74:c4 |\n",
|
||||
"| 192.168.1.12 | 90:94:52:a6:1f:c5 | 3f:c3:3d:00:74:c4 |\n",
|
||||
"| 192.168.1.16 | c3:e5:81:c9:8b:74 | 3f:c3:3d:00:74:c4 |\n",
|
||||
"| 192.168.1.110 | 18:9d:a1:f0:6f:0b | 3f:c3:3d:00:74:c4 |\n",
|
||||
"| 192.168.10.21 | ca:f5:26:85:a7:54 | 6e:3e:9f:58:c3:f8 |\n",
|
||||
"| 192.168.10.22 | 21:bb:1b:75:02:fb | 6e:3e:9f:58:c3:f8 |\n",
|
||||
"| 192.168.1.10 | 6d:3e:3e:b3:f6:6f | 7c:0a:49:bd:2d:5f |\n",
|
||||
"| 192.168.1.14 | 7c:cd:b5:ba:46:33 | 7c:0a:49:bd:2d:5f |\n",
|
||||
"| 192.168.1.12 | 30:3c:b4:54:b2:ef | 7c:0a:49:bd:2d:5f |\n",
|
||||
"| 192.168.1.16 | 82:23:ff:c5:03:45 | 7c:0a:49:bd:2d:5f |\n",
|
||||
"| 192.168.1.110 | 92:17:67:5f:09:f0 | 7c:0a:49:bd:2d:5f |\n",
|
||||
"+---------------+-------------------+-------------------+\n"
|
||||
]
|
||||
}
|
||||
@@ -385,7 +385,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 30,
|
||||
"execution_count": 9,
|
||||
"id": "e7fd439b-5442-4e9d-9e7d-86dacb77f458",
|
||||
"metadata": {
|
||||
"tags": []
|
||||
@@ -400,28 +400,14 @@
|
||||
"+------+-------------------+-------+----------+\n",
|
||||
"| Port | MAC Address | Speed | Status |\n",
|
||||
"+------+-------------------+-------+----------+\n",
|
||||
"| 1 | 08:79:a7:3f:b5:96 | 100 | Enabled |\n",
|
||||
"| 2 | 75:c5:30:0f:5d:92 | 100 | Enabled |\n",
|
||||
"| 3 | f1:62:75:5d:d9:59 | 100 | Enabled |\n",
|
||||
"| 4 | 08:0e:a9:03:d7:3c | 100 | Enabled |\n",
|
||||
"| 5 | ae:40:29:58:c7:95 | 100 | Disabled |\n",
|
||||
"| 6 | 7d:54:38:7f:79:e8 | 100 | Disabled |\n",
|
||||
"| 7 | 63:ea:45:e6:f4:22 | 100 | Enabled |\n",
|
||||
"| 8 | a9:ea:54:9f:35:f8 | 100 | Enabled |\n",
|
||||
"+------+-------------------+-------+----------+\n",
|
||||
"+---------------------------------------------+\n",
|
||||
"| switch_2 Switch Ports |\n",
|
||||
"+------+-------------------+-------+----------+\n",
|
||||
"| Port | MAC Address | Speed | Status |\n",
|
||||
"+------+-------------------+-------+----------+\n",
|
||||
"| 1 | 42:08:3f:1e:ea:dd | 100 | Enabled |\n",
|
||||
"| 2 | a8:1b:b2:78:12:34 | 100 | Enabled |\n",
|
||||
"| 3 | 43:e4:54:fe:e7:1f | 100 | Disabled |\n",
|
||||
"| 4 | 24:bf:74:7c:c4:11 | 100 | Disabled |\n",
|
||||
"| 5 | 4b:57:f7:46:c9:4f | 100 | Disabled |\n",
|
||||
"| 6 | 10:03:9d:39:0c:81 | 100 | Disabled |\n",
|
||||
"| 7 | 88:9c:57:5c:53:5e | 100 | Enabled |\n",
|
||||
"| 8 | d3:59:e2:73:4e:b8 | 100 | Enabled |\n",
|
||||
"| 1 | e0:06:93:2c:45:cf | 100 | Enabled |\n",
|
||||
"| 2 | ab:84:4b:96:bc:b6 | 100 | Enabled |\n",
|
||||
"| 3 | d8:07:d0:d6:27:52 | 100 | Enabled |\n",
|
||||
"| 4 | ef:da:44:ee:68:1d | 100 | Enabled |\n",
|
||||
"| 5 | b6:76:3d:1d:7e:be | 100 | Disabled |\n",
|
||||
"| 6 | 02:ce:fa:da:9a:a4 | 100 | Disabled |\n",
|
||||
"| 7 | 8c:96:32:d5:ef:4b | 100 | Enabled |\n",
|
||||
"| 8 | e6:5e:9e:61:f6:71 | 100 | Enabled |\n",
|
||||
"+------+-------------------+-------+----------+\n"
|
||||
]
|
||||
}
|
||||
@@ -430,42 +416,6 @@
|
||||
"network.get_node_by_hostname(\"switch_1\").show()"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "beb8dbd6-7250-4ac9-9fa2-d2a9c0e5fd19",
|
||||
"metadata": {
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"Calling `switch.arp.show()` displays the Switch ARP Cache."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 10,
|
||||
"id": "d06e1310-4a77-4315-a59f-cb1b49ca2352",
|
||||
"metadata": {
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"+--------------------------------+\n",
|
||||
"| switch_1 ARP Cache |\n",
|
||||
"+------------+-------------+-----+\n",
|
||||
"| IP Address | MAC Address | Via |\n",
|
||||
"+------------+-------------+-----+\n",
|
||||
"+------------+-------------+-----+\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"network.get_node_by_hostname(\"switch_1\").arp.show()\n",
|
||||
"#network.get_node_by_hostname(\"switch_1\").software_manager"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "fda75ac3-8123-4234-8f36-86547891d8df",
|
||||
@@ -476,7 +426,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 11,
|
||||
"execution_count": 10,
|
||||
"id": "a0d984b7-a7c1-4bbd-aa5a-9d3caecb08dc",
|
||||
"metadata": {
|
||||
"tags": []
|
||||
@@ -521,7 +471,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 12,
|
||||
"execution_count": 11,
|
||||
"id": "656c37f6-b145-42af-9714-8d2886d0eff8",
|
||||
"metadata": {
|
||||
"tags": []
|
||||
@@ -536,8 +486,8 @@
|
||||
"+------+------+-------------------+-------------------+-------+---------+\n",
|
||||
"| Port | Type | MAC Address | Address | Speed | Status |\n",
|
||||
"+------+------+-------------------+-------------------+-------+---------+\n",
|
||||
"| 1 | NIC | 18:9d:a1:f0:6f:0b | 192.168.1.110/24 | 100 | Enabled |\n",
|
||||
"| 2 | NIC | 9e:b2:c8:04:d8:97 | 192.168.10.110/24 | 100 | Enabled |\n",
|
||||
"| 1 | NIC | 92:17:67:5f:09:f0 | 192.168.1.110/24 | 100 | Enabled |\n",
|
||||
"| 2 | NIC | 64:6f:aa:ba:cb:d0 | 192.168.10.110/24 | 100 | Enabled |\n",
|
||||
"+------+------+-------------------+-------------------+-------+---------+\n",
|
||||
"+---------------------------+\n",
|
||||
"| security_suite Open Ports |\n",
|
||||
@@ -567,7 +517,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 13,
|
||||
"execution_count": 12,
|
||||
"id": "66b267d6-2308-486a-b9aa-cb8d3bcf0753",
|
||||
"metadata": {
|
||||
"tags": []
|
||||
@@ -582,7 +532,7 @@
|
||||
"+-------------+-------------------+-------------------+\n",
|
||||
"| IP Address | MAC Address | Via |\n",
|
||||
"+-------------+-------------------+-------------------+\n",
|
||||
"| 192.168.1.1 | 3f:c3:3d:00:74:c4 | 18:9d:a1:f0:6f:0b |\n",
|
||||
"| 192.168.1.1 | 7c:0a:49:bd:2d:5f | 92:17:67:5f:09:f0 |\n",
|
||||
"+-------------+-------------------+-------------------+\n"
|
||||
]
|
||||
}
|
||||
@@ -601,7 +551,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 14,
|
||||
"execution_count": 13,
|
||||
"id": "1b5debe8-ef1b-445d-8fa9-6a45568f21f3",
|
||||
"metadata": {
|
||||
"tags": []
|
||||
@@ -636,7 +586,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 15,
|
||||
"execution_count": 14,
|
||||
"id": "495b7de4-b6ce-41a6-9114-f74752ab4491",
|
||||
"metadata": {
|
||||
"tags": []
|
||||
@@ -682,7 +632,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 16,
|
||||
"execution_count": 15,
|
||||
"id": "a38abb71-994e-49e8-8f51-e9a550e95b99",
|
||||
"metadata": {
|
||||
"tags": []
|
||||
@@ -706,7 +656,7 @@
|
||||
"True"
|
||||
]
|
||||
},
|
||||
"execution_count": 16,
|
||||
"execution_count": 15,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
@@ -717,7 +667,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 17,
|
||||
"execution_count": 16,
|
||||
"id": "8388e1e9-30e3-4534-8e5a-c6e9144149d2",
|
||||
"metadata": {
|
||||
"tags": []
|
||||
@@ -750,7 +700,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 18,
|
||||
"execution_count": 17,
|
||||
"id": "ff8e976a-c16b-470c-8923-325713a30d6c",
|
||||
"metadata": {
|
||||
"tags": []
|
||||
@@ -774,7 +724,7 @@
|
||||
"True"
|
||||
]
|
||||
},
|
||||
"execution_count": 18,
|
||||
"execution_count": 17,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
@@ -793,7 +743,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 19,
|
||||
"execution_count": 18,
|
||||
"id": "c4163f8d-6a72-410c-9f5c-4f881b7de45e",
|
||||
"metadata": {
|
||||
"tags": []
|
||||
@@ -817,7 +767,7 @@
|
||||
"True"
|
||||
]
|
||||
},
|
||||
"execution_count": 19,
|
||||
"execution_count": 18,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
@@ -836,7 +786,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 20,
|
||||
"execution_count": 19,
|
||||
"id": "e79a523a-5780-45b6-8798-c434e0e522bd",
|
||||
"metadata": {
|
||||
"tags": []
|
||||
@@ -879,7 +829,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 21,
|
||||
"execution_count": 20,
|
||||
"id": "603cf913-e261-49da-a7dd-85e1bb6dec56",
|
||||
"metadata": {
|
||||
"tags": []
|
||||
@@ -903,7 +853,7 @@
|
||||
"True"
|
||||
]
|
||||
},
|
||||
"execution_count": 21,
|
||||
"execution_count": 20,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
@@ -922,7 +872,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 22,
|
||||
"execution_count": 21,
|
||||
"id": "e047de00-3de4-4823-b26a-2c8d64c7a663",
|
||||
"metadata": {
|
||||
"tags": []
|
||||
@@ -955,7 +905,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 23,
|
||||
"execution_count": 22,
|
||||
"id": "6db355ae-b99a-441b-a2c4-4ffe78f46bff",
|
||||
"metadata": {
|
||||
"tags": []
|
||||
@@ -967,7 +917,7 @@
|
||||
"True"
|
||||
]
|
||||
},
|
||||
"execution_count": 23,
|
||||
"execution_count": 22,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
@@ -986,7 +936,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 24,
|
||||
"execution_count": 23,
|
||||
"id": "a345e000-8842-4827-af96-adc0fbe390fb",
|
||||
"metadata": {
|
||||
"tags": []
|
||||
@@ -1026,7 +976,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 25,
|
||||
"execution_count": 24,
|
||||
"id": "a4f4ff31-590f-40fb-b13d-efaa8c2720b6",
|
||||
"metadata": {
|
||||
"tags": []
|
||||
@@ -1046,7 +996,7 @@
|
||||
"False"
|
||||
]
|
||||
},
|
||||
"execution_count": 25,
|
||||
"execution_count": 24,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
@@ -1065,7 +1015,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 26,
|
||||
"execution_count": 25,
|
||||
"id": "f62b8a4e-fd3b-4059-b108-3d4a0b18f2a0",
|
||||
"metadata": {
|
||||
"tags": []
|
||||
@@ -1098,7 +1048,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 27,
|
||||
"execution_count": 26,
|
||||
"id": "7e53d776-99da-4d2c-a2a7-bd7ce27bff4c",
|
||||
"metadata": {
|
||||
"tags": []
|
||||
@@ -1131,7 +1081,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 28,
|
||||
"execution_count": 27,
|
||||
"id": "d542734b-7582-4af7-8254-bda3de50d091",
|
||||
"metadata": {
|
||||
"tags": []
|
||||
@@ -1155,7 +1105,7 @@
|
||||
"True"
|
||||
]
|
||||
},
|
||||
"execution_count": 28,
|
||||
"execution_count": 27,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
@@ -1166,7 +1116,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 29,
|
||||
"execution_count": 28,
|
||||
"id": "d78e9fe3-02c6-4792-944f-5622e26e0412",
|
||||
"metadata": {
|
||||
"tags": []
|
||||
|
||||
@@ -318,6 +318,12 @@ class HostNode(Node):
|
||||
|
||||
@property
|
||||
def arp(self) -> Optional[ARP]:
|
||||
"""
|
||||
Return the ARP Cache of the HostNode
|
||||
|
||||
:return: ARP Cache for given HostNode
|
||||
:rtype: Optional[ARP]
|
||||
"""
|
||||
return self.software_manager.software.get("ARP")
|
||||
|
||||
def _install_system_software(self):
|
||||
|
||||
@@ -32,4 +32,10 @@ class NetworkNode(Node):
|
||||
|
||||
@property
|
||||
def arp(self) -> Optional[ARP]:
|
||||
"""
|
||||
Return the ARP Cache of the NetworkNode
|
||||
|
||||
:return: ARP Cache for given NetworkNode
|
||||
:rtype: Optional[ARP]
|
||||
"""
|
||||
return self.software_manager.software.get("ARP")
|
||||
|
||||
Reference in New Issue
Block a user