Skip to content

Commit 91ddf68

Browse files
authored
Merge pull request #5 from guodah/replace_mat_views_with_data_acceleration
replace materialized views with data acceleration
2 parents 08be1a7 + fb28098 commit 91ddf68

File tree

8 files changed

+68
-70
lines changed

8 files changed

+68
-70
lines changed

tableauserverclient/models/property_decorators.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,16 +138,16 @@ def wrapper(self, value):
138138
return wrapper
139139

140140

141-
def property_is_materialized_views_config(func):
141+
def property_is_data_acceleration_config(func):
142142
@wraps(func)
143143
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 ('materialized_views_enabled',
148-
'run_materialization_now')):
147+
if len(value) != 2 or not all(attr in value.keys() for attr in ('acceleration_enabled',
148+
'accelerate_now')):
149149
error = "{} should have 2 keys ".format(func.__name__)
150-
error += "'materialized_views_enabled' and 'run_materialization_now'"
150+
error += "'acceleration_enabled' and 'accelerate_now'"
151151
error += "instead you have {}".format(value.keys())
152152
raise ValueError(error)
153153
return func(self, value)

tableauserverclient/models/schedule_item.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class Type:
1111
Extract = "Extract"
1212
Flow = "Flow"
1313
Subscription = "Subscription"
14-
MaterializeViews = "MaterializeViews"
14+
DataAcceleration = "DataAcceleration"
1515

1616
class ExecutionOrder:
1717
Parallel = "Parallel"

tableauserverclient/models/site_item.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class State:
1717

1818
def __init__(self, name, content_url, admin_mode=None, user_quota=None, storage_quota=None,
1919
disable_subscriptions=False, subscribe_others_enabled=True, revision_history_enabled=False,
20-
revision_limit=None, materialized_views_mode=None, flows_enabled=None, cataloging_enabled=None):
20+
revision_limit=None, data_acceleration_mode=None, flows_enabled=None, cataloging_enabled=None):
2121
self._admin_mode = None
2222
self._id = None
2323
self._num_users = None
@@ -33,7 +33,7 @@ def __init__(self, name, content_url, admin_mode=None, user_quota=None, storage_
3333
self.revision_history_enabled = revision_history_enabled
3434
self.subscribe_others_enabled = subscribe_others_enabled
3535
self.admin_mode = admin_mode
36-
self.materialized_views_mode = materialized_views_mode
36+
self.data_acceleration_mode = data_acceleration_mode
3737
self.cataloging_enabled = cataloging_enabled
3838
self.flows_enabled = flows_enabled
3939

@@ -127,12 +127,12 @@ def subscribe_others_enabled(self, value):
127127
self._subscribe_others_enabled = value
128128

129129
@property
130-
def materialized_views_mode(self):
131-
return self._materialized_views_mode
130+
def data_acceleration_mode(self):
131+
return self._data_acceleration_mode
132132

133-
@materialized_views_mode.setter
134-
def materialized_views_mode(self, value):
135-
self._materialized_views_mode = value
133+
@data_acceleration_mode.setter
134+
def data_acceleration_mode(self, value):
135+
self._data_acceleration_mode = value
136136

137137
@property
138138
def cataloging_enabled(self):
@@ -160,17 +160,17 @@ def _parse_common_tags(self, site_xml, ns):
160160
(_, name, content_url, _, admin_mode, state,
161161
subscribe_others_enabled, disable_subscriptions, revision_history_enabled,
162162
user_quota, storage_quota, revision_limit, num_users, storage,
163-
materialized_views_mode, cataloging_enabled, flows_enabled) = self._parse_element(site_xml, ns)
163+
data_acceleration_mode, cataloging_enabled, flows_enabled) = self._parse_element(site_xml, ns)
164164

165165
self._set_values(None, name, content_url, None, admin_mode, state, subscribe_others_enabled,
166166
disable_subscriptions, revision_history_enabled, user_quota, storage_quota,
167-
revision_limit, num_users, storage, materialized_views_mode, cataloging_enabled,
167+
revision_limit, num_users, storage, data_acceleration_mode, cataloging_enabled,
168168
flows_enabled)
169169
return self
170170

