コード例 #1
0
ファイル: threshold.py プロジェクト: 0xffea/cloudkitty
    def post(self, threshold_data):
        """Create a threshold.

        :param threshold_data: Informations about the threshold to create.
        """
        hashmap = db_api.get_instance()
        try:
            threshold_db = hashmap.create_threshold(
                level=threshold_data.level,
                map_type=threshold_data.map_type,
                cost=threshold_data.cost,
                field_id=threshold_data.field_id,
                group_id=threshold_data.group_id,
                service_id=threshold_data.service_id,
                tenant_id=threshold_data.tenant_id)
            pecan.response.location = pecan.request.path_url
            if pecan.response.location[-1] != '/':
                pecan.response.location += '/'
            pecan.response.location += threshold_db.threshold_id
            return threshold_models.Threshold(
                **threshold_db.export_model())
        except db_api.ThresholdAlreadyExists as e:
            pecan.abort(409, six.text_type(e))
        except db_api.ClientHashMapError as e:
            pecan.abort(400, six.text_type(e))
コード例 #2
0
    def post(self, mapping_data):
        """Create a mapping.

        :param mapping_data: Informations about the mapping to create.
        """
        hashmap = db_api.get_instance()
        try:
            mapping_db = hashmap.create_mapping(
                value=mapping_data.value,
                map_type=mapping_data.map_type,
                cost=mapping_data.cost,
                field_id=mapping_data.field_id,
                group_id=mapping_data.group_id,
                service_id=mapping_data.service_id,
                tenant_id=mapping_data.tenant_id)
            pecan.response.location = pecan.request.path_url
            if pecan.response.location[-1] != '/':
                pecan.response.location += '/'
            pecan.response.location += mapping_db.mapping_id
            return mapping_models.Mapping(
                **mapping_db.export_model())
        except db_api.MappingAlreadyExists as e:
            pecan.abort(409, six.text_type(e))
        except db_api.ClientHashMapError as e:
            pecan.abort(400, six.text_type(e))
コード例 #3
0
    def get_all(self,
                service_id=None,
                field_id=None,
                group_id=None,
                no_group=False,
                tenant_id=None,
                filter_tenant=False):
        """Get the threshold list

        :param service_id: Service UUID to filter on.
        :param field_id: Field UUID to filter on.
        :param group_id: Group UUID to filter on.
        :param no_group: Filter on orphaned thresholds.
        :param tenant_id: Tenant UUID to filter on.
        :param filter_tenant: Explicitly filter on tenant (default is to not
        filter on tenant). Useful if you want to filter on tenant being None.
        :return: List of every thresholds.
        """
        hashmap = db_api.get_instance()
        threshold_list = []
        search_opts = dict()
        if filter_tenant:
            search_opts['tenant_uuid'] = tenant_id
        thresholds_uuid_list = hashmap.list_thresholds(service_uuid=service_id,
                                                       field_uuid=field_id,
                                                       group_uuid=group_id,
                                                       **search_opts)
        for threshold_uuid in thresholds_uuid_list:
            threshold_db = hashmap.get_threshold(uuid=threshold_uuid)
            threshold_list.append(
                threshold_models.Threshold(**threshold_db.export_model()))
        res = threshold_models.ThresholdCollection(thresholds=threshold_list)
        return res
コード例 #4
0
ファイル: threshold.py プロジェクト: 0xffea/cloudkitty
    def get_all(self,
                service_id=None,
                field_id=None,
                group_id=None,
                no_group=False,
                tenant_id=None,
                filter_tenant=False):
        """Get the threshold list

        :param service_id: Service UUID to filter on.
        :param field_id: Field UUID to filter on.
        :param group_id: Group UUID to filter on.
        :param no_group: Filter on orphaned thresholds.
        :param tenant_id: Tenant UUID to filter on.
        :param filter_tenant: Explicitly filter on tenant (default is to not
        filter on tenant). Useful if you want to filter on tenant being None.
        :return: List of every thresholds.
        """
        hashmap = db_api.get_instance()
        threshold_list = []
        search_opts = dict()
        if filter_tenant:
            search_opts['tenant_uuid'] = tenant_id
        thresholds_uuid_list = hashmap.list_thresholds(
            service_uuid=service_id,
            field_uuid=field_id,
            group_uuid=group_id,
            **search_opts)
        for threshold_uuid in thresholds_uuid_list:
            threshold_db = hashmap.get_threshold(uuid=threshold_uuid)
            threshold_list.append(threshold_models.Threshold(
                **threshold_db.export_model()))
        res = threshold_models.ThresholdCollection(thresholds=threshold_list)
        return res
