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):