171171
def _set_values(self, id, name, content_url, status_reason, admin_mode, state,
172172
subscribe_others_enabled, disable_subscriptions, revision_history_enabled,
173-
user_quota, storage_quota, revision_limit, num_users, storage, materialized_views_mode,
173+
user_quota, storage_quota, revision_limit, num_users, storage, data_acceleration_mode,
174174
flows_enabled, cataloging_enabled):
175175
if id is not None:
176176
self._id = id
@@ -200,8 +200,8 @@ def _set_values(self, id, name, content_url, status_reason, admin_mode, state,
200200
self._num_users = num_users
201201
if storage:
202202
self._storage = storage
203-
if materialized_views_mode:
204-
self._materialized_views_mode = materialized_views_mode
203+
if data_acceleration_mode:
204+
self._data_acceleration_mode = data_acceleration_mode
205205
if flows_enabled is not None:
206206
self.flows_enabled = flows_enabled
207207
if cataloging_enabled is not None:
@@ -215,14 +215,14 @@ def from_response(cls, resp, ns):
215215
for site_xml in all_site_xml:
216216
(id, name, content_url, status_reason, admin_mode, state, subscribe_others_enabled,
217217
disable_subscriptions, revision_history_enabled, user_quota, storage_quota,
218-
revision_limit, num_users, storage, materialized_views_mode, flows_enabled,
218+
revision_limit, num_users, storage, data_acceleration_mode, flows_enabled,
219219
cataloging_enabled) = cls._parse_element(site_xml, ns)
220220

221221
site_item = cls(name, content_url)
222222
site_item._set_values(id, name, content_url, status_reason, admin_mode, state,
223223
subscribe_others_enabled, disable_subscriptions, revision_history_enabled,
224224
user_quota, storage_quota, revision_limit, num_users, storage,
225-
materialized_views_mode, flows_enabled, cataloging_enabled)
225+
data_acceleration_mode, flows_enabled, cataloging_enabled)
226226
all_site_items.append(site_item)
227227
return all_site_items
228228

@@ -257,14 +257,14 @@ def _parse_element(site_xml, ns):
257257
num_users = usage_elem.get('numUsers', None)
258258
storage = usage_elem.get('storage', None)
259259

260-
materialized_views_mode = site_xml.get('materializedViewsMode', '')
260+
data_acceleration_mode = site_xml.get('dataAccelerationMode', '')
261261

262262
flows_enabled = string_to_bool(site_xml.get('flowsEnabled', ''))
263263
cataloging_enabled = string_to_bool(site_xml.get('catalogingEnabled', ''))
264264

265265
return id, name, content_url, status_reason, admin_mode, state, subscribe_others_enabled,\
266266
disable_subscriptions, revision_history_enabled, user_quota, storage_quota,\
267-
revision_limit, num_users, storage, materialized_views_mode, flows_enabled, cataloging_enabled
267+
revision_limit, num_users, storage, data_acceleration_mode, flows_enabled, cataloging_enabled
268268

269269

270270
# Used to convert string represented boolean to a boolean type

tableauserverclient/models/task_item.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
class TaskItem(object):
88
class Type:
99
ExtractRefresh = "extractRefresh"
10-
MaterializeViews = "materializeViews"
10+
DataAcceleration = "dataAcceleration"
1111

1212
def __init__(self, id_, task_type, priority, consecutive_failed_count=0, schedule_id=None,
1313
schedule_item=None, last_run_at=None, target=None):

tableauserverclient/models/webhook_item.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import xml.etree.ElementTree as ET
22
from .exceptions import UnpopulatedPropertyError
3-
from .property_decorators import property_not_nullable, property_is_boolean, property_is_materialized_views_config
3+
from .property_decorators import property_not_nullable, property_is_boolean
44
from .tag_item import TagItem
55
from .view_item import ViewItem
66
from .permissions_item import PermissionsRule

tableauserverclient/models/workbook_item.py

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import xml.etree.ElementTree as ET
22
from .exceptions import UnpopulatedPropertyError
3-
from .property_decorators import property_not_nullable, property_is_boolean, property_is_materialized_views_config
3+
from .property_decorators import property_not_nullable, property_is_boolean, property_is_data_acceleration_config
44
from .tag_item import TagItem
55
from .view_item import ViewItem
66
from .permissions_item import PermissionsRule
@@ -27,8 +27,8 @@ def __init__(self, project_id, name=None, show_tabs=False):
2727
self.project_id = project_id
2828
self.show_tabs = show_tabs
2929
self.tags = set()
30-
self.materialized_views_config = {'materialized_views_enabled': None,
31-
'run_materialization_now': None}
30+
self.data_acceleration_config = {'acceleration_enabled': None,
31+
'accelerate_now': None}
3232
self._permissions = None
3333

3434
@property
@@ -123,13 +123,13 @@ def views(self):
123123
return self._views
124124

125125
@property
126-
def materialized_views_config(self):
127-
return self._materialized_views_config
126+
def data_acceleration_config(self):
127+
return self._data_acceleration_config
128128