コード例 #5
0
    def get_all(self,
                service_id=None,
                field_id=None,
                group_id=None,
                no_group=False,
                tenant_id=None,
                filter_tenant=False):
        """Get the mapping list

        :param service_id: Service UUID to filter on.
        :param field_id: Field UUID to filter on.
        :param group_id: Group UUID to filter on.
        :param no_group: Filter on orphaned mappings.
        :param tenant_id: Tenant UUID to filter on.
        :param filter_tenant: Explicitly filter on tenant (default is to not
        filter on tenant). Useful if you want to filter on tenant being None.
        :return: List of every mappings.
        """
        hashmap = db_api.get_instance()
        mapping_list = []
        search_opts = dict()
        if filter_tenant:
            search_opts['tenant_uuid'] = tenant_id
        mappings_uuid_list = hashmap.list_mappings(service_uuid=service_id,
                                                   field_uuid=field_id,
                                                   group_uuid=group_id,
                                                   no_group=no_group,
                                                   **search_opts)
        for mapping_uuid in mappings_uuid_list:
            mapping_db = hashmap.get_mapping(uuid=mapping_uuid)
            mapping_list.append(
                mapping_models.Mapping(**mapping_db.export_model()))
        res = mapping_models.MappingCollection(mappings=mapping_list)
        return res
コード例 #6
0
ファイル: mapping.py プロジェクト: 0xffea/cloudkitty
    def get_all(self,
                service_id=None,
                field_id=None,
                group_id=None,
                no_group=False,
                tenant_id=None,
                filter_tenant=False):
        """Get the mapping list

        :param service_id: Service UUID to filter on.
        :param field_id: Field UUID to filter on.
        :param group_id: Group UUID to filter on.
        :param no_group: Filter on orphaned mappings.
        :param tenant_id: Tenant UUID to filter on.
        :param filter_tenant: Explicitly filter on tenant (default is to not
        filter on tenant). Useful if you want to filter on tenant being None.
        :return: List of every mappings.
        """
        hashmap = db_api.get_instance()
        mapping_list = []
        search_opts = dict()
        if filter_tenant:
            search_opts['tenant_uuid'] = tenant_id
        mappings_uuid_list = hashmap.list_mappings(
            service_uuid=service_id,
            field_uuid=field_id,
            group_uuid=group_id,
            **search_opts)
        for mapping_uuid in mappings_uuid_list:
            mapping_db = hashmap.get_mapping(uuid=mapping_uuid)
            mapping_list.append(mapping_models.Mapping(
                **mapping_db.export_model()))
        res = mapping_models.MappingCollection(mappings=mapping_list)
        return res
コード例 #7
0
ファイル: mapping.py プロジェクト: 0xffea/cloudkitty
    def post(self, mapping_data):
        """Create a mapping.

        :param mapping_data: Informations about the mapping to create.
        """
        hashmap = db_api.get_instance()
        try:
            mapping_db = hashmap.create_mapping(
                value=mapping_data.value,
                map_type=mapping_data.map_type,
                cost=mapping_data.cost,
                field_id=mapping_data.field_id,
                group_id=mapping_data.group_id,
                service_id=mapping_data.service_id,
                tenant_id=mapping_data.tenant_id)
            pecan.response.location = pecan.request.path_url
            if pecan.response.location[-1] != '/':
                pecan.response.location += '/'
            pecan.response.location += mapping_db.mapping_id
            return mapping_models.Mapping(
                **mapping_db.export_model())
        except db_api.MappingAlreadyExists as e:
            pecan.abort(409, six.text_type(e))
        except db_api.ClientHashMapError as e:
            pecan.abort(400, six.text_type(e))
コード例 #8
0
ファイル: __init__.py プロジェクト: jhedden/cloudkitty
 def _load_service_entries(self, service_name, service_uuid):
     hashmap = hash_db_api.get_instance()
     self._entries[service_name] = {}
     mappings_uuid_list = hashmap.list_mappings(service_uuid=service_uuid)
     mappings = self._load_mappings(mappings_uuid_list)
     self._entries[service_name]["mappings"] = mappings
     thresholds_uuid_list = hashmap.list_thresholds(service_uuid=service_uuid)
     thresholds = self._load_thresholds(thresholds_uuid_list)
     self._entries[service_name]["thresholds"] = thresholds
コード例 #9
0
ファイル: mapping.py プロジェクト: 0xffea/cloudkitty
    def delete(self, mapping_id):
        """Delete a mapping.

        :param mapping_id: UUID of the mapping to delete.
        """
        hashmap = db_api.get_instance()
        try:
            hashmap.delete_mapping(uuid=mapping_id)
        except db_api.NoSuchMapping as e:
            pecan.abort(404, six.text_type(e))
