mirror of https://github.com/zulip/zulip.git
export: Make --deactivate-realm exports be imported as active.
This commit is contained in:
parent
4b0b8abc6c
commit
113a8c4782
|
@ -1833,6 +1833,7 @@ def do_export_realm(
|
||||||
exportable_user_ids: Optional[Set[int]] = None,
|
exportable_user_ids: Optional[Set[int]] = None,
|
||||||
public_only: bool = False,
|
public_only: bool = False,
|
||||||
consent_message_id: Optional[int] = None,
|
consent_message_id: Optional[int] = None,
|
||||||
|
export_as_active: Optional[bool] = None,
|
||||||
) -> str:
|
) -> str:
|
||||||
response: TableData = {}
|
response: TableData = {}
|
||||||
|
|
||||||
|
@ -1877,6 +1878,10 @@ def do_export_realm(
|
||||||
fetch_reaction_data(response=zerver_reaction, message_ids=message_ids)
|
fetch_reaction_data(response=zerver_reaction, message_ids=message_ids)
|
||||||
response.update(zerver_reaction)
|
response.update(zerver_reaction)
|
||||||
|
|
||||||
|
# Override the "deactivated" flag on the realm
|
||||||
|
if export_as_active is not None:
|
||||||
|
response["zerver_realm"][0]["deactivated"] = not export_as_active
|
||||||
|
|
||||||
# Write realm data
|
# Write realm data
|
||||||
export_file = os.path.join(output_dir, "realm.json")
|
export_file = os.path.join(output_dir, "realm.json")
|
||||||
write_table_data(output_file=export_file, data=response)
|
write_table_data(output_file=export_file, data=response)
|
||||||
|
@ -2267,6 +2272,7 @@ def export_realm_wrapper(
|
||||||
public_only: bool,
|
public_only: bool,
|
||||||
percent_callback: Optional[Callable[[Any], None]] = None,
|
percent_callback: Optional[Callable[[Any], None]] = None,
|
||||||
consent_message_id: Optional[int] = None,
|
consent_message_id: Optional[int] = None,
|
||||||
|
export_as_active: Optional[bool] = None,
|
||||||
) -> Optional[str]:
|
) -> Optional[str]:
|
||||||
tarball_path = do_export_realm(
|
tarball_path = do_export_realm(
|
||||||
realm=realm,
|
realm=realm,
|
||||||
|
@ -2274,6 +2280,7 @@ def export_realm_wrapper(
|
||||||
threads=threads,
|
threads=threads,
|
||||||
public_only=public_only,
|
public_only=public_only,
|
||||||
consent_message_id=consent_message_id,
|
consent_message_id=consent_message_id,
|
||||||
|
export_as_active=export_as_active,
|
||||||
)
|
)
|
||||||
shutil.rmtree(output_dir)
|
shutil.rmtree(output_dir)
|
||||||
print(f"Tarball written to {tarball_path}")
|
print(f"Tarball written to {tarball_path}")
|
||||||
|
|
|
@ -60,9 +60,6 @@ class Command(ZulipBaseCommand):
|
||||||
|
|
||||||
* Use `./manage.py import` to import the realm
|
* Use `./manage.py import` to import the realm
|
||||||
|
|
||||||
* Use `./manage.py reactivate_realm` to reactivate the realm, so
|
|
||||||
users can log in again.
|
|
||||||
|
|
||||||
* Inform the users about the things broken above.
|
* Inform the users about the things broken above.
|
||||||
|
|
||||||
We recommend testing by exporting without `--deactivate` first, to
|
We recommend testing by exporting without `--deactivate` first, to
|
||||||
|
@ -92,7 +89,10 @@ class Command(ZulipBaseCommand):
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--deactivate-realm",
|
"--deactivate-realm",
|
||||||
action="store_true",
|
action="store_true",
|
||||||
help="Deactivate the realm immediately before exporting",
|
help=(
|
||||||
|
"Deactivate the realm immediately before exporting; the exported data "
|
||||||
|
"will show the realm as active"
|
||||||
|
),
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--consent-message-id",
|
"--consent-message-id",
|
||||||
|
@ -212,4 +212,5 @@ class Command(ZulipBaseCommand):
|
||||||
public_only=public_only,
|
public_only=public_only,
|
||||||
percent_callback=percent_callback,
|
percent_callback=percent_callback,
|
||||||
consent_message_id=consent_message_id,
|
consent_message_id=consent_message_id,
|
||||||
|
export_as_active=True if options["deactivate_realm"] else None,
|
||||||
)
|
)
|
||||||
|
|
|
@ -541,6 +541,7 @@ class TestExport(ZulipTestCase):
|
||||||
output_dir=mock.ANY,
|
output_dir=mock.ANY,
|
||||||
percent_callback=mock.ANY,
|
percent_callback=mock.ANY,
|
||||||
upload=False,
|
upload=False,
|
||||||
|
export_as_active=None,
|
||||||
)
|
)
|
||||||
mock_input.assert_called_once_with("Continue? [y/N] ")
|
mock_input.assert_called_once_with("Continue? [y/N] ")
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue