Exemplo n.º 1
0
    def ready(self):
        # structure
        from .backend import SugarCRMBackend
        SupportedServices.register_backend(SugarCRMBackend)

        # cost tracking
        from .cost_tracking import SugarCRMCostTrackingBackend
        CostTrackingRegister.register(self.label, SugarCRMCostTrackingBackend)

        # template
        from .template import CRMProvisionTemplateForm
        TemplateRegistry.register(CRMProvisionTemplateForm)

        from . import handlers
        CRM = self.get_model('CRM')

        signals.post_save.connect(
            handlers.update_user_limit_count_quota_on_crm_quota_change,
            sender=Quota,
            dispatch_uid='nodeconductor_sugarcrm.handlers.update_user_limit_count_quota_on_crm_quota_change',
        )

        signals.pre_delete.connect(
            handlers.update_user_limit_count_quota_on_crm_deletion,
            sender=CRM,
            dispatch_uid='nodeconductor_sugarcrm.handlers.update_user_limit_count_quota_on_crm_deletion'
        )
Exemplo n.º 2
0
    def ready(self):
        # structure
        from .backend import ZabbixBackend
        SupportedServices.register_backend(ZabbixBackend)

        # templates
        from nodeconductor.template import TemplateRegistry
        from nodeconductor_zabbix.template import HostProvisionTemplateForm
        TemplateRegistry.register(HostProvisionTemplateForm)

        from . import handlers
        for index, resource_model in enumerate(
                structure_models.Resource.get_all_models()):
            signals.post_save.connect(
                handlers.update_hosts_visible_name_on_scope_name_change,
                sender=resource_model,
                dispatch_uid=
                'nodeconductor_zabbix.handlers.update_hosts_visible_name_on_scope_name_change_%s_%s'
                % (index, resource_model.__name__))

            signals.pre_delete.connect(
                handlers.delete_hosts_on_scope_deletion,
                sender=resource_model,
                dispatch_uid=
                'nodeconductor_zabbix.handlers.delete_hosts_on_scope_deletion_%s_%s'
                % (index, resource_model.__name__))
Exemplo n.º 3
0
    def ready(self):
        OpenStackService = self.get_model('OpenStackService')
        OpenStackServiceProjectLink = self.get_model('OpenStackServiceProjectLink')
        Instance = self.get_model('Instance')
        FloatingIP = self.get_model('FloatingIP')

        # structure
        from nodeconductor.openstack.backend import OpenStackBackend
        SupportedServices.register_backend(OpenStackService, OpenStackBackend)

        # cost tracking
        from nodeconductor.openstack.cost_tracking import OpenStackCostTrackingBackend
        CostTrackingRegister.register(self.label, OpenStackCostTrackingBackend)

        # template
        from nodeconductor.template import TemplateRegistry
        from nodeconductor.openstack.template import InstanceProvisionTemplateForm
        TemplateRegistry.register(InstanceProvisionTemplateForm)

        signals.post_save.connect(
            handlers.create_initial_security_groups,
            sender=OpenStackServiceProjectLink,
            dispatch_uid='nodeconductor.openstack.handlers.create_initial_security_groups',
        )

        signals.post_save.connect(
            quotas_handlers.add_quotas_to_scope,
            sender=OpenStackServiceProjectLink,
            dispatch_uid='nodeconductor.openstack.handlers.add_quotas_to_service_project_link',
        )

        signals.pre_save.connect(
            handlers.set_spl_default_availability_zone,
            sender=OpenStackServiceProjectLink,
            dispatch_uid='nodeconductor.openstack.handlers.set_spl_default_availability_zone',
        )

        signals.post_save.connect(
            handlers.increase_quotas_usage_on_instance_creation,
            sender=Instance,
            dispatch_uid='nodeconductor.openstack.handlers.increase_quotas_usage_on_instance_creation',
        )

        signals.post_delete.connect(
            handlers.decrease_quotas_usage_on_instances_deletion,
            sender=Instance,
            dispatch_uid='nodeconductor.openstack.handlers.decrease_quotas_usage_on_instances_deletion',
        )

        signals.post_save.connect(
            handlers.change_floating_ip_quota_on_status_change,
            sender=FloatingIP,
            dispatch_uid='nodeconductor.openstack.handlers.change_floating_ip_quota_on_status_change',
        )
Exemplo n.º 4
0
    def ready(self):
        from .backend import SaltStackBackend
        from .models import SaltStackProperty
        import handlers
        SupportedServices.register_backend(SaltStackBackend)

        from nodeconductor.structure.models import ServiceSettings
        from nodeconductor.quotas.fields import QuotaField, CounterQuotaField
        from ..exchange.models import ExchangeTenant

        ServiceSettings.add_quota_field(
            name='sharepoint_storage',
            quota_field=QuotaField(
                creation_condition=lambda service_settings: service_settings.
                type == SaltStackConfig.service_name, ),
        )

        ServiceSettings.add_quota_field(
            name='exchange_storage',
            quota_field=QuotaField(
                creation_condition=lambda service_settings: service_settings.
                type == SaltStackConfig.service_name, ),
        )

        ServiceSettings.add_quota_field(
            name='exchange_tenant_count',
            quota_field=CounterQuotaField(
                creation_condition=lambda service_settings: service_settings.
                type == SaltStackConfig.service_name,
                target_models=[ExchangeTenant],
                path_to_scope='service_project_link.service.settings',
            ))

        for index, model in enumerate(SaltStackProperty.get_all_models()):
            signals.post_save.connect(
                handlers.log_saltstack_property_created,
                sender=model,
                dispatch_uid=
                'nodeconductor_saltstack.saltstack.handlers.log_saltstack_property_created{}_{}'
                .format(model.__name__, index),
            )

            signals.post_delete.connect(
                handlers.log_saltstack_property_deleted,
                sender=model,
                dispatch_uid=
                'nodeconductor_saltstack.saltstack.handlers.log_saltstack_property_deleted{}_{}'
                .format(model.__name__, index),
            )