コード例 #10
0
ファイル: __init__.py プロジェクト: michaelrice/cloudkitty
 def _load_service_entries(self, service_name, service_uuid):
     hashmap = hash_db_api.get_instance()
     self._entries[service_name] = {}
     mappings_uuid_list = hashmap.list_mappings(service_uuid=service_uuid)
     mappings = self._load_mappings(mappings_uuid_list)
     self._entries[service_name]['mappings'] = mappings
     thresholds_uuid_list = hashmap.list_thresholds(
         service_uuid=service_uuid)
     thresholds = self._load_thresholds(thresholds_uuid_list)
     self._entries[service_name]['thresholds'] = thresholds
コード例 #11
0
ファイル: field.py プロジェクト: FNST-OpenStack/cloudkitty
    def delete(self, field_id):
        """Delete the field and all the sub keys recursively.

        :param field_id: UUID of the field to delete.
        """
        hashmap = db_api.get_instance()
        try:
            hashmap.delete_field(uuid=field_id)
        except db_api.NoSuchService as e:
            pecan.abort(400, str(e))
コード例 #12
0
ファイル: service.py プロジェクト: simhaonline/cloudkitty
    def delete(self, service_id):
        """Delete the service and all the sub keys recursively.

        :param service_id: UUID of the service to delete.
        """
        hashmap = db_api.get_instance()
        try:
            hashmap.delete_service(uuid=service_id)
        except db_api.NoSuchService as e:
            pecan.abort(404, e.args[0])
コード例 #13
0
ファイル: service.py プロジェクト: jhedden/cloudkitty
    def delete(self, service_id):
        """Delete the service and all the sub keys recursively.

        :param service_id: UUID of the service to delete.
        """
        hashmap = db_api.get_instance()
        try:
            hashmap.delete_service(uuid=service_id)
        except db_api.NoSuchService as e:
            pecan.abort(400, six.text_type(e))
コード例 #14
0
ファイル: threshold.py プロジェクト: 0xffea/cloudkitty
    def delete(self, threshold_id):
        """Delete a threshold.

        :param threshold_id: UUID of the threshold to delete.
        """
        hashmap = db_api.get_instance()
        try:
            hashmap.delete_threshold(uuid=threshold_id)
        except db_api.NoSuchThreshold as e:
            pecan.abort(404, six.text_type(e))
コード例 #15
0
ファイル: threshold.py プロジェクト: liangboss/cloudkitty
    def delete(self, threshold_id):
        """Delete a threshold.

        :param threshold_id: UUID of the threshold to delete.
        """
        hashmap = db_api.get_instance()
        try:
            hashmap.delete_threshold(uuid=threshold_id)
        except db_api.NoSuchThreshold as e:
            pecan.abort(404, six.text_type(e))
コード例 #16
0
ファイル: field.py プロジェクト: bopopescu/OpenStack-Ocata
    def delete(self, field_id):
        """Delete the field and all the sub keys recursively.

        :param field_id: UUID of the field to delete.
        """
        hashmap = db_api.get_instance()
        try:
            hashmap.delete_field(uuid=field_id)
        except db_api.NoSuchField as e:
            pecan.abort(404, six.text_type(e))
コード例 #17
0
    def delete(self, mapping_id):
        """Delete a mapping.

        :param mapping_id: UUID of the mapping to delete.
        """
        hashmap = db_api.get_instance()
        try:
            hashmap.delete_mapping(uuid=mapping_id)
        except db_api.NoSuchMapping as e:
            pecan.abort(404, six.text_type(e))
コード例 #18
0
ファイル: threshold.py プロジェクト: liangboss/cloudkitty
    def group(self, threshold_id):
        """Get the group attached to the threshold.

        :param threshold_id: UUID of the threshold to filter on.
        """
        hashmap = db_api.get_instance()
        try:
            group_db = hashmap.get_group_from_threshold(uuid=threshold_id)
            return group_models.Group(**group_db.export_model())
        except db_api.ThresholdHasNoGroup as e:
            pecan.abort(404, six.text_type(e))
コード例 #19
0
ファイル: threshold.py プロジェクト: liangboss/cloudkitty
    def get_one(self, threshold_id):
        """Return a threshold.

        :param threshold_id: UUID of the threshold to filter on.
        """
        hashmap = db_api.get_instance()
        try:
            threshold_db = hashmap.get_threshold(uuid=threshold_id)
            return threshold_models.Threshold(**threshold_db.export_model())
        except db_api.NoSuchThreshold as e:
            pecan.abort(404, six.text_type(e))
コード例 #20
0
ファイル: group.py プロジェクト: Hopebaytech/cloudkitty
    def delete(self, group_id, recursive=False):
        """Delete a group.

        :param group_id: UUID of the group to delete.
        :param recursive: Delete mappings recursively.
        """
        hashmap = db_api.get_instance()
        try:
            hashmap.delete_group(uuid=group_id, recurse=recursive)
        except db_api.NoSuchGroup as e:
            pecan.abort(404, six.text_type(e))
