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)
Beispiel #2
0
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)