Exemple #1
0
 class Quotas(quotas_models.QuotaModelMixin.Quotas):
     counter_quota = fields.CounterQuotaField(
         target_models=lambda: [ChildModel],
         path_to_scope='parent',
     )
     two_targets_counter_quota = fields.CounterQuotaField(
         target_models=lambda: [ChildModel, SecondChildModel],
         path_to_scope='parent',
     )
     delta_quota = fields.CounterQuotaField(
         target_models=lambda: [ChildModel],
         path_to_scope='parent',
         get_delta=lambda scope: 10
     )
     usage_aggregator_quota = fields.UsageAggregatorQuotaField(
         get_children=lambda scope: scope.children.all(),
     )
     limit_aggregator_quota = fields.LimitAggregatorQuotaField(
         get_children=lambda scope: scope.children.all(),
         default_limit=0,
     )
     second_usage_aggregator_quota = fields.UsageAggregatorQuotaField(
         get_children=lambda scope: scope.children.all(),
         child_quota_name='usage_aggregator_quota',
     )
     total_quota = fields.TotalQuotaField(
         target_models=lambda: [SecondChildModel],
         path_to_scope='parent',
         target_field='size',
     )
Exemple #2
0
 class Quotas(quotas_models.QuotaModelMixin.Quotas):
     enable_fields_caching = False
     nc_project_count = quotas_fields.CounterQuotaField(
         target_models=lambda: [Project],
         path_to_scope='customer',
     )
     nc_user_count = quotas_fields.QuotaField()
     nc_resource_count = quotas_fields.CounterQuotaField(
         target_models=lambda: BaseResource.get_all_models(),
         path_to_scope='project.customer',
     )
Exemple #3
0
 class Quotas(quotas_models.QuotaModelMixin.Quotas):
     enable_fields_caching = False
     nc_project_count = quotas_fields.CounterQuotaField(
         target_models=lambda: [Project],
         path_to_scope='customer',
     )
     nc_service_count = quotas_fields.CounterQuotaField(
         target_models=lambda: Service.get_all_models(),
         path_to_scope='customer',
     )
     nc_service_project_link_count = quotas_fields.CounterQuotaField(
         target_models=lambda: ServiceProjectLink.get_all_models(),
         path_to_scope='project.customer',
     )
     nc_user_count = quotas_fields.QuotaField()
     nc_resource_count = quotas_fields.CounterQuotaField(
         target_models=lambda: ResourceMixin.get_all_models(),
         path_to_scope='project.customer',
     )
     nc_app_count = quotas_fields.CounterQuotaField(
         target_models=lambda: ApplicationMixin.get_all_models(),
         path_to_scope='project.customer',
     )
     nc_vm_count = quotas_fields.CounterQuotaField(
         target_models=lambda: VirtualMachine.get_all_models(),
         path_to_scope='project.customer',
     )
     nc_private_cloud_count = quotas_fields.CounterQuotaField(
         target_models=lambda: PrivateCloud.get_all_models(),
         path_to_scope='project.customer',
     )
     nc_storage_count = quotas_fields.CounterQuotaField(
         target_models=lambda: Storage.get_all_models(),
         path_to_scope='project.customer',
     )
     nc_volume_size = quotas_fields.CounterQuotaField(
         target_models=lambda: Volume.get_all_models(),
         path_to_scope='customer',
         get_delta=lambda obj: obj.size,
     )
     nc_snapshot_size = quotas_fields.CounterQuotaField(
         target_models=lambda: Snapshot.get_all_models(),
         path_to_scope='customer',
         get_delta=lambda obj: obj.size
     )
Exemple #4
0
    def ready(self):
        from waldur_core.quotas import fields as quota_fields
        from waldur_core.structure.registry import SupportedServices
        from waldur_core.structure import models as structure_models
        from waldur_core.structure.signals import resource_imported

        from . import handlers
        from .backend import JiraBackend

        SupportedServices.register_backend(JiraBackend)

        Issue = self.get_model('Issue')
        Comment = self.get_model('Comment')
        Project = self.get_model('Project')

        structure_models.Project.add_quota_field(
            name='nc_jira_project_count',
            quota_field=quota_fields.CounterQuotaField(
                target_models=lambda: [Project],
                path_to_scope='project',
            ),
        )

        resource_imported.connect(
            handlers.import_project_issues,
            sender=Project,
            dispatch_uid='waldur_jira.handlers.import_project_issues',
        )

        signals.post_save.connect(
            handlers.log_issue_save,
            sender=Issue,
            dispatch_uid='waldur_jira.handlers.log_issue_save',
        )

        signals.post_delete.connect(
            handlers.log_issue_delete,
            sender=Issue,
            dispatch_uid='waldur_jira.handlers.log_issue_delete',
        )

        signals.post_save.connect(
            handlers.log_comment_save,
            sender=Comment,
            dispatch_uid='waldur_jira.handlers.log_comment_save',
        )

        signals.post_delete.connect(
            handlers.log_comment_delete,
            sender=Comment,
            dispatch_uid='waldur_jira.handlers.log_comment_delete',
        )