コード例 #21
0
    def delete(self, group_id, recursive=False):
        """Delete a group.

        :param group_id: UUID of the group to delete.
        :param recursive: Delete mappings recursively.
        """
        hashmap = db_api.get_instance()
        try:
            hashmap.delete_group(uuid=group_id, recurse=recursive)
        except db_api.NoSuchGroup as e:
            pecan.abort(404, six.text_type(e))
コード例 #22
0
    def group(self, mapping_id):
        """Get the group attached to the mapping.

        :param mapping_id: UUID of the mapping to filter on.
        """
        hashmap = db_api.get_instance()
        try:
            group_db = hashmap.get_group_from_mapping(uuid=mapping_id)
            return group_models.Group(**group_db.export_model())
        except db_api.MappingHasNoGroup as e:
            pecan.abort(404, six.text_type(e))
コード例 #23
0
ファイル: group.py プロジェクト: Hopebaytech/cloudkitty
    def get_one(self, group_id):
        """Return a group.

        :param group_id: UUID of the group to filter on.
        """
        hashmap = db_api.get_instance()
        try:
            group_db = hashmap.get_group(uuid=group_id)
            return group_models.Group(**group_db.export_model())
        except db_api.NoSuchGroup as e:
            pecan.abort(404, six.text_type(e))
コード例 #24
0
ファイル: field.py プロジェクト: bopopescu/OpenStack-Ocata
    def get_one(self, field_id):
        """Return a field.

        :param field_id: UUID of the field to filter on.
        """
        hashmap = db_api.get_instance()
        try:
            field_db = hashmap.get_field(uuid=field_id)
            return field_models.Field(**field_db.export_model())
        except db_api.NoSuchField as e:
            pecan.abort(404, six.text_type(e))
コード例 #25
0
    def get_one(self, group_id):
        """Return a group.

        :param group_id: UUID of the group to filter on.
        """
        hashmap = db_api.get_instance()
        try:
            group_db = hashmap.get_group(uuid=group_id)
            return group_models.Group(**group_db.export_model())
        except db_api.NoSuchGroup as e:
            pecan.abort(404, six.text_type(e))
コード例 #26
0
ファイル: service.py プロジェクト: simhaonline/cloudkitty
    def get_one(self, service_id):
        """Return a service.

        :param service_id: UUID of the service to filter on.
        """
        hashmap = db_api.get_instance()
        try:
            service_db = hashmap.get_service(uuid=service_id)
            return service_models.Service(**service_db.export_model())
        except db_api.NoSuchService as e:
            pecan.abort(404, e.args[0])
コード例 #27
0
    def get_one(self, mapping_id):
        """Return a mapping.

        :param mapping_id: UUID of the mapping to filter on.
        """
        hashmap = db_api.get_instance()
        try:
            mapping_db = hashmap.get_mapping(uuid=mapping_id)
            return mapping_models.Mapping(**mapping_db.export_model())
        except db_api.NoSuchMapping as e:
            pecan.abort(404, six.text_type(e))
コード例 #28
0
ファイル: service.py プロジェクト: jhedden/cloudkitty
    def get_one(self, service_id):
        """Return a service.

        :param service_id: UUID of the service to filter on.
        """
        hashmap = db_api.get_instance()
        try:
            service_db = hashmap.get_service(uuid=service_id)
            return service_models.Service(**service_db.export_model())
        except db_api.NoSuchService as e:
            pecan.abort(400, six.text_type(e))
コード例 #29
0
ファイル: field.py プロジェクト: FNST-OpenStack/cloudkitty
    def get_one(self, field_id):
        """Return a field.

        :param field_id: UUID of the field to filter on.
        """
        hashmap = db_api.get_instance()
        try:
            field_db = hashmap.get_field(uuid=field_id)
            return field_models.Field(**field_db.export_model())
        except db_api.NoSuchField as e:
            pecan.abort(400, str(e))
コード例 #30
0
ファイル: mapping.py プロジェクト: Hopebaytech/cloudkitty
    def get_one(self, mapping_id):
        """Return a mapping.

        :param mapping_id: UUID of the mapping to filter on.
        """
        hashmap = db_api.get_instance()
        try:
            mapping_db = hashmap.get_mapping(uuid=mapping_id)
            return mapping_models.Mapping(
                **mapping_db.export_model())
        except db_api.NoSuchMapping as e:
            pecan.abort(404, six.text_type(e))
