예제 #1
0
    def __init__(self, parameters):
        """Establish GCP report query handler.

        Args:
            parameters    (QueryParameters): parameter object for query

        """
        # do not override mapper if its already set
        try:
            getattr(self, "_mapper")
        except AttributeError:
            self._mapper = GCPProviderMap(provider=self.provider,
                                          report_type=parameters.report_type)

        self.group_by_options = self._mapper.provider_map.get(
            "group_by_options")
        self._limit = parameters.get_filter("limit")
        self.is_csv_output = parameters.accept_type and "text/csv" in parameters.accept_type
        self.group_by_alias = {
            "service": "service_alias",
            "project": "project_name"
        }

        # super() needs to be called after _mapper and _limit is set
        super().__init__(parameters)
예제 #2
0
    def __init__(self, parameters):
        """Establish GCP report query handler.

        Args:
            parameters    (QueryParameters): parameter object for query

        """
        self._parameters = parameters
        if not hasattr(self, "_mapper"):
            self._mapper = GCPProviderMap(provider=self.provider,
                                          report_type=parameters.report_type)
        # super() needs to be called after _mapper is set
        super().__init__(parameters)
예제 #3
0
    def __init__(self, parameters):
        """Establish GCP report query handler.

        Args:
            parameters    (QueryParameters): parameter object for query

        """
        # do not override mapper if its already set
        try:
            getattr(self, "_mapper")
        except AttributeError:
            self._mapper = GCPProviderMap(provider=self.provider,
                                          report_type=parameters.report_type)

        self.group_by_options = self._mapper.provider_map.get(
            "group_by_options")
        self._limit = parameters.get_filter("limit")
        self.is_csv_output = parameters.accept_type and "text/csv" in parameters.accept_type
        self.group_by_alias = {
            "service": "service_alias",
            "gcp_project": "project_name"
        }

        # We need to overwrite the pack keys here to include the credit
        # dictionary in the endpoint returns.
        gcp_pack_keys = {
            "infra_raw": {
                "key": "raw",
                "group": "infrastructure"
            },
            "infra_markup": {
                "key": "markup",
                "group": "infrastructure"
            },
            "infra_usage": {
                "key": "usage",
                "group": "infrastructure"
            },
            "infra_credit": {
                "key": "credit",
                "group": "infrastructure"
            },
            "infra_total": {
                "key": "total",
                "group": "infrastructure"
            },
            "sup_raw": {
                "key": "raw",
                "group": "supplementary"
            },
            "sup_markup": {
                "key": "markup",
                "group": "supplementary"
            },
            "sup_usage": {
                "key": "usage",
                "group": "supplementary"
            },
            "sup_credit": {
                "key": "credit",
                "group": "supplementary"
            },
            "sup_total": {
                "key": "total",
                "group": "supplementary"
            },
            "cost_raw": {
                "key": "raw",
                "group": "cost"
            },
            "cost_markup": {
                "key": "markup",
                "group": "cost"
            },
            "cost_usage": {
                "key": "usage",
                "group": "cost"
            },
            "cost_credit": {
                "key": "credit",
                "group": "cost"
            },
            "cost_total": {
                "key": "total",
                "group": "cost"
            },
        }
        gcp_pack_definitions = copy.deepcopy(self._mapper.PACK_DEFINITIONS)
        gcp_pack_definitions["cost_groups"]["keys"] = gcp_pack_keys

        # super() needs to be called after _mapper and _limit is set
        super().__init__(parameters)
        self._mapper.PACK_DEFINITIONS = gcp_pack_definitions