Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/commands/auth/session.py
Original file line number Diff line number Diff line change
Expand Up @@ -190,10 +190,10 @@ def _sign_in(self, tableau_auth):
self.auth_token = self.tableau_server._auth_token
if not self.username:
self.username = self.tableau_server.users.get_by_id(self.user_id).name
self.logger.debug("Signed into {0}{1} as {2}".format(self.server_url, self.site_name, self.username))
self.logger.info(_("common.output.succeeded"))
except TSC.ServerResponseError as e:
Errors.exit_with_error(self.logger, _("publish.errors.unexpected_server_response"), e)
self.logger.debug("Signed into {0}{1} as {2}".format(self.server_url, self.site_name, self.username))

return self.tableau_server

Expand Down
2 changes: 1 addition & 1 deletion src/commands/extracts/decrypt_extracts_command.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ def run_command(args):
logger.debug(_("tabcmd.launching"))
session = Session()
server = session.create_session(args)
site_item = Server.get_site_for_command_or_throw(logger, server, args)
site_item = Server.get_site_for_command_or_throw(logger, server, args.site_name)
try:
logger.info(_("decryptextracts.status").format(args.site_name))
job = server.sites.decrypt_extracts(site_item.id)
Expand Down
2 changes: 1 addition & 1 deletion src/commands/extracts/encrypt_extracts_command.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ def run_command(args):
logger.debug(_("tabcmd.launching"))
session = Session()
server = session.create_session(args)
site_item = Server.get_site_for_command_or_throw(logger, server, args)
site_item = Server.get_site_for_command_or_throw(logger, server, args.site_name)
try:
logger.info(_("encryptextracts.status").format(site_item.name))
job = server.sites.encrypt_extracts(site_item.id)
Expand Down
2 changes: 1 addition & 1 deletion src/commands/extracts/reencrypt_extracts_command.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ def run_command(args):
logger.debug(_("tabcmd.launching"))
session = Session()
server = session.create_session(args)
site_item = Server.get_site_for_command_or_throw(logger, server, args)
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)
Expand Down
17 changes: 11 additions & 6 deletions src/commands/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,19 +73,24 @@ def get_items_by_name(logger, item_endpoint, item_name, container=None):

# Get site by name or get currently logged in site
@staticmethod
def get_site_for_command_or_throw(logger, server, args):
if args.site_name:
try:
site_item = Server.get_items_by_name(logger, server.sites, args.site_name)[0]
except Exception as e:
Errors.exit_with_error(logger, exception=e)
def get_site_for_command_or_throw(logger, server, site_name):
if site_name:
site_item = Server.get_site_by_name(logger, server, site_name)
else:
logger.debug("Use logged in site")
site_item = server.sites.get_by_id(server.site_id)
if not site_item:
raise ResourceWarning("Could not get site from server")
return site_item

@staticmethod
def get_site_by_name(logger, server, site_name):
try:
site_item = Server.get_items_by_name(logger, server.sites, site_name)[0]
except Exception as e:
Errors.exit_with_error(logger, exception=e)
return site_item

@staticmethod
def get_filename_extension_if_tableau_type(logger, filename):
logger.debug("Filename given: {}".format(filename))
Expand Down
15 changes: 9 additions & 6 deletions src/commands/site/create_site_command.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class CreateSiteCommand(Server):

@staticmethod
def define_args(create_site_parser):
create_site_parser.add_argument("site_name", metavar="site-name", help=_("editsite.options.site-name"))
create_site_parser.add_argument("new_site_name", metavar="site-name", help=_("editsite.options.site-name"))
set_common_site_args(create_site_parser)