コード例 #31
0
ファイル: mapping.py プロジェクト: Hopebaytech/cloudkitty
    def group(self, mapping_id):
        """Get the group attached to the mapping.

        :param mapping_id: UUID of the mapping to filter on.
        """
        hashmap = db_api.get_instance()
        try:
            group_db = hashmap.get_group_from_mapping(
                uuid=mapping_id)
            return group_models.Group(**group_db.export_model())
        except db_api.MappingHasNoGroup as e:
            pecan.abort(404, six.text_type(e))
コード例 #32
0
ファイル: mapping.py プロジェクト: FNST-OpenStack/cloudkitty
    def delete(self, mapping_id):
        """Delete a mapping.

        :param mapping_id: UUID of the mapping to delete.
        """
        hashmap = db_api.get_instance()
        try:
            hashmap.delete_mapping(uuid=mapping_id)
        except (db_api.NoSuchService,
                db_api.NoSuchField,
                db_api.NoSuchMapping) as e:
            pecan.abort(400, str(e))
コード例 #33
0
    def delete(self, threshold_id):
        """Delete a threshold.

        :param threshold_id: UUID of the threshold to delete.
        """
        hashmap = db_api.get_instance()
        try:
            hashmap.delete_threshold(uuid=threshold_id)
        except (db_api.NoSuchService,
                db_api.NoSuchField,
                db_api.NoSuchThreshold) as e:
            pecan.abort(400, str(e))
コード例 #34
0
ファイル: threshold.py プロジェクト: 0xffea/cloudkitty
    def group(self, threshold_id):
        """Get the group attached to the threshold.

        :param threshold_id: UUID of the threshold to filter on.
        """
        hashmap = db_api.get_instance()
        try:
            group_db = hashmap.get_group_from_threshold(
                uuid=threshold_id)
            return group_models.Group(**group_db.export_model())
        except db_api.ThresholdHasNoGroup as e:
            pecan.abort(404, six.text_type(e))
コード例 #35
0
ファイル: threshold.py プロジェクト: 0xffea/cloudkitty
    def get_one(self, threshold_id):
        """Return a threshold.

        :param threshold_id: UUID of the threshold to filter on.
        """
        hashmap = db_api.get_instance()
        try:
            threshold_db = hashmap.get_threshold(uuid=threshold_id)
            return threshold_models.Threshold(
                **threshold_db.export_model())
        except db_api.NoSuchThreshold as e:
            pecan.abort(404, six.text_type(e))
コード例 #36
0
ファイル: __init__.py プロジェクト: arhlong/cloudkitty
 def _load_rates(self):
     self._entries = {}
     hashmap = hash_db_api.get_instance()
     services_uuid_list = hashmap.list_services()
     for service_uuid in services_uuid_list:
         service_db = hashmap.get_service(uuid=service_uuid)
         service_name = service_db.name
         self._load_service_entries(service_name, service_uuid)
         fields_uuid_list = hashmap.list_fields(service_uuid)
         for field_uuid in fields_uuid_list:
             field_db = hashmap.get_field(uuid=field_uuid)
             field_name = field_db.name
             self._load_field_entries(service_name, field_name, field_uuid)
コード例 #37
0
ファイル: __init__.py プロジェクト: carriercomm/cloudkitty
 def _load_rates(self):
     self._entries = {}
     hashmap = hash_db_api.get_instance()
     services_uuid_list = hashmap.list_services()
     for service_uuid in services_uuid_list:
         service_db = hashmap.get_service(uuid=service_uuid)
         service_name = service_db.name
         self._load_service_entries(service_name, service_uuid)
         fields_uuid_list = hashmap.list_fields(service_uuid)
         for field_uuid in fields_uuid_list:
             field_db = hashmap.get_field(uuid=field_uuid)
             field_name = field_db.name
             self._load_field_entries(service_name, field_name, field_uuid)
コード例 #38
0
ファイル: __init__.py プロジェクト: michaelrice/cloudkitty
 def _load_field_entries(self, service_name, field_name, field_uuid):
     hashmap = hash_db_api.get_instance()
     mappings_uuid_list = hashmap.list_mappings(field_uuid=field_uuid)
     mappings = self._load_mappings(mappings_uuid_list)
     thresholds_uuid_list = hashmap.list_thresholds(field_uuid=field_uuid)
     thresholds = self._load_thresholds(thresholds_uuid_list)
     if service_name not in self._entries:
         self._entries[service_name] = {}
     if 'fields' not in self._entries[service_name]:
         self._entries[service_name]['fields'] = {}
     scope = self._entries[service_name]['fields'][field_name] = {}
     scope['mappings'] = mappings
     scope['thresholds'] = thresholds
