CORD-396 CORD-383 CORD-362 CORD-309 significant rework on networking configuration

Change-Id: Icb3cbac66b33265486ac236572874052fc643b8a
diff --git a/build.gradle b/build.gradle
index 55f7664..aa37a17 100644
--- a/build.gradle
+++ b/build.gradle
@@ -49,8 +49,6 @@
     // using the -PdeployConfig=<file-path> syntax.
     deployConfig = project.hasProperty('deployConfig') ? project.getProperty('deployConfig') : './config/default.yml'
 
-    dockerPath = project.hasProperty('dockerPath') ? project.getProperty('dockerPath') : '/usr/bin'
-
     comps = [
             'consul': [
                     'type':     'image',
@@ -68,113 +66,113 @@
 // Switch Configuration Image
 
 task buildSwitchqImage(type: Exec) {
-    commandLine "$dockerPath/docker", 'build', '-t', 'cord-maas-switchq', './switchq'
+    commandLine "docker", 'build', '-t', 'cord-maas-switchq', './switchq'
 }
 
 task tagSwitchqImage(type: Exec) {
    dependsOn buildSwitchqImage
-   commandLine "$dockerPath/docker", 'tag', 'cord-maas-switchq', "$targetReg/cord-maas-switchq:$targetTag"
+   commandLine "docker", 'tag', 'cord-maas-switchq', "$targetReg/cord-maas-switchq:$targetTag"
 }
 
 task publishSwitchqImage(type: Exec) {
     dependsOn tagSwitchqImage
-    commandLine "$dockerPath/docker", 'push', "$targetReg/cord-maas-switchq:$targetTag"
+    commandLine "docker", 'push', "$targetReg/cord-maas-switchq:$targetTag"
 }
 
 // Bootstrap Image
 
 task buildBootstrapImage(type: Exec) {
-    commandLine "$dockerPath/docker", 'build', '-t', 'cord-maas-bootstrap', './bootstrap'
+    commandLine "docker", 'build', '-t', 'cord-maas-bootstrap', './bootstrap'
 }
 
 task tagBootstrapImage(type: Exec) {
    dependsOn buildBootstrapImage
-   commandLine "$dockerPath/docker", 'tag', 'cord-maas-bootstrap', "$targetReg/cord-maas-bootstrap:$targetTag"
+   commandLine "docker", 'tag', 'cord-maas-bootstrap', "$targetReg/cord-maas-bootstrap:$targetTag"
 }
 
 task publishBootstrapImage(type: Exec) {
     dependsOn tagBootstrapImage
-    commandLine "$dockerPath/docker", 'push', "$targetReg/cord-maas-bootstrap:$targetTag"
+    commandLine "docker", 'push', "$targetReg/cord-maas-bootstrap:$targetTag"
 }
 
 // IP Allocator Image
 
 task buildAllocationImage(type: Exec) {
-    commandLine "$dockerPath/docker", 'build', '-t', 'cord-ip-allocator', './ip-allocator'
+    commandLine "docker", 'build', '-t', 'cord-ip-allocator', './ip-allocator'
 }
 
 task tagAllocationImage(type: Exec) {
    dependsOn buildAllocationImage
-   commandLine "$dockerPath/docker", 'tag', 'cord-ip-allocator', "$targetReg/cord-ip-allocator:$targetTag"
+   commandLine "docker", 'tag', 'cord-ip-allocator', "$targetReg/cord-ip-allocator:$targetTag"
 }
 
 task publishAllocationImage(type: Exec) {
     dependsOn tagAllocationImage
-    commandLine "$dockerPath/docker", 'push', "$targetReg/cord-ip-allocator:$targetTag"
+    commandLine "docker", 'push', "$targetReg/cord-ip-allocator:$targetTag"
 }
 
 // Provisioner Image
 
 task buildProvisionerImage(type: Exec) {
-    commandLine "$dockerPath/docker", 'build', '-t', 'cord-provisioner', './provisioner'
+    commandLine "docker", 'build', '-t', 'cord-provisioner', './provisioner'
 }
 
 task tagProvisionerImage(type: Exec) {
    dependsOn buildProvisionerImage
-   commandLine "$dockerPath/docker", 'tag', 'cord-provisioner', "$targetReg/cord-provisioner:$targetTag"
+   commandLine "docker", 'tag', 'cord-provisioner', "$targetReg/cord-provisioner:$targetTag"
 }
 
 task publishProvisionerImage(type: Exec) {
     dependsOn tagProvisionerImage
-    commandLine "$dockerPath/docker", 'push', "$targetReg/cord-provisioner:$targetTag"
+    commandLine "docker", 'push', "$targetReg/cord-provisioner:$targetTag"
 }
 
 // Config Generator Image
 
 task buildConfigGeneratorImage(type: Exec) {
-    commandLine "$dockerPath/docker", 'build', '-t', 'config-generator', './config-generator'
+    commandLine "docker", 'build', '-t', 'config-generator', './config-generator'
 }
 
 task tagConfigGeneratorImage(type: Exec) {
    dependsOn buildConfigGeneratorImage
-   commandLine "$dockerPath/docker", 'tag', 'config-generator', "$targetReg/config-generator:$targetTag"
+   commandLine "docker", 'tag', 'config-generator', "$targetReg/config-generator:$targetTag"
 }
 
 task publishConfigGeneratorImage(type: Exec) {
     dependsOn tagConfigGeneratorImage
-    commandLine "$dockerPath/docker", 'push', "$targetReg/config-generator:$targetTag"
+    commandLine "docker", 'push', "$targetReg/config-generator:$targetTag"
 }
 
 // Automation Image
 
 task buildAutomationImage(type: Exec) {
-    commandLine "$dockerPath/docker", 'build', '-t', "cord-maas-automation", "-f", "./automation/Dockerfile", "./automation"
+    commandLine "docker", 'build', '-t', "cord-maas-automation", "-f", "./automation/Dockerfile", "./automation"
 }
 
 task tagAutomationImage(type: Exec) {
     dependsOn buildAutomationImage
-    commandLine "$dockerPath/docker", 'tag', 'cord-maas-automation', "$targetReg/cord-maas-automation:$targetTag"
+    commandLine "docker", 'tag', 'cord-maas-automation', "$targetReg/cord-maas-automation:$targetTag"
 }
 
 task publishAutomationImage(type: Exec) {
     dependsOn tagAutomationImage
-    commandLine "$dockerPath/docker", 'push', "$targetReg/cord-maas-automation:$targetTag"
+    commandLine "docker", 'push', "$targetReg/cord-maas-automation:$targetTag"
 }
 
 // DHCP Harvester Images
 
 task buildHarvesterImage(type: Exec) {
-    commandLine "$dockerPath/docker", 'build', '-t', "cord-dhcp-harvester", "./harvester"
+    commandLine "docker", 'build', '-t', "cord-dhcp-harvester", "./harvester"
 }
 
 task tagHarvesterImage(type: Exec) {
     dependsOn buildHarvesterImage
-    commandLine "$dockerPath/docker", 'tag', 'cord-dhcp-harvester', "$targetReg/cord-dhcp-harvester:$targetTag"
+    commandLine "docker", 'tag', 'cord-dhcp-harvester', "$targetReg/cord-dhcp-harvester:$targetTag"
 }
 
 task publishHarvesterImage(type: Exec) {
     dependsOn tagHarvesterImage
-    commandLine "$dockerPath/docker", 'push', "$targetReg/cord-dhcp-harvester:$targetTag"
+    commandLine "docker", 'push', "$targetReg/cord-dhcp-harvester:$targetTag"
 }
 
 // ~~~~~~~~~~~~~~~~~~~ Global tasks ~~~~~~~~~~~~~~~~~~~~~~~
@@ -188,8 +186,8 @@
     // this is where we fetch upstream artifacts that we do not need internet for the build phase"
     // Placeholdr example:
     dependsOn fetchUpstreamImages
-    commandLine "$dockerPath/docker", "pull", "golang:alpine"
-    commandLine "$dockerPath/docker", "pull", "python:2.7-alpine"
+    commandLine "docker", "pull", "golang:alpine"
+    commandLine "docker", "pull", "python:2.7-alpine"
 }
 
 // To be used to generate all needed binaries that need to be present on the target
@@ -283,10 +281,12 @@
             .p(config.seedServer.fabric_ip, "fabric_ip")
             .p(config.seedServer.management_ip, "management_ip")
             .p(config.seedServer.management_gw, "management_gw")
+            .p(config.seedServer.management_bc, "management_bc")
             .p(config.seedServer.management_network, "management_network")
             .p(config.seedServer.management_iface, "management_iface")
             .p(config.seedServer.external_ip, "external_ip")
             .p(config.seedServer.external_gw, "external_gw")
+            .p(config.seedServer.external_bc, "external_bc")
             .p(config.seedServer.external_network, "external_network")
             .p(config.seedServer.external_iface, "external_iface")
             .p(config.seedServer.fabric_ip, "fabric_ip")