Exemple #5
0
 class Quotas(quotas_models.QuotaModelMixin.Quotas):
     enable_fields_caching = False
     nc_resource_count = quotas_fields.CounterQuotaField(
         target_models=lambda: ResourceMixin.get_all_models(),
         path_to_scope='project',
     )
     nc_app_count = quotas_fields.CounterQuotaField(
         target_models=lambda: ApplicationMixin.get_all_models(),
         path_to_scope='project',
     )
     nc_vm_count = quotas_fields.CounterQuotaField(
         target_models=lambda: VirtualMachine.get_all_models(),
         path_to_scope='project',
     )
     nc_private_cloud_count = quotas_fields.CounterQuotaField(
         target_models=lambda: PrivateCloud.get_all_models(),
         path_to_scope='project',
     )
     nc_storage_count = quotas_fields.CounterQuotaField(
         target_models=lambda: Storage.get_all_models(),
         path_to_scope='project',
     )
     nc_volume_count = quotas_fields.CounterQuotaField(
         target_models=lambda: Volume.get_all_models(),
         path_to_scope='project',
     )
     nc_snapshot_count = quotas_fields.CounterQuotaField(
         target_models=lambda: Snapshot.get_all_models(),
         path_to_scope='project',
     )
     nc_volume_size = quotas_fields.TotalQuotaField(
         target_models=lambda: Volume.get_all_models(),
         path_to_scope='project',
         target_field='size',
     )
     nc_snapshot_size = quotas_fields.TotalQuotaField(
         target_models=lambda: Snapshot.get_all_models(),
         path_to_scope='project',
         target_field='size',
     )
Exemple #6
0
 class Quotas(quotas_models.QuotaModelMixin.Quotas):
     offering_count = quotas_fields.CounterQuotaField(
         target_models=lambda: [Offering],
         path_to_scope='category',
     )
Exemple #7
0
 class Quotas(quotas_models.QuotaModelMixin.Quotas):
     order_item_count = quotas_fields.CounterQuotaField(
         target_models=lambda: [OrderItem],
         path_to_scope='offering',
     )
Exemple #8
0
    def ready(self):
        from waldur_core.quotas import fields as quota_fields
        from waldur_core.structure import models as structure_models

        from . import handlers

        Issue = self.get_model('Issue')
        Attachment = self.get_model('Attachment')
        Offering = self.get_model('Offering')
        Comment = self.get_model('Comment')

        structure_models.Project.add_quota_field(
            name='nc_offering_count',
            quota_field=quota_fields.CounterQuotaField(
                target_models=[Offering],
                path_to_scope='project',
            )
        )
        structure_models.Customer.add_quota_field(
            name='nc_offering_count',
            quota_field=quota_fields.CounterQuotaField(
                target_models=[Offering],
                path_to_scope='project.customer',
            )
        )

        signals.post_save.connect(
            handlers.log_issue_save,
            sender=Issue,
            dispatch_uid='waldur_mastermind.support.handlers.log_issue_save',
        )

        signals.post_delete.connect(
            handlers.log_issue_delete,
            sender=Issue,
            dispatch_uid='waldur_mastermind.support.handlers.log_issue_delete',
        )

        signals.post_save.connect(
            handlers.log_attachment_save,
            sender=Attachment,
            dispatch_uid='waldur_mastermind.support.handlers.log_attachment_save',
        )

        signals.post_delete.connect(
            handlers.log_attachment_delete,
            sender=Attachment,
            dispatch_uid='waldur_mastermind.support.handlers.log_attachment_delete',
        )

        signals.post_save.connect(
            handlers.log_offering_created,
            sender=Offering,
            dispatch_uid='waldur_mastermind.support.handlers.log_offering_created',
        )

        signals.pre_delete.connect(
            handlers.log_offering_deleted,
            sender=Offering,
            dispatch_uid='waldur_mastermind.support.handlers.log_offering_deleted',
        )

        signals.post_save.connect(
            handlers.log_offering_state_changed,
            sender=Offering,
            dispatch_uid='waldur_mastermind.support.handlers.log_offering_state_changed',
        )

        signals.post_save.connect(
            handlers.send_comment_added_notification,
            sender=Comment,
            dispatch_uid='waldur_mastermind.support.handlers.send_comment_added_notification'
        )

        signals.post_save.connect(
            handlers.send_issue_updated_notification,
            sender=Issue,
            dispatch_uid='waldur_mastermind.support.handlers.send_issue_updated_notification'
        )