コード例 #39
0
ファイル: __init__.py プロジェクト: carriercomm/cloudkitty
 def _load_field_entries(self, service_name, field_name, field_uuid):
     hashmap = hash_db_api.get_instance()
     mappings_uuid_list = hashmap.list_mappings(field_uuid=field_uuid)
     mappings = self._load_mappings(mappings_uuid_list)
     thresholds_uuid_list = hashmap.list_thresholds(field_uuid=field_uuid)
     thresholds = self._load_thresholds(thresholds_uuid_list)
     if service_name not in self._entries:
         self._entries[service_name] = {}
     if 'fields' not in self._entries[service_name]:
         self._entries[service_name]['fields'] = {}
     scope = self._entries[service_name]['fields'][field_name] = {}
     scope['mappings'] = mappings
     scope['thresholds'] = thresholds
コード例 #40
0
    def get_all(self):
        """Get the group list

        :return: List of every group.
        """
        hashmap = db_api.get_instance()
        group_list = []
        groups_uuid_list = hashmap.list_groups()
        for group_uuid in groups_uuid_list:
            group_db = hashmap.get_group(uuid=group_uuid)
            group_list.append(group_models.Group(**group_db.export_model()))
        res = group_models.GroupCollection(groups=group_list)
        return res
コード例 #41
0
ファイル: group.py プロジェクト: Hopebaytech/cloudkitty
    def thresholds(self, group_id):
        """Get the thresholds attached to the group.

        :param group_id: UUID of the group to filter on.
        """
        hashmap = db_api.get_instance()
        threshold_list = []
        thresholds_uuid_list = hashmap.list_thresholds(group_uuid=group_id)
        for threshold_uuid in thresholds_uuid_list:
            threshold_db = hashmap.get_threshold(uuid=threshold_uuid)
            threshold_list.append(threshold_models.Threshold(
                **threshold_db.export_model()))
        res = threshold_models.ThresholdCollection(thresholds=threshold_list)
        return res
コード例 #42
0
    def mappings(self, group_id):
        """Get the mappings attached to the group.

        :param group_id: UUID of the group to filter on.
        """
        hashmap = db_api.get_instance()
        mapping_list = []
        mappings_uuid_list = hashmap.list_mappings(group_uuid=group_id)
        for mapping_uuid in mappings_uuid_list:
            mapping_db = hashmap.get_mapping(uuid=mapping_uuid)
            mapping_list.append(
                mapping_models.Mapping(**mapping_db.export_model()))
        res = mapping_models.MappingCollection(mappings=mapping_list)
        return res
コード例 #43
0
ファイル: group.py プロジェクト: Hopebaytech/cloudkitty
    def mappings(self, group_id):
        """Get the mappings attached to the group.

        :param group_id: UUID of the group to filter on.
        """
        hashmap = db_api.get_instance()
        mapping_list = []
        mappings_uuid_list = hashmap.list_mappings(group_uuid=group_id)
        for mapping_uuid in mappings_uuid_list:
            mapping_db = hashmap.get_mapping(uuid=mapping_uuid)
            mapping_list.append(mapping_models.Mapping(
                **mapping_db.export_model()))
        res = mapping_models.MappingCollection(mappings=mapping_list)
        return res
コード例 #44
0
ファイル: service.py プロジェクト: simhaonline/cloudkitty
    def get_all(self):
        """Get the service list

        :return: List of every services.
        """
        hashmap = db_api.get_instance()
        service_list = []
        services_uuid_list = hashmap.list_services()
        for service_uuid in services_uuid_list:
            service_db = hashmap.get_service(uuid=service_uuid)
            service_list.append(service_models.Service(
                **service_db.export_model()))
        res = service_models.ServiceCollection(services=service_list)
        return res
コード例 #45
0
ファイル: field.py プロジェクト: wanghuiict/cloudkitty
    def get_all(self, service_id):
        """Get the field list.

        :param service_id: Service's UUID to filter on.
        :return: List of every fields.
        """
        hashmap = db_api.get_instance()
        field_list = []
        fields_uuid_list = hashmap.list_fields(service_id)
        for field_uuid in fields_uuid_list:
            field_db = hashmap.get_field(field_uuid)
            field_list.append(field_models.Field(**field_db.export_model()))
        res = field_models.FieldCollection(fields=field_list)
        return res
コード例 #46
0
    def thresholds(self, group_id):
        """Get the thresholds attached to the group.

        :param group_id: UUID of the group to filter on.
        """
        hashmap = db_api.get_instance()
        threshold_list = []
        thresholds_uuid_list = hashmap.list_thresholds(group_uuid=group_id)
        for threshold_uuid in thresholds_uuid_list:
            threshold_db = hashmap.get_threshold(uuid=threshold_uuid)
            threshold_list.append(
                threshold_models.Threshold(**threshold_db.export_model()))
        res = threshold_models.ThresholdCollection(thresholds=threshold_list)
        return res
