diff --git a/ui/public/locales/en.json b/ui/public/locales/en.json
index 372cd3166d6c..1abf913e494e 100644
--- a/ui/public/locales/en.json
+++ b/ui/public/locales/en.json
@@ -111,6 +111,7 @@
"label.action.delete.firewall.processing": "Deleting Firewall....",
"label.action.delete.ingress.rule": "Delete Ingress Rule",
"label.action.delete.ingress.rule.processing": "Deleting Ingress Rule....",
+"label.action.delete.interface.static.route": "Remove Tungsten Fabric interface static route",
"label.action.delete.ip.range": "Delete IP Range",
"label.action.delete.ip.range.processing": "Deleting IP Range....",
"label.action.delete.iso": "Delete ISO",
@@ -119,6 +120,7 @@
"label.action.delete.load.balancer.processing": "Deleting Load Balancer....",
"label.action.delete.network": "Delete Network",
"label.action.delete.network.processing": "Deleting Network....",
+"label.action.delete.network.static.route": "Remove Tungsten Fabric network static route",
"label.action.delete.nexusvswitch": "Delete Nexus 1000v",
"label.action.delete.nic": "Remove NIC",
"label.action.delete.node": "Delete node",
@@ -138,6 +140,7 @@
"label.action.delete.system.service.offering": "Delete System Service Offering",
"label.action.delete.template": "Delete Template",
"label.action.delete.template.processing": "Deleting Template....",
+"label.action.delete.tungsten.router.table": "Remove Tungsten Fabric route table from network",
"label.action.delete.user": "Delete User",
"label.action.delete.user.processing": "Deleting User....",
"label.action.delete.volume": "Delete Volume",
@@ -213,7 +216,7 @@
"label.action.get.diagnostics": "Get Diagnostics Data",
"label.action.image.store.read.only": "Make Image store read-only",
"label.action.image.store.read.write": "Make Image store read-write",
-"label.action.import.export.instances":"Import-Export Instances",
+"label.action.import.export.instances": "Import-Export Instances",
"label.action.iso.permission": "Update ISO Permissions",
"label.action.iso.share": "Update ISO Sharing",
"label.action.list.nexusvswitch": "List Nexus 1000v",
@@ -333,6 +336,7 @@
"label.add.ldap.list.users": "List LDAP users",
"label.add.list.name": "ACL List Name",
"label.add.load.balancer": "Add Load Balancer",
+"label.add.logical.network": "Add Network to Logical router",
"label.add.management.ip.range": "Add Management IP Range",
"label.add.more": "Add More",
"label.add.netscaler.device": "Add Netscaler device",
@@ -379,6 +383,19 @@
"label.add.to.group": "Add to group",
"label.add.traffic": "Add Traffic",
"label.add.traffic.type": "Add Traffic Type",
+"label.add.tungsten.address.group": "Add Address Group",
+"label.add.tungsten.fabric.route": "Add Tungsten Fabric network routing table",
+"label.add.tungsten.firewall.policy": "Add Firewall Policy",
+"label.add.tungsten.firewall.rule": "Add Firewall Rule",
+"label.add.tungsten.interface.route": "Add Tungsten Fabric interface routing table",
+"label.add.tungsten.interface.static.route": "Add Tungsten Fabric interface static route",
+"label.add.tungsten.logical.route": "Add Logical Router",
+"label.add.tungsten.network.static.route": "Add Tungsten Fabric network static route",
+"label.add.tungsten.policy": "Add Policy",
+"label.add.tungsten.policy.set": "Add Application Policy Set",
+"label.add.tungsten.router.table": "Add route table to this network",
+"label.add.tungsten.service.group": "Add Service Group",
+"label.add.tungsten.tag.type": "Add Tag Type",
"label.add.ucs.manager": "Add UCS Manager",
"label.add.user": "Add User",
"label.add.vlan": "Add VLAN",
@@ -414,6 +431,7 @@
"label.additional.networks": "Additional Networks",
"label.addnewnetworks": "Add new networks",
"label.address": "Address",
+"label.address.group": "Address Group",
"label.admin": "Domain Admin",
"label.admin.accounts": "Admin Accounts",
"label.advanced": "Advanced",
@@ -454,7 +472,11 @@
"label.apikey": "API Key",
"label.app.cookie": "AppCookie",
"label.app.name": "CloudStack",
+"label.application.policy.set": "Application Policy Set",
"label.apply": "Apply",
+"label.apply.tungsten.firewall.policy": "Apply Firewall Policy",
+"label.apply.tungsten.network.policy": "Apply Network Policy",
+"label.apply.tungsten.tag": "Apply tag",
"label.archive": "Archive",
"label.archive.alerts": "Archive alerts",
"label.archive.events": "Archive events",
@@ -592,6 +614,7 @@
"label.code": "Code",
"label.comma.separated.list.description": "Enter comma-separated list of commands",
"label.comments": "Comments",
+"label.communities": "Communities",
"label.community": "Community",
"label.complete": "Complete",
"label.compute": "Compute",
@@ -611,7 +634,17 @@
"label.confirm.delete.loadbalancer.rules": "Please confirm you wish to delete the selected load balancing rules",
"label.confirm.delete.portforward.rules": "Please confirm you wish to delete the selected port-forward rules",
"label.confirm.delete.templates": "Please confirm you wish to delete the selected templates",
+"label.confirm.delete.tungsten.address.group": "Please confirm that you would like to delete this Address Group",
+"label.confirm.delete.tungsten.firewall.policy": "Please confirm that you would like to delete this Firewall Policy",
+"label.confirm.delete.tungsten.policy": "Please confirm that you would like to delete this Policy",
+"label.confirm.delete.tungsten.policy.set": "Please confirm that you would like to delete this Application Policy Set",
+"label.confirm.delete.tungsten.service.group": "Please confirm that you would like to delete this Service Group",
+"label.confirm.delete.tungsten.tag": "Please confirm that you would like to delete this Tag",
+"label.confirm.delete.tungsten.tag.type": "Please confirm that you would like to delete this Tag Type",
"label.confirm.release.public.ip.addresses": "Please confirm you wish to release the selected public IP addresses",
+"label.confirm.remove.logical.router": "Please confirm that you would like to delete this Logical Router",
+"label.confirm.remove.network.route.table": "Please confirm that you would like to delete this network Route Table",
+"label.confirm.remove.route.table": "Please confirm that you would like to delete this Interface Route Table",
"label.confirmacceptinvitation": "Please confirm you wish to join this project",
"label.confirmation": "Confirmation",
"label.confirmdeclineinvitation": "Are you sure you want to decline this project invitation?",
@@ -742,6 +775,14 @@
"label.delete.snapshot.policy": "Delete Snapshot Policy",
"label.delete.srx": "Delete SRX",
"label.delete.sslcertificate": "Delete SSL Certificate",
+"label.delete.tag": "Remove tag",
+"label.delete.tungsten.address.group": "Delete Address Group",
+"label.delete.tungsten.fabric.tag": "Delete Tag",
+"label.delete.tungsten.fabric.tag.type": "Delete Tag type",
+"label.delete.tungsten.firewall.policy": "Delete Firewall Policy",
+"label.delete.tungsten.policy": "Delete Policy",
+"label.delete.tungsten.policy.set": "Delete Policy Set",
+"label.delete.tungsten.service.group": "Delete Service Group",
"label.delete.ucs.manager": "Delete UCS Manager",
"label.delete.volumes": "Data Volumes to be deleted",
"label.delete.vpn.connection": "Delete VPN connection",
@@ -758,18 +799,24 @@
"label.demote.project.owner": "Demote account to Regular role",
"label.demote.project.owner.user": "Demote user to Regular role",
"label.deny": "Deny",
-"label.deployasis":"Read VM settings from OVA",
+"label.deployasis": "Read VM settings from OVA",
"label.deploymentplanner": "Deployment planner",
"label.desc.importexportinstancewizard": "Import and export instances to/from an existing VMware cluster.",
"label.description": "Description",
"label.destcidr": "Destination CIDR",
+"label.destendport": "Destination End Port",
"label.destination": "Destination",
"label.destinationphysicalnetworkid": "Destination physical network ID",
"label.destinationzoneid": "Destination Zone",
+"label.destipprefix": "Destination Network Address",
+"label.destipprefixlen": "Destination Prefix Length",
+"label.destnetwork": "Destination Network",
+"label.destport": "Destination Ports",
"label.destroy": "Destroy",
"label.destroy.kubernetes.cluster": "Destroy Kubernetes cluster",
"label.destroy.router": "Destroy router",
"label.destroyvmgraceperiod": "Destroy VM Grace Period",
+"label.deststartport": "Destination Start Port",
"label.detaching.disk": "Detaching Disk",
"label.details": "Details",
"label.deviceid": "Device ID",
@@ -779,6 +826,7 @@
"label.direct.attached.public.ip": "Direct Attached Public IP",
"label.direct.ips": "Shared Network IPs",
"label.directdownload": "Direct Download",
+"label.direction": "Direction",
"label.disable.autoscale": "Disable Autoscale",
"label.disable.host": "Disable Host",
"label.disable.network.offering": "Disable network offering",
@@ -950,7 +998,11 @@
"label.filterby": "Filter by",
"label.fingerprint": "FingerPrint",
"label.firewall": "Firewall",
+"label.firewall.policy": "Firewall Policy",
+"label.firewallpolicy": "Firewall Policy",
+"label.firewallpolicyuuid": "Apply Firewall Policy",
"label.firewallrule": "Firewall Rule",
+"label.firewallruleuuid": "Firewall Rule",
"label.firstname": "First Name",
"label.firstname.lower": "firstname",
"label.fix.errors": "Fix errors",
@@ -1124,6 +1176,7 @@
"label.instanceport": "Instance Port",
"label.instances": "Instances",
"label.instanciate.template.associate.profile.blade": "Instanciate Template and Associate Profile to Blade",
+"label.interface.route.table": "Interface Route Table",
"label.intermediate.certificate": "Intermediate certificate",
"label.internal.dns.1": "Internal DNS 1",
"label.internal.dns.2": "Internal DNS 2",
@@ -1162,6 +1215,8 @@
"label.ipaddress1": "IP Address",
"label.ipaddress2": "IP Address",
"label.iplimit": "Public IP Limits",
+"label.ipprefix": "IP Prefix",
+"label.ipprefixlength": "IP Prefix Length",
"label.ips": "IPs",
"label.ipsec.splitconnections": "Split Connections",
"label.ipsecpsk": "IPsec Preshared-Key",
@@ -1316,6 +1371,7 @@
"label.local.storage.enabled.system.vms": "Enable local storage for System VMs",
"label.localstorageenabled": "Enable local storage for User VMs",
"label.localstorageenabledforsystemvm": "Enable local storage for System VMs",
+"label.logical.router": "Logical Router",
"label.login": "Login",
"label.login.portal": "Portal Login",
"label.login.single.signon": "Single Sign-On",
@@ -1492,6 +1548,8 @@
"label.network.offering.display.text": "Network Offering Display Text",
"label.network.offering.name": "Network Offering Name",
"label.network.offerings": "Network Offerings",
+"label.network.policy": "Network Policy",
+"label.network.route.table": "Network Route Table",
"label.network.selection": "Network Selection",
"label.network.service.providers": "Network Service Providers",
"label.networkcidr": "Network CIDR",
@@ -1513,6 +1571,7 @@
"label.networks": "Networks",
"label.networkspeed": "Network Speed",
"label.networktype": "Network Type",
+"label.networkuuid": "Network",
"label.networkwrite": "Network Write",
"label.new": "New",
"label.new.instance.group": "New Instance Group",
@@ -1657,6 +1716,7 @@
"label.podid": "Pod",
"label.podname": "Pod name",
"label.pods": "Pods",
+"label.policy": "Policy",
"label.port": "Port",
"label.port.forwarding.policies": "Port forwarding policies",
"label.port.range": "Port Range",
@@ -1823,10 +1883,14 @@
"label.remove.egress.rule": "Remove egress rule",
"label.remove.from.load.balancer": "Removing instance from load balancer",
"label.remove.ingress.rule": "Remove ingress rule",
+"label.remove.interface.route.table": "Remove Tungsten Interface route table",
"label.remove.ip.range": "Remove IP range",
"label.remove.ldap": "Remove LDAP",
+"label.remove.logical.network": "Remove Network from Logical router",
+"label.remove.logical.router": "Remove Logical Router",
"label.remove.management.ip.range": "Remove Management IP Range",
"label.remove.network.offering": "Remove network offering",
+"label.remove.network.route.table": "Remove Tungsten Fabric network routing table",
"label.remove.pf": "Remove port forwarding rule",
"label.remove.project.account": "Remove account from project",
"label.remove.project.role": "Remove project role",
@@ -1838,6 +1902,10 @@
"label.remove.static.route": "Remove static route",
"label.remove.this.physical.network": "Remove this physical network",
"label.remove.tier": "Remove tier",
+"label.remove.tungsten.firewall.policy": "Remove Firewall Policy",
+"label.remove.tungsten.firewall.rule": "Remove Firewall Rule",
+"label.remove.tungsten.network.policy": "Remove Network Policy",
+"label.remove.tungsten.tag": "Remove Tag",
"label.remove.vm.from.lb": "Remove VM from load balancer rule",
"label.remove.vm.load.balancer": "Remove VM from load balancer",
"label.remove.vmware.datacenter": "Remove VMware Datacenter",
@@ -1894,6 +1962,9 @@
"label.rootdiskcontrollertype": "Root disk controller",
"label.rootdiskcontrollertypekvm": "Root disk controller",
"label.rootdisksize": "Root disk size (GB)",
+"label.routenexthop": "Route next hop",
+"label.routenexthoptype": "Route next hop type",
+"label.routeprefix": "Route prefix",
"label.router.health.check.last.updated": "Last updated",
"label.router.health.check.name": "Check name",
"label.router.health.check.success": "Success",
@@ -1986,10 +2057,12 @@
"label.semanticversion": "Semantic version",
"label.sent": "Date",
"label.sentbytes": "Bytes Sent",
+"label.sequence": "Sequence",
"label.server": "Server",
"label.server.certificate": "Server certificate",
"label.service.connectivity.distributedroutercapabilitycheckbox": "Distributed Router",
"label.service.connectivity.regionlevelvpccapabilitycheckbox": "Region Level VPC",
+"label.service.group": "Service Group",
"label.service.lb.elasticlbcheckbox": "Elastic LB",
"label.service.lb.inlinemodedropdown": "Mode",
"label.service.lb.lbisolationdropdown": "LB isolation",
@@ -2057,6 +2130,11 @@
"label.specifyvlan": "Specify VLAN",
"label.splitconnections": "Split Connections",
"label.sr.name": "SR Name-Label",
+"label.srcendport": "Source End Port",
+"label.srcipprefix": "Source Network Address",
+"label.srcipprefixlen": "Source Prefix Length",
+"label.srcnetwork": "Source Network",
+"label.srcstartport": "Source Start Port",
"label.srx": "SRX",
"label.srx.details": "SRX details",
"label.srx.firewall": "Juniper SRX Firewall",
@@ -2158,10 +2236,13 @@
"label.system.vms": "System VMs",
"label.system.wide.capacity": "System-wide capacity",
"label.systemvmtype": "System VM Type",
+"label.tag": "Tag",
"label.tag.key": "Tag Key",
+"label.tag.type": "Tag Type",
"label.tag.value": "Tag Value",
"label.tagged": "Tagged",
"label.tags": "Tags",
+"label.taguuid": "Tag",
"label.target.iqn": "Target IQN",
"label.tariffactions": "Actions",
"label.tariffvalue": "Tariff Value",
@@ -2235,6 +2316,21 @@
"label.transportzoneuuid": "Transport Zone Uuid",
"label.try.again": "Try Again",
"label.tuesday": "Tuesday",
+"label.tungsten.fabric": "Tungsten Fabric",
+"label.tungsten.fabric.provider": "Tungsten Fabric Provider",
+"label.tungsten.fabric.routing": "Tungsten Fabric Routing",
+"label.tungsten.interface.router.table": "Interface route table",
+"label.tungsten.network.router.table": "Network route table",
+"label.tungsten.provider": "Tungsten provider",
+"label.tungsten.provider.gateway": "Tungsten provider gateway",
+"label.tungsten.provider.hostname": "Tungsten provider hostname",
+"label.tungsten.provider.introspectport": "Tungsten provider introspect port",
+"label.tungsten.provider.name": "Tungsten provider name",
+"label.tungsten.provider.port": "Tungsten provider port",
+"label.tungsten.provider.vrouterport": "Tungsten provider vrouter port",
+"label.tungsten.router.table": "Router Table",
+"label.tungsten.static.routes": "Static Routes",
+"label.tungstenvms": "VMs",
"label.type": "Type",
"label.type.id": "Type ID",
"label.ucs": "UCS",
@@ -2498,9 +2594,11 @@
"message.action.delete.external.load.balancer": "Please confirm that you would like to remove this external load balancer. Warning: If you are planning to add back the same external load balancer, you must reset usage data on the device.",
"message.action.delete.ingress.rule": "Please confirm that you want to delete this ingress rule.",
"message.action.delete.instance.group": "Please confirm that you want to delete the instance group",
+"message.action.delete.interface.static.route": "Please confirm that you want to remove this interface Static Route",
"message.action.delete.iso": "Please confirm that you want to delete this ISO.",
"message.action.delete.iso.for.all.zones": "The ISO is used by all zones. Please confirm that you want to delete it from all zones.",
"message.action.delete.network": "Please confirm that you want to delete this network.",
+"message.action.delete.network.static.route": "Please confirm that you want to remove this network Static Route",
"message.action.delete.nexusvswitch": "Please confirm that you want to delete this nexus 1000v",
"message.action.delete.node": "Please confirm that you want to delete this node.",
"message.action.delete.physical.network": "Please confirm that you want to delete this physical network",
@@ -2513,6 +2611,7 @@
"message.action.delete.system.service.offering": "Please confirm that you want to delete this system service offering.",
"message.action.delete.template": "Please confirm that you want to delete this template.",
"message.action.delete.template.for.all.zones": "The template is used by all zones. Please confirm that you want to delete it from all zones.",
+"message.action.delete.tungsten.router.table": "Please confirm that you want to remove Route Table from this network",
"message.action.delete.volume": "Please confirm that you want to delete this volume.",
"message.action.delete.vpn.user": "Please confirm that you want to delete the VPN user.",
"message.action.delete.zone": "Please confirm that you want to delete this zone.",
@@ -2804,6 +2903,8 @@
"message.delete.tag.failed": "Failed to delete tag",
"message.delete.tag.for.networkacl": "Remove tag for NetworkACL",
"message.delete.tag.processing": "Deleting tag...",
+"message.delete.tungsten.policy.rule": "Please confirm that you want to delete Policy Rule?",
+"message.delete.tungsten.tag": "Are you sure you want to remove this Tag from this Policy",
"message.delete.user": "Please confirm that you would like to delete this user.",
"message.delete.vpn.connection": "Please confirm that you want to delete VPN connection",
"message.delete.vpn.customer.gateway": "Please confirm that you want to delete this VPN Customer Gateway",
@@ -2874,9 +2975,14 @@
"message.enter.valid.nic.ip": "Please enter a valid IP address for NIC",
"message.error.access.key": "Please enter Access Key",
"message.error.add.guest.network": "Either IPv4 fields or IPv6 fields need to be filled when adding a guest network",
+"message.error.add.interface.static.route": "Adding interface Static Route failed",
+"message.error.add.network.static.route": "Adding network Static Route failed",
+"message.error.add.policy.rule": "Adding Policy rule failed",
"message.error.add.secondary.ipaddress": "There was an error adding the secondary IP Address",
+"message.error.add.tungsten.router.table": "Adding Router Table failed",
"message.error.agent.password": "Please enter Agent password",
"message.error.agent.username": "Please enter Agent username",
+"message.error.apply.tungsten.tag": "Applying Tag failed",
"message.error.binaries.iso.url": "Please enter binaries ISO URL",
"message.error.bucket": "Please enter Bucket",
"message.error.cloudian.console": "Single-Sign-On failed for Cloudian Management Console. Please ask your administrator to fix integration issues.",
@@ -2886,6 +2992,11 @@
"message.error.current.password": "Please enter current password",
"message.error.custom.disk.size": "Please enter custom disk size",
"message.error.date": "Please select a date",
+"message.error.delete.interface.static.route": "Removing interface Static Route failed",
+"message.error.delete.network.static.route": "Removing network Static Route failed",
+"message.error.delete.tungsten.policy.rule": "Deleting Policy rule failed",
+"message.error.delete.tungsten.router.table": "Removing Router Table failed",
+"message.error.delete.tungsten.tag": "Removing Tag failed",
"message.error.description": "Please enter description",
"message.error.discovering.feature": "Exception caught while discovering features",
"message.error.display.text": "Please enter display text",
@@ -3005,6 +3116,7 @@
"message.host.dedicated": "Host Dedicated",
"message.host.dedication.released": "Host dedication released",
"message.info.cloudian.console": "Cloudian Management Console should open in another window",
+"message.infra.setup.tungsten.description": "This zone must contain a tungsten provider because the isolation method is TF",
"message.installwizard.click.retry": "Click the button to retry launch.",
"message.installwizard.copy.whatisacluster": "A cluster provides a way to group hosts. The hosts in a cluster all have identical hardware, run the same hypervisor, are on the same subnet, and access the same shared storage. Virtual machine instances (VMs) can be live-migrated from one host to another within the same cluster, without interrupting service to the user. A cluster is the third-largest organizational unit within a CloudStack™; deployment. Clusters are contained within pods, and pods are contained within zones.
CloudStack™; allows multiple clusters in a cloud deployment, but for a Basic Installation, we only need one cluster.",
"message.installwizard.copy.whatisahost": "A host is a single computer. Hosts provide the computing resources that run the guest virtual machines. Each host has hypervisor software installed on it to manage the guest VMs (except for bare metal hosts, which are a special case discussed in the Advanced Installation Guide). For example, a Linux KVM-enabled server, a Citrix XenServer server, and an ESXi server are hosts. In a Basic Installation, we use a single host running XenServer or KVM.
The host is the smallest organizational unit within a CloudStack™; deployment. Hosts are contained within clusters, clusters are contained within pods, and pods are contained within zones.",
@@ -3039,6 +3151,12 @@
"message.installwizard.tooltip.configureguesttraffic.guestnetmask": "The netmask in use on the subnet that the guests should use",
"message.installwizard.tooltip.configureguesttraffic.gueststartip": "The range of IP addresses that will be available for allocation to guests in this zone. If one NIC is used, these IPs should be in the same CIDR as the pod CIDR.",
"message.installwizard.tooltip.configureguesttraffic.name": "A name for your network",
+"message.installwizard.tooltip.tungsten.provider.gateway": "Tungsten provider gateway is required",
+"message.installwizard.tooltip.tungsten.provider.hostname": "Tungsten provider hostname is required",
+"message.installwizard.tooltip.tungsten.provider.introspectport": "Tungsten provider introspect port is required",
+"message.installwizard.tooltip.tungsten.provider.name": "Tungsten provider name is required",
+"message.installwizard.tooltip.tungsten.provider.port": "Tungsten provider port is required",
+"message.installwizard.tooltip.tungsten.provider.vrouterport": "Tungsten provider vrouter port is required",
"message.instances.managed": "Instances or VMs controlled by CloudStack",
"message.instances.scaled.up.confirm": "Do you really want to scale Up your instance ?",
"message.instances.unmanaged": "Instances or VMs not controlled by CloudStack",
@@ -3065,6 +3183,16 @@
"message.listnsp.not.return.providerid": "error: listNetworkServiceProviders API doesn't return VirtualRouter provider ID",
"message.listview.subselect.multi": "(Ctrl/Cmd-click)",
"message.load.host.failed": "Failed to load hosts",
+"message.loading.add.interface.static.route": "Adding interface Static Route...",
+"message.loading.add.network.static.route": "Adding network Static Route...",
+"message.loading.add.policy.rule": "Adding Policy rule...",
+"message.loading.add.tungsten.router.table": "Adding Router Table...",
+"message.loading.apply.tungsten.tag": "Applying Tag...",
+"message.loading.delete.interface.static.route": "Removing interface Static Route...",
+"message.loading.delete.network.static.route": "Removing network Static Route...",
+"message.loading.delete.tungsten.policy.rule": "Deleting Policy rule...",
+"message.loading.delete.tungsten.router.table": "Removing Router Table...",
+"message.loading.delete.tungsten.tag": "Removing Tag...",
"message.lock.account": "Please confirm that you want to lock this account. By locking the account, all users for this account will no longer be able to manage their cloud resources. Existing resources can still be accessed.",
"message.login.failed": "Login Failed",
"message.migrate.instance.confirm": "Please confirm the host you wish to migrate the virtual instance to.",
@@ -3118,6 +3246,7 @@
"message.no.primary.stores": "No primary storage pools available for migration",
"message.no.projects": "You do not have any projects. Please create a new one from the projects section.",
"message.no.projects.adminonly": "You do not have any projects. Please ask your administrator to create a new project.",
+"message.no.support.tungsten.fabric": "No support for Tungsten Fabric",
"message.number.clusters": "
+
+
+
+
+
diff --git a/ui/src/views/network/tungsten/AddTungstenNetworkStaticRoute.vue b/ui/src/views/network/tungsten/AddTungstenNetworkStaticRoute.vue
new file mode 100644
index 000000000000..5b6a4f3fe543
--- /dev/null
+++ b/ui/src/views/network/tungsten/AddTungstenNetworkStaticRoute.vue
@@ -0,0 +1,168 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you 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
+// "AS IS" 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.
+
+
+
+
+
+
+
+
diff --git a/ui/src/views/network/tungsten/TungstenFabric.vue b/ui/src/views/network/tungsten/TungstenFabric.vue
new file mode 100644
index 000000000000..4a52da7e810c
--- /dev/null
+++ b/ui/src/views/network/tungsten/TungstenFabric.vue
@@ -0,0 +1,753 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you 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
+// "AS IS" 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ui/src/views/network/tungsten/TungstenFabricPolicyRule.vue b/ui/src/views/network/tungsten/TungstenFabricPolicyRule.vue
new file mode 100644
index 000000000000..fac6ee68429a
--- /dev/null
+++ b/ui/src/views/network/tungsten/TungstenFabricPolicyRule.vue
@@ -0,0 +1,437 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you 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
+// "AS IS" 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.
+
+
+
+
+
+
+
+
diff --git a/ui/src/views/network/tungsten/TungstenFabricPolicyTag.vue b/ui/src/views/network/tungsten/TungstenFabricPolicyTag.vue
new file mode 100644
index 000000000000..94a5f6d3114f
--- /dev/null
+++ b/ui/src/views/network/tungsten/TungstenFabricPolicyTag.vue
@@ -0,0 +1,310 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you 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
+// "AS IS" 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.
+
+
+
+
+
+
+
+
diff --git a/ui/src/views/network/tungsten/TungstenFabricRouting.vue b/ui/src/views/network/tungsten/TungstenFabricRouting.vue
new file mode 100644
index 000000000000..62d6871c9117
--- /dev/null
+++ b/ui/src/views/network/tungsten/TungstenFabricRouting.vue
@@ -0,0 +1,218 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you 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
+// "AS IS" 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ui/src/views/network/tungsten/TungstenFabricTableView.vue b/ui/src/views/network/tungsten/TungstenFabricTableView.vue
new file mode 100644
index 000000000000..53dbab4ff41c
--- /dev/null
+++ b/ui/src/views/network/tungsten/TungstenFabricTableView.vue
@@ -0,0 +1,385 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you 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
+// "AS IS" 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.
+
+
+
+
+
+
+
+
diff --git a/ui/src/views/network/tungsten/TungstenInterfaceStaticRoute.vue b/ui/src/views/network/tungsten/TungstenInterfaceStaticRoute.vue
new file mode 100644
index 000000000000..abf23e0ec7ff
--- /dev/null
+++ b/ui/src/views/network/tungsten/TungstenInterfaceStaticRoute.vue
@@ -0,0 +1,196 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you 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
+// "AS IS" 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.
+
+
+
+
+
+
+
+
diff --git a/ui/src/views/network/tungsten/TungstenNetworkAction.vue b/ui/src/views/network/tungsten/TungstenNetworkAction.vue
new file mode 100644
index 000000000000..be1dd1b93d11
--- /dev/null
+++ b/ui/src/views/network/tungsten/TungstenNetworkAction.vue
@@ -0,0 +1,86 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you 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
+// "AS IS" 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.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ui/src/views/network/tungsten/TungstenNetworkRouterTable.vue b/ui/src/views/network/tungsten/TungstenNetworkRouterTable.vue
new file mode 100644
index 000000000000..d6c5b5e06345
--- /dev/null
+++ b/ui/src/views/network/tungsten/TungstenNetworkRouterTable.vue
@@ -0,0 +1,286 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you 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
+// "AS IS" 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.
+
+
+
+
+
+
+
+
diff --git a/ui/src/views/network/tungsten/TungstenNetworkStaticRoute.vue b/ui/src/views/network/tungsten/TungstenNetworkStaticRoute.vue
new file mode 100644
index 000000000000..a81ee371774d
--- /dev/null
+++ b/ui/src/views/network/tungsten/TungstenNetworkStaticRoute.vue
@@ -0,0 +1,206 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you 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
+// "AS IS" 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.
+
+
+
+
+
+
+
+
diff --git a/ui/src/views/network/tungsten/TungstenNetworkTable.vue b/ui/src/views/network/tungsten/TungstenNetworkTable.vue
new file mode 100644
index 000000000000..b6b0f4eb42e3
--- /dev/null
+++ b/ui/src/views/network/tungsten/TungstenNetworkTable.vue
@@ -0,0 +1,181 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you 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
+// "AS IS" 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.
+
+
+
+
+
+ execAction(action, record)"/>
+ {{ text }}
+ {{ text }}
+ {{ text }}
+ {{ text }}
+
+
+