diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-05-18 06:03:13 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-05-18 06:03:13 +0000 |
| commit | fdeec11835fdd2b0fee36d1d10c7a15c7e833988 (patch) | |
| tree | 892d60044954ac3202459f800d836e028f070abc | |
| parent | 0e517601e5b39fe3801d47f6040c3f03aa77f62b (diff) | |
automatic import of python-pspring-aws
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-pspring-aws.spec | 446 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 448 insertions, 0 deletions
@@ -0,0 +1 @@ +/pspring-aws-0.0.44.tar.gz diff --git a/python-pspring-aws.spec b/python-pspring-aws.spec new file mode 100644 index 0000000..e612251 --- /dev/null +++ b/python-pspring-aws.spec @@ -0,0 +1,446 @@ +%global _empty_manifest_terminate_build 0 +Name: python-pspring-aws +Version: 0.0.44 +Release: 1 +Summary: A framework to do a better development. +License: TBD +URL: https://github.com/vasudevan-palani/pspring-aws +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/45/6c/1f51e4f5186a26a462265d9742fab24b64465fb1b3b3c359224e461d1aac/pspring-aws-0.0.44.tar.gz +BuildArch: noarch + +Requires: python3-boto3 +Requires: python3-pspring +Requires: python3-realtime-aws-secretsmngr +Requires: python3-PyYAML +Requires: python3-moto + +%description +# pspring-aws + +This framework is member of pspring based family of frameworks. It provides a means to access aws resources with minimal code. `boto3` library is used internally for http requests. + +All the default variables are listed in defaultvars.py + +Annotations / Decorators that come along with this framework are listed below + +* `@SecretValue(name="",region="",column="",columns=[])` + + This is a class decorator can be used to retrieve value of secret in AWS secrets manager. We could also specify a list of columns or a single column name from the secret response to be retrived. A method named "getSecretValue" will be available on the class. + +* `@DynamoDBTable(tableName="",primaryKey="",sortKey="",ttlColumnName="",ttl="")` + + This is a class decorator which can be tagged with a dynamodb table. Once tagged with this decorator, the class will have implementations of `get` and `put` methods. + `get(self,primaryKey,sortKey="",columns="",column="")` method can be used to retrive only specific columns + `put(self,data)` can be used to insert data + +* `@LambdaHandler(type="lambdaproxy")` + + This is a class decorator which provides below functionalities. You should implement "handler" method which will be enhanced + 1) debug,info,warn,error - This will log a message will required tracking fields like requestId etc. + 2) handle cold start requests with requestId = "COLD_START_WARMER" + 3) addToLogger method can be used to add a field to all logging messages. + 4) returns a 200 response along with the dictionary returned from the "handler" method as json. + 5) handles all exceptions and returns gracefully a 500 Internal server error. + + +Below exceptions are available from this framework + +- LambdaException +- NotFoundException +- UnAuthorizedException +- InternalServerException +- CreatedException +- RedirectException + +* `RealTimeSecretsMgrConfigProvider` + + This along with https://github.com/vasudevan-palani/appsync-client.git works as a real time secrets manager ( what this means is, you will get notified about the changes to secrets mngr's value as a push event ) + + ```python + from pspring import Configuration + + config = Configuration.getConfig(__name__) + + Configuration.initializer([ + RealTimeSecretsMgrConfigProvider(secretId="mysecretId",region="us-east-1") + ]) + + ``` + +* `SecretsMgrConfigProvider` + + ConfigurationProvider for secrets manager in aws to work alongside pspring.Configuration + + ```python + from pspring import Configuration + + config = Configuration.getConfig(__name__) + + Configuration.initializer([ + SecretsMgrConfigProvider(secretId="mysecretId",region="us-east-1") + ]) + + ``` + + +* `SecretsManager` + + Utility class to interact with aws secrets manager encapsulating the boiler plate code + ```python + from pspringaws import SecretsManager + + secretsmngr = SecretsManager(secretId="mysecretId") + + secretsmngr.getSecretValue() + + ``` + +* `DynamoDBTable` + + Utility class to interact with aws dynamodb encapsulating the boiler plate code + ```python + from pspringaws import DynamoDBTable + + secretsmngr = DynamoDBTable(tableName="mytable",primaryKey="primaryKey",sortKey="sortKey") + + item = secretsmngr.get("primaryKeyValue") + + item = secretsmngr.put(primaryKeyValue,item) + + ``` + +Example: + +```python + +from pspring import * +from pspringaws import * + + +@LambdaHandler() +class MyHandler(): + @Autowired() + def __init__(self,customerbackend:CustomerBackend, cache:DataCache): + self.customerbackend = customerbackend + self.cache = cache + + def handler(self,event,context): + return self.customerbackend(...) + +context.initialize() +newhandler = MyHandler() +def handler(event,context): + return newhandler.handler(event,context) +``` + + To do: + + * Support Lambda integration types + + + + +%package -n python3-pspring-aws +Summary: A framework to do a better development. +Provides: python-pspring-aws +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-pspring-aws +# pspring-aws + +This framework is member of pspring based family of frameworks. It provides a means to access aws resources with minimal code. `boto3` library is used internally for http requests. + +All the default variables are listed in defaultvars.py + +Annotations / Decorators that come along with this framework are listed below + +* `@SecretValue(name="",region="",column="",columns=[])` + + This is a class decorator can be used to retrieve value of secret in AWS secrets manager. We could also specify a list of columns or a single column name from the secret response to be retrived. A method named "getSecretValue" will be available on the class. + +* `@DynamoDBTable(tableName="",primaryKey="",sortKey="",ttlColumnName="",ttl="")` + + This is a class decorator which can be tagged with a dynamodb table. Once tagged with this decorator, the class will have implementations of `get` and `put` methods. + `get(self,primaryKey,sortKey="",columns="",column="")` method can be used to retrive only specific columns + `put(self,data)` can be used to insert data + +* `@LambdaHandler(type="lambdaproxy")` + + This is a class decorator which provides below functionalities. You should implement "handler" method which will be enhanced + 1) debug,info,warn,error - This will log a message will required tracking fields like requestId etc. + 2) handle cold start requests with requestId = "COLD_START_WARMER" + 3) addToLogger method can be used to add a field to all logging messages. + 4) returns a 200 response along with the dictionary returned from the "handler" method as json. + 5) handles all exceptions and returns gracefully a 500 Internal server error. + + +Below exceptions are available from this framework + +- LambdaException +- NotFoundException +- UnAuthorizedException +- InternalServerException +- CreatedException +- RedirectException + +* `RealTimeSecretsMgrConfigProvider` + + This along with https://github.com/vasudevan-palani/appsync-client.git works as a real time secrets manager ( what this means is, you will get notified about the changes to secrets mngr's value as a push event ) + + ```python + from pspring import Configuration + + config = Configuration.getConfig(__name__) + + Configuration.initializer([ + RealTimeSecretsMgrConfigProvider(secretId="mysecretId",region="us-east-1") + ]) + + ``` + +* `SecretsMgrConfigProvider` + + ConfigurationProvider for secrets manager in aws to work alongside pspring.Configuration + + ```python + from pspring import Configuration + + config = Configuration.getConfig(__name__) + + Configuration.initializer([ + SecretsMgrConfigProvider(secretId="mysecretId",region="us-east-1") + ]) + + ``` + + +* `SecretsManager` + + Utility class to interact with aws secrets manager encapsulating the boiler plate code + ```python + from pspringaws import SecretsManager + + secretsmngr = SecretsManager(secretId="mysecretId") + + secretsmngr.getSecretValue() + + ``` + +* `DynamoDBTable` + + Utility class to interact with aws dynamodb encapsulating the boiler plate code + ```python + from pspringaws import DynamoDBTable + + secretsmngr = DynamoDBTable(tableName="mytable",primaryKey="primaryKey",sortKey="sortKey") + + item = secretsmngr.get("primaryKeyValue") + + item = secretsmngr.put(primaryKeyValue,item) + + ``` + +Example: + +```python + +from pspring import * +from pspringaws import * + + +@LambdaHandler() +class MyHandler(): + @Autowired() + def __init__(self,customerbackend:CustomerBackend, cache:DataCache): + self.customerbackend = customerbackend + self.cache = cache + + def handler(self,event,context): + return self.customerbackend(...) + +context.initialize() +newhandler = MyHandler() +def handler(event,context): + return newhandler.handler(event,context) +``` + + To do: + + * Support Lambda integration types + + + + +%package help +Summary: Development documents and examples for pspring-aws +Provides: python3-pspring-aws-doc +%description help +# pspring-aws + +This framework is member of pspring based family of frameworks. It provides a means to access aws resources with minimal code. `boto3` library is used internally for http requests. + +All the default variables are listed in defaultvars.py + +Annotations / Decorators that come along with this framework are listed below + +* `@SecretValue(name="",region="",column="",columns=[])` + + This is a class decorator can be used to retrieve value of secret in AWS secrets manager. We could also specify a list of columns or a single column name from the secret response to be retrived. A method named "getSecretValue" will be available on the class. + +* `@DynamoDBTable(tableName="",primaryKey="",sortKey="",ttlColumnName="",ttl="")` + + This is a class decorator which can be tagged with a dynamodb table. Once tagged with this decorator, the class will have implementations of `get` and `put` methods. + `get(self,primaryKey,sortKey="",columns="",column="")` method can be used to retrive only specific columns + `put(self,data)` can be used to insert data + +* `@LambdaHandler(type="lambdaproxy")` + + This is a class decorator which provides below functionalities. You should implement "handler" method which will be enhanced + 1) debug,info,warn,error - This will log a message will required tracking fields like requestId etc. + 2) handle cold start requests with requestId = "COLD_START_WARMER" + 3) addToLogger method can be used to add a field to all logging messages. + 4) returns a 200 response along with the dictionary returned from the "handler" method as json. + 5) handles all exceptions and returns gracefully a 500 Internal server error. + + +Below exceptions are available from this framework + +- LambdaException +- NotFoundException +- UnAuthorizedException +- InternalServerException +- CreatedException +- RedirectException + +* `RealTimeSecretsMgrConfigProvider` + + This along with https://github.com/vasudevan-palani/appsync-client.git works as a real time secrets manager ( what this means is, you will get notified about the changes to secrets mngr's value as a push event ) + + ```python + from pspring import Configuration + + config = Configuration.getConfig(__name__) + + Configuration.initializer([ + RealTimeSecretsMgrConfigProvider(secretId="mysecretId",region="us-east-1") + ]) + + ``` + +* `SecretsMgrConfigProvider` + + ConfigurationProvider for secrets manager in aws to work alongside pspring.Configuration + + ```python + from pspring import Configuration + + config = Configuration.getConfig(__name__) + + Configuration.initializer([ + SecretsMgrConfigProvider(secretId="mysecretId",region="us-east-1") + ]) + + ``` + + +* `SecretsManager` + + Utility class to interact with aws secrets manager encapsulating the boiler plate code + ```python + from pspringaws import SecretsManager + + secretsmngr = SecretsManager(secretId="mysecretId") + + secretsmngr.getSecretValue() + + ``` + +* `DynamoDBTable` + + Utility class to interact with aws dynamodb encapsulating the boiler plate code + ```python + from pspringaws import DynamoDBTable + + secretsmngr = DynamoDBTable(tableName="mytable",primaryKey="primaryKey",sortKey="sortKey") + + item = secretsmngr.get("primaryKeyValue") + + item = secretsmngr.put(primaryKeyValue,item) + + ``` + +Example: + +```python + +from pspring import * +from pspringaws import * + + +@LambdaHandler() +class MyHandler(): + @Autowired() + def __init__(self,customerbackend:CustomerBackend, cache:DataCache): + self.customerbackend = customerbackend + self.cache = cache + + def handler(self,event,context): + return self.customerbackend(...) + +context.initialize() +newhandler = MyHandler() +def handler(event,context): + return newhandler.handler(event,context) +``` + + To do: + + * Support Lambda integration types + + + + +%prep +%autosetup -n pspring-aws-0.0.44 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-pspring-aws -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Thu May 18 2023 Python_Bot <Python_Bot@openeuler.org> - 0.0.44-1 +- Package Spec generated @@ -0,0 +1 @@ +6155d0f7425b9373750ceeead31f8d20 pspring-aws-0.0.44.tar.gz |
