8000 Add additional fields to data acceleration config (#588) · scuml/server-client-python@dd0fcd5 · GitHub
[go: up one dir, main page]

Skip to content
8000

Commit dd0fcd5

Browse files
authored
Add additional fields to data acceleration config (tableau#588)
* fixing a bug due to bool(time(0,0)) is false * replace materialized views with data acceleration * made changes in tests * fixed a unit test * restore deleted lines by mistake * replace materialize_workbooks.py with accelerate_workbooks.py * undo a fix to test_sort.py * format changes * another format change * format change * remove accelerate_workbooks.py * adding additional fields to data_acceleration_config Co-authored-by: dguo <dguo@tableau.com>
1 parent 4122e9c commit dd0fcd5

File tree

5 files changed

+25
-9
lines changed

5 files changed

+25
-9
lines changed

tableauserverclient/models/property_decorators.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,8 +144,10 @@ def wrapper(self, value):
144144
if not isinstance(value, dict):
145145
raise ValueError("{} is not type 'dict', cannot update {})".format(value.__class__.__name__,
146146
func.__name__))
147-
if len(value) != 2 or not all(attr in value.keys() for attr in ('acceleration_enabled',
148-
'accelerate_now')):
147+
if len(value) != 4 or not all(attr in value.keys() for attr in ('acceleration_enabled',
148+
'accelerate_now',
149+
'last_updated_at',
150+
'acceleration_status')):
149151
error = "{} should have 2 keys ".format(func.__name__)
150152
error += "'acceleration_enabled' and 'accelerate_now'"
151153
error += "instead you have {}".format(value.keys())

tableauserverclient/models/workbook_item.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@ def __init__(self, project_id, name=None, show_tabs=False):
2828
self.show_tabs = show_tabs
2929
self.tags = set()
3030
self.data_acceleration_config = {'acceleration_enabled': None,
31-
'accelerate_now': None}
31+
'accelerate_now': None,
32+
'last_updated_at': None,
33+
'acceleration_status': None}
3234
self._permissions = None
3335

3436
@property
@@ -248,7 +250,8 @@ def _parse_element(workbook_xml, ns):
248250
if views_elem is not None:
249251
views = ViewItem.from_xml_element(views_elem, ns)
250252

251-
data_acceleration_config = {'acceleration_enabled': None, 'accelerate_now': None}
253+
data_acceleration_config = {'acceleration_enabled': None, 'accelerate_now': None,
254+
'last_updated_at': None, 'acceleration_status': None}
252255
data_acceleration_elem = workbook_xml.find('.//t:dataAccelerationConfig', namespaces=ns)
253256
if data_acceleration_elem is not None:
254257
data_acceleration_config = parse_data_acceleration_config(data_acceleration_elem)
@@ -268,8 +271,16 @@ def parse_data_acceleration_config(data_acceleration_elem):
268271
if accelerate_now is not None:
269272
accelerate_now = string_to_bool(accelerate_now)
270273

274+
last_updated_at = data_acceleration_elem.get('lastUpdatedAt', None)
275+
if last_updated_at is not None:
276+
last_updated_at = parse_datetime(last_updated_at)
277+
278+
acceleration_status = data_acceleration_elem.get('accelerationStatus', None)
279+
271280
data_acceleration_config['acceleration_enabled'] = acceleration_enabled
272281
data_acceleration_config['accelerate_now'] = accelerate_now
282+
data_acceleration_config['last_updated_at'] = last_updated_at
283+
data_acceleration_config['acceleration_status'] = acceleration_status
273284
return data_acceleration_config
274285

275286

tableauserverclient/server/request_options.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ class Operator:
1111
LessThan = 'lt'
1212
LessThanOrEqual = 'lte'
1313
In = 'in'
14+
Has = 'has'
1415

1516
class Field:
1617
Args = 'args'

test/assets/workbook_update.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44
<project id="1d0304cd-3796-429f-b815-7258370b9b74" name="Tableau" />
55
<owner id="dd2239f6-ddf1-4107-981a-4cf94e415794" />
66
<tags />
7-
<materializedViewsEnablementConfig materializedViewsEnabled="true" runMaterializationNow="false" />
7+
<dataAccelerationConfig accelerationEnabled="true" accelerateNow="false" />
88
</workbook>
99
</tsResponse>

test/test_workbook.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -131,17 +131,19 @@ def test_update(self):
131131
single_workbook._id = '1f951daf-4061-451a-9df1-69a8062664f2'
132132
single_workbook.owner_id = 'dd2239f6-ddf1-4107-981a-4cf94e415794'
133133
single_workbook.name = 'renamedWorkbook'
134-
single_workbook.materialized_views_config = {'materialized_views_enabled': True,
135-
'run_materialization_now': False}
134+
single_workbook.data_acceleration_config = {'acceleration_enabled': True,
135+
'accelerate_now': False,
136+
'last_updated_at': None,
137+
'acceleration_status': None}
136138
single_workbook = self.server.workbooks.update(single_workbook)
137139

138140
self.assertEqual('1f951daf-4061-451a-9df1-69a8062664f2', single_workbook.id)
139141
self.assertEqual(True, single_workbook.show_tabs)
140142
self.assertEqual('1d0304cd-3796-429f-b815-7258370b9b74', single_workbook.project_id)
141143
self.assertEqual('dd2239f6-ddf1-4107-981a-4cf94e415794', single_workbook.owner_id)
142144
self.assertEqual('renamedWorkbook', single_workbook.name)
143-
self.assertEqual(True, single_workbook.materialized_views_config['materialized_views_enabled'])
144-
self.assertEqual(False, single_workbook.materialized_views_config['run_materialization_now'])
145+
self.assertEqual(True, single_workbook.data_acceleration_config['acceleration_enabled'])
146+
self.assertEqual(False, single_workbook.data_acceleration_config['accelerate_now'])
145147

146148
def test_update_missing_id(self):
147149
single_workbook = TSC.WorkbookItem('test')

0 commit comments

Comments
 (0)
0