first commit
Change-Id: I8a65ee5527dd16d81e87c8ac5d4bdb471e5e759d
Signed-off-by: lombardof <flombardo@cnit.it>
diff --git a/vimhandler/__init__.py b/vimhandler/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/vimhandler/__init__.py
diff --git a/vimhandler/admin.py b/vimhandler/admin.py
new file mode 100644
index 0000000..2e9690a
--- /dev/null
+++ b/vimhandler/admin.py
@@ -0,0 +1,19 @@
+#
+# Copyright 2018 CNIT - Consorzio Nazionale Interuniversitario per le Telecomunicazioni
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from django.contrib import admin
+
+# Register your models here.
diff --git a/vimhandler/apps.py b/vimhandler/apps.py
new file mode 100644
index 0000000..db0dbdf
--- /dev/null
+++ b/vimhandler/apps.py
@@ -0,0 +1,23 @@
+#
+# Copyright 2018 CNIT - Consorzio Nazionale Interuniversitario per le Telecomunicazioni
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from __future__ import unicode_literals
+
+from django.apps import AppConfig
+
+
+class VimhandlerConfig(AppConfig):
+ name = 'vimhandler'
diff --git a/vimhandler/models.py b/vimhandler/models.py
new file mode 100644
index 0000000..21d5735
--- /dev/null
+++ b/vimhandler/models.py
@@ -0,0 +1,21 @@
+#
+# Copyright 2018 CNIT - Consorzio Nazionale Interuniversitario per le Telecomunicazioni
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from __future__ import unicode_literals
+
+from django.db import models
+
+# Create your models here.
diff --git a/vimhandler/template/config/aws.html b/vimhandler/template/config/aws.html
new file mode 100644
index 0000000..911e927
--- /dev/null
+++ b/vimhandler/template/config/aws.html
@@ -0,0 +1,79 @@
+<div class="panel" id="aws_config" style="display: none;">
+ <h5 class="box-title">
+ <a data-toggle="collapse" data-parent="#accordion" href="#aws_config_collapse">
+ Config parameters
+ </a>
+ </h5>
+ <div id="aws_config_collapse" class="panel-collapse collapse ">
+ <div class="col-lg-6">
+ <div class="row">
+ <div class="form-group">
+ <label for="aws_sdn_ctrl" class="col-sm-4 control-label">SDN Controller</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="aws_sdn_ctrl" name="config_sdn_controller"
+ placeholder="sdn_controller">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="aws_sdn_port_map" class="col-sm-4 control-label">SDN Port Mapping</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="aws_sdn_port_map" name="config_sdn_port_mapping"
+ placeholder="sdn_port_mapping">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="aws_region_name" class="col-sm-4 control-label">Region name</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="aws_region_name" name="config_region_name"
+ placeholder="region_name">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="vpc_cidr_block" class="col-sm-4 control-label">VPC cidr block</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="vpc_cidr_block" name="config_vpc_cidr_block"
+ placeholder="vpc_cidr_block">
+ </div>
+ </div>
+ </div>
+
+ </div>
+
+ <div class="col-lg-6">
+ <div class="row">
+ <div class="form-group">
+ <label for="aws_security_groups" class="col-sm-4 control-label">Security groups</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="aws_security_groups" name="config_security_groups"
+ placeholder="security_groups">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="aws_key_pair" class="col-sm-4 control-label">Key pair</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="aws_key_pair" name="config_key_pair"
+ placeholder="key_pair">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="aws_flavor_info" class="col-sm-4 control-label">Flavor info</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="aws_flavor_info" name="config_flavor_info"
+ placeholder="flavor_info">
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+
diff --git a/vimhandler/template/config/aws_show.html b/vimhandler/template/config/aws_show.html
new file mode 100644
index 0000000..428294a
--- /dev/null
+++ b/vimhandler/template/config/aws_show.html
@@ -0,0 +1,58 @@
+<div class="panel" id="aws_config">
+ <h5 class="box-title">
+ <a data-toggle="collapse" data-parent="#accordion" href="#aws_config_collapse">
+ Config parameters
+ </a>
+ </h5>
+ <div id="aws_config_collapse" class="panel-collapse collapse ">
+ <div class="col-lg-6">
+ <div class="row">
+ <label for="aws_sdn_ctrl" class="col-sm-4 control-label">SDN Controller</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="aws_sdn_ctrl"> {{datacenter.sdn_ctrl||default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+ <label for="aws_sdn_port_map" class="col-sm-4 control-label">SDN Port Mapping</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="aws_sdn_port_map"> {{datacenter.sdn_port_map||default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+ <label for="aws_region_name" class="col-sm-4 control-label">Region name</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="aws_region_name"> {{datacenter.region_name||default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+ <label for="vpc_cidr_block" class="col-sm-4 control-label">VPC cidr block</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="vpc_cidr_block"> {{datacenter.vpc_cidr_block||default:"---" }}</p>
+ </div>
+ </div>
+
+ </div>
+
+ <div class="col-lg-6">
+ <div class="row">
+ <label for="aws_security_groups" class="col-sm-4 control-label">Security groups</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="aws_security_groups"> {{datacenter.security_groups||default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+ <label for="aws_key_pair" class="col-sm-4 control-label">Key pair</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="aws_key_pair"> {{datacenter.key_pair||default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+ <label for="aws_flavor_info" class="col-sm-4 control-label">Flavor info</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="aws_flavor_info"> {{datacenter.flavor_info||default:"---" }}</p>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+
diff --git a/vimhandler/template/config/openstack.html b/vimhandler/template/config/openstack.html
new file mode 100644
index 0000000..63923a0
--- /dev/null
+++ b/vimhandler/template/config/openstack.html
@@ -0,0 +1,198 @@
+<div class="panel" id="openstack_config" style="display: none;">
+ <h5 class="box-title">
+ <a data-toggle="collapse" data-parent="#accordion" href="#openstack_config_collapse">
+ Config parameters
+ </a>
+ </h5>
+ <div id="openstack_config_collapse" class="panel-collapse collapse ">
+
+ <div class="col-lg-6">
+
+ <div class="row">
+ <div class="form-group">
+ <label for="ostack_sdn_ctrl" class="col-sm-4 control-label">SDN Controller</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="ostack_sdn_ctrl" name="config_sdn_controller"
+ placeholder="sdn_controller">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="ostack_ssdn_port_map" class="col-sm-4 control-label">SDN Port Mapping</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="ostack_ssdn_port_map" name="config_sdn_port_mapping"
+ placeholder="sdn_port_mapping">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="ostack_vim_type" class="col-sm-4 control-label">VIM type</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="ostack_vim_type" name="config_vim_type"
+ placeholder="vim_type">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="ostack_security_groups" class="col-sm-4 control-label">Security Groups</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="ostack_security_groups" name="config_security_groups"
+ placeholder="security_groups">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="availability_zone" class="col-sm-4 control-label">Availability Zone</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="availability_zone" name="config_availability_zone"
+ placeholder="availability_zone">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="ostack_region_name" class="col-sm-4 control-label">Region Name</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="ostack_region_name" name="config_region_name"
+ placeholder="region_name">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="option_insecure" class="col-sm-4 control-label">Insecure</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <select id="option_insecure" name="config_insecure" class="form-control">
+ <option value="" disabled selected>None</option>
+ <option value=true>True</option>
+ <option value=false>False</option>
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="use_existing_flavors" class="col-sm-4 control-label">Use existing flavors</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <select id="use_existing_flavors" name="config_use_existing_flavors" class="form-control">
+ <option value="" disabled selected>None</option>
+ <option value=true>True</option>
+ <option value=false>False</option>
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="use_internal_endpoint" class="col-sm-4 control-label">Use internal endpoint</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <select id="use_internal_endpoint" name="config_use_internal_endpoint" class="form-control">
+ <option value="" disabled selected>None</option>
+ <option value=true>True</option>
+ <option value=false>False</option>
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="APIversion" class="col-sm-4 control-label">API version</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="APIversion" name="config_APIversion" placeholder="API version">
+ </div>
+ </div>
+ </div>
+
+ </div>
+ <div class="col-lg-6">
+ <div class="row">
+ <div class="form-group">
+ <label for="project_domain_id" class="col-sm-4 control-label">Project domain id</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="project_domain_id" name="config_project_domain_id"
+ placeholder="project_domain_id">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="project_domain_name" class="col-sm-4 control-label">Project domain name</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="project_domain_name" name="config_project_domain_name"
+ placeholder="project_domain_name">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="user_domain_id" class="col-sm-4 control-label">User domain id</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="user_domain_id" name="config_user_domain_id"
+ placeholder="user_domain_id">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="user_domain_name" class="col-sm-4 control-label">User domain name</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="user_domain_name" name="config_user_domain_name"
+ placeholder="user_domain_name">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="keypair" class="col-sm-4 control-label">Keypair</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="keypair" name="config_keypair" placeholder="Keypair">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="dataplane_physical_net" class="col-sm-4 control-label">Dataplane physical net</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="dataplane_physical_net" name="config_dataplane_physical_net"
+ placeholder="dataplane_physical_net">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="use_floating_ip" class="col-sm-4 control-label">Use floating ip</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <select id="use_floating_ip" name="config_use_floating_ip" class="form-control">
+ <option value="" disabled selected>None</option>
+ <option value=true>True</option>
+ <option value=false>False</option>
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="dataplane_net_vlan_range" class="col-sm-4 control-label">Dataplane net vlan range</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="dataplane_net_vlan_range" name="config_dataplane_net_vlan_range"
+ placeholder="dataplane_net_vlan_range">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="microversion" class="col-sm-4 control-label">Microversion</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="microversion" name="config_microversion"
+ placeholder="Microversion">
+ </div>
+ </div>
+ </div>
+
+ </div>
+</div>
+</div>
\ No newline at end of file
diff --git a/vimhandler/template/config/openstack_show.html b/vimhandler/template/config/openstack_show.html
new file mode 100644
index 0000000..7b39222
--- /dev/null
+++ b/vimhandler/template/config/openstack_show.html
@@ -0,0 +1,130 @@
+<div class="panel" id="openstack_config">
+ <h5 class="box-title">
+ <a data-toggle="collapse" data-parent="#accordion" href="#openstack_config_collapse">
+ Config parameters
+ </a>
+ </h5>
+ <div id="openstack_config_collapse" class="panel-collapse collapse ">
+
+ <div class="col-lg-6">
+
+ <div class="row">
+ <label for="ostack_sdn_ctrl" class="col-sm-4 control-label">SDN Controller:</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="ostack_sdn_ctrl"> {{datacenter.sdn_ctrl|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+ <label for="ostack_ssdn_port_map" class="col-sm-4 control-label">SDN Port Mapping:</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="ostack_ssdn_port_map"> {{datacenter.sdn_port_map|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+ <label for="ostack_security_groups" class="col-sm-4 control-label">Security Groups:</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="ostack_security_groups"> {{datacenter.security_groups|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+ <label for="availability_zone" class="col-sm-4 control-label">Availability Zone:</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="availability_zone"> {{datacenter.availability_zone|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+ <label for="ostack_region_name" class="col-sm-4 control-label">Region Name:</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="ostack_region_name"> {{datacenter.region_name|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+ <label for="option_insecure" class="col-sm-4 control-label">Insecure:</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="option_insecure"> {{datacenter.insecure|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+ <label for="use_existing_flavors" class="col-sm-4 control-label">Use existing flavors:</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="use_existing_flavors"> {{datacenter.use_existing_flavors|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+ <label for="use_internal_endpoint" class="col-sm-4 control-label">Use internal endpoint:</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="use_internal_endpoint"> {{datacenter.use_internal_endpoint|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+ <label for="APIversion" class="col-sm-4 control-label">API version:</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="APIversion"> {{datacenter.APIversion|default:"---" }}</p>
+ </div>
+ </div>
+
+ </div>
+ <div class="col-lg-6">
+ <div class="row">
+
+ <label for="project_domain_id" class="col-sm-4 control-label">Project domain id:</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="project_domain_id"> {{datacenter.project_domain_id|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+
+ <label for="project_domain_name" class="col-sm-4 control-label">Project domain name:</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="project_domain_name"> {{datacenter.project_domain_name|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+
+ <label for="user_domain_id" class="col-sm-4 control-label">User domain id:</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="user_domain_id"> {{datacenter.user_domain_id|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+ <label for="user_domain_name" class="col-sm-4 control-label">User domain name:</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="user_domain_name"> {{datacenter.user_domain_name|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+
+ <label for="keypair" class="col-sm-4 control-label">Keypair:</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="keypair"> {{datacenter.keypair|default:"---" }}</p></div>
+ </div>
+ <div class="row">
+
+ <label for="dataplane_physical_net" class="col-sm-4 control-label">Dataplane physical net:</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="dataplane_physical_net"> {{datacenter.dataplane_physical_net|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+
+ <label for="use_floating_ip" class="col-sm-4 control-label">Use floating ip:</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="use_floating_ip"> {{datacenter.use_floating_ip|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+
+ <label for="dataplane_net_vlan_range" class="col-sm-4 control-label">Dataplane net vlan range:</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="dataplane_net_vlan_range"> {{datacenter.dataplane_net_vlan_range|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+
+ <label for="microversion" class="col-sm-4 control-label">Microversion:</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="microversion"> {{datacenter.microversion|default:"---" }}</p></div>
+ </div>
+ </div>
+ </div>
+</div>
\ No newline at end of file
diff --git a/vimhandler/template/config/openvim.html b/vimhandler/template/config/openvim.html
new file mode 100644
index 0000000..1989665
--- /dev/null
+++ b/vimhandler/template/config/openvim.html
@@ -0,0 +1,27 @@
+<div class="panel" id="openvim_config" style="display: none;">
+ <h5 class="box-title">
+ <a data-toggle="collapse" data-parent="#accordion" href="#openvim_config_collapse">
+ Config parameters
+ </a>
+ </h5>
+ <div id="openvim_config_collapse" class="col-lg-6 panel-collapse collapse ">
+
+ <div class="row ">
+ <div class="form-group">
+ <label for="ov_sdn_ctrl" class="col-sm-4 control-label">SDN Controller</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="ov_sdn_ctrl" name="config_sdn_controller" placeholder="sdn_controller">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="ov_sdn_port_map" class="col-sm-4 control-label">SDN Port Mapping</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="ov_sdn_port_map" name="config_sdn_port_mapping"
+ placeholder="sdn_port_mapping">
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
\ No newline at end of file
diff --git a/vimhandler/template/config/openvim_show.html b/vimhandler/template/config/openvim_show.html
new file mode 100644
index 0000000..dbe57dd
--- /dev/null
+++ b/vimhandler/template/config/openvim_show.html
@@ -0,0 +1,23 @@
+<div class="panel" id="openvim_config" >
+ <h5 class="box-title">
+ <a data-toggle="collapse" data-parent="#accordion" href="#openvim_config_collapse">
+ Config parameters
+ </a>
+ </h5>
+ <div id="openvim_config_collapse" class="col-lg-6 panel-collapse collapse ">
+
+ <div class="row ">
+
+ <label for="ov_sdn_ctrl" class="col-sm-4 control-label">SDN Controller</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="ov_sdn_ctrl"> {{datacenter.sdn_ctrl|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+ <label for="ov_sdn_port_map" class="col-sm-4 control-label">SDN Port Mapping</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="ov_sdn_port_map"> {{datacenter.sdn_port_map|default:"---" }}</p>
+ </div>
+ </div>
+ </div>
+</div>
\ No newline at end of file
diff --git a/vimhandler/template/config/vmware.html b/vimhandler/template/config/vmware.html
new file mode 100644
index 0000000..8e8882f
--- /dev/null
+++ b/vimhandler/template/config/vmware.html
@@ -0,0 +1,148 @@
+<div class="panel" id="vmware_config" style="display: none;">
+ <h5 class="box-title">
+ <a data-toggle="collapse" data-parent="#accordion" href="#vmware_config_collapse">
+ Config parameters
+ </a>
+ </h5>
+ <div id="vmware_config_collapse" class="panel-collapse collapse ">
+ <div class="col-lg-6">
+ <div class="row">
+ <div class="form-group">
+ <label for="vmware_sdn_ctrl" class="col-sm-4 control-label">SDN Controller</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="vmware_sdn_ctrl" name="config_sdn_controller"
+ placeholder="sdn_controller">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="vmware_sdn_port_map" class="col-sm-4 control-label">SDN Port Mapping</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="vmware_sdn_port_map" name="config_sdn_port_mapping"
+ placeholder="sdn_port_mapping">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="orgname" class="col-sm-4 control-label">Org. name</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="orgname" name="config_orgname"
+ placeholder="orgname">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="admin_username" class="col-sm-4 control-label">Admin username</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="admin_username" name="config_admin_username"
+ placeholder="admin_username">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="admin_password" class="col-sm-4 control-label">Admin password</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" type="password" id="admin_password" name="config_admin_password"
+ placeholder="admin_password">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="nsx_manager" class="col-sm-4 control-label">Nsx manager</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="nsx_manager" name="config_nsx_manager"
+ placeholder="nsx_manager">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="nsx_user" class="col-sm-4 control-label">Nsx user</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="nsx_user" name="config_nsx_user"
+ placeholder="nsx_user">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="nsx_password" class="col-sm-4 control-label">Nsx password</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled type="password" class="form-control config-input" id="nsx_password" name="config_nsx_password"
+ placeholder="nsx_password">
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="col-lg-6">
+ <div class="row">
+ <div class="form-group">
+ <label for="vcenter_ip" class="col-sm-4 control-label">Vcenter ip</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="vcenter_ip" name="config_vcenter_ip"
+ placeholder="vcenter_ip">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="vcenter_port" class="col-sm-4 control-label">Vcenter port</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="vcenter_port" name="config_vcenter_port"
+ placeholder="vcenter_port">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="vcenter_user" class="col-sm-4 control-label">Vcenter user</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="vcenter_user" name="config_vcenter_user"
+ placeholder="vcenter_user">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="vcenter_password" class="col-sm-4 control-label">Vcenter password</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled type="password" class="form-control config-input" id="vcenter_password" name="config_vcenter_password"
+ placeholder="vcenter_password">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="vrops_site" class="col-sm-4 control-label">Vrops site</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="vrops_site" name="config_vrops_site"
+ placeholder="vrops_site">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="vrops_user" class="col-sm-4 control-label">Vrops user</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" id="vrops_user" name="config_vrops_user"
+ placeholder="vrops_user">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="vrops_password" class="col-sm-4 control-label">Vrops password</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input disabled class="form-control config-input" type="password" id="vrops_password" name="config_vrops_password"
+ placeholder="vrops_password">
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
\ No newline at end of file
diff --git a/vimhandler/template/config/vmware_show.html b/vimhandler/template/config/vmware_show.html
new file mode 100644
index 0000000..74204c2
--- /dev/null
+++ b/vimhandler/template/config/vmware_show.html
@@ -0,0 +1,114 @@
+<div class="panel" id="vmware_config" style="display: none;">
+ <h5 class="box-title">
+ <a data-toggle="collapse" data-parent="#accordion" href="#vmware_config_collapse">
+ Config parameters
+ </a>
+ </h5>
+ <div id="vmware_config_collapse" class="panel-collapse collapse ">
+ <div class="col-lg-6">
+ <div class="row">
+
+ <label for="vmware_sdn_ctrl" class="col-sm-4 control-label">SDN Controller</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="vmware_sdn_ctrl"> {{datacenter.sdn_ctrl|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+
+ <label for="vmware_sdn_port_map" class="col-sm-4 control-label">SDN Port Mapping</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="vmware_sdn_port_map"> {{datacenter.sdn_port_map|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+
+ <label for="orgname" class="col-sm-4 control-label">Org. name</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="orgname"> {{datacenter.orgname|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+
+ <label for="admin_username" class="col-sm-4 control-label">Admin username</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="admin_username"> {{datacenter.admin_username|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+
+ <label for="admin_password" class="col-sm-4 control-label">Admin password</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="admin_password"> {{datacenter.admin_password|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+
+ <label for="nsx_manager" class="col-sm-4 control-label">Nsx manager</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="nsx_manager"> {{datacenter.nsx_manager|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+
+ <label for="nsx_user" class="col-sm-4 control-label">Nsx user</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="nsx_user"> {{datacenter.nsx_user|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+
+ <label for="nsx_password" class="col-sm-4 control-label">Nsx password</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="nsx_password"> {{datacenter.nsx_password|default:"---" }}</p>
+ </div>
+ </div>
+ </div>
+ <div class="col-lg-6">
+ <div class="row">
+
+ <label for="vcenter_ip" class="col-sm-4 control-label">Vcenter ip</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="vcenter_ip"> {{datacenter.vcenter_ip|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+
+ <label for="vcenter_port" class="col-sm-4 control-label">Vcenter port</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="vcenter_port"> {{datacenter.vcenter_port|default:"---" }}</p></div>
+ </div>
+ <div class="row">
+
+ <label for="vcenter_user" class="col-sm-4 control-label">Vcenter user</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="vcenter_user"> {{datacenter.vcenter_user|default:"---" }}</p></div>
+ </div>
+ <div class="row">
+
+ <label for="vcenter_password" class="col-sm-4 control-label">Vcenter password</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="vcenter_password"> {{datacenter.vcenter_password|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+
+ <label for="vrops_site" class="col-sm-4 control-label">Vrops site</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="vrops_site"> {{datacenter.vrops_site|default:"---" }}</p></div>
+ </div>
+ <div class="row">
+
+ <label for="vrops_user" class="col-sm-4 control-label">Vrops user</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="vrops_user"> {{datacenter.vrops_user|default:"---" }}</p></div>
+ </div>
+ <div class="row">
+
+ <label for="vrops_password" class="col-sm-4 control-label">Vrops password</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="vrops_password"> {{datacenter.vrops_password|default:"---" }}</p>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
\ No newline at end of file
diff --git a/vimhandler/template/modal/vim_details.html b/vimhandler/template/modal/vim_details.html
new file mode 100644
index 0000000..cb0bfa6
--- /dev/null
+++ b/vimhandler/template/modal/vim_details.html
@@ -0,0 +1,20 @@
+<div class="modal" id="modal_show_vim" xmlns="http://www.w3.org/1999/html">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+ <span aria-hidden="true">×</span></button>
+ <h4 class="modal-title" >Vim Details</h4>
+ </div>
+
+ <div class="modal-body" id="modal_show_vim_body">
+
+ </div>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-primary" data-dismiss="modal">Close</button>
+ </div>
+ </div>
+ <!-- /.modal-content -->
+ </div>
+ <!-- /.modal-dialog -->
+</div>
\ No newline at end of file
diff --git a/vimhandler/template/vim_create.html b/vimhandler/template/vim_create.html
new file mode 100644
index 0000000..477f0be
--- /dev/null
+++ b/vimhandler/template/vim_create.html
@@ -0,0 +1,189 @@
+{% extends "base.html" %}
+{% load get %}
+{% load staticfiles %}
+{% block head_base %}
+ {% with skin_css="AdminLTE/dist/css/skins/skin-purple.min.css"%}
+ {{ block.super }}
+ {% endwith %}
+{% endblock %}
+
+{% block body %}
+ {% with skin="purple"%}
+ {{ block.super }}
+ {% endwith %}
+{% endblock %}
+{% block logo_sidebar %}
+ {% with logo_mini="assets/img/osm_small_logo.png" logo="assets/img/OSM-logo.png" %}
+ {{ block.super }}
+ {% endwith %}
+{% endblock %}
+
+
+
+{% block head_block %}
+ {{ block.super }}
+
+{% endblock %}
+{% block title_header_big %}
+ {{ block.super }}
+{% endblock %}
+{% block left_sidebar %}
+
+ {% include 'left_sidebar_base.html' %}
+
+{% endblock %}
+
+
+{% block breadcrumb_body %}
+ {{ block.super }}
+ <li><a href="{% url 'vim:list' %}">Vims</a></li>
+{% endblock %}
+
+{% block content_body %}
+ {{ block.super }}
+
+<div class="row">
+ <div class="col-md-12">
+ <form action='{% url "vim:create" %}' method="post">
+ {% csrf_token %}
+ <div class="box">
+ <div class="box-header with-border">
+ <h3 class="box-title">New VIM Account</h3>
+ <div class="box-tools">
+
+ </div>
+ </div>
+ <div class="box-body">
+
+ <div class="row">
+ <div class="col-lg-6">
+ <div class="row">
+ <div class="form-group">
+ <label for="name" class="col-sm-3 control-label">Name*</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input class="form-control" id="name" name="name" placeholder="VIM name" required>
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="vim_user" class="col-sm-3 control-label">Vim Username*</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input class="form-control" id="vim_user" name="vim_user" placeholder="Vim Username" required>
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="vim_password" class="col-sm-3 control-label">Vim Password*</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input type="password" class="form-control" id="vim_password" name="vim_password" placeholder="Vim Password" required>
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="vim_url" class="col-sm-3 control-label">Vim URL*</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input type="url" class="form-control" id="vim_url" name="vim_url" placeholder="Vim URL" required>
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="vim_type" class="col-sm-3 control-label">Type*</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <select id="vim_type" name="vim_type" class="form-control" onchange="toggleConfig(this)">
+ <option value="openvim">OpenVIM</option>
+ <option value="openstack">Openstack</option>
+ <option value="vmware">VMware vCD</option>
+ <option value="aws">AWS</option>
+ </select>
+ </div>
+ </div>
+ </div>
+
+
+
+
+
+
+ </div>
+ <div class="col-lg-6">
+ <div class="row">
+ <div class="form-group">
+ <label for="vim_tenant_name" class="col-sm-3 control-label">Tenant name*</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input class="form-control" id="vim_tenant_name" name="vim_tenant_name" placeholder="Tenant name" required>
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="description" class="col-sm-3 control-label">Description</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input class="form-control" id="description" name="description" placeholder="Description">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="schema_type" class="col-sm-3 control-label">Schema Type</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input class="form-control" id="schema_type" name="schema_type" placeholder="Schema Type">
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="form-group">
+ <label for="schema_version" class="col-sm-3 control-label">Schema Version</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <input class="form-control" id="schema_version" name="schema_version" placeholder="Schema Version" >
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+ </div>
+ {% include 'config/openvim.html' %}
+ {% include 'config/openstack.html' %}
+ {% include 'config/vmware.html' %}
+ {% include 'config/aws.html' %}
+
+ </div>
+ <div class="box-footer">
+ <button onclick="location.href='{% url 'vim:list' %}'" class="btn btn-default pull-left">Back to VIM Accounts</button>
+ <button class="btn btn-primary pull-right">Create</button>
+ </div>
+ </div>
+ </form>
+ </div>
+
+</div>
+{% endblock %}
+
+{% block resource_block %}
+ {{ block.super }}
+ <!-- Utility JS -->
+
+ <script>
+ $(document).ready(function () {
+ toggleConfig(document.getElementById("vim_type"));
+ });
+ function toggleConfig(element){
+ $('.panel').hide();
+ $('.config-input').prop('disabled', true);
+ var type_selected = element.options[element.selectedIndex].value;
+ console.log("type selected: " + type_selected);
+ var div_config_index = type_selected + '_config';
+ $('#'+div_config_index).show();
+ $('#'+div_config_index+' .config-input').prop('disabled', false);
+ }
+ </script>
+
+{% endblock %}
+
+{% block footer %}
+ {% include "footer.html" %}
+{% endblock %}
\ No newline at end of file
diff --git a/vimhandler/template/vim_list.html b/vimhandler/template/vim_list.html
new file mode 100644
index 0000000..dddde82
--- /dev/null
+++ b/vimhandler/template/vim_list.html
@@ -0,0 +1,105 @@
+{% extends "base.html" %}
+{% load get %}
+{% load staticfiles %}
+
+
+{% block head_block %}
+ {{ block.super }}
+
+{% endblock %}
+{% block title_header_big %}
+ {{ block.super }}
+{% endblock %}
+{% block left_sidebar %}
+
+ {% include 'left_sidebar_base.html' %}
+
+{% endblock %}
+
+
+{% block breadcrumb_body %}
+ {{ block.super }}
+ <li><a href="{% url 'vim:list' %}">Vims</a></li>
+{% endblock %}
+
+{% block content_body %}
+ {{ block.super }}
+ {% include 'modal/vim_details.html' %}
+ {% csrf_token %}
+ <div class="row">
+ <div class="col-md-12">
+
+ <div class="box">
+ <div class="box-header with-border">
+ <h3 class="box-title">Registered VIM</h3>
+ <div class="box-tools">
+ <a href='{% url "vim:create" %}' class="btn btn-block btn-primary btn-sm"><i
+ class="fa fa-plus"></i><span> New VIM</span></a>
+ </div>
+ </div>
+ <div class="box-body">
+ <table id="projects_table" class="table table-bordered table-striped">
+ <thead>
+ <tr>
+ <th>Id</th>
+ <th>Name</th>
+ <th>Type</th>
+ <th>Operational State</th>
+ <th>Description</th>
+ <th>Actions</th>
+ </tr>
+ </thead>
+ <tbody>
+ {% for p in datacenters %}
+
+ <tr>
+
+ <td>{{ p|get:"_id" }}</td>
+ <td>{{ p|get:"name" }}</td>
+ <td>{{ p|get:"vim_type" }}</td>
+ <td>{{ p|get_sub:"_admin,operationalState"}}</td>
+ <td>{{ p|get_sub:"_admin,description" }}</td>
+
+
+ <td>
+ <div class="btn-group">
+ <button type="button" class="btn btn-default"
+ onclick="location.href='{% url "vim:show" vim_id=p|get:"_id" %}'" data-toggle="tooltip" data-placement="top" data-container="body" title="Show Info"><i
+ class="fa fa-info"></i></button>
+ <button type="button" class="btn btn-default"
+ onclick="javascript:deleteVim('{{ p|get:"_id" }}')" data-toggle="tooltip" data-placement="top" data-container="body" title="Delete"><i
+ class="fa fa-trash-o" ></i></button>
+ </div>
+ </td>
+
+ </tr>
+ {% endfor %}
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </div>
+
+ </div>
+{% endblock %}
+
+{% block resource_block %}
+ {{ block.super }}
+ <!-- Utility JS -->
+
+ <script>
+
+ function deleteVim(vim_uuid) {
+ bootbox.confirm("Are you sure want to delete?", function (result) {
+ if (result) {
+ location.href = '/vims/' + vim_uuid + '/delete'
+ }
+ })
+ }
+ </script>
+
+{% endblock %}
+
+{% block footer %}
+ {% include "footer.html" %}
+{% endblock %}
\ No newline at end of file
diff --git a/vimhandler/template/vim_show.html b/vimhandler/template/vim_show.html
new file mode 100644
index 0000000..3d34941
--- /dev/null
+++ b/vimhandler/template/vim_show.html
@@ -0,0 +1,148 @@
+{% extends "base.html" %}
+{% load get %}
+{% load staticfiles %}
+{% block head_base %}
+ {% with skin_css="AdminLTE/dist/css/skins/skin-purple.min.css"%}
+ {{ block.super }}
+ {% endwith %}
+{% endblock %}
+
+{% block body %}
+ {% with skin="purple"%}
+ {{ block.super }}
+ {% endwith %}
+{% endblock %}
+{% block logo_sidebar %}
+ {% with logo_mini="assets/img/osm_small_logo.png" logo="assets/img/OSM-logo.png" %}
+ {{ block.super }}
+ {% endwith %}
+{% endblock %}
+
+
+
+{% block head_block %}
+ {{ block.super }}
+
+{% endblock %}
+{% block title_header_big %}
+ {{ block.super }}
+{% endblock %}
+{% block left_sidebar %}
+
+ {% include 'left_sidebar_base.html' %}
+
+{% endblock %}
+
+
+{% block breadcrumb_body %}
+ {{ block.super }}
+ <li><a href="{% url 'vim:list' %}">Vims</a></li>
+{% endblock %}
+
+{% block content_body %}
+ {{ block.super }}
+
+<div class="row">
+ <div class="col-md-12">
+
+ <div class="box">
+ <div class="box-header with-border">
+ <h3 class="box-title">VIM Account details</h3>
+ <div class="box-tools">
+
+ </div>
+ </div>
+ <div class="box-body">
+
+ <div class="row">
+ <div class="col-lg-6">
+ <div class="row">
+ <label for="name" class="col-sm-3 control-label">Name</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="name"> {{datacenter.name|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+ <label for="vim_user" class="col-sm-3 control-label">Vim Username</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="vim_user"> {{datacenter.vim_user|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+ <label for="vim_url" class="col-sm-3 control-label">Vim URL</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="vim_url"> {{datacenter.vim_url|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+ <label for="vim_type" class="col-sm-3 control-label">Type</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="vim_type"> {{datacenter.vim_type|default:"---" }}</p>
+ </div>
+ </div>
+
+
+ </div>
+ <div class="col-lg-6">
+ <div class="row">
+ <label for="vim_tenant_name" class="col-sm-3 control-label">Tenant name</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="vim_tenant_name"> {{datacenter.vim_tenant_name|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+ <label for="description" class="col-sm-3 control-label">Description</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="description"> {{datacenter.description|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+ <label for="schema_type" class="col-sm-3 control-label">Schema Type</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="schema_type"> {{datacenter.schema_type|default:"---" }}</p>
+ </div>
+ </div>
+ <div class="row">
+ <label for="schema_version" class="col-sm-3 control-label">Schema Version</label>
+ <div class="col-sm-6 input-group input-group-sm">
+ <p id="schema_version"> {{datacenter.schema_version|default:"---" }}</p>
+ </div>
+ </div>
+ </div>
+
+
+ </div>
+ {% if datacenter.vim_type == 'openvim' %}
+ {% include 'config/openvim_show.html' %}
+ {% elif datacenter.vim_type == 'openstack' %}
+ {% include 'config/openstack_show.html' %}
+ {% elif datacenter.vim_type == 'vmware' %}
+ {% include 'config/vmware_show.html' %}
+ {% elif datacenter.vim_type == 'aws' %}
+ {% include 'config/aws_show.html' %}
+ {% endif %}
+ </div>
+ <div class="box-footer">
+ <div class="">
+ <button onclick="location.href='{% url 'vim:list' %}'" class="btn btn-primary">Back to VIM Accounts</button>
+ </div>
+ </div>
+ </div>
+ </div>
+
+</div>
+{% endblock %}
+
+{% block resource_block %}
+ {{ block.super }}
+ <!-- Utility JS -->
+
+ <script>
+
+ </script>
+
+{% endblock %}
+
+{% block footer %}
+ {% include "footer.html" %}
+{% endblock %}
\ No newline at end of file
diff --git a/vimhandler/tests.py b/vimhandler/tests.py
new file mode 100644
index 0000000..79947e6
--- /dev/null
+++ b/vimhandler/tests.py
@@ -0,0 +1,19 @@
+#
+# Copyright 2018 CNIT - Consorzio Nazionale Interuniversitario per le Telecomunicazioni
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/vimhandler/urls.py b/vimhandler/urls.py
new file mode 100644
index 0000000..d993e0a
--- /dev/null
+++ b/vimhandler/urls.py
@@ -0,0 +1,26 @@
+#
+# Copyright 2018 CNIT - Consorzio Nazionale Interuniversitario per le Telecomunicazioni
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from django.conf.urls import url
+from vimhandler import views
+
+urlpatterns = [
+ url(r'^list/', views.list, name='list'),
+ url(r'^create/', views.create, name='create'),
+ url(r'^(?P<vim_id>[0-9a-z-]+)/delete$', views.delete, name='delete'),
+ url(r'^(?P<vim_id>[0-9a-z-]+)', views.show, name='show'),
+
+]
\ No newline at end of file
diff --git a/vimhandler/views.py b/vimhandler/views.py
new file mode 100644
index 0000000..817a052
--- /dev/null
+++ b/vimhandler/views.py
@@ -0,0 +1,91 @@
+#
+# Copyright 2018 CNIT - Consorzio Nazionale Interuniversitario per le Telecomunicazioni
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from django.shortcuts import render, redirect
+from django.contrib.auth.decorators import login_required, permission_required
+from django.http import HttpResponse, JsonResponse
+from lib.osm.osmclient.client import Client
+import json
+import logging
+
+logging.basicConfig(level=logging.DEBUG)
+log = logging.getLogger('helper.py')
+
+@login_required
+def list(request):
+ client = Client()
+ result = client.vim_list()
+ print result
+ result = {
+ "datacenters": result
+ }
+ return __response_handler(request, result, 'vim_list.html')
+
+@login_required
+def create(request):
+ result = {}
+ if request.method == 'GET':
+ return __response_handler(request, result, 'vim_create.html')
+ else:
+ new_vim_dict = request.POST.dict()
+ client = Client()
+ keys = ["schema_version",
+ "schema_type",
+ "name",
+ "vim_url",
+ "vim_type",
+ "vim_user",
+ "vim_password",
+ "vim_tenant_name",
+ "description"]
+ vim_data = dict(filter(lambda i: i[0] in keys and len(i[1]) > 0, new_vim_dict.items()))
+ vim_data['config']={}
+ for k,v in new_vim_dict.items():
+ if str(k).startswith('config_') and len(v) > 0:
+ config_key = k[7:]
+ vim_data['config'][config_key] = v
+ print vim_data
+ result = client.vim_create(vim_data)
+ # TODO 'vim:show', to_redirect=True, vim_id=vim_id
+ return __response_handler(request, result, 'vim:list', to_redirect=True)
+
+@login_required
+def delete(request, vim_id=None):
+ try:
+ client = Client()
+ del_res = client.vim_delete(vim_id)
+ except Exception as e:
+ log.exception(e)
+ return __response_handler(request, {}, 'vim:list', to_redirect=True)
+
+@login_required
+def show(request, vim_id=None):
+ client = Client()
+ datacenter = client.vim_get(vim_id)
+ print datacenter
+ return __response_handler(request, {
+ "datacenter": datacenter
+ }, 'vim_show.html')
+
+
+def __response_handler(request, data_res, url=None, to_redirect=None, *args, **kwargs):
+ raw_content_types = request.META.get('HTTP_ACCEPT', '*/*').split(',')
+ if 'application/json' in raw_content_types:
+ return JsonResponse(data_res)
+ elif to_redirect:
+ return redirect(url, *args, **kwargs)
+ else:
+ return render(request, url, data_res)