magic-pocket-cli 0.19.0__tar.gz → 0.20.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.
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/PKG-INFO +2 -2
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/dsql.py +52 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pyproject.toml +2 -2
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/.gitignore +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/__init__.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/cli/__init__.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/cli/aws_auth.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/cli/awscontainer_cli.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/cli/cloudfront_cli.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/cli/cloudfront_keys_cli.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/cli/cloudfront_waf_cli.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/cli/deploy_cli.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/cli/destroy_cli.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/cli/dsql_cli.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/cli/image_cli.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/cli/main_cli.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/cli/migrate_cli.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/cli/neon_cli.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/cli/permissions_cli.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/cli/rds_cli.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/cli/resource_helper.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/cli/runtime_config_cli.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/cli/s3_cli.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/cli/status_cli.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/cli/store_url_helper.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/cli/tidb_cli.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/cli/upstash_cli.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/cli/url_helper.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/cli/vpc_cli.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/cli/waf_cli.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/django_cli.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/mediator.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/__init__.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/aws/__init__.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/aws/builders/__init__.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/aws/builders/codebuild.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/aws/builders/depot.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/aws/builders/docker.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/aws/builders/dockerignore.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/aws/cloudformation.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/aws/ecr.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/aws/efs.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/aws/lambdahandler.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/aws/poll.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/aws/s3_utils.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/aws/stack_backed.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/aws/state.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/awscontainer.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/cloudfront.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/cloudfront_acm.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/cloudfront_keys.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/cloudfront_waf.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/neon.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/rds.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/s3.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/tidb.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/upstash.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/vpc.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/templates/cloudformation/awscontainer.yaml +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/templates/cloudformation/cf_function_api_host.js +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/templates/cloudformation/cf_function_basic_auth_prelude.js +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/templates/cloudformation/cf_function_host_redirect_prelude.js +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/templates/cloudformation/cf_function_spa_auth.js +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/templates/cloudformation/cf_function_spa_fallback.js +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/templates/cloudformation/cloudfront.yaml +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/templates/cloudformation/cloudfront_acm.yaml +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/templates/cloudformation/cloudfront_keys.yaml +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/templates/cloudformation/cloudfront_waf.yaml +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/templates/cloudformation/vpc.yaml +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/templates/init/django-dotenv.env +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/templates/init/django-settings.py +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/templates/init/pocket.Dockerfile +0 -0
- {magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/templates/init/pocket_simple.toml +0 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: magic-pocket-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.20.0
|
|
4
4
|
Summary: CLI and deploy tools for magic-pocket.
|
|
5
5
|
Requires-Python: >=3.10
|
|
6
6
|
Requires-Dist: awscrt>=0.19.0
|
|
7
7
|
Requires-Dist: click>=8.1.7
|
|
8
8
|
Requires-Dist: deepdiff>=6.7.1
|
|
9
9
|
Requires-Dist: jinja2>=3.1.3
|
|
10
|
-
Requires-Dist: magic-pocket>=0.
|
|
10
|
+
Requires-Dist: magic-pocket>=0.20.0
|
|
11
11
|
Requires-Dist: pathspec>=1.0.4
|
|
12
12
|
Requires-Dist: python-on-whales>=0.68.0
|
|
13
13
|
Requires-Dist: pyyaml>=6.0.1
|
|
@@ -7,6 +7,11 @@ import boto3
|
|
|
7
7
|
from botocore.exceptions import ClientError
|
|
8
8
|
|
|
9
9
|
from pocket.resources.base import ResourceStatus
|
|
10
|
+
from pocket.secret_store import (
|
|
11
|
+
delete_stored_value,
|
|
12
|
+
put_stored_value,
|
|
13
|
+
read_stored_value,
|
|
14
|
+
)
|
|
10
15
|
from pocket.utils import echo
|
|
11
16
|
from pocket_cli.resources.aws.poll import wait_until
|
|
12
17
|
|
|
@@ -78,6 +83,7 @@ class Dsql:
|
|
|
78
83
|
"tag_name": self.context.tag_name,
|
|
79
84
|
"identifier": self.identifier,
|
|
80
85
|
"endpoint": self.endpoint,
|
|
86
|
+
"endpoint_secret_name": self.context.endpoint_secret_name,
|
|
81
87
|
}
|
|
82
88
|
}
|
|
83
89
|
|
|
@@ -97,6 +103,9 @@ class Dsql:
|
|
|
97
103
|
self.clear_cache()
|
|
98
104
|
echo.success("DSQL cluster is now active.")
|
|
99
105
|
echo.success("Endpoint: %s" % self.endpoint)
|
|
106
|
+
# ensure_post_deploy_state でも publish されるが、後続 resource の失敗で
|
|
107
|
+
# hook まで到達しない deploy でも作成記録が残るよう、作成直後にも書く
|
|
108
|
+
self.publish_endpoint()
|
|
100
109
|
|
|
101
110
|
def delete(self):
|
|
102
111
|
if not self.identifier:
|
|
@@ -106,6 +115,49 @@ class Dsql:
|
|
|
106
115
|
echo.log("Waiting for DSQL cluster deletion...")
|
|
107
116
|
self._wait_deleted(self.identifier, timeout=600)
|
|
108
117
|
echo.success("DSQL cluster was deleted.")
|
|
118
|
+
self._unpublish_endpoint()
|
|
119
|
+
|
|
120
|
+
def ensure_post_deploy_state(self):
|
|
121
|
+
# create の有無に関わらず毎 deploy で publish を冪等に確保する。cluster
|
|
122
|
+
# 再作成や旧バージョンで deploy 済みの既存 cluster も常に実体を反映する
|
|
123
|
+
self.publish_endpoint()
|
|
124
|
+
|
|
125
|
+
def publish_endpoint(self):
|
|
126
|
+
"""endpoint を stored user secret 正準パスへ publish する (作成記録)。
|
|
127
|
+
|
|
128
|
+
DSQL は cluster identifier が AWS 自動生成のため endpoint を naming から
|
|
129
|
+
導出できない。deploy の外の消費者 (migration ツール等) が endpoint を
|
|
130
|
+
決定的に引けるよう、作成者である deploy が正準パスへ書き込む。
|
|
131
|
+
値が既に一致していれば書き込まない (SSM version / SM stage の増殖防止)。
|
|
132
|
+
"""
|
|
133
|
+
name = self.context.endpoint_secret_name
|
|
134
|
+
endpoint = self.endpoint
|
|
135
|
+
if not name or endpoint is None:
|
|
136
|
+
return
|
|
137
|
+
store = self.context.endpoint_secret_store
|
|
138
|
+
current = read_stored_value(name, store, self.context.region)
|
|
139
|
+
if current == endpoint:
|
|
140
|
+
return
|
|
141
|
+
put_stored_value(name, store, endpoint, self.context.region)
|
|
142
|
+
echo.log("Published DSQL endpoint to %s" % name)
|
|
143
|
+
|
|
144
|
+
def _unpublish_endpoint(self):
|
|
145
|
+
"""publish 済み endpoint を削除する (cluster 削除との対称操作)。
|
|
146
|
+
|
|
147
|
+
残すと削除済み cluster の endpoint を消費者が読み続けるため、削除まで
|
|
148
|
+
deploy 側の責務とする。未 publish (NotFound) は握りつぶす。
|
|
149
|
+
"""
|
|
150
|
+
name = self.context.endpoint_secret_name
|
|
151
|
+
if not name:
|
|
152
|
+
return
|
|
153
|
+
delete_stored_value(
|
|
154
|
+
name,
|
|
155
|
+
self.context.endpoint_secret_store,
|
|
156
|
+
self.context.region,
|
|
157
|
+
force_sm=True,
|
|
158
|
+
swallow_not_found=True,
|
|
159
|
+
)
|
|
160
|
+
echo.log("Removed published DSQL endpoint: %s" % name)
|
|
109
161
|
|
|
110
162
|
def _wait_active(self, identifier: str, timeout: int = 600, interval: int = 5):
|
|
111
163
|
def poll():
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "magic-pocket-cli"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.20.0"
|
|
4
4
|
description = "CLI and deploy tools for magic-pocket."
|
|
5
5
|
requires-python = ">=3.10"
|
|
6
6
|
dependencies = [
|
|
7
|
-
"magic-pocket>=0.
|
|
7
|
+
"magic-pocket>=0.20.0",
|
|
8
8
|
"click>=8.1.7",
|
|
9
9
|
"jinja2>=3.1.3",
|
|
10
10
|
"python-on-whales>=0.68.0",
|
|
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
|
{magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/aws/builders/__init__.py
RENAMED
|
File without changes
|
{magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/aws/builders/codebuild.py
RENAMED
|
File without changes
|
{magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/aws/builders/depot.py
RENAMED
|
File without changes
|
{magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/aws/builders/docker.py
RENAMED
|
File without changes
|
|
File without changes
|
{magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/aws/cloudformation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/aws/lambdahandler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/resources/aws/stack_backed.py
RENAMED
|
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
|
{magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/templates/cloudformation/vpc.yaml
RENAMED
|
File without changes
|
{magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/templates/init/django-dotenv.env
RENAMED
|
File without changes
|
{magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/templates/init/django-settings.py
RENAMED
|
File without changes
|
{magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/templates/init/pocket.Dockerfile
RENAMED
|
File without changes
|
{magic_pocket_cli-0.19.0 → magic_pocket_cli-0.20.0}/pocket_cli/templates/init/pocket_simple.toml
RENAMED
|
File without changes
|