Overview

Installation
# Install Virtual Environment
$ sudo pip install virtualenv
$ mkdir -p ~/dev/atc
$ virtualenv ~/dev/atc/venv
$ source ~/dev/atc/venv/bin/activate
# Package installation
$ pip install atc_thrift atcd django-atc-api django-atc-demo-ui django-atc-profile-storage
# Configuration
$ cd ~/dev/atc
$ django-admin startproject atcui
$ cd atcui/- At this stage, we have a brand new django project that needs to be configured.
- First, let’s enable our django apps by editing
atcui/settings.pyand adding the following apps toINSTALLED_APPS:
$ vim atcui/settings.py
INSTALLED_APPS = (
...
# Django ATC API
'rest_framework',
'atc_api',
# Django ATC Demo UI
'bootstrap_themes',
'django_static_jquery',
'atc_demo_ui',
# Django ATC Profile Storage
'atc_profile_storage',
)- Now, we need to route requests to the right django app.
- This is done by editing
atcui/urls.pyand adding the routes tourlpatterns:
$ vim atcui/urls.py
...
from django.conf.urls import include
from django.views.generic.base import RedirectView
urlpatterns = [
...
# Django ATC API
url(r'^api/v1/', include('atc_api.urls')),
# Django ATC Demo UI
url(r'^atc_demo_ui/', include('atc_demo_ui.urls')),
# Django ATC profile storage
url(r'^api/v1/profiles/', include('atc_profile_storage.urls')),
url(r'^$', RedirectView.as_view(url='/atc_demo_ui/', permanent=False)),
]- Finally, migrate the django DB and run the server locally
$ python manage.py migrate- That is it, the UI should be set up. Now let’s run it!
Running it
- Now that we have configured the UI, let’s run the
atcdservice and run the UI. - You need to make sure that you are using your virtual environment.
Starting atcd service
$ test -z $VIRTUAL_ENV && source ~/dev/atc/venv/bin/activate
$ sudo atcdStart atc demo ui
$ test -z $VIRTUAL_ENV && source ~/dev/atc/venv/bin/activate
$ cd ~/dev/atc/atcui
$ python manage.py runserver 0.0.0.0:8000- You should now be able to access the UI at the following address http://localhost:8000 and get the following page.

NOTE! If you are using Django 1.9 then might me you face stylesheet issue.
Refer: Dirty Fix
Import Network Profiles
$ cd ~/dev/atc/
$ git clone https://github.com/facebook/augmented-traffic-control.git
$ cd augmented-traffic-control/utils/
$ bash restore-profiles.sh localhost:8000
Added profile ~/dev/atc/augmented-traffic-control/utils/profiles/2G-DevelopingRural.json
Added profile ~/dev/atc/augmented-traffic-control/utils/profiles/2G-DevelopingUrban.json
Added profile ~/dev/atc/augmented-traffic-control/utils/profiles/3G-Average.json
Added profile ~/dev/atc/augmented-traffic-control/utils/profiles/3G-Good.json
Added profile ~/dev/atc/augmented-traffic-control/utils/profiles/Cable.json
Added profile ~/dev/atc/augmented-traffic-control/utils/profiles/DSL.json
Added profile ~/dev/atc/augmented-traffic-control/utils/profiles/Edge-Average.json
Added profile ~/dev/atc/augmented-traffic-control/utils/profiles/Edge-Good.json
Added profile ~/dev/atc/augmented-traffic-control/utils/profiles/Edge-Lossy.json
Added profile ~/dev/atc/augmented-traffic-control/utils/profiles/NoConnectivity.jsonTest Augmented Traffic Control
- Open http://localhost:8000
- Click on
Authenticationand add your device ip address and access token, click onAuthorizebutton - Click on
Profilesand select your testing network profile. - Now at top of page you will find
Update Shapingbutton click on it.
