From edff62ed40d0d2e4f7137dfe081aed7a417a17ca Mon Sep 17 00:00:00 2001
From: Mike Marsh <mmarsh@cs.umd.edu>
Date: Sat, 10 Feb 2018 11:20:29 -0500
Subject: [PATCH] more removal of code

---
 library/mission_annotations                   | 139 ------------------
 library/ntpblitz                              |  26 ----
 library/plan                                  |  39 -----
 library/sp                                    |  33 -----
 luna.py                                       |  60 --------
 roles/deployer/files/authorized_keys          |   1 -
 roles/deployer/files/planx_key                |  27 ----
 roles/deployer/tasks/deployer.yml             |  34 -----
 roles/deployer/tasks/main.yml                 |   2 -
 roles/deployer/templates/deployer.conf.j2     |  11 --
 roles/grey_builder/tasks/grey_builder.yml     |   6 -
 roles/grey_builder/tasks/main.yml             |   3 -
 .../tasks/BlueController_setup.yml            |  38 -----
 .../tasks/gateway_setup.yml                   |  38 -----
 .../testbed_blue_config/tasks/luna_setup.yml  |  43 ------
 roles/testbed_blue_config/tasks/main.yml      |   3 -
 .../tasks/testbed_blue_config.yml             |  16 --
 roles/testbed_blue_config/tasks/was.yml       |  19 ---
 .../templates/pxluna.configs.mte_host.j2      |   1 -
 roles/testbed_builders_config/tasks/main.yml  |   2 -
 .../tasks/testbed_builders_config.yml         |  33 -----
 .../templates/Dockerfile.lp.j2                |  14 --
 .../templates/Dockerfile.vn.j2                |  12 --
 .../tasks/BlueController_config.yml           |  70 ---------
 roles/testbed_code_checkout/tasks/main.yml    |   3 -
 .../tasks/mission_checkout.yml                |   5 -
 .../tasks/runtime_config.yml                  |  41 ------
 .../tasks/testbed_code_checkout.yml           |   8 -
 .../templates/pxluna.configs.mte.j2           |   1 -
 .../tasks/main.yml                            |   3 -
 .../tasks/testbed_mission_elements_config.yml | 134 -----------------
 31 files changed, 865 deletions(-)
 delete mode 100755 library/mission_annotations
 delete mode 100755 library/ntpblitz
 delete mode 100755 library/plan
 delete mode 100755 library/sp
 delete mode 100755 luna.py
 delete mode 100644 roles/deployer/files/authorized_keys
 delete mode 100644 roles/deployer/files/planx_key
 delete mode 100644 roles/deployer/tasks/deployer.yml
 delete mode 100644 roles/deployer/tasks/main.yml
 delete mode 100644 roles/deployer/templates/deployer.conf.j2
 delete mode 100644 roles/grey_builder/tasks/grey_builder.yml
 delete mode 100644 roles/grey_builder/tasks/main.yml
 delete mode 100644 roles/testbed_blue_config/tasks/BlueController_setup.yml
 delete mode 100644 roles/testbed_blue_config/tasks/gateway_setup.yml
 delete mode 100644 roles/testbed_blue_config/tasks/luna_setup.yml
 delete mode 100644 roles/testbed_blue_config/tasks/main.yml
 delete mode 100644 roles/testbed_blue_config/tasks/testbed_blue_config.yml
 delete mode 100644 roles/testbed_blue_config/tasks/was.yml
 delete mode 100644 roles/testbed_blue_config/templates/pxluna.configs.mte_host.j2
 delete mode 100644 roles/testbed_builders_config/tasks/main.yml
 delete mode 100644 roles/testbed_builders_config/tasks/testbed_builders_config.yml
 delete mode 100644 roles/testbed_builders_config/templates/Dockerfile.lp.j2
 delete mode 100644 roles/testbed_builders_config/templates/Dockerfile.vn.j2
 delete mode 100644 roles/testbed_code_checkout/tasks/BlueController_config.yml
 delete mode 100644 roles/testbed_code_checkout/tasks/main.yml
 delete mode 100644 roles/testbed_code_checkout/tasks/mission_checkout.yml
 delete mode 100644 roles/testbed_code_checkout/tasks/runtime_config.yml
 delete mode 100644 roles/testbed_code_checkout/tasks/testbed_code_checkout.yml
 delete mode 100644 roles/testbed_code_checkout/templates/pxluna.configs.mte.j2
 delete mode 100644 roles/testbed_mission_elements_config/tasks/main.yml
 delete mode 100644 roles/testbed_mission_elements_config/tasks/testbed_mission_elements_config.yml