コード例 #47
0
ファイル: group.py プロジェクト: Hopebaytech/cloudkitty
    def get_all(self):
        """Get the group list

        :return: List of every group.
        """
        hashmap = db_api.get_instance()
        group_list = []
        groups_uuid_list = hashmap.list_groups()
        for group_uuid in groups_uuid_list:
            group_db = hashmap.get_group(uuid=group_uuid)
            group_list.append(group_models.Group(
                **group_db.export_model()))
        res = group_models.GroupCollection(groups=group_list)
        return res
コード例 #48
0
ファイル: service.py プロジェクト: jhedden/cloudkitty
    def get_all(self):
        """Get the service list

        :return: List of every services.
        """
        hashmap = db_api.get_instance()
        service_list = []
        services_uuid_list = hashmap.list_services()
        for service_uuid in services_uuid_list:
            service_db = hashmap.get_service(uuid=service_uuid)
            service_list.append(service_models.Service(
                **service_db.export_model()))
        res = service_models.ServiceCollection(services=service_list)
        return res
コード例 #49
0
ファイル: service.py プロジェクト: maestropandy/cloudkitty
    def post(self, service_data):
        """Create hashmap service.

        :param service_data: Informations about the service to create.
        """
        hashmap = db_api.get_instance()
        try:
            service_db = hashmap.create_service(service_data.name)
            pecan.response.location = pecan.request.path_url
            if pecan.response.location[-1] != '/':
                pecan.response.location += '/'
            pecan.response.location += service_db.service_id
            return service_models.Service(**service_db.export_model())
        except db_api.ServiceAlreadyExists as e:
            pecan.abort(409, six.text_type(e))
コード例 #50
0
ファイル: field.py プロジェクト: FNST-OpenStack/cloudkitty
    def get_all(self, service_id):
        """Get the field list.

        :param service_id: Service's UUID to filter on.
        :return: List of every fields.
        """
        hashmap = db_api.get_instance()
        field_list = []
        fields_uuid_list = hashmap.list_fields(service_id)
        for field_uuid in fields_uuid_list:
            field_db = hashmap.get_field(field_uuid)
            field_list.append(field_models.Field(
                **field_db.export_model()))
        res = field_models.FieldCollection(fields=field_list)
        return res
コード例 #51
0
    def post(self, group_data):
        """Create a group.

        :param group_data: Informations about the group to create.
        """
        hashmap = db_api.get_instance()
        try:
            group_db = hashmap.create_group(group_data.name)
            pecan.response.location = pecan.request.path_url
            if pecan.response.location[-1] != '/':
                pecan.response.location += '/'
            pecan.response.location += group_db.group_id
            return group_models.Group(**group_db.export_model())
        except db_api.GroupAlreadyExists as e:
            pecan.abort(409, six.text_type(e))
コード例 #52
0
ファイル: service.py プロジェクト: jhedden/cloudkitty
    def post(self, service_data):
        """Create hashmap service.

        :param service_data: Informations about the service to create.
        """
        hashmap = db_api.get_instance()
        try:
            service_db = hashmap.create_service(service_data.name)
            pecan.response.location = pecan.request.path_url
            if pecan.response.location[-1] != '/':
                pecan.response.location += '/'
            pecan.response.location += service_db.service_id
            return service_models.Service(
                **service_db.export_model())
        except db_api.ServiceAlreadyExists as e:
            pecan.abort(409, six.text_type(e))
コード例 #53
0
ファイル: field.py プロジェクト: michaelrice/cloudkitty
    def post(self, field_data):
        """Create a field.

        :param field_data: Informations about the field to create.
        """
        hashmap = db_api.get_instance()
        try:
            field_db = hashmap.create_field(field_data.service_id,
                                            field_data.name)
            pecan.response.location = pecan.request.path_url
            if pecan.response.location[-1] != '/':
                pecan.response.location += '/'
            pecan.response.location += field_db.field_id
            return field_models.Field(**field_db.export_model())
        except (db_api.FieldAlreadyExists, db_api.NoSuchService) as e:
            pecan.abort(409, six.text_type(e))
コード例 #54
0
ファイル: group.py プロジェクト: Hopebaytech/cloudkitty
    def post(self, group_data):
        """Create a group.

        :param group_data: Informations about the group to create.
        """
        hashmap = db_api.get_instance()
        try:
            group_db = hashmap.create_group(group_data.name)
            pecan.response.location = pecan.request.path_url
            if pecan.response.location[-1] != '/':
                pecan.response.location += '/'
            pecan.response.location += group_db.group_id
            return group_models.Group(
                **group_db.export_model())
        except db_api.GroupAlreadyExists as e:
            pecan.abort(409, six.text_type(e))
