summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-15 07:20:57 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-15 07:20:57 +0000
commit83a4b805f02e06fa8dc8d5cb71847dcace10cef4 (patch)
tree1d2ee6b46a7b4afe8aaba143d2c4e475e27d48f3
parentc58cdb6b18d7ab491c6d7ab78ed98261e750b16d (diff)
automatic import of python-car-connector-framework
-rw-r--r--.gitignore1
-rw-r--r--python-car-connector-framework.spec192
-rw-r--r--sources1
3 files changed, 194 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..d8112bd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/car-connector-framework-3.0.2.tar.gz
diff --git a/python-car-connector-framework.spec b/python-car-connector-framework.spec
new file mode 100644
index 0000000..20d4e27
--- /dev/null
+++ b/python-car-connector-framework.spec
@@ -0,0 +1,192 @@
+%global _empty_manifest_terminate_build 0
+Name: python-car-connector-framework
+Version: 3.0.2
+Release: 1
+Summary: CAR service connector framework
+License: Apache License 2.0
+URL: https://github.com/IBM/cp4s-car-connector-framework
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/32/be/12342b8e76b19a3ae3b1c9d354279e0b96269d3942c7082a8b695c492a9c/car-connector-framework-3.0.2.tar.gz
+BuildArch: noarch
+
+Requires: python3-jschon
+Requires: python3-requests
+Requires: python3-json-logger
+
+%description
+# Car Connector Framework
+
+## Develop a connector
+
+Use connectors/reference_connector from [cp4s-car-connectors](https://github.com/IBM/cp4s-car-connectors) project as an example of how this framework is to be used.
+
+A CAR connector project will need to extend the framework classes: [BaseFullImport](https://github.com/IBM/cp4s-car-connector-framework/blob/develop/car_framework/full_import.py), [BaseIncrementalImport](https://github.com/IBM/cp4s-car-connector-framework/blob/develop/car_framework/inc_import.py), [BaseApp](https://github.com/IBM/cp4s-car-connector-framework/blob/develop/car_framework/app.py), [BaseAssetServer](https://github.com/IBM/cp4s-car-connector-framework/blob/develop/car_framework/server_access.py) and [BaseDataHandler](https://github.com/IBM/cp4s-car-connector-framework/blob/develop/car_framework/data_handler.py), and implement abstract methods of those classes.
+
+Things to note:
+
+* All communications with CAR digestion microservice are managed by the framework. Connector code normally does not need to access CAR digestion microservice directly
+
+* The framework is trying to make some intelligent choice for whether to run full vs incremental import. Normally, for performance reasons we would always prefer to run incremental import if one is possible. Some examples of when it is not possible are:
+ * The model states for generating delta are not available
+ * The model on the CAR side is empty
+ * The previous incremental import session failed and a new incremental import session can potentially create a gap in the model data
+
+* Because of the above the the connector code should properly use (throw/raise) one of three following exceptions when detecting failures:
+ * [RecoverableFailure](https://github.com/IBM/cp4s-car-connector-framework/blob/99554ac2cfa0732af090c46be9e356beb015934e/car_framework/util.py#L77) is to be used when the failure cannot potentially create a data gap and we can attempt an incremental import session when running next time. One example of a recoverable failure is a connectivity problem.
+ * [UnrecoverableFailure](https://github.com/IBM/cp4s-car-connector-framework/blob/99554ac2cfa0732af090c46be9e356beb015934e/car_framework/util.py#L81) is to be used when the failure can potentially create a data gap and we must run full import session to recover.
+ * [DatasourceFailure](https://github.com/IBM/cp4s-car-connector-framework/blob/99554ac2cfa0732af090c46be9e356beb015934e/car_framework/util.py#L92) is to be used when there is datasource API issues.
+
+RecoverableFailure and UnrecoverableFailure are mostly handled in the framework. DatasourceFailure is to be used in the connector code with [a corresponding error code](https://github.com/IBM/cp4s-car-connector-framework/blob/99554ac2cfa0732af090c46be9e356beb015934e/car_framework/util.py#L35). Example: `return ErrorCode.TRANSMISSION_AUTH_CREDENTIALS.value`.
+If none of the Failure classes is used, the framework will raise a [GENERAL_APPLICATION_FAILURE](https://github.com/IBM/cp4s-car-connector-framework/blob/99554ac2cfa0732af090c46be9e356beb015934e/car_framework/app.py#L106) (Unknown error) and print the error stack.
+
+For more information use guides
+* https://github.com/IBM/cp4s-car-connectors/blob/develop/README.md
+* https://github.com/IBM/cp4s-car-connectors/blob/develop/guide-build-connectors.md
+* https://github.com/IBM/cp4s-car-connectors/tree/develop/connectors/reference_connector
+* https://github.com/IBM/cp4s-car-connectors/blob/develop/best-practices.md
+
+
+## Test deploy
+https://github.com/IBM/cp4s-car-connectors/blob/develop/deployment/README.md
+
+
+## Publish
+
+Use the guide from [PUBLISH.md](./PUBLISH.md)
+
+
+%package -n python3-car-connector-framework
+Summary: CAR service connector framework
+Provides: python-car-connector-framework
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-car-connector-framework
+# Car Connector Framework
+
+## Develop a connector
+
+Use connectors/reference_connector from [cp4s-car-connectors](https://github.com/IBM/cp4s-car-connectors) project as an example of how this framework is to be used.
+
+A CAR connector project will need to extend the framework classes: [BaseFullImport](https://github.com/IBM/cp4s-car-connector-framework/blob/develop/car_framework/full_import.py), [BaseIncrementalImport](https://github.com/IBM/cp4s-car-connector-framework/blob/develop/car_framework/inc_import.py), [BaseApp](https://github.com/IBM/cp4s-car-connector-framework/blob/develop/car_framework/app.py), [BaseAssetServer](https://github.com/IBM/cp4s-car-connector-framework/blob/develop/car_framework/server_access.py) and [BaseDataHandler](https://github.com/IBM/cp4s-car-connector-framework/blob/develop/car_framework/data_handler.py), and implement abstract methods of those classes.
+
+Things to note:
+
+* All communications with CAR digestion microservice are managed by the framework. Connector code normally does not need to access CAR digestion microservice directly
+
+* The framework is trying to make some intelligent choice for whether to run full vs incremental import. Normally, for performance reasons we would always prefer to run incremental import if one is possible. Some examples of when it is not possible are:
+ * The model states for generating delta are not available
+ * The model on the CAR side is empty
+ * The previous incremental import session failed and a new incremental import session can potentially create a gap in the model data
+
+* Because of the above the the connector code should properly use (throw/raise) one of three following exceptions when detecting failures:
+ * [RecoverableFailure](https://github.com/IBM/cp4s-car-connector-framework/blob/99554ac2cfa0732af090c46be9e356beb015934e/car_framework/util.py#L77) is to be used when the failure cannot potentially create a data gap and we can attempt an incremental import session when running next time. One example of a recoverable failure is a connectivity problem.
+ * [UnrecoverableFailure](https://github.com/IBM/cp4s-car-connector-framework/blob/99554ac2cfa0732af090c46be9e356beb015934e/car_framework/util.py#L81) is to be used when the failure can potentially create a data gap and we must run full import session to recover.
+ * [DatasourceFailure](https://github.com/IBM/cp4s-car-connector-framework/blob/99554ac2cfa0732af090c46be9e356beb015934e/car_framework/util.py#L92) is to be used when there is datasource API issues.
+
+RecoverableFailure and UnrecoverableFailure are mostly handled in the framework. DatasourceFailure is to be used in the connector code with [a corresponding error code](https://github.com/IBM/cp4s-car-connector-framework/blob/99554ac2cfa0732af090c46be9e356beb015934e/car_framework/util.py#L35). Example: `return ErrorCode.TRANSMISSION_AUTH_CREDENTIALS.value`.
+If none of the Failure classes is used, the framework will raise a [GENERAL_APPLICATION_FAILURE](https://github.com/IBM/cp4s-car-connector-framework/blob/99554ac2cfa0732af090c46be9e356beb015934e/car_framework/app.py#L106) (Unknown error) and print the error stack.
+
+For more information use guides
+* https://github.com/IBM/cp4s-car-connectors/blob/develop/README.md
+* https://github.com/IBM/cp4s-car-connectors/blob/develop/guide-build-connectors.md
+* https://github.com/IBM/cp4s-car-connectors/tree/develop/connectors/reference_connector
+* https://github.com/IBM/cp4s-car-connectors/blob/develop/best-practices.md
+
+
+## Test deploy
+https://github.com/IBM/cp4s-car-connectors/blob/develop/deployment/README.md
+
+
+## Publish
+
+Use the guide from [PUBLISH.md](./PUBLISH.md)
+
+
+%package help
+Summary: Development documents and examples for car-connector-framework
+Provides: python3-car-connector-framework-doc
+%description help
+# Car Connector Framework
+
+## Develop a connector
+
+Use connectors/reference_connector from [cp4s-car-connectors](https://github.com/IBM/cp4s-car-connectors) project as an example of how this framework is to be used.
+
+A CAR connector project will need to extend the framework classes: [BaseFullImport](https://github.com/IBM/cp4s-car-connector-framework/blob/develop/car_framework/full_import.py), [BaseIncrementalImport](https://github.com/IBM/cp4s-car-connector-framework/blob/develop/car_framework/inc_import.py), [BaseApp](https://github.com/IBM/cp4s-car-connector-framework/blob/develop/car_framework/app.py), [BaseAssetServer](https://github.com/IBM/cp4s-car-connector-framework/blob/develop/car_framework/server_access.py) and [BaseDataHandler](https://github.com/IBM/cp4s-car-connector-framework/blob/develop/car_framework/data_handler.py), and implement abstract methods of those classes.
+
+Things to note:
+
+* All communications with CAR digestion microservice are managed by the framework. Connector code normally does not need to access CAR digestion microservice directly
+
+* The framework is trying to make some intelligent choice for whether to run full vs incremental import. Normally, for performance reasons we would always prefer to run incremental import if one is possible. Some examples of when it is not possible are:
+ * The model states for generating delta are not available
+ * The model on the CAR side is empty
+ * The previous incremental import session failed and a new incremental import session can potentially create a gap in the model data
+
+* Because of the above the the connector code should properly use (throw/raise) one of three following exceptions when detecting failures:
+ * [RecoverableFailure](https://github.com/IBM/cp4s-car-connector-framework/blob/99554ac2cfa0732af090c46be9e356beb015934e/car_framework/util.py#L77) is to be used when the failure cannot potentially create a data gap and we can attempt an incremental import session when running next time. One example of a recoverable failure is a connectivity problem.
+ * [UnrecoverableFailure](https://github.com/IBM/cp4s-car-connector-framework/blob/99554ac2cfa0732af090c46be9e356beb015934e/car_framework/util.py#L81) is to be used when the failure can potentially create a data gap and we must run full import session to recover.
+ * [DatasourceFailure](https://github.com/IBM/cp4s-car-connector-framework/blob/99554ac2cfa0732af090c46be9e356beb015934e/car_framework/util.py#L92) is to be used when there is datasource API issues.
+
+RecoverableFailure and UnrecoverableFailure are mostly handled in the framework. DatasourceFailure is to be used in the connector code with [a corresponding error code](https://github.com/IBM/cp4s-car-connector-framework/blob/99554ac2cfa0732af090c46be9e356beb015934e/car_framework/util.py#L35). Example: `return ErrorCode.TRANSMISSION_AUTH_CREDENTIALS.value`.
+If none of the Failure classes is used, the framework will raise a [GENERAL_APPLICATION_FAILURE](https://github.com/IBM/cp4s-car-connector-framework/blob/99554ac2cfa0732af090c46be9e356beb015934e/car_framework/app.py#L106) (Unknown error) and print the error stack.
+
+For more information use guides
+* https://github.com/IBM/cp4s-car-connectors/blob/develop/README.md
+* https://github.com/IBM/cp4s-car-connectors/blob/develop/guide-build-connectors.md
+* https://github.com/IBM/cp4s-car-connectors/tree/develop/connectors/reference_connector
+* https://github.com/IBM/cp4s-car-connectors/blob/develop/best-practices.md
+
+
+## Test deploy
+https://github.com/IBM/cp4s-car-connectors/blob/develop/deployment/README.md
+
+
+## Publish
+
+Use the guide from [PUBLISH.md](./PUBLISH.md)
+
+
+%prep
+%autosetup -n car-connector-framework-3.0.2
+
+%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-car-connector-framework -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 3.0.2-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..022c987
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+e82d48d2664525aa8281466340c471c0 car-connector-framework-3.0.2.tar.gz