add xos admin, add no_start option

Change-Id: I0fd5c51be315a1bdb7ede2abc896c65d6cd44a40
diff --git a/xos/core/admin.py b/xos/core/admin.py
index ed52345..2124e96 100644
--- a/xos/core/admin.py
+++ b/xos/core/admin.py
@@ -1073,6 +1073,21 @@
                       ('resources', 'Resources'),
                       )
 
+class XosModelAdmin(XOSBaseAdmin):
+    list_display = ("backend_status_icon", "name",)
+    list_display_links = ('backend_status_icon', 'name',)
+    fieldList = ["name", "ui_port", "bootstrap_ui_port", "docker_project_name", "db_container_name", "enable_build", "frontend_only",
+                 "source_ui_image", "extra_hosts", "no_start"]
+    fieldsets = [
+        (None, {'fields': fieldList, 'classes': ['suit-tab suit-tab-general']})]
+    inlines = []
+    readonly_fields = ('backend_status_text', )
+
+    user_readonly_fields = fieldList
+
+    suit_form_tabs = (('general', 'XOS Details'),
+                      )
+
 
 class SiteNodeInline(XOSTabularInline):
     model = Node
@@ -2436,7 +2451,7 @@
 admin.site.register(Slice, SliceAdmin)
 admin.site.register(Service, ServiceAdmin)
 admin.site.register(ServiceController, ServiceControllerAdmin)
-#admin.site.register(Reservation, ReservationAdmin)
+admin.site.register(XOS, XosModelAdmin)
 admin.site.register(Network, NetworkAdmin)
 admin.site.register(Port, PortAdmin)
 admin.site.register(Router, RouterAdmin)
diff --git a/xos/core/models/xosmodel.py b/xos/core/models/xosmodel.py
index 73c44e4..361dd63 100644
--- a/xos/core/models/xosmodel.py
+++ b/xos/core/models/xosmodel.py
@@ -18,6 +18,7 @@
     frontend_only = models.BooleanField(help_text="If True, XOS will not start synchronizer containers", default=False)
     source_ui_image = StrippedCharField(max_length=200, default="xosproject/xos")
     extra_hosts = StrippedCharField(max_length=1024, help_text="list of hostname mappings that will be passed to docker-compose", null=True, blank=True)
+    no_start = models.BooleanField(help_text="Do not start the XOS UI inside of the UI docker container", default=False)
 
     def __unicode__(self):  return u'%s' % (self.name)
 
diff --git a/xos/synchronizers/onboarding/xosbuilder.py b/xos/synchronizers/onboarding/xosbuilder.py
index 78ee3d0..c87efc3 100644
--- a/xos/synchronizers/onboarding/xosbuilder.py
+++ b/xos/synchronizers/onboarding/xosbuilder.py
@@ -328,6 +328,9 @@
                              "extra_hosts": extra_hosts,
                              "volumes": volume_list}
 
+         if xos.no_start:
+             containers["xos_ui"]["command"] = "sleep 864000"
+
 #         containers["xos_bootstrap_ui"] = {"image": "xosproject/xos",
 #                             "command": "python /opt/xos/manage.py runserver 0.0.0.0:%d --insecure --makemigrations" % xos.bootstrap_ui_port,
 #                             "ports": {"%d"%xos.bootstrap_ui_port : "%d"%xos.bootstrap_ui_port},