acumatica-cli 0.18.2__tar.gz → 0.19.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/PKG-INFO +3 -2
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/README.md +2 -1
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/pyproject.toml +1 -1
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/pyproject.toml.orig +1 -1
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/cli.py +21 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/client.py +1 -1
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/__init__.py +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/bootstrap.py +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/bootstrap_plugin.cs +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/bootstrap_project.xml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/config.py +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/extract.py +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/firstlogin.py +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/inventory.py +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/models.py +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/output.py +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/reconcile.py +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/run.py +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/seed.py +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/seed_catalog.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/snapshot_map.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/state.py +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/target.py +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/README.md +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/baseline/10-subaccounts.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/baseline/20-accounts.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/baseline/40-ledger.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/baseline/50-gl-preferences.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/baseline/60-ledger-company.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/baseline/90-uoms.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/bootstrap/company.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/bootstrap/credit-terms.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/bootstrap/features.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/master/10-reason-codes.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/master/20-in-preferences.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/master/30-availability-rules.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/master/40-posting-classes.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/master/50-warehouse.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/master/51-warehouse-locations.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/master/52-warehouse-defaults.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/master/53-tax-categories.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/master/54-item-classes.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/master/56-so-preferences.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/master/57-po-preferences.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/master/58-order-types.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/master/60-ar-preferences.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/master/61-ap-preferences.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/master/62-ca-preferences.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/master/63-cash-account.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/master/64-payment-methods.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/master/65-statement-cycles.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/master/70-vendor-classes.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/master/71-customer-classes.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/master/75-vendors.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/master/76-customers.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/master/80-stock-items-parts.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/master/82-stock-items-kits.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/master/85-kit-specifications.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/setup/10-financial-year.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/setup/20-master-calendar.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/setup/30-open-periods.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/config/views/10-trial-balance.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/env +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/gitignore +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/scenario/10-seed-capital.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/scenario/20-buy.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/scenario/30-build.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/scenario/40-sell.yaml +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/target +0 -0
- {acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/tenant.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: acumatica-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.19.0
|
|
4
4
|
Summary: Acumatica ERP Config-as-Code: tenant provisioning, baseline config, and reference data
|
|
5
5
|
Author: Konstantin Borovik
|
|
6
6
|
Author-email: Konstantin Borovik <kb@lab5.ca>
|
|
@@ -78,7 +78,8 @@ acu [--tenant NAME] [--url URL] [--ssh USER@HOST] [--api-version V]
|
|
|
78
78
|
│ ├── list CompanyID, sign-in name, internal CD, type
|
|
79
79
|
│ ├── create --id N --login NAME create + bootstrap; re-run to republish (SSH)
|
|
80
80
|
│ │ [--type SalesDemo|T100|U100] [--parent N] [--hidden] [--no-init]
|
|
81
|
-
│
|
|
81
|
+
│ ├── delete --id N [--yes] delete the tenant and its data, recycle app pool
|
|
82
|
+
│ └── recycle [--yes] restart site app pool (tenant map + free API slots)
|
|
82
83
|
│
|
|
83
84
|
├── bootstrap [--export PATH] publish AcuBootstrap (REST); --export = offline zip
|
|
84
85
|
├── apply [--dry-run] [FILES...] push YAML via REST (idempotent PUT upserts)
|
|
@@ -60,7 +60,8 @@ acu [--tenant NAME] [--url URL] [--ssh USER@HOST] [--api-version V]
|
|
|
60
60
|
│ ├── list CompanyID, sign-in name, internal CD, type
|
|
61
61
|
│ ├── create --id N --login NAME create + bootstrap; re-run to republish (SSH)
|
|
62
62
|
│ │ [--type SalesDemo|T100|U100] [--parent N] [--hidden] [--no-init]
|
|
63
|
-
│
|
|
63
|
+
│ ├── delete --id N [--yes] delete the tenant and its data, recycle app pool
|
|
64
|
+
│ └── recycle [--yes] restart site app pool (tenant map + free API slots)
|
|
64
65
|
│
|
|
65
66
|
├── bootstrap [--export PATH] publish AcuBootstrap (REST); --export = offline zip
|
|
66
67
|
├── apply [--dry-run] [FILES...] push YAML via REST (idempotent PUT upserts)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "acumatica-cli"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.19.0"
|
|
4
4
|
description = "Acumatica ERP Config-as-Code: tenant provisioning, baseline config, and reference data"
|
|
5
5
|
authors = [{ name = "Konstantin Borovik", email = "kb@lab5.ca" }]
|
|
6
6
|
license = "PolyForm-Noncommercial-1.0.0"
|
|
@@ -470,6 +470,27 @@ def tenant_delete(inst: Instance, company_id: int) -> None:
|
|
|
470
470
|
mgr.recycle_app_pool()
|
|
471
471
|
|
|
472
472
|
|
|
473
|
+
@tenant_group.command("recycle")
|
|
474
|
+
@click.confirmation_option(
|
|
475
|
+
prompt=(
|
|
476
|
+
"Recycle the site app pool? This kills all sessions and frees API-user slots."
|
|
477
|
+
)
|
|
478
|
+
)
|
|
479
|
+
@pass_instance
|
|
480
|
+
def tenant_recycle(inst: Instance) -> None:
|
|
481
|
+
"""Recycle the IIS app pool for the instance (site-wide; no tenant --id).
|
|
482
|
+
|
|
483
|
+
Control plane only (SSH): ``Restart-WebAppPool`` for the instance pool.
|
|
484
|
+
Reloads the tenant map (V5) and drops every in-flight session so concurrent
|
|
485
|
+
API-user license slots free up. Hosted / empty ACU_SSH hard-errors before
|
|
486
|
+
any remote (same as other tenant cmds).
|
|
487
|
+
"""
|
|
488
|
+
mgr = TenantManager(inst)
|
|
489
|
+
with output.step("recycling app pool (tenant map + free API-user sessions)"):
|
|
490
|
+
mgr.recycle_app_pool()
|
|
491
|
+
output.success("app pool recycled")
|
|
492
|
+
|
|
493
|
+
|
|
473
494
|
@cli.group("config")
|
|
474
495
|
def config_group() -> None:
|
|
475
496
|
"""Configuration ops.
|
|
@@ -224,7 +224,7 @@ class AcumaticaClient:
|
|
|
224
224
|
f"tenant guard: asked for tenant {self.instance.tenant!r} "
|
|
225
225
|
f"but the session landed on {landed!r} - the instance "
|
|
226
226
|
"tenant map is stale or the tenant does not exist; check "
|
|
227
|
-
"acu tenant list and
|
|
227
|
+
"acu tenant list and run acu tenant recycle"
|
|
228
228
|
)
|
|
229
229
|
|
|
230
230
|
def relogin(self) -> None:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/scenario/20-buy.yaml
RENAMED
|
File without changes
|
{acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/scenario/30-build.yaml
RENAMED
|
File without changes
|
{acumatica_cli-0.18.2 → acumatica_cli-0.19.0}/src/acumatica_cli/templates/scenario/40-sell.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|