Skip to content

Commit 53441f3

Browse files
committed
improved detection of first creation of lambda function in LocalStack
1 parent 9ee604e commit 53441f3

File tree

2 files changed

+26
-11
lines changed

2 files changed

+26
-11
lines changed

osbot_serverless_s3_browser/utils/deploy/Deploy__Serverless_S3_Browser.py

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from osbot_aws.AWS_Config import AWS_Config
22
from osbot_aws.deploy.Deploy_Lambda import Deploy_Lambda
3+
from osbot_aws.helpers.Lambda_Upload_Package import Lambda_Upload_Package
34
from osbot_utils.decorators.methods.cache_on_self import cache_on_self
45
from osbot_utils.helpers.Safe_Id import Safe_Id
56
from osbot_utils.type_safe.Type_Safe import Type_Safe
@@ -29,9 +30,16 @@ def deploy_lambda(self):
2930
def deploy(self):
3031
with self.deploy_lambda() as _:
3132
result = _.update()
32-
if result != "Successful":
33-
raise Exception(f"Lambda update failed: {result}")
34-
return True
33+
print(f"***** : {result}")
34+
if result == "Successful":
35+
return True
36+
if result == 'Pending':
37+
print(">>>>>>> Pending result >>>> going to wait a bit more")
38+
wait_result = self.lambda_function().wait_for_function_update_to_complete()
39+
print(f">>>>>>>> WAIT RESULT: {wait_result}") # todo add check here
40+
return True
41+
raise Exception(f"Lambda update failed: {result}")
42+
3543

3644
def lambda_name(self):
3745
return f'{BASE__LAMBDA_NAME}__{self.stage}'
@@ -55,3 +63,9 @@ def setup_aws_environment(self):
5563
if result.get('status') == 'ok':
5664
_.bucket__osbot_lambdas__exists = True
5765
return aws_setup
66+
67+
def upload_lambda_dependencies_to_s3(self):
68+
packages = ['fastapi']
69+
lambda_upload_package = Lambda_Upload_Package()
70+
for package in packages:
71+
return lambda_upload_package.install_locally(package)

tests/unit/utils/deploy/test_Deploy__Serverless_S3_Browser.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
from unittest import TestCase
2-
from osbot_aws.deploy.Deploy_Lambda import Deploy_Lambda
3-
from osbot_utils.utils.Objects import __
4-
from osbot_serverless_s3_browser.utils.deploy.Deploy__Serverless_S3_Browser import Deploy__Serverless_S3_Browser
5-
from osbot_serverless_s3_browser.utils.deploy.Schema__AWS_Setup__Serverless_S3_Browser import \
6-
Schema__AWS_Setup__Serverless_S3_Browser
7-
from tests.s3_browser__objs_for_tests import setup_local_stack, S3_BROWSER__TEST__AWS_ACCOUNT_ID, S3_BROWSER__TEST__AWS_DEFAULT_REGION
1+
from unittest import TestCase
2+
from osbot_aws.deploy.Deploy_Lambda import Deploy_Lambda
3+
from osbot_utils.utils.Objects import __
4+
from osbot_serverless_s3_browser.utils.deploy.Deploy__Serverless_S3_Browser import Deploy__Serverless_S3_Browser
5+
from osbot_serverless_s3_browser.utils.deploy.Schema__AWS_Setup__Serverless_S3_Browser import Schema__AWS_Setup__Serverless_S3_Browser
6+
from tests.s3_browser__objs_for_tests import setup_local_stack, S3_BROWSER__TEST__AWS_ACCOUNT_ID, S3_BROWSER__TEST__AWS_DEFAULT_REGION
87

98

109
class test_Deploy__Serverless_S3_Browser(TestCase):
@@ -29,7 +28,9 @@ def test_1__setup_aws_environment(self):
2928
bucket__osbot_lambdas__name = '000022220000--osbot-lambdas--eu-west-2',
3029
current_aws_region = 'eu-west-2' )
3130

32-
def test_2__deploy(self):
31+
def test_2_upload_lambda_dependencies_to_s3(self):
32+
pass
33+
def test_3__deploy(self):
3334
with self.deploy_s3_browser as _:
3435
assert _.lambda_function().exists() is False
3536
result = _.deploy()

0 commit comments

Comments
 (0)