-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathreencrypt_extracts_command.py
More file actions
38 lines (31 loc) · 1.5 KB
/
reencrypt_extracts_command.py
File metadata and controls
38 lines (31 loc) · 1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import tableauserverclient as TSC
from tabcmd.commands.auth.session import Session
from tabcmd.commands.constants import Errors
from tabcmd.commands.server import Server
from tabcmd.execution.localize import _
from tabcmd.execution.logger_config import log
class ReencryptExtracts(Server):
"""
Command to Reencrypt all extracts on a site with new encryption keys.
This command will regenerate the key encryption key and data encryption key. You must specify a site.
"""
name: str = "reencryptextracts"
description: str = _("reencryptextracts.short_description")
@staticmethod
def define_args(reencrypt_extract_parser):
group = reencrypt_extract_parser.add_argument_group(title=ReencryptExtracts.name)
group.add_argument("site_name", metavar="site-name", help=_("editsite.options.site-name"))
@staticmethod
def run_command(args):
logger = log(__class__.__name__, args.logging_level)
logger.debug(_("tabcmd.launching"))
session = Session()
server = session.create_session(args, logger)
site_item = Server.get_site_for_command_or_throw(logger, server, args.site_name)
try:
logger.info(_("reencryptextracts.status").format(site_item.name))
job = server.sites.encrypt_extracts(site_item.id)
except Exception as e:
Errors.exit_with_error(logger, e)
logger.info(_("common.output.job_queued_success"))
logger.debug("Extract re-encryption queued with JobID: {}".format(job.id))