-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathdelete_project_command.py
More file actions
48 lines (40 loc) · 1.83 KB
/
Copy pathdelete_project_command.py
File metadata and controls
48 lines (40 loc) · 1.83 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
39
40
41
42
43
44
45
46
47
48
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.global_options import *
from tabcmd.execution.localize import _
from tabcmd.execution.logger_config import log
class DeleteProjectCommand(Server):
"""
Command to Delete the specified project from the server
"""
name: str = "deleteproject"
description: str = _("deleteproject.short_description")
@staticmethod
def define_args(delete_project_parser):
args_group = delete_project_parser.add_argument_group(title=DeleteProjectCommand.name)
args_group.add_argument("project_name", metavar="project-name", help=_("createproject.options.name"))
set_parent_project_arg(args_group)
@staticmethod
def run_command(args):
logger = log(__class__.__name__, args.logging_level)
logger.debug(_("tabcmd.launching"))
session = Session()
server = session.create_session(args, logger)
if args.parent_project_path:
logger.debug("parent path: {}".format(args.parent_project_path))
try:
logger.debug(_("deleteproject.status").format((args.parent_project_path or "") + "/" + args.project_name))
project = Server.get_project_by_name_and_parent_path(
logger, server, args.project_name, args.parent_project_path
)
except Exception as e:
Errors.exit_with_error(logger, e)
project_id = project.id
try:
logger.info(_("deleteproject.status").format(args.project_name))
server.projects.delete(project_id)
logger.info(_("common.output.succeeded"))
except Exception as e:
Errors.exit_with_error(logger, "tabcmd.result.failure.delete.project", e)