From 8d189458788318f616bdd01b4fd83b4f5b021965 Mon Sep 17 00:00:00 2001 From: matthewalanpenning Date: Mon, 8 May 2023 06:15:09 -0400 Subject: [PATCH] v0.0.1 --- CHANGELOG.md | 2 ++ lxconsole/api/containers.py | 50 +++++++++++++++------------- lxconsole/api/virtual_machines.py | 50 +++++++++++++++------------- lxconsole/templates/main.html | 2 +- lxconsole/templates/modals/main.html | 2 +- roadmap.txt | 1 + 6 files changed, 57 insertions(+), 50 deletions(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..2fb9d28 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,2 @@ +# v0.0.1 +- Fix an undefind varaible error when loading list of containers without root disk \ No newline at end of file diff --git a/lxconsole/api/containers.py b/lxconsole/api/containers.py index 28d0b69..8f079ee 100644 --- a/lxconsole/api/containers.py +++ b/lxconsole/api/containers.py @@ -164,42 +164,44 @@ def api_containers_endpoint(endpoint): return jsonify(instances) i = 0 for instance in instances['metadata']: + instances['metadata'][i]['memory'] = '' + instances['metadata'][i]['disk'] = '' + instances['metadata'][i]['ipv4_addresses'] = [] + instances['metadata'][i]['ipv6_addresses'] = [] + if 'state' in instance.keys(): + + # Set memory information if exists if 'memory' in instance['state'].keys(): if 'usage' in instance['state']['memory'].keys(): memory = instance['state']['memory']['usage'] - if memory: - instances['metadata'][i]['memory'] = memory - else: - instances['metadata'][i]['memory'] = "" + if memory: + instances['metadata'][i]['memory'] = memory + # Set disk information if exists if 'disk' in instance['state'].keys(): if 'root' in instance['state']['disk'].keys(): if 'usage' in instance['state']['disk']['root'].keys(): disk = instance['state']['disk']['root']['usage'] - if disk: - instances['metadata'][i]['disk'] = disk - else: - instances['metadata'][i]['disk'] = '' + if disk: + instances['metadata'][i]['disk'] = disk + # Set network information if exists if 'network' in instance['state'].keys(): networks = instance['state']['network'] - if networks: - instances['metadata'][i]['ipv4_addresses'] = [] - for network in networks.keys(): - addresses = networks[network]['addresses'] - for address in addresses: - if address['family'] == 'inet' and address['scope'] == 'global': - instances['metadata'][i]['ipv4_addresses'] += [ address['address'] + ' (' + network + ')' ] - instances['metadata'][i]['ipv6_addresses'] = [] - for network in networks.keys(): - addresses = networks[network]['addresses'] - for address in addresses: - if address['family'] == 'inet6' and address['scope'] == 'global': - instances['metadata'][i]['ipv6_addresses'] += [ address['address'] + ' (' + network + ')' ] - else: - instances['metadata'][i]['ipv4_addresses'] = [] - instances['metadata'][i]['ipv6_addresses'] = [] + if networks: + instances['metadata'][i]['ipv4_addresses'] = [] + for network in networks.keys(): + addresses = networks[network]['addresses'] + for address in addresses: + if address['family'] == 'inet' and address['scope'] == 'global': + instances['metadata'][i]['ipv4_addresses'] += [ address['address'] + ' (' + network + ')' ] + instances['metadata'][i]['ipv6_addresses'] = [] + for network in networks.keys(): + addresses = networks[network]['addresses'] + for address in addresses: + if address['family'] == 'inet6' and address['scope'] == 'global': + instances['metadata'][i]['ipv6_addresses'] += [ address['address'] + ' (' + network + ')' ] i += 1 return jsonify(instances) diff --git a/lxconsole/api/virtual_machines.py b/lxconsole/api/virtual_machines.py index 433b4bd..82eae7d 100644 --- a/lxconsole/api/virtual_machines.py +++ b/lxconsole/api/virtual_machines.py @@ -129,42 +129,44 @@ def api_virtual_machines_endpoint(endpoint): return jsonify(instances) i = 0 for instance in instances['metadata']: + instances['metadata'][i]['memory'] = '' + instances['metadata'][i]['disk'] = '' + instances['metadata'][i]['ipv4_addresses'] = [] + instances['metadata'][i]['ipv6_addresses'] = [] + if 'state' in instance.keys(): + + # Set memory information if exists if 'memory' in instance['state'].keys(): if 'usage' in instance['state']['memory'].keys(): memory = instance['state']['memory']['usage'] - if memory: - instances['metadata'][i]['memory'] = memory - else: - instances['metadata'][i]['memory'] = "" + if memory: + instances['metadata'][i]['memory'] = memory + # Set disk information if exists if 'disk' in instance['state'].keys(): if 'root' in instance['state']['disk'].keys(): if 'usage' in instance['state']['disk']['root'].keys(): disk = instance['state']['disk']['root']['usage'] - if disk: - instances['metadata'][i]['disk'] = disk - else: - instances['metadata'][i]['disk'] = '' + if disk: + instances['metadata'][i]['disk'] = disk + # Set network information if exists if 'network' in instance['state'].keys(): networks = instance['state']['network'] - if networks: - instances['metadata'][i]['ipv4_addresses'] = [] - for network in networks.keys(): - addresses = networks[network]['addresses'] - for address in addresses: - if address['family'] == 'inet' and address['scope'] == 'global': - instances['metadata'][i]['ipv4_addresses'] += [ address['address'] + ' (' + network + ')' ] - instances['metadata'][i]['ipv6_addresses'] = [] - for network in networks.keys(): - addresses = networks[network]['addresses'] - for address in addresses: - if address['family'] == 'inet6' and address['scope'] == 'global': - instances['metadata'][i]['ipv6_addresses'] += [ address['address'] + ' (' + network + ')' ] - else: - instances['metadata'][i]['ipv4_addresses'] = [] - instances['metadata'][i]['ipv6_addresses'] = [] + if networks: + instances['metadata'][i]['ipv4_addresses'] = [] + for network in networks.keys(): + addresses = networks[network]['addresses'] + for address in addresses: + if address['family'] == 'inet' and address['scope'] == 'global': + instances['metadata'][i]['ipv4_addresses'] += [ address['address'] + ' (' + network + ')' ] + instances['metadata'][i]['ipv6_addresses'] = [] + for network in networks.keys(): + addresses = networks[network]['addresses'] + for address in addresses: + if address['family'] == 'inet6' and address['scope'] == 'global': + instances['metadata'][i]['ipv6_addresses'] += [ address['address'] + ' (' + network + ')' ] i += 1 return jsonify(instances) diff --git a/lxconsole/templates/main.html b/lxconsole/templates/main.html index 209af42..4cd4237 100644 --- a/lxconsole/templates/main.html +++ b/lxconsole/templates/main.html @@ -40,7 +40,7 @@ diff --git a/lxconsole/templates/modals/main.html b/lxconsole/templates/modals/main.html index e72a97d..00e4123 100644 --- a/lxconsole/templates/modals/main.html +++ b/lxconsole/templates/modals/main.html @@ -13,7 +13,7 @@

Lxconsole is an open source management console providing a web-based user interface capable of managing multiple LXD servers from a single location.

- Version: v0.0.0
+ Version: v0.0.1
License: AGPL-3.0
URL: https://lxconsole.com

diff --git a/roadmap.txt b/roadmap.txt index 5c9aa26..8961292 100644 --- a/roadmap.txt +++ b/roadmap.txt @@ -27,6 +27,7 @@ # 0.7.0 - Add expandable datatables rows where appropriate for additional information +- Include rename tasks in tables with edit form on new tab # 1.0.0 - Stable release