add no-start bit and Admin to XOSComponent

Change-Id: I418f20c713f5a289f34ce3f7fa159a42286d5851
diff --git a/xos/core/admin.py b/xos/core/admin.py
index 164cbb4..48719f9 100644
--- a/xos/core/admin.py
+++ b/xos/core/admin.py
@@ -1132,6 +1132,21 @@
                       ('resources', 'Resources'),
                       )
 
+class XOSComponentAdmin(XOSBaseAdmin):
+    list_display = ("backend_status_icon", "name",)
+    list_display_links = ('backend_status_icon', 'name',)
+    fieldList = ["backend_status_text", "name", "xos", "version", "provides", "requires", "base_url", "no_start"]
+    fieldsets = [
+        (None, {'fields': fieldList, 'classes': ['suit-tab suit-tab-general']})]
+    inlines = [LoadableModuleResourceInline]
+    readonly_fields = ('backend_status_text', )
+
+    user_readonly_fields = fieldList
+
+    suit_form_tabs = (('general', 'Component Details'),
+                      ('resources', 'Resources'),
+                      )
+
 class XOSVolumeInline(XOSTabularInline):
     model = XOSVolume
     extra = 0
@@ -2519,6 +2534,7 @@
 admin.site.register(Service, ServiceAdmin)
 admin.site.register(ServiceController, ServiceControllerAdmin)
 admin.site.register(Library, LibraryAdmin)
+admin.site.register(XOSComponent, XOSComponentAdmin)
 admin.site.register(XOS, XosModelAdmin)
 admin.site.register(Network, NetworkAdmin)
 admin.site.register(Port, PortAdmin)
diff --git a/xos/core/models/service.py b/xos/core/models/service.py
index f9f16ec..6f49442 100644
--- a/xos/core/models/service.py
+++ b/xos/core/models/service.py
@@ -203,6 +203,8 @@
     command = StrippedCharField(max_length=1024, help_text="docker run command", null=True, blank=True)
     ports = StrippedCharField(max_length=200, help_text="port binding", null=True, blank=True)
 
+    no_start = models.BooleanField(help_text="Do not start the Component", default=False)
+
 
 class XOSComponentLink(PlCoreBase):
 
@@ -242,7 +244,7 @@
     synchronizer_run = StrippedCharField(max_length=1024, help_text="synchronizer run command", null=True, blank=True)
     synchronizer_config = StrippedCharField(max_length=1024, help_text="synchronizer config file", null=True, blank=True)
 
-    no_start = models.BooleanField(help_text="Do not start the XOS UI inside of the UI docker container", default=False)
+    no_start = models.BooleanField(help_text="Do not start the Synchronizer", default=False)
 
 class ServiceControllerResource(LoadableModuleResource):
     class Meta:
diff --git a/xos/synchronizers/onboarding/xosbuilder.py b/xos/synchronizers/onboarding/xosbuilder.py
index d5ef3ce..ac6f566 100644
--- a/xos/synchronizers/onboarding/xosbuilder.py
+++ b/xos/synchronizers/onboarding/xosbuilder.py
@@ -389,6 +389,9 @@
                 "volumes": component_volume_list
             }
 
+            if c.no_start:
+                containers[c.name]["command"] = "sleep 864000"
+
         if not xos.frontend_only:
             for c in ServiceController.objects.all():
                 if self.check_controller_unready(c):