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', )
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', )
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 )
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', )
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', )
class Quotas(quotas_models.QuotaModelMixin.Quotas): offering_count = quotas_fields.CounterQuotaField( target_models=lambda: [Offering], path_to_scope='category', )
class Quotas(quotas_models.QuotaModelMixin.Quotas): order_item_count = quotas_fields.CounterQuotaField( target_models=lambda: [OrderItem], path_to_scope='offering', )
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' )