コード例 #55
0
    def put(self, threshold_id, threshold):
        """Update a threshold.

        :param threshold_id: UUID of the threshold to update.
        :param threshold: Threshold data to insert.
        """
        hashmap = db_api.get_instance()
        try:
            hashmap.update_threshold(threshold_id,
                                     threshold_id=threshold.threshold_id,
                                     level=threshold.level,
                                     cost=threshold.cost,
                                     map_type=threshold.map_type,
                                     group_id=threshold.group_id)
            pecan.response.headers['Location'] = pecan.request.path
        except (db_api.NoSuchService, db_api.NoSuchField,
                db_api.NoSuchThreshold) as e:
            pecan.abort(404, six.text_type(e))
コード例 #56
0
ファイル: mapping.py プロジェクト: michaelrice/cloudkitty
    def put(self, mapping_id, mapping):
        """Update a mapping.

        :param mapping_id: UUID of the mapping to update.
        :param mapping: Mapping data to insert.
        """
        hashmap = db_api.get_instance()
        try:
            hashmap.update_mapping(mapping_id,
                                   mapping_id=mapping.mapping_id,
                                   value=mapping.value,
                                   cost=mapping.cost,
                                   map_type=mapping.map_type,
                                   group_id=mapping.group_id)
            pecan.response.headers['Location'] = pecan.request.path
        except (db_api.NoSuchService, db_api.NoSuchField,
                db_api.NoSuchMapping) as e:
            pecan.abort(404, six.text_type(e))
コード例 #57
0
ファイル: field.py プロジェクト: FNST-OpenStack/cloudkitty
    def post(self, field_data):
        """Create a field.

        :param field_data: Informations about the field to create.
        """
        hashmap = db_api.get_instance()
        try:
            field_db = hashmap.create_field(
                field_data.service_id,
                field_data.name)
            pecan.response.location = pecan.request.path_url
            if pecan.response.location[-1] != '/':
                pecan.response.location += '/'
            pecan.response.location += field_db.field_id
            return field_models.Field(
                **field_db.export_model())
        except (db_api.FieldAlreadyExists, db_api.NoSuchService) as e:
            pecan.abort(409, str(e))
コード例 #58
0
ファイル: __init__.py プロジェクト: arhlong/cloudkitty
    def _load_thresholds(self, thresholds_uuid_list):
        hashmap = hash_db_api.get_instance()
        thresholds = {}
        for threshold_uuid in thresholds_uuid_list:
            threshold_db = hashmap.get_threshold(uuid=threshold_uuid)
            if threshold_db.group_id:
                group_name = threshold_db.group.name
            else:
                group_name = '_DEFAULT_'
            if group_name not in thresholds:
                thresholds[group_name] = {}
            current_scope = thresholds[group_name]

            threshold_level = threshold_db.level
            current_scope[threshold_level] = {}
            current_scope = current_scope[threshold_level]
            current_scope['type'] = threshold_db.map_type
            current_scope['cost'] = threshold_db.cost
        return thresholds
コード例 #59
0
ファイル: __init__.py プロジェクト: carriercomm/cloudkitty
    def _load_thresholds(self, thresholds_uuid_list):
        hashmap = hash_db_api.get_instance()
        thresholds = {}
        for threshold_uuid in thresholds_uuid_list:
            threshold_db = hashmap.get_threshold(uuid=threshold_uuid)
            if threshold_db.group_id:
                group_name = threshold_db.group.name
            else:
                group_name = '_DEFAULT_'
            if group_name not in thresholds:
                thresholds[group_name] = {}
            current_scope = thresholds[group_name]

            threshold_level = threshold_db.level
            current_scope[threshold_level] = {}
            current_scope = current_scope[threshold_level]
            current_scope['type'] = threshold_db.map_type
            current_scope['cost'] = threshold_db.cost
        return thresholds
コード例 #60
0
ファイル: __init__.py プロジェクト: arhlong/cloudkitty
    def _load_mappings(self, mappings_uuid_list):
        hashmap = hash_db_api.get_instance()
        mappings = {}
        for mapping_uuid in mappings_uuid_list:
            mapping_db = hashmap.get_mapping(uuid=mapping_uuid)
            if mapping_db.group_id:
                group_name = mapping_db.group.name
            else:
                group_name = '_DEFAULT_'
            if group_name not in mappings:
                mappings[group_name] = {}
            current_scope = mappings[group_name]

            mapping_value = mapping_db.value
            if mapping_value:
                current_scope[mapping_value] = {}
                current_scope = current_scope[mapping_value]
            current_scope['type'] = mapping_db.map_type
            current_scope['cost'] = mapping_db.cost
        return mappings