Revert "Revert "[vsrx] Allocate public floating ip""

This reverts commit ef118dc661c1a8914597f47796fe7a6230235e59.
Reason for revert: Fix output values for non-vsrx template

Related-Bug: PRODX-11809
Change-Id: I11f68ecd013072fbc1a7572b058b74be00ef4d8a
diff --git a/de/heat-templates/fragments/NetworkPrvFl.yaml b/de/heat-templates/fragments/NetworkPrvFl.yaml
index 5519508..077cfa8 100644
--- a/de/heat-templates/fragments/NetworkPrvFl.yaml
+++ b/de/heat-templates/fragments/NetworkPrvFl.yaml
@@ -26,6 +26,8 @@
   vsrx_flavor:
     type: string
     default: oc_vsrx
+  public_net_id:
+    type: string
 
 resources:
 
@@ -47,3 +49,5 @@
     value: { get_resource: network }
   private_floating_subnet_id:
     value: { get_resource: subnet }
+  server_public_ip:
+    value: ''
diff --git a/de/heat-templates/fragments/NetworkPrvFlVSRX.yaml b/de/heat-templates/fragments/NetworkPrvFlVSRX.yaml
index 7522b83..4f60e07 100644
--- a/de/heat-templates/fragments/NetworkPrvFlVSRX.yaml
+++ b/de/heat-templates/fragments/NetworkPrvFlVSRX.yaml
@@ -23,6 +23,8 @@
   vsrx_flavor:
     type: string
     default: oc_vsrx
+  public_net_id:
+    type: string
 
 resources:
 
@@ -65,6 +67,12 @@
       fixed_ips:
       - ip_address: { get_param: data_network_vsrx_ip}
 
+  server_floating_ip:
+    type: OS::Neutron::FloatingIP
+    properties:
+      floating_network_id: { get_param: public_net_id }
+      port_id: { get_resource: accessible_server_port }
+
   vsrx_instance:
     type: OS::Nova::Server
     properties:
@@ -82,3 +90,6 @@
     value: { get_resource: network }
   private_floating_subnet_id:
     value: { get_resource: subnet }
+  server_public_ip:
+    description: Floating IP address of server in public network
+    value: { get_attr: [ server_floating_ip, floating_ip_address ] }
diff --git a/de/heat-templates/top.yaml b/de/heat-templates/top.yaml
index 2d83383..4d472c1 100644
--- a/de/heat-templates/top.yaml
+++ b/de/heat-templates/top.yaml
@@ -347,6 +347,7 @@
       tun_network: { get_attr: [tun_network, tun_network_id] }
       vsrx_image: { get_param: vsrx_image }
       vsrx_flavor: { get_param: vsrx_flavor }
+      public_net_id: { get_param: public_net_id }
 
   storage_network:
     type: MCP2::NetworkAccStorage
@@ -971,3 +972,6 @@
   data_network_vsrx_ip:
     description: IP address of vsrx in tungsten fabric data network
     value: { get_param: data_network_vsrx_ip }
+  public_network_vsrx_ip:
+    description: IP address of vsrx in tungsten fabric public network
+    value: { get_attr: [private_floating_network, server_public_ip] }