import sentaku from utils.appliance import Navigatable class Server(Navigatable, sentaku.Element): def __init__(self, appliance=None): Navigatable.__init__(self, appliance=appliance) from . import ui, ssui # NOQA last for import cycles sentaku.register_external_implementations_in(ui, ssui)
class MyService(Updateable, Navigatable, WidgetasticTaggable, sentaku.modeling.ElementMixin): """ My Service main class to context switch between ui and ssui. All the below methods are implemented in both ui and ssui side . """ update = sentaku.ContextualMethod() retire = sentaku.ContextualMethod() retire_on_date = sentaku.ContextualMethod() exists = sentaku.ContextualMethod() delete = sentaku.ContextualMethod() set_ownership = sentaku.ContextualMethod() edit_tags = sentaku.ContextualMethod() check_vm_add = sentaku.ContextualMethod() download_file = sentaku.ContextualMethod() reconfigure_service = sentaku.ContextualMethod() def __init__(self, appliance, name=None, description=None, vm_name=None): self.appliance = appliance self.name = name self.description = description self.vm_name = vm_name self.parent = self.appliance.context from . import ui, ssui # NOQA last for import cycles sentaku.register_external_implementations_in(ui, ssui)
@attr.s class GenericObjectInstance(BaseEntity, Updateable, sentaku.modeling.ElementMixin): """Generic Objects class to context switch between REST and Automate. Read/Update/Delete functionality. """ update = sentaku.ContextualMethod() delete = sentaku.ContextualMethod() exists = sentaku.ContextualProperty() name = attr.ib() definition = attr.ib() # generic object definition attributes = attr.ib(default=None) # e.g. {'address': 'Test Address'} associations = attr.ib( default=None) # e.g. {'services': [myservice1, myservice2]} rest_response = attr.ib(default=None, init=False) @attr.s class GenericObjectInstanceCollection(BaseCollection, sentaku.modeling.ElementMixin): ENTITY = GenericObjectInstance create = sentaku.ContextualMethod() from . import rest # NOQA last for import cycles sentaku.register_external_implementations_in(rest)