Exemplo n.º 5
0
    def ready(self):
        from nodeconductor.quotas.fields import LimitAggregatorQuotaField
        from nodeconductor.structure import SupportedServices

        # structure
        from .backend import SugarCRMBackend
        SupportedServices.register_backend(SugarCRMBackend)

        from nodeconductor.structure.models import ServiceSettings
        from . import handlers, signals as sugarcrm_signals
        CRM = self.get_model('CRM')
        SugarCRMServiceProjectLink = self.get_model(
            'SugarCRMServiceProjectLink')

        sugarcrm_signals.user_post_save.connect(
            handlers.log_user_post_save,
            sender=CRM,
            dispatch_uid='nodeconductor_sugarcrm.handlers.log_user_post_save')

        sugarcrm_signals.user_post_delete.connect(
            handlers.log_user_post_delete,
            sender=CRM,
            dispatch_uid='nodeconductor_sugarcrm.handlers.log_user_post_delete'
        )

        ServiceSettings.add_quota_field(
            name='sugarcrm_user_count',
            quota_field=LimitAggregatorQuotaField(
                creation_condition=lambda service_settings: service_settings.
                type == SugarCRMConfig.service_name,
                get_children=lambda service_settings:
                SugarCRMServiceProjectLink.objects.filter(service__settings=
                                                          service_settings),
                child_quota_name='user_limit_count',
            ),
        )
Exemplo n.º 6
0
 def ready(self):
     SupportedServices.register_backend(TestBackend)
     SupportedServices.register_service(self.get_model('TestService'))
Exemplo n.º 7
0
    def ready(self):
        from nodeconductor.structure import SupportedServices

        # structure
        from .backend import OracleBackend
        SupportedServices.register_backend(OracleBackend)
Exemplo n.º 8
0
 def ready(self):
     from .backend import ExchangeBackend
     SupportedServices.register_backend(ExchangeBackend, nested=True)
Exemplo n.º 9
0
    def ready(self):
        OracleService = self.get_model('OracleService')

        from nodeconductor.oracle.backend import OracleBackend
        SupportedServices.register_backend(OracleService, OracleBackend)
Exemplo n.º 10
0
    def ready(self):
        Instance = self.get_model('Instance')
        Cloud = self.get_model('Cloud')
        CloudProjectMembership = self.get_model('CloudProjectMembership')

        from nodeconductor.iaas import handlers, cost_tracking
        CostTrackingRegister.register(self.label, cost_tracking.IaaSCostTrackingBackend)

        from nodeconductor.iaas.backend import OpenStackBackend
        SupportedServices.register_backend(OpenStackBackend)
        SupportedServices.register_service(Cloud)
        SupportedServices.register_resource(Instance)

        signals.post_save.connect(
            quotas_handlers.add_quotas_to_scope,
            sender=CloudProjectMembership,
            dispatch_uid='nodeconductor.iaas.handlers.add_quotas_to_cloud_project_membership',
        )

        signals.post_save.connect(
            handlers.create_initial_security_groups,
            sender=CloudProjectMembership,
            dispatch_uid='nodeconductor.iaas.handlers.create_initial_security_groups',
        )

        # protect against a deletion of the Instance with connected backups
        # TODO: introduces dependency of IaaS on Backups, should be reconsidered
        signals.pre_delete.connect(
            handlers.prevent_deletion_of_instances_with_connected_backups,
            sender=Instance,
            dispatch_uid='nodeconductor.iaas.handlers.prevent_deletion_of_instances_with_connected_backups',
        )

        signals.pre_save.connect(
            core_handlers.preserve_fields_before_update,
            sender=Instance,
            dispatch_uid='nodeconductor.iaas.handlers.preserve_fields_before_update',
        )

        # if instance name is updated, zabbix host visible name should be also updated
        signals.post_save.connect(
            handlers.check_instance_name_update,
            sender=Instance,
            dispatch_uid='nodeconductor.iaas.handlers.check_instance_name_update',
        )

        signals.pre_save.connect(
            handlers.set_cpm_default_availability_zone,
            sender=CloudProjectMembership,
            dispatch_uid='nodeconductor.iaas.handlers.set_cpm_default_availability_zone',
        )

        signals.post_save.connect(
            handlers.increase_quotas_usage_on_instance_creation,
            sender=Instance,
            dispatch_uid='nodeconductor.iaas.handlers.increase_quotas_usage_on_instance_creation',
        )

        signals.post_delete.connect(
            handlers.decrease_quotas_usage_on_instances_deletion,
            sender=Instance,
            dispatch_uid='nodeconductor.iaas.handlers.decrease_quotas_usage_on_instances_deletion',
        )

        signals.post_save.connect(
            handlers.check_project_name_update,
            sender=Project,
            dispatch_uid='nodeconductor.iaas.handlers.check_project_name_update'
        )
Exemplo n.º 11
0
 def ready(self):
     from .backend import SharepointBackend
     SupportedServices.register_backend(SharepointBackend, nested=True)