From 1a2f3786bf0ca42ff17a9f8b8af6a5ea52c483fc Mon Sep 17 00:00:00 2001 From: Benjamin Bertrand <benjamin.bertrand@esss.se> Date: Mon, 23 Apr 2018 09:52:42 +0200 Subject: [PATCH] Add extra default device types - rename "Virtual" to "Virtual Machine" - add "Virtual IOC" - add several physical devices (Switch, Industrial PC IOC, MicroTCA, VME, PLC) --- app/defaults.py | 9 +++++++ app/network/views.py | 2 +- app/static/js/hosts.js | 6 ++--- ...8f135d5efde2_rename_virtual_device_type.py | 26 +++++++++++++++++++ 4 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 migrations/versions/8f135d5efde2_rename_virtual_device_type.py diff --git a/app/defaults.py b/app/defaults.py index e70db5b..2f7f20c 100644 --- a/app/defaults.py +++ b/app/defaults.py @@ -21,5 +21,14 @@ defaults = [ models.Action(name='Set as parent'), models.Action(name='Update'), + models.DeviceType(name='Physical'), + models.DeviceType(name='Virtual Machine'), + models.DeviceType(name='Switch'), + models.DeviceType(name='Virtual IOC'), + models.DeviceType(name='Industrial PC IOC'), + models.DeviceType(name='MicroTCA IOC'), + models.DeviceType(name='VME IOC'), + models.DeviceType(name='PLC'), + models.Tag(name='gateway', admin_only=True), ] diff --git a/app/network/views.py b/app/network/views.py index be5780e..747d9f0 100644 --- a/app/network/views.py +++ b/app/network/views.py @@ -111,7 +111,7 @@ def edit_host(name): @login_groups_accepted('admin', 'create') def create_interface(hostname): host = models.Host.query.filter_by(name=hostname).first_or_404() - random_mac = host.device_type.name == 'Virtual' + random_mac = host.device_type.name.startsWith('Virtual') form = InterfaceForm(request.form, host_id=host.id, interface_name=host.name, random_mac=random_mac) if form.validate_on_submit(): diff --git a/app/static/js/hosts.js b/app/static/js/hosts.js index 9ec72da..01e17b5 100644 --- a/app/static/js/hosts.js +++ b/app/static/js/hosts.js @@ -15,10 +15,10 @@ $(document).ready(function() { // And check / uncheck random_mac checkbox function update_device_type_attributes() { var device_type = $("#device_type_id option:selected").text(); - if( device_type.startsWith("Physical") ) { - $("#random_mac").prop("checked", false).change(); - } else { + if( device_type.startsWith("Virtual") ) { $("#random_mac").prop("checked", true).change(); + } else { + $("#random_mac").prop("checked", false).change(); } } diff --git a/migrations/versions/8f135d5efde2_rename_virtual_device_type.py b/migrations/versions/8f135d5efde2_rename_virtual_device_type.py new file mode 100644 index 0000000..8d18bd5 --- /dev/null +++ b/migrations/versions/8f135d5efde2_rename_virtual_device_type.py @@ -0,0 +1,26 @@ +"""Rename Virtual device type + +Revision ID: 8f135d5efde2 +Revises: 573560351033 +Create Date: 2018-04-23 07:43:43.195703 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '8f135d5efde2' +down_revision = '573560351033' +branch_labels = None +depends_on = None + + +def upgrade(): + device_type = sa.sql.table('device_type', sa.sql.column('id'), sa.sql.column('name')) + op.execute(device_type.update().where(device_type.c.name == 'Virtual').values(name='Virtual Machine')) + + +def downgrade(): + device_type = sa.sql.table('device_type', sa.sql.column('id'), sa.sql.column('name')) + op.execute(device_type.update().where(device_type.c.name == 'Virtual Machine').values(name='Virtual')) -- GitLab