mirror of
				https://github.com/Telecominfraproject/ols-nos.git
				synced 2025-10-31 01:57:48 +00:00 
			
		
		
		
	[dhcp_server] add show dhcp server info (#17468)
* add show dhcp server info
This commit is contained in:
		| @@ -7,9 +7,7 @@ | ||||
|         "lease_time": "3600", | ||||
|         "mode": "PORT", | ||||
|         "netmask": "255.255.255.0", | ||||
|         "customized_options": [ | ||||
|             "option60" | ||||
|         ], | ||||
|         "customized_options": "option60", | ||||
|         "state": "enabled" | ||||
|     }, | ||||
|     "DHCP_SERVER_IPV4_CUSTOMIZED_OPTIONS|option60": { | ||||
|   | ||||
| @@ -110,3 +110,42 @@ range3   100.1.1.10  100.1.1.10           1 | ||||
|         assert result.exit_code == 0, "exit code: {}, Exception: {}, Traceback: {}".format(result.exit_code, result.exception, result.exc_info) | ||||
|         assert result.stdout == expected_stdout | ||||
|  | ||||
|     def test_show_dhcp_server_ipv4_info_without_intf(self, mock_db): | ||||
|         expected_stdout = """\ | ||||
| Interface    Mode    Gateway    Netmask          Lease Time(s)  State | ||||
| -----------  ------  ---------  -------------  ---------------  ------- | ||||
| Vlan100      PORT    100.1.1.1  255.255.255.0             3600  enabled | ||||
| """ | ||||
|         runner = CliRunner() | ||||
|         db = clicommon.Db() | ||||
|         db.db = mock_db | ||||
|         result = runner.invoke(show_dhcp_server.dhcp_server.commands["ipv4"].commands["info"], [], obj=db) | ||||
|         assert result.exit_code == 0, "exit code: {}, Exception: {}, Traceback: {}".format(result.exit_code, result.exception, result.exc_info) | ||||
|         assert result.stdout == expected_stdout | ||||
|  | ||||
|     def test_show_dhcp_server_ipv4_info_with_intf(self, mock_db): | ||||
|         expected_stdout = """\ | ||||
| Interface    Mode    Gateway    Netmask          Lease Time(s)  State | ||||
| -----------  ------  ---------  -------------  ---------------  ------- | ||||
| Vlan100      PORT    100.1.1.1  255.255.255.0             3600  enabled | ||||
| """ | ||||
|         runner = CliRunner() | ||||
|         db = clicommon.Db() | ||||
|         db.db = mock_db | ||||
|         result = runner.invoke(show_dhcp_server.dhcp_server.commands["ipv4"].commands["info"], ["Vlan100"], obj=db) | ||||
|         assert result.exit_code == 0, "exit code: {}, Exception: {}, Traceback: {}".format(result.exit_code, result.exception, result.exc_info) | ||||
|         assert result.stdout == expected_stdout | ||||
|  | ||||
|     def test_show_dhcp_server_ipv4_info_with_customized_options(self, mock_db): | ||||
|         expected_stdout = """\ | ||||
| Interface    Mode    Gateway    Netmask          Lease Time(s)  State    Customized Options | ||||
| -----------  ------  ---------  -------------  ---------------  -------  -------------------- | ||||
| Vlan100      PORT    100.1.1.1  255.255.255.0             3600  enabled  option60 | ||||
| """ | ||||
|         runner = CliRunner() | ||||
|         db = clicommon.Db() | ||||
|         db.db = mock_db | ||||
|         result = runner.invoke(show_dhcp_server.dhcp_server.commands["ipv4"].commands["info"], ["Vlan100", "--with_customized_options"], obj=db) | ||||
|         assert result.exit_code == 0, "exit code: {}, Exception: {}, Traceback: {}".format(result.exit_code, result.exception, result.exc_info) | ||||
|         assert result.stdout == expected_stdout | ||||
|  | ||||
|   | ||||
| @@ -79,5 +79,26 @@ def range(db, range_name): | ||||
|     click.echo(tabulate(table, headers=headers)) | ||||
|  | ||||
|  | ||||
| @ipv4.command() | ||||
| @click.argument('dhcp_interface', required=False) | ||||
| @click.option('--with_customized_options', default=False, is_flag=True) | ||||
| @clicommon.pass_db | ||||
| def info(db, dhcp_interface, with_customized_options): | ||||
|     if not dhcp_interface: | ||||
|         dhcp_interface = "*" | ||||
|     headers = ["Interface", "Mode", "Gateway", "Netmask", "Lease Time(s)", "State"] | ||||
|     if with_customized_options: | ||||
|         headers.append("Customized Options") | ||||
|     table = [] | ||||
|     dbconn = db.db | ||||
|     for key in dbconn.keys("CONFIG_DB", "DHCP_SERVER_IPV4|" + dhcp_interface): | ||||
|         entry = dbconn.get_all("CONFIG_DB", key) | ||||
|         interface = key.split("|")[1] | ||||
|         table.append([interface, entry["mode"], entry["gateway"], entry["netmask"], entry["lease_time"], entry["state"]]) | ||||
|         if with_customized_options: | ||||
|             table[-1].append(entry["customized_options"]) | ||||
|     click.echo(tabulate(table, headers=headers)) | ||||
|  | ||||
|  | ||||
| def register(cli): | ||||
|     cli.add_command(dhcp_server) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Xichen96
					Xichen96