class TestJob(Job): class Meta: name = "Test job" var1 = StringVar() var2 = IntegerVar() var3 = BooleanVar() def run(self, data, commit=True): self.log_info(message=data["var1"]) self.log_success(message=data["var2"]) self.log_failure(message=data["var3"]) return "Job complete" def test_foo(self): self.log_success(obj=None, message="Test completed")
class FormEntry: # pylint disable=too-few-public-method """Class definition to use as Mixin for form definitions.""" tenant_group = MultiObjectVar(model=TenantGroup, required=False) tenant = MultiObjectVar(model=Tenant, required=False) region = MultiObjectVar(model=Region, required=False) site = MultiObjectVar(model=Site, required=False) rack_group = MultiObjectVar(model=RackGroup, required=False) rack = MultiObjectVar(model=Rack, required=False) role = MultiObjectVar(model=DeviceRole, required=False) manufacturer = MultiObjectVar(model=Manufacturer, required=False) platform = MultiObjectVar(model=Platform, required=False) device_type = MultiObjectVar(model=DeviceType, required=False, display_field="display_name") device = MultiObjectVar(model=Device, required=False) tag = MultiObjectVar(model=Tag, required=False) debug = BooleanVar(description="Enable for more verbose debug logging")
class APITestJob(Job): class Meta: name = "Job for API Tests" var1 = StringVar() var2 = IntegerVar( required=True ) # explicitly stated, though required=True is the default in any case var3 = BooleanVar() var4 = ObjectVar(model=DeviceRole) def run(self, data, commit=True): self.log_debug(message=data["var1"]) self.log_info(message=data["var2"]) self.log_success(message=data["var3"]) self.log_warning(message=data["var4"]) return "Job complete"
class AllGoldenConfig(Job): """Job to to run all three jobs against a single device.""" device = ObjectVar(model=Device, required=True) debug = BooleanVar(description="Enable for more verbose debug logging") class Meta: """Meta object boilerplate for all jobs to run against a device.""" name = "Execute All Golden Configuration Jobs - Single Device" description = "Process to run all Golden Configuration jobs configured." @commit_check def run(self, data, commit): """Run all jobs.""" if ENABLE_INTENDED: IntendedJob().run.__func__(self, data, True) if ENABLE_BACKUP: BackupJob().run.__func__(self, data, True) if ENABLE_COMPLIANCE: ComplianceJob().run.__func__(self, data, True)