def get_logs_data(self, ioc_type, ioc_val):
        """Get data from log analytics workspace.

        Returns:
            list: List containing the table data.
        """
        __method_name = inspect.currentframe().f_code.co_name
        credential = ClientSecretCredential(
            client_id=consts.AZURE_CLIENT_ID,
            client_secret=consts.AZURE_CLIENT_SECRET,
            tenant_id=consts.AZURE_TENANT_ID,
        )
        client = LogsQueryClient(credential)
        query = """let dummyschema = datatable"""
        query += """(TimeGenerated:datetime, params_type_s:string, params_target_s:string, Count:int)[];"""
        for val in consts.SOURCES.get(ioc_type):
            query += f"""let {val}_count =
                union isfuzzy=true
                dummyschema,
                dossier_{val}_CL
                | where TimeGenerated >= ago(24h)
                | where params_type_s =="{ioc_type}" and params_target_s =="{ioc_val}"
                | count
                | project {val}_count = Count
                ;\n"""
        query += "union "
        for val in consts.SOURCES.get(ioc_type):
            query += f"""{val}_count, """
        query = query[:-2]

        start_time = datetime.datetime.now(tz=datetime.timezone.utc) - datetime.timedelta(days=1)
        end_time = datetime.datetime.now(tz=datetime.timezone.utc)
        applogger.debug(
            self.log_format.format(
                consts.LOGS_STARTS_WITH,
                __method_name,
                self.azure_function_name,
                "Query to check data in sentinel table = {}".format(query),
            )
        )
        try:
            response = client.query_workspace(
                workspace_id=consts.WORKSPACE_ID,
                query=query,
                timespan=(start_time, end_time),
            )
            if response.status == LogsQueryStatus.SUCCESS:
                data = response.tables
            else:
                data = response.partial_data
                applogger.warning(response.partial_error)
            column_names = []
            row_values = []

            column_names = data[0].columns
            row_values = data[0].rows

            result = []
            for row in row_values:
                row_dict = {}
                for i, value in enumerate(row):
                    if value is not None:
                        column_name = column_names[i]
                        row_dict[column_name.removesuffix("_count")] = value
                result.append(row_dict)
            combined_dict = {}
            for d in result:
                combined_dict.update(d)

            applogger.info(
                self.log_format.format(
                    consts.LOGS_STARTS_WITH,
                    __method_name,
                    self.azure_function_name,
                    "Sources with available data = {}".format(combined_dict),
                )
            )
            return combined_dict
        except IndexError as error:
            applogger.error(
                self.log_format.format(
                    consts.LOGS_STARTS_WITH,
                    __method_name,
                    self.azure_function_name,
                    "Index error : Error-{}".format(error),
                )
            )
            raise InfobloxException()
        except Exception as error:
            if "Failed to resolve table or column expression" in str(error):
                applogger.error(
                    self.log_format.format(
                        consts.LOGS_STARTS_WITH,
                        __method_name,
                        self.azure_function_name,
                        "TableName provided is not Created or Data is not Ingested.",
                    )
                )
                raise InfobloxException()
            applogger.error(
                self.log_format.format(
                    consts.LOGS_STARTS_WITH,
                    __method_name,
                    self.azure_function_name,
                    "Unexpected error : Error-{}".format(error),
                )
            )
            raise InfobloxException()
Get data from log analytics workspace.

        Returns:
            list: List containing the table data.
        
Solutions/Infoblox/Data Connectors/InfobloxCloudDataConnector/InfobloxDossierRequiredSource/list_of_sources.py