@staticmethod
Expand All @@ -27,21 +27,24 @@ def run_command(args):
logger.debug(_("tabcmd.launching"))
session = Session()
server = session.create_session(args)
admin_mode = "ContentAndUsers" # default: allow site admins to manage users
if not args.site_admin_user_management:
admin_mode = "ContentOnly"
new_site = TSC.SiteItem(
name=args.site_name,
content_url=args.url,
admin_mode=args.admin_mode,
name=args.new_site_name,
content_url=args.url or args.new_site_name,
admin_mode=admin_mode,
user_quota=args.user_quota,
storage_quota=args.storage_quota,
)
try:
logger.info(_("createsite.status").format(args.site_name))
logger.info(_("createsite.status").format(args.new_site_name))
server.sites.create(new_site)
logger.info(_("common.output.succeeded"))
except TSC.ServerResponseError as e:
if Errors.is_resource_conflict(e):
if args.continue_if_exists:
logger.info(_("createsite.errors.site_name_already_exists").format(args.site_name))
logger.info(_("createsite.errors.site_name_already_exists").format(args.new_site_name))
return
else:
Errors.exit_with_error(
Expand Down
8 changes: 3 additions & 5 deletions src/commands/site/delete_site_command.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,19 +17,17 @@ class DeleteSiteCommand(Server):

@staticmethod
def define_args(delete_site_parser):
delete_site_parser.add_argument("site_name", help="name of site to delete")
delete_site_parser.add_argument("site_name_to_delete", metavar="site-name", help="name of site to delete")

@staticmethod
def run_command(args):
logger = log(__class__.__name__, args.logging_level)
logger.debug(_("tabcmd.launching"))
session = Session()
server = session.create_session(args)
site_id = server.sites.get_by_name(args.site_name)
if site_id == session.site_id:
Errors.exit_with_error(logger, "Cannot delete the site you are logged in to")
site_url = Server.get_site_by_name(logger, server, args.site_name_to_delete).content_url
try:
server.sites.delete(site_id)
server.sites.delete(site_url)
logger.info("Successfully deleted the site")
except TSC.ServerResponseError as e:
Errors.exit_with_error(logger, "Error deleting site", e)
2 changes: 1 addition & 1 deletion src/commands/site/edit_site_command.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ def run_command(args):
session = Session()
server = session.create_session(args)

site_item = Server.get_site_for_command_or_throw(logger, server, args)
site_item = Server.get_site_for_command_or_throw(logger, server, args.site_name)
if args.url:
site_item.content_url = args.url
if args.user_quota:
Expand Down
10 changes: 5 additions & 5 deletions tests/commands/test_run_commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -224,9 +224,9 @@ def test_create_project_already_exists(self, mock_session, mock_server):
def test_create_site_already_exists(self, mock_session, mock_server):
RunCommandsTest._set_up_session(mock_session, mock_server)
mock_args.continue_if_exists = True
mock_args.site_name = "duplicate"
mock_args.new_site_name = "duplicate"
mock_args.url = "dplct"
mock_args.admin_mode = None
mock_args.site_admin_user_management = None
mock_args.user_quota = None
mock_args.storage_quota = None
mock_server.sites.create.return_value = TSC.ServerResponseError(409, "already exists", "detail")
Expand Down Expand Up @@ -278,9 +278,9 @@ def test_publish_samples(self, mock_session, mock_server):
# site
def test_create_site(self, mock_session, mock_server):
RunCommandsTest._set_up_session(mock_session, mock_server)
mock_args.site_name = "site-name"
mock_args.new_site_name = "site-name"
mock_args.url = "site-content-url"
mock_args.admin_mode = None
mock_args.site_admin_user_management = None
mock_args.user_quota = (None,)
mock_args.storage_quota = None
create_site_command.CreateSiteCommand.run_command(mock_args)
Expand All @@ -289,7 +289,7 @@ def test_create_site(self, mock_session, mock_server):
def test_delete_site(self, mock_session, mock_server):
RunCommandsTest._set_up_session(mock_session, mock_server)
mock_server.sites = getter
mock_args.site_name = "site-name"
mock_args.site_name_to_delete = "site-name"
delete_site_command.DeleteSiteCommand.run_command(mock_args)
mock_session.assert_called()

Expand Down
4 changes: 2 additions & 2 deletions tests/parsers/test_parser_create_site.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ def setUpClass(cls):
def test_create_site_parser_just_a_name(self):
mock_args = [commandname, "site-name"]
args = self.parser_under_test.parse_args(mock_args)
assert args.site_name == "site-name", args
assert args.new_site_name == "site-name", args

def test_create_site_parser_missing_required_name(self):
mock_args = [commandname]
Expand All @@ -37,6 +37,6 @@ def test_create_site_parser_with_all_args(self):
] # what else?
args = self.parser_under_test.parse_args(mock_args)
print(args)
assert args.site_name == "site-name", args
assert args.new_site_name == "site-name", args
assert args.user_quota == 12, args
assert args.storage_quota == 12, args
2 changes: 1 addition & 1 deletion tests/parsers/test_parser_delete_site.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ def setUpClass(cls):
def test_delete_site(self):
mock_args = [commandname, "site-name"]
args = self.parser_under_test.parse_args(mock_args)
assert args.site_name == "site-name", args
assert args.site_name_to_delete == "site-name", args

def test_delete_site_required_name_none(self):
mock_args = [commandname]
Expand Down