129-
@materialized_views_config.setter
130-
@property_is_materialized_views_config
131-
def materialized_views_config(self, value):
132-
self._materialized_views_config = value
129+
@data_acceleration_config.setter
130+
@property_is_data_acceleration_config
131+
def data_acceleration_config(self, value):
132+
self._data_acceleration_config = value
133133

134134
def _set_connections(self, connections):
135135
self._connections = connections
@@ -152,17 +152,17 @@ def _parse_common_tags(self, workbook_xml, ns):
152152
if workbook_xml is not None:
153153
(_, _, _, _, description, updated_at, _, show_tabs,
154154
project_id, project_name, owner_id, _, _,
155-
materialized_views_config) = self._parse_element(workbook_xml, ns)
155+
data_acceleration_config) = self._parse_element(workbook_xml, ns)
156156

157157
self._set_values(None, None, None, None, description, updated_at,
158158
None, show_tabs, project_id, project_name, owner_id, None, None,
159-
materialized_views_config)
159+
data_acceleration_config)
160160

161161
return self
162162

163163
def _set_values(self, id, name, content_url, created_at, description, updated_at,
164164
size, show_tabs, project_id, project_name, owner_id, tags, views,
165-
materialized_views_config):
165+
data_acceleration_config):
166166
if id is not None:
167167
self._id = id
168168
if name:
@@ -190,8 +190,8 @@ def _set_values(self, id, name, content_url, created_at, description, updated_at
190190
self._initial_tags = copy.copy(tags)
191191
if views:
192192
self._views = views
193-
if materialized_views_config is not None:
194-
self.materialized_views_config = materialized_views_config
193+
if data_acceleration_config is not None:
194+
self.data_acceleration_config = data_acceleration_config
195195

196196
@classmethod
197197
def from_response(cls, resp, ns):
@@ -201,12 +201,12 @@ def from_response(cls, resp, ns):
201201
for workbook_xml in all_workbook_xml:
202202
(id, name, content_url, created_at, description, updated_at, size, show_tabs,
203203
project_id, project_name, owner_id, tags, views,
204-
materialized_views_config) = cls._parse_element(workbook_xml, ns)
204+
data_acceleration_config) = cls._parse_element(workbook_xml, ns)
205205

206206
workbook_item = cls(project_id)
207207
workbook_item._set_values(id, name, content_url, created_at, description, updated_at,
208208
size, show_tabs, None, project_name, owner_id, tags, views,
209-
materialized_views_config)
209+
data_acceleration_config)
210210
all_workbook_items.append(workbook_item)
211211
return all_workbook_items
212212

@@ -248,29 +248,29 @@ def _parse_element(workbook_xml, ns):
248248
if views_elem is not None:
249249
views = ViewItem.from_xml_element(views_elem, ns)
250250

251-
materialized_views_config = {'materialized_views_enabled': None, 'run_materialization_now': None}
252-
materialized_views_elem = workbook_xml.find('.//t:materializedViewsEnablementConfig', namespaces=ns)
253-
if materialized_views_elem is not None:
254-
materialized_views_config = parse_materialized_views_config(materialized_views_elem)
251+
data_acceleration_config = {'accelerationEnabled': None, 'accelerateNow': None}
252+
data_acceleration_elem = workbook_xml.find('.//t:dataAccelerationConfig', namespaces=ns)
253+
if data_acceleration_elem is not None:
254+
data_acceleration_config = parse_data_acceleration_config(data_acceleration_elem)
255255

256256
return id, name, content_url, created_at, description, updated_at, size, show_tabs,\
257-
project_id, project_name, owner_id, tags, views, materialized_views_config
257+
project_id, project_name, owner_id, tags, views, data_acceleration_config
258258

259259

260-
def parse_materialized_views_config(materialized_views_elem):
261-
materialized_views_config = dict()
260+
def parse_data_acceleration_config(data_acceleration_elem):
261+
data_acceleration_config = dict()
262262

263-
materialized_views_enabled = materialized_views_elem.get('materializedViewsEnabled', None)
264-
if materialized_views_enabled is not None:
265-
materialized_views_enabled = string_to_bool(materialized_views_enabled)
263+
acceleration_enabled = data_acceleration_elem.get('accelerationEnabled', None)
264+
if acceleration_enabled is not None:
265+
acceleration_enabled = string_to_bool(acceleration_enabled)
266266