diff --git a/library/mission_annotations b/library/mission_annotations
deleted file mode 100755
index 4b40ac6..0000000
--- a/library/mission_annotations
+++ /dev/null
@@ -1,139 +0,0 @@
-#! /usr/bin/env python
-
-import json
-import types
-
-def make_dannotation(node,mission,rtState):
-    if 'uuid' in node:
-        id = node['uuid']
-    else:
-        id = mission + "_" + node['name']
-    return {
-            'node' : {
-                      'id' : id
-                      },
-            'device' : 'device_' + node['address'],
-            'execution_trace' : mission,
-            'user' : 'mrsbutterworth',
-            'timestamp' : 0,
-            'blue' : False,
-            'noStrike' : False,
-            'vantagePool' : False,
-            'proxyPool' : False,
-            'isController' : False,
-            'target' : False,
-            'state' : rtState
-            }
-
-def make_cannotation(node,isLP,isProxy,isVantage):
-    return {
-            'id' : "ca_" + node['address'],
-            'device' : 'device_' + node['address'],
-            'listening_post' : isLP,
-            'redirector': isProxy,
-            'vantage' : isVantage,
-            'assigned' : False
-            }
-
-def make_ipv4net(node):
-    return {
-            'node' : {
-                      'id' : node['address']
-                      },
-            'cidr' : node['address'] + '/32',
-            'min_ip' : 1,
-            'max_ip' : 1
-            }
-
-def make_device(node):
-    return {
-            'node' : {
-                      'id' : 'device_' + node['address']
-                      },
-            'has' : [ 'svc_' + node['address'] ]
-            }
-
-def make_associated(node):
-    return {
-            'edge' : {
-                      'id' : 'edge_' + node['address'],
-                      'from_id' : node['address'],
-                      'to_id' : 'device_' + node['address']
-                      }
-            }
-
-def make_credential(node,key):
-    return {
-            'node' : {
-                      'id' : 'cred_' + node['address']
-                      },
-            'user' : 'root',
-            'password' : 'px',
-            'key' : key
-            }
-    
-def make_service(node):
-    return {
-            'node' : {
-                      'id' : 'svc_' + node['address']
-                      },
-            'name' : 'ssh',
-            'state' : 'STARTED',
-            'has' : [ 'cred_' + node['address'] ]
-            }
-
-def extract(nodes,rtState,key=None):
-    dannotations = []
-    cannotations = []
-    devices = []
-    ipv4nets = []
-    associations = []
-    credentials = []
-    services = []
-    isLP = True if rtState == 'LISTENING_POST' else False
-    isProxy = True if rtState in ('VANTAGE_POINT','NOT_DEPLOYED') else False
-    isVantage = True if rtState in ('VANTAGE_POINT','NOT_DEPLOYED') else False
-    for node in nodes:
-        devices.append(make_device(node))
-        ipv4nets.append(make_ipv4net(node))
-        cannotations.append(make_cannotation(node, isLP, isProxy, isVantage))
-        associations.append(make_associated(node))
-        credentials.append(make_credential(node,'gozer' if key is None else key))
-        services.append(make_service(node))
-        if 'mission' in node:
-            mission_spec = node['mission']
-            if isinstance(mission_spec,types.ListType):
-                for mission in mission_spec:
-                    dannotations.append(make_dannotation(node, mission, rtState))
-            else:
-                dannotations.append(make_dannotation(node, mission_spec, rtState))
-    return (dannotations,devices,ipv4nets,associations,cannotations,credentials,services)
-
-def main():
-    module = AnsibleModule(argument_spec=dict(
-        nodes=dict(required=True),
-        state=dict(required=True),
-        key=dict(required=False),
-    ))
-
-    changed=False
-    nodes = module.params['nodes']
-    rtState = module.params['state']
-    key = None
-    if 'key' in module.params:
-        key = module.params['key']
-    js = nodes.replace('\'','"')
-    j = json.loads(js)
-    dannotations,devices,ipv4nets,associations,cannotations,credentials,services = extract(j,rtState,key)
-
-    module.exit_json(changed=changed,
-                     dannotations=dannotations,
-                     devices=devices,
-                     ipv4nets=ipv4nets,
-                     associations=associations,
-                     cannotations=cannotations,
-                     credentials=credentials,
-                     services=services)
-
-from ansible.module_utils.basic import *
-main()
diff --git a/library/ntpblitz b/library/ntpblitz
deleted file mode 100755
index 4a91467..0000000
--- a/library/ntpblitz
+++ /dev/null
@@ -1,26 +0,0 @@
-#! /usr/bin/env python
-
-from scapy.all import IP, UDP, NTP, send
-import random
-
-def do_blitz(target,num):
-    for i in range(num):
-        source = "%d.%d.%d.%d" % (random.randint(1,254),
-                                  random.randint(0,254),
-                                  random.randint(0,254),
-                                  random.randint(1,254))
-        pkt = IP(src=source,dst=target)/UDP()/NTP(id=source)
-        send(pkt)
-
-def main():
-    module = AnsibleModule(argument_spec=dict(
-            ip=dict(required=True,type='str'),
-            nblitz=dict(required=True,type='int'),
-    ))
-
-    do_blitz(module.params['ip'],module.params['nblitz'])
-
-    module.exit_json()
-
-from ansible.module_utils.basic import *
-main()
diff --git a/library/plan b/library/plan
deleted file mode 100755
index 64d1690..0000000
--- a/library/plan
+++ /dev/null
@@ -1,39 +0,0 @@
-#! /bin/bash
-
-. $1
-
-pid_luna_bridge=$(ps -u root -o pid,cmd | grep luna-bridge | grep -v grep | cut -d' ' -f1)
-pid_plan=$(ps -u root -o pid,cmd | grep plan.py | grep -v grep | cut -d' ' -f1)
-
-if [ "x${pid_luna_bridge}" != "x" ]
-then
-   echo "killing luna bridge on pid ${pid_luna_bridge}" >&2
-   kill ${pid_luna_bridge}
-fi
-if [ "x${pid_plan}" != "x" ]
-then
-   echo "killing plan on pid ${pid_plan}" >&2
-   kill ${pid_plan}
-fi
-
-cd /usr/local/src/controller-visualization/examples
-nohup python luna-bridge.py ${core_addr} >/tmp/luna-bridge.out 2>/tmp/luna-bridge.err &
-if [ $? -eq 0 ]
-then
-   failed="false"
-else
-   failed="true"
-   echo "changed=true failed=${failed}"
-   exit 1
-fi
-
-cd /usr/local/src/TestMissionNTP1
-nohup python plan.py > /tmp/plan.out 2>/tmp/plan.err &
-if [ $? -eq 0 ]
-then
-   failed="false"
-else
-   failed="true"
-fi
-
-echo "changed=true failed=${failed}"
diff --git a/library/sp b/library/sp
deleted file mode 100755
index 0581219..0000000
--- a/library/sp
+++ /dev/null
@@ -1,33 +0,0 @@
-#! /bin/bash
-
-arg_file=$1
-. ${arg_file}
-
-arg_list=""
-if [ "x${port}" != "x" ]
-then
-   arg_list="${arg_list} -p ${port}"
-fi
-if [ "x${addr}" != "x" ]
-then
-   arg_list="${arg_list} -a ${addr}"
-fi
-if [ "x${remote_port}" != "x" ]
-then
-   arg_list="${arg_list} -P ${remote_port}"
-fi
-if [ "x${remote_addr}" != "x" ]
-then
-   arg_list="${arg_list} -A ${remote_addr}"
-fi
-
-cd /usr/local/src/controller-stubs/runtime
-nohup lua runtime.lua ${arg_list} >/tmp/sp.out 2>/tmp/sp.err &
-if [ $? -eq 0 ]
-then
-   failed="false"
-else
-   failed="true"
-fi
-
-echo "changed=true failed=${failed}"
diff --git a/luna.py b/luna.py
deleted file mode 100755
index f8aaab5..0000000
--- a/luna.py
+++ /dev/null
@@ -1,60 +0,0 @@
-#! /usr/bin/env python
-
-import json
-import pxluna
-import pxluna.configs.localhost
-
-from pxavro.types import Blob, ExampleRecord
-
-from tornado import stack_context
-from tornado import gen
-from tornado.ioloop import IOLoop
-
-import logging
-logging.basicConfig()
-
-config = lambda: None
-
-def get_ip(manifest):
-    global config
-    fd = open(manifest)
-    j = json.load(fd)
-
-    blue_nodes = j['blue_nodes']
-    containers = blue_nodes['containers']
-    nodes = containers['nodes']
-    luna = None
-    for node in nodes:
-        if node['Name'] == '/luna':
-            luna = node
-            break
-    networkSettings = luna['NetworkSettings']
-    ipAddr = networkSettings['IPAddress']
-
-    setattr(config,'LUNA_HOSTNAME',ipAddr)
-
-    return ipAddr
-
-@gen.coroutine
-def query(client,qString):
-    query_response = yield client.query(qString)
-
-@gen.coroutine
-def main():
-    
-    client = pxluna.SatelliteClient()
-    
-    try:
-        yield client.setup(config)
-        
-        yield query(client,'@Fetch { type:missionannotation.MissionAnnotation }')
-        
-    except:
-        # If you don't wrap the yields with an exception handler, the
-        # errors currently get swallowed by tornado
-        logging.exception("Exception during luna processing!")
-
-
-if __name__ == '__main__':
-    print "The luna server is on",get_ip("manifest.json")
-    IOLoop.instance().run_sync(main)
diff --git a/roles/deployer/files/authorized_keys b/roles/deployer/files/authorized_keys
deleted file mode 100644
index 193a0e3..0000000
--- a/roles/deployer/files/authorized_keys
+++ /dev/null
@@ -1 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCdzUYpxOfsB2AUfwzpMl/5pkaDoh6bzHcTdBcCxQ3qL+FirEu2ZYyDcG2WzDmJuw1XoAImY+lmintisCv/c2z9cWZRAoYY3AMYJUAtKlu0MSWrfuSPknBVPZCsGsI7Zq5pcQ1n5A65ryWRHuLogMMEb/cco4sjBYgS/klafvq0zBTeDLY6fy51hYsUBxXAI5f+wxFY6NZLXx/eBWK+C1eUYyv5kQtu7pVTL+TfnppZWgwo4EIiP3hba8cQjzw0kkOXs1VXeEES2KwCT094wBt2pEtZwO2dRP85a/8vPCDW3MSc7vN8v6r6S5M0aRjH/4LI8zfuMoqAIu9Sn5uew5+5
diff --git a/roles/deployer/files/planx_key b/roles/deployer/files/planx_key
deleted file mode 100644
index 9d45ff7..0000000
--- a/roles/deployer/files/planx_key
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEowIBAAKCAQEAnc1GKcTn7AdgFH8M6TJf+aZGg6Iem8x3E3QXAsUN6i/hYqxL
-tmWMg3Btlsw5ibsNV6ACJmPpZop7YrAr/3Ns/XFmUQKGGNwDGCVALSpbtDElq37k
-j5JwVT2QrBrCO2auaXENZ+QOua8lkR7i6IDDBG/3HKOLIwWIEv5JWn76tMwU3gy2
-On8udYWLFAcVwCOX/sMRWOjWS18f3gVivgtXlGMr+ZELbu6VUy/k356aWVoMKOBC
-Ij94W2vHEI88NJJDl7NVV3hBEtisAk9PeMAbdqRLWcDtnUT/OWv/Lzwg1tzEnO7z
-fL+q+kuTNGkYx/+CyPM37jKKgCLvUp+bnsOfuQIDAQABAoIBAGLKcWOS73MXxvHt
-/GI99FHx4/Fi3HDDV8TpB8LnJOf5I8xHe3rsJkTfbOxcXKU6Yob6GH56TFOy3L4S
-9uiNFa2xgdGzl8oWayWBpKTiANlVb3TnEyZDEmp7CYiFlBXmGcjPSwpAf2uGGCm7
-QWk3u1+azQSz6lZ5jw/8/GVYW5I1ui0mSBO4m2+NhesLrpYkVqOg4vWA6lLVyznE
-GE9LzHFrAk2JOl2uE0on+boM/M97FfBSVjCNBLOycjk9L3J33U/5qpk91pp5he+D
-mGSc2KiPx46Xga1oIR/R2FOPGPf9zcRbd0zZ3m0bpENIZt95mfmmbqGF7CPX13Ni
-hZmmB8UCgYEAyWwPnmcCVFC/wyKdW+AsNoTDMG+XsDvxy0ddpPFpd9bauoOqo0+S
-ZFoZDi1fbQ84x0xgTU+j7UagaOqVixBlcoJhOIadlwSxxjTDy7I5Ihf8yHhbpNWC
-yvvtwt5QdKzkF/TziI2mhupck+s8/w/8zj8rnpxffcgBkDKt98tpRK8CgYEAyI9u
-EFhPRyWCVEcu+jLoiDrwob8h8RhEh6+5N73RsFZtyJqltceeH8m61o8QaBTTn0Z1
-BYUvzFeBj7RO21DxAzmNuJdsVRV+ungsSDF9Q4YF1TblHGygNtk/6iiBOTnL0GOD
-xXq+P52wKDFAjXMZQ7BxeTYkgIgpSaQL6h5dzBcCgYBJIod5SIW7/6XhQIxKc9cZ
-5JLK33oAb4OX/82suktFTCoXVv96VMYe0egPEcJ4YvKGyuCcsbIf0WklLyglWkq7
-jUOntpk54GZ8RWRibc/45STP1YPREgVvlpH6E6a69pvLZxGWH3i7vBTpUJzRMAjn
-CmDYMocpsJmAtiYctyr92QKBgAggx/UhnxTjEEUaHW1GYuYifV4QwO9kbGKTXI5F
-wxnCZvCaU9zqGh5vroLDiYauUWVDFbsDisxdP4Lza763qQzYaEXy3REVre0gsaq7
-VrhF1jat4tskC9otM8npmlMXZIstfUmjj9JEMb9vP457+6oinHatGw2adxHk9Bao
-5GRBAoGBAL4FrcWE0tAUCOa3BsogsK2IYSJXLtfK6DriUG3ZcSw0GKm8XkYHhCj9
-EdxpiU+7kFWs0aybe2nImHj+WDgbUBuCiMOIggB/Le9nfgXkr5/eh2MY0B0xocp8
-evpyNZHj42caUrL4RzsBXwpJNOgQKliPFU3FTPQ4QEyRO4AjKq9X
------END RSA PRIVATE KEY-----
diff --git a/roles/deployer/tasks/deployer.yml b/roles/deployer/tasks/deployer.yml
deleted file mode 100644
index 5df643c..0000000
--- a/roles/deployer/tasks/deployer.yml
+++ /dev/null
@@ -1,34 +0,0 @@
----
-- name: Install the deployer
-  pip: name=deployer extra_args='{{pip_args}}'
-  
-- name: Create a .ssh directory
-  file: state=directory
-        path=/root/.ssh
-
-- name: Copy in the ssh public key
-  copy: src=authorized_keys
-        dest=/root/.ssh/
-
-- name: Copy in the ssh private key
-  copy: src=planx_key
-        dest=/root/.ssh/
-        mode=0600
-
-- name: Make sure the deployer directory exists
-  file: state=directory
-        path=/opt/deployer
-
-- name: Add the SOCKS proxy configuration to the magic file
-  shell: /bin/echo -n "127.0.0.1:1080" > /opt/deployer/proxy.txt
- 
-- name: Set the permissions on the SOCKS file
-  file: path=/opt/deployer/proxy.txt
-        mode=0666
-
-- name: Copy the deployer's supervisord config file
-  template: src=deployer.conf.j2
-            dest=/etc/supervisor/conf.d/deployer.conf
-
-- name: Reload the supervisord configuration
-  command: supervisorctl reload
diff --git a/roles/deployer/tasks/main.yml b/roles/deployer/tasks/main.yml
deleted file mode 100644
index ae55432..0000000
--- a/roles/deployer/tasks/main.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-- include: deployer.yml
diff --git a/roles/deployer/templates/deployer.conf.j2 b/roles/deployer/templates/deployer.conf.j2
deleted file mode 100644
index 4d290ff..0000000
--- a/roles/deployer/templates/deployer.conf.j2
+++ /dev/null
@@ -1,11 +0,0 @@
-[program:socks]
-command=ssh -o StrictHostKeyChecking=no -i /root/.ssh/planx_key -t -t -D 1080 localhost
-redirect_stderr=true
-stdout_logfile=/var/log/bluecontroller/socks.log
-umask=000
-
-[program:deployer]
-command=pxsvchost -m deployer_svc.deployer --luna {{plan_dir}}/pxluna_configs_mte.py --mercury pxmercury.configs.localhost -c deployer_svc.config
-redirect_stderr=true
-stdout_logfile=/var/log/bluecontroller/deployer.log
-umask=000
diff --git a/roles/grey_builder/tasks/grey_builder.yml b/roles/grey_builder/tasks/grey_builder.yml
deleted file mode 100644
index 03cc166..0000000
--- a/roles/grey_builder/tasks/grey_builder.yml
+++ /dev/null
@@ -1,6 +0,0 @@
----
-- name: Clean up any old builds (we are cross-mounted)
-  command: make clean chdir=/runtime/src
-
-- name: Build the runtime executable
-  command: make linux chdir=/runtime/src
diff --git a/roles/grey_builder/tasks/main.yml b/roles/grey_builder/tasks/main.yml
deleted file mode 100644
index fb182be..0000000
--- a/roles/grey_builder/tasks/main.yml
+++ /dev/null
@@ -1,3 +0,0 @@
----
-- include: grey_builder.yml
-
diff --git a/roles/testbed_blue_config/tasks/BlueController_setup.yml b/roles/testbed_blue_config/tasks/BlueController_setup.yml
deleted file mode 100644
index caa1b60..0000000
--- a/roles/testbed_blue_config/tasks/BlueController_setup.yml
+++ /dev/null
@@ -1,38 +0,0 @@
----
-- name: Pull the latest version of the blue builder image
-  command: docker pull {{blue_builder_image}}
-  when: not detached
-
-- name: Spin up the plan master
-  docker: image={{blue_builder_image}}
-          name=plan_master
-          hostname=plan_master
-          password=px
-          publish_all_ports=true
-          volumes="{{work_dir}}/plan:{{plan_dir}},{{work_dir}}/extsrc/runtime:{{runtime_dir}},{{work_dir}}/extsrc/BlueController:{{controller_dir}},{{work_dir}}/extsrc/playbook:/opt/playbook,{{work_dir}}/logs/plan_master:/var/log/bluecontroller,{{work_dir}}/extsrc/{{nsq_unpacked}}:{{nsq_dir}},{{work_dir}}/extsrc/pipcache:{{pip_cachedir}}"
-  register: plan_master_info
-- set_fact:
-    plan_master_container: "{{plan_master_info.ansible_facts.docker_containers[0]}}"
-
-- name: Create the network namespace
-  file: state=link
-        src=/proc/{{plan_master_container.State.Pid}}/ns/net
-        path=/var/run/netns/plan_master
-
-- name: Wire the plan master into the network
-  networked: state=full
-             name=plan_master
-             ip={{plan_master_ip}}
-             gw={{gw_ip}}
-             prefix={{subnet_prefix}}
-             gwns={{gwname}}
-             gwdev={{bridgedev}}
-             wprefix={{wsubnet_prefix}}
-  register: plan_master_facts
-
-- set_fact:
-    plan_master_docker_ip: "{{plan_master_container.NetworkSettings.IPAddress}}"
-- set_fact:
-    plan_master:
-      container: "{{plan_master_container}}"
-      network: "{{plan_master_facts}}"
diff --git a/roles/testbed_blue_config/tasks/gateway_setup.yml b/roles/testbed_blue_config/tasks/gateway_setup.yml
deleted file mode 100644
index d315300..0000000
--- a/roles/testbed_blue_config/tasks/gateway_setup.yml
+++ /dev/null
@@ -1,38 +0,0 @@
----
-- name: Pull the latest version of the sshd image
-  command: docker pull {{sshd_image}}
-  when: not detached
-
-- name: Start the gateway container
-  docker: image={{sshd_image}}
-          name={{gwname}}
-          hostname={{gwname}}
-          password=px
-          publish_all_ports=true
-          volumes="{{work_dir}}/logs/{{gwname}}:/var/log/supervisor"
-  register: gateway_info
-- set_fact:
-    gateway_container: "{{gateway_info.ansible_facts.docker_containers[0]}}"
-
-- name: Create the netns directory, if it does not exist
-  file: path=/var/run/netns
-        state=directory
-        recurse=yes
-- name: Create the network namespace for the gateway
-  file: path=/var/run/netns/{{gwname}}
-        state=link
-        src=/proc/{{gateway_container.State.Pid}}/ns/net
-- name: Create the bridge device on the gateway
-  networked: state=bridge
-             ns={{gwname}}
-             dev={{bridgedev}}
-             addr={{gw_ip}}
-- name: Set up the "wide-area subnet" (WAS), if necessary
-  include: was.yml
-  when: have_WAS
-
-- name: Capture the bridge device traffic
-  tcpdump: namespace={{gwname}}
-           file="pcaps/{{gwname}}.pcap"
-           device={{bridgedev}}
-  when: capture_bridges
diff --git a/roles/testbed_blue_config/tasks/luna_setup.yml b/roles/testbed_blue_config/tasks/luna_setup.yml
deleted file mode 100644
index 629c6dc..0000000
--- a/roles/testbed_blue_config/tasks/luna_setup.yml
+++ /dev/null
@@ -1,43 +0,0 @@
----
-- name: Pull the latest version of the px-luna image
-  command: docker pull {{luna_image}}
-  when: not detached
-
-- name: Spin up the px-luna container
-  docker: image={{luna_image}}
-          name=luna
-          hostname=luna
-          password=px
-          publish_all_ports=true
-          volumes="{{work_dir}}/logs/luna:/var/log/supervisor"
-  register: px_luna_info
-- set_fact:
-    px_luna_container: "{{px_luna_info.ansible_facts.docker_containers[0]}}"
-
-- name: Create the network namespace
-  file: state=link
-        src=/proc/{{px_luna_container.State.Pid}}/ns/net
-        path=/var/run/netns/luna
-
-- name: Wire the luna server into the network
-  networked: state=full
-             name=luna
-             ip={{luna_ip}}
-             gw={{gw_ip}}
-             prefix={{subnet_prefix}}
-             gwns={{gwname}}
-             gwdev={{bridgedev}}
-             wprefix={{wsubnet_prefix}}
-  register: px_luna_facts
-
-- set_fact:
-    px_luna_ip: "{{px_luna_container.NetworkSettings.IPAddress}}"
-- set_fact:
-    px_luna:
-      container: "{{px_luna_container}}"
-      network: "{{px_luna_facts}}"
-
-# Configure the luna connection from the host
-- name: Set the luna host IP address from the Docker host
-  template: dest=plan/pxluna_configs_mte_host.py
-            src=pxluna.configs.mte_host.j2
diff --git a/roles/testbed_blue_config/tasks/main.yml b/roles/testbed_blue_config/tasks/main.yml
deleted file mode 100644
index 37b140c..0000000
--- a/roles/testbed_blue_config/tasks/main.yml
+++ /dev/null
@@ -1,3 +0,0 @@
----
-- include: testbed_blue_config.yml
-
diff --git a/roles/testbed_blue_config/tasks/testbed_blue_config.yml b/roles/testbed_blue_config/tasks/testbed_blue_config.yml
deleted file mode 100644
index 38087c1..0000000
--- a/roles/testbed_blue_config/tasks/testbed_blue_config.yml
+++ /dev/null
@@ -1,16 +0,0 @@
----
-- include: gateway_setup.yml
-- include: luna_setup.yml
-- include: BlueController_setup.yml
-
-- name: Generate a mission UUID
-  command: uuidgen
-  register: mission_uuidgen
-
-- name: Grab the mission UUID
-  set_fact:
-    mission_id: "{{mission_uuidgen.stdout}}"
-
-- name: Trigger the next step
-  add_host: name=localhost
-            groups=g_builders_config
diff --git a/roles/testbed_blue_config/tasks/was.yml b/roles/testbed_blue_config/tasks/was.yml
deleted file mode 100644
index cebfd9f..0000000
--- a/roles/testbed_blue_config/tasks/was.yml
+++ /dev/null
@@ -1,19 +0,0 @@
----
-- name: Create the wide-area link on the gateway
-  networked: state=link
-             ns0={{gwname}}
-             dev0={{i_wlink}}
-             addr0={{gw_ip}}
-             dev1={{e_wlink}}
-             addr1={{gw_ip}}
-- name: Set up the incoming routing for the wide-area link
-  networked: state=route
-             dev={{e_wlink}}
-             addr={{gw_ip}}
-             net={{subnet}}/{{subnet_prefix}}
-- name: Set up the outgoing routing for the wide-area link
-  networked: state=route
-             ns={{gwname}}
-             dev={{i_wlink}}
-             addr={{gw_ip}}
-             net={{wsubnet}}/{{wsubnet_prefix}}
diff --git a/roles/testbed_blue_config/templates/pxluna.configs.mte_host.j2 b/roles/testbed_blue_config/templates/pxluna.configs.mte_host.j2
deleted file mode 100644
index 6ea6363..0000000
--- a/roles/testbed_blue_config/templates/pxluna.configs.mte_host.j2
+++ /dev/null
@@ -1 +0,0 @@
-LUNA_HOSTNAME = "{{px_luna_ip}}"
diff --git a/roles/testbed_builders_config/tasks/main.yml b/roles/testbed_builders_config/tasks/main.yml
deleted file mode 100644
index dc08543..0000000
--- a/roles/testbed_builders_config/tasks/main.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-- include: testbed_builders_config.yml
diff --git a/roles/testbed_builders_config/tasks/testbed_builders_config.yml b/roles/testbed_builders_config/tasks/testbed_builders_config.yml
deleted file mode 100644
index 459fa83..0000000
--- a/roles/testbed_builders_config/tasks/testbed_builders_config.yml
+++ /dev/null
@@ -1,33 +0,0 @@
----
-- name: Pull the latest version of the grey builder image
-  command: docker pull {{grey_builder_image}}
-  when: not detached
-
-- name: Generate the listening post Dockerfile
-  template: src=Dockerfile.lp.j2
-            dest=./runtime_support/listening_post/Dockerfile
-
-- name: Generate the vantage node Dockerfile
-  template: src=Dockerfile.vn.j2
-            dest=./runtime_support/vantage_node/Dockerfile
-
-- name: Spin up the grey builder
-  docker: image={{grey_builder_image}}
-          name=gb
-          password=px
-          volumes={{work_dir}}/extsrc/runtime:/runtime
-  register: grey_builder_info
-- set_fact:
-    gb_ip: "{{grey_builder_info.ansible_facts.docker_containers[0].NetworkSettings.IPAddress}}"
-
-- name: Set up the provisioning on the grey builder
-  add_host: name={{gb_ip}}
-            groups=grey_builder
-
-- name: Wait for the grey builder to be ready
-  wait_for: port=22
-            host={{gb_ip}}
-
-- name: Trigger the next step
-  add_host: name=localhost
-            groups=g_mission_elements_config
diff --git a/roles/testbed_builders_config/templates/Dockerfile.lp.j2 b/roles/testbed_builders_config/templates/Dockerfile.lp.j2
deleted file mode 100644
index 0b18724..0000000
--- a/roles/testbed_builders_config/templates/Dockerfile.lp.j2
+++ /dev/null
@@ -1,14 +0,0 @@
-FROM {{grey_builder_image}}
-
-RUN DEBIAN_FRONTEND=noninteractive apt-get install -y python-pip libsnappy-dev python-dev python-msgpack
-
-ADD http://ns1.px.ftw/~mmarsh/ca-cert.crt /usr/local/share/ca-certificates/ca-cert.crt
-RUN update-ca-certificates
-ADD pip.conf /.pip/pip.conf
-
-ADD runtime/ /opt/runtime
-ADD invoke /opt/runtime/invoke
-ADD bouncer /opt/bouncer/bouncer
-ADD lp.conf /etc/supervisor/conf.d/lp.conf
-
-CMD ["/usr/bin/supervisord"]
diff --git a/roles/testbed_builders_config/templates/Dockerfile.vn.j2 b/roles/testbed_builders_config/templates/Dockerfile.vn.j2
deleted file mode 100644
index f43b9fd..0000000
--- a/roles/testbed_builders_config/templates/Dockerfile.vn.j2
+++ /dev/null
@@ -1,12 +0,0 @@
-FROM {{grey_builder_image}}
-
-ADD runtime/ /opt/runtime
-ADD invoke /opt/runtime/invoke
-ADD bouncer /opt/bouncer/bouncer
-{{"ADD vn.conf /etc/supervisor/conf.d/vn.conf" if not deployer else ""}}
-ADD authorized_keys /root/.ssh/authorized_keys
-ADD planx_key /root/.ssh/id_rsa
-RUN chmod 644 /root/.ssh/authorized_keys
-RUN chmod 600 /root/.ssh/id_rsa
-
-CMD ["/usr/bin/supervisord"]
diff --git a/roles/testbed_code_checkout/tasks/BlueController_config.yml b/roles/testbed_code_checkout/tasks/BlueController_config.yml
deleted file mode 100644
index e89bd7d..0000000
--- a/roles/testbed_code_checkout/tasks/BlueController_config.yml
+++ /dev/null
@@ -1,70 +0,0 @@
----
-- name: Clone the BlueController locally, so we can cross-mount it to docker images
-  git: dest=extsrc/BlueController
-       repo={{controller_repo}}
-       version={{controller_version}}
-       update={{git_update}}
-
-- name: Clone playbook
-  git: dest=extsrc/playbook
-       repo={{playbook_repo}}
-       version={{playbook_version}}
-       update={{git_update}}       
- 
-- name: Cache BlueController and its dependencies
-  shell: pip2tgz {{work_dir}}/extsrc/pipcache . chdir=extsrc/BlueController
-  when: not detached
-
-- name: Cache deployer and its dependencies
-  shell: pip2tgz {{work_dir}}/extsrc/pipcache deployer
-  when: deployer and not detached
-
-- name: Index the pip cache
-  shell: dir2pi . chdir=extsrc/pipcache
-
-# Configure parameters.py
-- name: Set the runtime proxy IP address
-  lineinfile: state=present
-              dest=extsrc/BlueController/bluecontroller/service/parameters.py
-              regexp="^RuntimeProxyIp"
-              line="RuntimeProxyIp = \"{{rt_config.lp_ip}}\""
-
-- name: Set the BlueController UUID
-  lineinfile: state=present
-              dest=extsrc/BlueController/bluecontroller/service/parameters.py
-              regexp="^uuid\s*="
-              line="uuid = \"{{rt_config.pm_uuid}}\""
-
-- name: Disable ATMOS
-  lineinfile: state=present
-              dest=extsrc/BlueController/bluecontroller/service/parameters.py
-              regexp="^UseAtmos"
-              line="UseAtmos = False"
-
-- name: Make a list of proxy UUIDs
-  set_fact:
-    proxyUUIDs: "{{grey_proxy_routing.nodes|map(attribute='uuid')|list}}"
-- name: Make a list of node UUIDs
-  set_fact:
-    nodeUUIDs: "{{grey_routing.nodes|map(attribute='uuid')|list}}"
-- name: Concatenate the UUID lists
-  set_fact:
-    tempNodeList: "{{(proxyUUIDs+nodeUUIDs)|to_json}}"
-- name: Set the node list
-  lineinfile: state=present
-              dest=extsrc/BlueController/bluecontroller/service/parameters.py
-              regexp="^TempNodeList ="
-              line="TempNodeList = {{tempNodeList}}"
-
-# Configure the luna connection
-- name: Set the luna hostname
-  template: dest=plan/pxluna_configs_mte.py
-            src=pxluna.configs.mte.j2
-
-# Download and unpack NSQ
-- name: Download the NSQ tarball
-  get_url: url={{nsq_uri}}
-           dest=extsrc/nsq.tgz
-- name: Unpack the NSQ tarball
-  unarchive: src=extsrc/nsq.tgz
-             dest={{work_dir}}/extsrc/
diff --git a/roles/testbed_code_checkout/tasks/main.yml b/roles/testbed_code_checkout/tasks/main.yml
deleted file mode 100644
index 8856882..0000000
--- a/roles/testbed_code_checkout/tasks/main.yml
+++ /dev/null
@@ -1,3 +0,0 @@
----
-- include: testbed_code_checkout.yml
-
diff --git a/roles/testbed_code_checkout/tasks/mission_checkout.yml b/roles/testbed_code_checkout/tasks/mission_checkout.yml
deleted file mode 100644
index 5d329a9..0000000
--- a/roles/testbed_code_checkout/tasks/mission_checkout.yml
+++ /dev/null
@@ -1,5 +0,0 @@
----
-- name: Copy over the relevant plans
-  copy: src={{item.directory}}/
-        dest=plan/{{item.id}}
-  with_items: missions
diff --git a/roles/testbed_code_checkout/tasks/runtime_config.yml b/roles/testbed_code_checkout/tasks/runtime_config.yml
deleted file mode 100644
index 92a47d1..0000000
--- a/roles/testbed_code_checkout/tasks/runtime_config.yml
+++ /dev/null
@@ -1,41 +0,0 @@
----
-# Runtime parameters
-- name: Generate family UUID
-  command: uuidgen
-  register: family_uuid
-- name: Generate plan master UUID
-  command: uuidgen
-  register: pm_uuid
-- set_fact:
-    listening_post: "{{grey_proxy_routing.nodes[0]}}"
-- set_fact:
-     rt_config:
-        lp_uuid: "{{listening_post.uuid}}"
-        lp_ip: "{{listening_post.address}}"
-        lp_port: 8889
-        pm_uuid: "{{pm_uuid.stdout}}"
-        pm_ip: "{{plan_master_ip}}"
-        pm_port: 8888
-        family: "{{family_uuid.stdout}}"
-
-- name: Clone the runtime locally, so we can cross-mount it to docker images
-  git: dest=extsrc/runtime
-       repo={{runtime_repo}}
-       version={{runtime_version}}
-       update={{git_update}}
-
-- name: Set the LP IP address in runtime.py
-  lineinfile: state=present
-              dest=extsrc/runtime/py/runtime_common/runtime.py
-              regexp="^ServerIp\s*="
-              line="ServerIp = '{{rt_config.lp_ip}}'"
-- name: Set the LP port in runtime.py (current mis-spelled version)
-  lineinfile: state=present
-              dest=extsrc/runtime/py/runtime_common/runtime.py
-              regexp="^SeverPort\s*="
-              line="SeverPort = '{{rt_config.lp_port}}'"
-- name: Set the LP port in runtime.py
-  lineinfile: state=present
-              dest=extsrc/runtime/py/runtime_common/runtime.py
-              regexp="^ServerPort\s*="
-              line="ServerPort = '{{rt_config.lp_port}}'"
diff --git a/roles/testbed_code_checkout/tasks/testbed_code_checkout.yml b/roles/testbed_code_checkout/tasks/testbed_code_checkout.yml
deleted file mode 100644
index 7729659..0000000
--- a/roles/testbed_code_checkout/tasks/testbed_code_checkout.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-- include: mission_checkout.yml
-- include: runtime_config.yml
-- include: BlueController_config.yml
-
-- name: Trigger the next step
-  add_host: name=localhost
-            groups=g_blue_config
diff --git a/roles/testbed_code_checkout/templates/pxluna.configs.mte.j2 b/roles/testbed_code_checkout/templates/pxluna.configs.mte.j2
deleted file mode 100644
index 0c91dbf..0000000
--- a/roles/testbed_code_checkout/templates/pxluna.configs.mte.j2
+++ /dev/null
@@ -1 +0,0 @@
-LUNA_HOSTNAME = "{{luna_ip}}"
diff --git a/roles/testbed_mission_elements_config/tasks/main.yml b/roles/testbed_mission_elements_config/tasks/main.yml
deleted file mode 100644
index 77e52db..0000000
--- a/roles/testbed_mission_elements_config/tasks/main.yml
+++ /dev/null
@@ -1,3 +0,0 @@
----
-- include: testbed_mission_elements_config.yml
-
diff --git a/roles/testbed_mission_elements_config/tasks/testbed_mission_elements_config.yml b/roles/testbed_mission_elements_config/tasks/testbed_mission_elements_config.yml
deleted file mode 100644
index 2cc0a6f..0000000
--- a/roles/testbed_mission_elements_config/tasks/testbed_mission_elements_config.yml
+++ /dev/null
@@ -1,134 +0,0 @@
----
-- set_fact:
-    lp_image_name: lp_image
-- set_fact:
-    vn_image_name: vn_image
-
-- name: Change the ownership of the built runtime
-  command: chown -R {{user}} --from=root extsrc/runtime
-
-- name: Copy the runtime into the listening post
-  command: rsync -a extsrc/runtime runtime_support/listening_post
-
-- name: Copy the runtime into the vantage node
-  command: rsync -a extsrc/runtime runtime_support/vantage_node
-
-- name: Create the LP image
-  docker_image: name={{lp_image_name}}
-                path=runtime_support/listening_post
-                state=build
-                nocache=true
-
-- name: Create the VN image
-  docker_image: name={{vn_image_name}}
-                path=runtime_support/vantage_node
-                state=build
-                nocache=true
-
-- name: Bring down the grey builder
-  docker: image=docker.px.net/px_controller/grey_builder
-          name=gb
-          state=absent
-  when: not keep_builder
-
-- name: Add the proxy gateways
-  add_host: name={{item.name}}
-            ansible_connection=local
-            gateway="{{item}}"
-            groups=gateways
-            sshd_image={{sshd_image}}
-            work_dir={{work_dir}}
-            collect=grey_proxy_gateway
-            capture_bridges={{capture_bridges}}
-  with_items: grey_proxy_routing.gateways
-
-- name: Add the vantage node gateways
-  add_host: name={{item.name}}
-            ansible_connection=local
-            groups=gateways
-            gateway="{{item}}"
-            sshd_image={{sshd_image}}
-            work_dir={{work_dir}}
-            collect=grey_gateway
-            capture_bridges={{capture_bridges}}
-  with_items: grey_routing.gateways
-
-- name: Add the proxies
-  add_host: name={{item.name}}
-            ansible_connection=local
-            groups=networked_nodes
-            node="{{item}}"
-            collect=grey_proxy
-            image={{lp_image_name}}
-            work_dir={{work_dir}}
-            pip_cachedir={{pip_cachedir}}
-            docker_command='/opt/runtime/invoke {{rt_config.lp_uuid}} {{rt_config.family}} {{rt_config.lp_uuid}} {{rt_config.lp_ip}} {{rt_config.lp_port}} {{rt_config.pm_uuid}} {{rt_config.lp_ip}} {{rt_config.pm_port}}'
-  with_items: grey_proxy_routing.nodes
-
-- name: Add the vantage nodes
-  add_host: name={{item.name}}
-            ansible_connection=local
-            groups=networked_nodes
-            node="{{item}}"
-            collect=grey
-            image={{vn_image_name}}
-            work_dir={{work_dir}}
-            pip_cachedir={{pip_cachedir}}
-            docker_command='/opt/runtime/invoke {{item.uuid}} {{rt_config.family}} {{rt_config.pm_uuid}} {{rt_config.lp_ip}} {{rt_config.lp_port}}'
-  with_items: grey_routing.nodes
-
-- name: Pull the latest version of the other needed images
-  command: docker pull {{item.image|default(sshd_image)}}
-  with_items: red_routing.nodes
-  when: ((not detached) and (red_routing is defined))
-
-- name: Add the red node gateways
-  add_host: name={{item.name}}
-            ansible_connection=local
-            groups=gateways
-            gateway="{{item}}"
-            sshd_image={{sshd_image}}
-            work_dir={{work_dir}}
-            collect=red_gateway
-            capture_bridges={{capture_bridges}}
-  with_items: red_routing.gateways
-  when: red_routing.gateways is defined
-
-- name: Add the red nodes
-  add_host: name={{item.name}}
-            ansible_connection=local
-            groups=networked_nodes
-            node="{{item}}"
-            collect=red
-            work_dir={{work_dir}}
-            pip_cachedir={{pip_cachedir}}
-            image={{vn_image_name}}
-            docker_command={{item.command|default("/usr/bin/supervisord")}}
-  with_items: red_routing.nodes
-  when: red_routing.nodes is defined
-
-- name: Trigger the next step
-  add_host: name=localhost
-            groups=g_wire_networks_together,g_store_output
-
-- name: Add the plan master for running stuff
-  add_host: name={{plan_master_docker_ip}}
-            groups=plan_masters
-            addr={{plan_master_docker_ip}}
-            mission_id={{mission_id}}
-            controller_dir={{controller_dir}}
-            plan_dir={{plan_dir}}
-            runtime_dir={{runtime_dir}}
-            nsq_uri={{nsq_uri}}
-            nsq_dir={{nsq_dir}}
-            pip_args="{{pip_args}}"
-            deployer={{deployer}}
-            reinstall_runtime={{reinstall_runtime}}
-            
-- name: Load the topology into the core and run the missions
-  add_host: name={{plan_master_docker_ip}}
-            groups=g_load_topology,g_run_plan
-            addr={{plan_master_docker_ip}}
-            plan_dir={{plan_dir}}
-            controller_dir={{controller_dir}}
-            missions="{{missions}}"
-- 
GitLab