-
Notifications
You must be signed in to change notification settings - Fork 436
8000
Adding DataAccelerationReport end point and item #596
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
24 commits
Select commit
Hold shift + click to select a range
d2e76ca
Merge pull request #1 from tableau/development
guodah 74af749
fixing a bug due to bool(time(0,0)) is false
guodah 6c47060
Merge pull request #2 from tableau/development
guodah 7037289
Merge pull request #3 from tableau/development
guodah 08be1a7
Merge pull request #4 from tableau/development
guodah fb28098
replace materialized views with data acceleration
guodah 91ddf68
Merge pull request #5 from guodah/replace_mat_views_with_data_acceler…
guodah c93a400
made changes in tests
guodah d9061fd
Merge pull request #6 from guodah/replace_mat_views_with_data_acceler…
guodah 2064f6d
fixed a unit test
guodah 2a05834
restore deleted lines by mistake
guodah 592716c
replace materialize_workbooks.py with accelerate_workbooks.py
guodah ccbf675
undo a fix to test_sort.py
guodah 8bc913e
format changes
guodah 2721b2f
another format change
guodah aea6a99
format change
guodah 994c75a
remove accelerate_workbooks.py
guodah a781d1e
Merge pull request #7 from tableau/development
guodah d05d634
adding additional fields to data_acceleration_config
guodah 4cd6df9
Merge pull request #8 from tableau/development
guodah b225777
add acceleration report endpoint
guodah 547c9e3
Merge pull request #9 from guodah/add_end_point_for_acceleration_report
guodah 4e63fb0
adding unit test
guodah 52aa922
fixed over-indentation
guodah File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
75 changes: 75 additions & 0 deletions
75
tableauserverclient/models/data_acceleration_report_item.py
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
import xml.etree.ElementTree as ET | ||
|
||
|
||
class DataAccelerationReportItem(object): | ||
class ComparisonRecord(object): | ||
def __init__(self, site, sheet_uri, unaccelerated_session_count, | ||
8000 avg_non_accelerated_plt, accelerated_session_count, | ||
avg_accelerated_plt): | ||
self._site = site | ||
self._sheet_uri = sheet_uri | ||
self._unaccelerated_session_count = unaccelerated_session_count | ||
self._avg_non_accelerated_plt = avg_non_accelerated_plt | ||
self._accelerated_session_count = accelerated_session_count | ||
self._avg_accelerated_plt = avg_accelerated_plt | ||
|
||
@property | ||
def site(self): | ||
return self._site | ||
|
||
@property | ||
def sheet_uri(self): | ||
return self._sheet_uri | ||
|
||
@property | ||
def site(self): | ||
return self._site | ||
|
||
@property | ||
def unaccelerated_session_count(self): | ||
return self._unaccelerated_session_count | ||
|
||
@property | ||
def accelerated_session_count(self): | ||
return self._accelerated_session_count | ||
|
||
@property | ||
def avg_accelerated_plt(self): | ||
return self._avg_accelerated_plt | ||
|
||
@property | ||
def avg_non_accelerated_plt(self): | ||
return self._avg_non_accelerated_plt | ||
|
||
def __init__(self, comparison_records): | ||
self._comparison_records = comparison_records | ||
|
||
@property | ||
def comparison_records(self): | ||
return self._comparison_records | ||
|
||
@staticmethod | ||
def _parse_element(comparison_record_xml, ns): | ||
site = comparison_record_xml.get('site', None) | ||
sheet_uri = comparison_record_xml.get('sheetURI', None) | ||
unaccelerated_session_count = comparison_record_xml.get('unacceleratedSessionCount', None) | ||
avg_non_accelerated_plt = comparison_record_xml.get('averageNonAcceleratedPLT', None) | ||
accelerated_session_count = comparison_record_xml.get('acceleratedSessionCount', None) | ||
avg_accelerated_plt = comparison_record_xml.get('averageAcceleratedPLT', None) | ||
return site, sheet_uri, unaccelerated_session_count, avg_non_accelerated_plt, \ | ||
accelerated_session_count, avg_accelerated_plt | ||
|
||
@classmethod | ||
def from_response(cls, resp, ns): | ||
comparison_records = list() | ||
parsed_response = ET.fromstring(resp) | ||
all_comparison_records_xml = parsed_response.findall('.//t:comparisonRecord', namespaces=ns) | ||
for comparison_record_xml in all_comparison_records_xml: | ||
(site, sheet_uri, unaccelerated_session_count, avg_non_accelerated_plt, | ||
accelerated_session_count, avg_accelerated_plt) = cls._parse_element(comparison_record_xml, ns) | ||
|
||
comparison_record = DataAccelerationReportItem.ComparisonRecord( | ||
site, sheet_uri, unaccelerated_session_count, avg_non_accelerated_plt, | ||
accelerated_session_count, avg_accelerated_plt) | ||
comparison_records.append(comparison_record) | ||
return cls(comparison_records) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
30 changes: 30 additions & 0 deletions
30
tableauserverclient/server/endpoint/data_acceleration_report_endpoint.py
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
from .endpoint import api, Endpoint | ||
from .permissions_endpoint import _PermissionsEndpoint | ||
from .default_permissions_endpoint import _DefaultPermissionsEndpoint | ||
|
||
from ...models.data_acceleration_report_item import DataAccelerationReportItem | ||
|
||
import logging | ||
|
||
logger = logging.getLogger('tableau.endpoint.data_acceleration_report') | ||
|
||
|
||
class DataAccelerationReport(Endpoint): | ||
def __init__(self, parent_srv): | ||
super(DataAccelerationReport, self).__init__(parent_srv) | ||
|
||
self._permissions = _PermissionsEndpoint(parent_srv, lambda: self.baseurl) | ||
self._default_permissions = _DefaultPermissionsEndpoint(parent_srv, lambda: self.baseurl) | ||
|
||
@property | ||
def baseurl(self): | ||
return "{0}/sites/{1}/dataAccelerationReport".format(self.parent_srv.baseurl, self.parent_srv.site_id) | ||
|
||
@api(version="3.8") | ||
def get(self, req_options=None): | ||
logger.info("Querying data acceleration report") | ||
url = self.baseurl | ||
server_response = self.get_request(url, req_options) | ||
data_acceleration_report = DataAccelerationReportItem.from_response( | ||
server_response.content, self.parent_srv.namespace) | ||
return data_acceleration_report |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
<?xml version='1.0' encoding='UTF-8'?> | ||
<tsResponse | ||
xmlns="http://tableau.com/api" | ||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
xsi:schemaLocation="http://tableau.com/api http://tableau.com/api/ts-api-3.8.xsd"> | ||
<dataAccelerationReport> | ||
<comparisonRecord site="site-1" | ||
sheetURI="sheet-1" | ||
unacceleratedSessionCount="0" | ||
averageNonAcceleratedPLT="0.0" | ||
acceleratedSessionCount="1" | ||
averageAcceleratedPLT="0.166"/> | ||
<comparisonRecord site="site-2" | ||
sheetURI="sheet-2" | ||
unacceleratedSessionCount="2" | ||
averageNonAcceleratedPLT="1.29" | ||
acceleratedSessionCount="3" | ||
averageAcceleratedPLT="0.372"/> | ||
</dataAccelerationReport> | ||
</tsResponse> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
import unittest | ||
import os | ||
import requests_mock | ||
import xml.etree.ElementTree as ET | ||
import tableauserverclient as TSC | ||
8C29 | from ._utils import read_xml_asset, read_xml_assets, asset | |
|
||
GET_XML = 'data_acceleration_report.xml' | ||
|
||
|
||
class DataAccelerationReportTests(unittest.TestCase): | ||
def setUp(self): | ||
self.server = TSC.Server('http://test') | ||
|
||
# Fake signin | ||
self.server._site_id = 'dad65087-b08b-4603-af4e-2887b8aafc67' | ||
self.server._auth_token = 'j80k54ll2lfMZ0tv97mlPvvSCRyD0DOM' | ||
self.server.version = "3.8" | ||
|
||
self.baseurl = self.server.data_acceleration_report.baseurl | ||
|
||
def test_get(self): | ||
response_xml = read_xml_asset(GET_XML) | ||
with requests_mock.mock() as m: | ||
m.get(self.baseurl, text=response_xml) | ||
data_acceleration_report = self.server.data_acceleration_report.get() | ||
|
||
self.assertEqual(2, len(data_acceleration_report.comparison_records)) | ||
|
||
self.assertEqual("site-1", data_acceleration_report.comparison_records[0].site) | ||
self.assertEqual("sheet-1", data_acceleration_report.comparison_records[0].sheet_uri) | ||
self.assertEqual("0", data_acceleration_report.comparison_records[0].unaccelerated_session_count) | ||
self.assertEqual("0.0", data_acceleration_report.comparison_records[0].avg_non_accelerated_plt) | ||
self.assertEqual("1", data_acceleration_report.comparison_records[0].accelerated_session_count) | ||
self.assertEqual("0.166", data_acceleration_report.comparison_records[0].avg_accelerated_plt) | ||
|
||
self.assertEqual("site-2", data_acceleration_report.comparison_records[1].site) | ||
self.assertEqual("sheet-2", data_acceleration_report.comparison_records[1].sheet_uri) | ||
self.assertEqual("2", data_acceleration_report.comparison_records[1].unaccelerated_session_count) | ||
self.assertEqual("1.29", data_acceleration_report.comparison_records[1].avg_non_accelerated_plt) | ||
self.assertEqual("3", data_acceleration_report.comparison_records[1].accelerated_session_count) | ||
self.assertEqual("0.372", data_acceleration_report.comparison_records[1].avg_accelerated_plt) |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.