267-
run_materialization_now = materialized_views_elem.get('runMaterializationNow', None)
268-
if run_materialization_now is not None:
269-
run_materialization_now = string_to_bool(run_materialization_now)
267+
accelerate_now = data_acceleration_elem.get('accelerateNow', None)
268+
if accelerate_now is not None:
269+
accelerate_now = string_to_bool(accelerate_now)
270270

271-
materialized_views_config['materialized_views_enabled'] = materialized_views_enabled
272-
materialized_views_config['run_materialization_now'] = run_materialization_now
273-
return materialized_views_config
271+
data_acceleration_config['acceleration_enabled'] = acceleration_enabled
272+
data_acceleration_config['accelerate_now'] = accelerate_now
273+
return data_acceleration_config
274274

275275

276276
# Used to convert string represented boolean to a boolean type

tableauserverclient/server/endpoint/tasks_endpoint.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ def __normalize_task_type(self, task_type):
2424

2525
@api(version='2.6')
2626
def get(self, req_options=None, task_type=TaskItem.Type.ExtractRefresh):
27-
if task_type == TaskItem.Type.MaterializeViews:
27+
if task_type == TaskItem.Type.DataAcceleration:
2828
self.parent_srv.assert_at_least_version("3.8")
2929

3030
logger.info('Querying all {} tasks for the site'.format(task_type))
@@ -65,7 +65,7 @@ def run(self, task_item):
6565
# Delete 1 task by id
6666
@api(version="3.6")
6767
def delete(self, task_id, task_type=TaskItem.Type.ExtractRefresh):
68-
if task_type == TaskItem.Type.MaterializeViews:
68+
if task_type == TaskItem.Type.DataAcceleration:
6969
self.parent_srv.assert_at_least_version("3.8")
7070

7171
if not task_id:

tableauserverclient/server/request_factory.py

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -249,8 +249,6 @@ def update_req(self, project_item):
249249
project_element.attrib['description'] = project_item.description
250250
if project_item.content_permissions:
251251
project_element.attrib['contentPermissions'] = project_item.content_permissions
252-
if project_item.parent_id is not None:
253-
project_element.attrib['parentProjectId'] = project_item.parent_id
254252
return ET.tostring(xml_request)
255253

256254
def create_req(self, project_item):
@@ -362,8 +360,8 @@ def update_req(self, site_item):
362360
site_element.attrib['revisionLimit'] = str(site_item.revision_limit)
363361
if site_item.subscribe_others_enabled:
364362
site_element.attrib['revisionHistoryEnabled'] = str(site_item.revision_history_enabled).lower()
365-
if site_item.materialized_views_mode is not None:
366-
site_element.attrib['materializedViewsMode'] = str(site_item.materialized_views_mode).lower()
363+
if site_item.data_acceleration_mode is not None:
364+
site_element.attrib['dataAccelerationMode'] = str(site_item.data_acceleration_mode).lower()
367365
if site_item.flows_enabled is not None:
368366
site_element.attrib['flowsEnabled'] = str(site_item.flows_enabled).lower()
369367
if site_item.cataloging_enabled is not None:
@@ -482,15 +480,15 @@ def update_req(self, workbook_item):
482480
if workbook_item.owner_id:
483481
owner_element = ET.SubElement(workbook_element, 'owner')
484482
owner_element.attrib['id'] = workbook_item.owner_id
485-
if workbook_item.materialized_views_config is not None and \
486-
'materialized_views_enabled' in workbook_item.materialized_views_config:
487-
materialized_views_config = workbook_item.materialized_views_config
488-
materialized_views_element = ET.SubElement(workbook_element, 'materializedViewsEnablementConfig')
489-
materialized_views_element.attrib['materializedViewsEnabled'] = str(materialized_views_config
490-
["materialized_views_enabled"]).lower()
491-
if "run_materialization_now" in materialized_views_config:
492-
materialized_views_element.attrib['materializeNow'] = str(materialized_views_config
493-
["run_materialization_now"]).lower()
483+
if workbook_item.data_acceleration_config is not None and \
484+
'acceleration_enabled' in workbook_item.data_acceleration_config:
485+
data_acceleration_config = workbook_item.data_acceleration_config
486+
data_acceleration_element = ET.SubElement(workbook_element, 'dataAccelerationConfig')
487+
data_acceleration_element.attrib['accelerationEnabled'] = str(data_acceleration_config
488+
["acceleration_enabled"]).lower()
489+
if "accelerate_now" in data_acceleration_config:
490+
data_acceleration_element.attrib['accelerateNow'] = str(data_acceleration_config
491+
["accelerate_now"]).lower()
494492

495493
return ET.tostring(xml_request)
496494

0 commit comments

Comments
 (0)