Apyfal.aws.AWSHost: Fix error with non existing EBS section in block devices.
DeleteOnTerminationon all instance block devices by default. This behavior can be disabled and reset to AWS default using the
Apyfal.host.Hostnow checks instance boot using port 22 instead of 80.
Apyfal.host.Hostcan now be used to start a custom instance instead of an predefined accelerator instance more easily.
Backward incompatible changes:
info_dictargument behavior was changed. Previously, using it changed the returned result of methods. To avoid this,
info_dictnow waits a
dictto populate with extra information. This argument is mainly intended to get debug or profiling information.
# This return only the processing result my_accel.process(dst='data.dat') # This return a tuple containing the processing result and the # information dict. my_accel.process(dst='data.dat', info_dict=True)
# This return only the processing result my_accel.process(dst='data.dat') # This still return only the processing result. # Information are now stored in the "info" dict. info = dict() my_accel.process(dst='data.dat', info_dict=info)
Accelerator.process_mapmethods is replaced by
info_listand wait a
listto populate instead of a
stopbehavior depending if run by user or by garbage collector or
- Fix broken input and output data on some accelerators when using cloud storage.
AcceleratorPoolExecutornow waits completion of all asynchronous tasks (From
process_map) before exiting using
stop. This avoid the accelerator or the host to be stopped before the end of tasks if
withstatement exited or Accelerator garbage collected when tasks are still running.
- Improve user public IP handling.
- Apyfal now fully support HTTPS between client and host.
- Apyfal can generate self signed certificates for generated hosts, theses certificates are verified by the client.
- Add of
process_submitmethods to the Accelerator class to performs
processcall asynchronously and improve performance on batch of processing tasks.
- Add the
AcceleratorPoolExecutorthat allow to perform processing tasks asynchronously over a pool of multiple accelerators hosts.
- Apyfal CLI:
createis now optional if can be called without any arguments, This is mainly intended to use local accelerator directly on host.
- It is now possible to use private IP instead of public IP as accelerator
default URL. See
- Host instance have a new
boto3as default dependency. Actually AWS is the only provider ready for production and is the most commonly used. Other providers are available using extra setup options.
- Change logging levels to show only minimal information with INFO, implementation and step detail is still available using the DEBUG level. This allow to show more relevant information when using Apyfal with CLI or running Accelerators examples.
- Minimum packages versions are set in setup based on packages changelog or date.
- Hosts instantiation now support passing custom arguments to their libraries. See each specific host documentation for more information.
REST client improvements
PycURLto upload big files. This simplify the Apyfal installation by using a far more easier to install library.
requestsinstead of Swagger codegen generated client. This simplify the REST client, removes some dependencies remove extra build step.
- Improves exceptions handling to add more detailed information from server and handle HTTP errors correctly.
- Fix bad text formatting in some exception messages.
- Server side logging was improved.
- Apyfal CLI: Fixed parsing of numeric parameters.
- Apyfal CLI: Fixed result dict handling.
- Fix accelerator application stopped if client
withexited or garbage collected.
- Fix instance still running warning shown twice.
stop_modeoverridden by default accelerator value.
- Fix case handling in configuration file.
- The host server now checks the Apyfal version used as client and raise a proper exception if not compatible.
- The host server was updated to be compatible with Apyfal starting from 1.0.0 instead of only 1.1.0.
- Apyfal now configures FPGA properly if run locally on a host no generated by Apyfal client (Ex: Host instance generated manually using accelerator image)
- Apyfal now runs the local accelerator if available even if a
host_typeis provided in configuration file.
- Fix Apyfal setup fail due to missing
ipgetterpackage on PyPI (This package was removed by this author without notice).
optionalextra setup option is deprecated with the replacement of
processmethod are replaced by
startmethod is replaced by
src. This name change allow us to provides a better input and output data support in next version (No only files). The backward compatibility is kept for old arguments names but will be removed a future version.
- Add support for cloud storage and more in
- Add Apyfal CLI, this allow to use Apyfal from outside Python.
- Apyfal can now be used locally on host (as library or CLI).
apyfal.iter_acceleratorfunction to iterates over all existing accelerators for a configuration.
- Add Alibaba Cloud support.
- It is now possible to pass a SSL/TLS certificates to host instance to enable HTTPS.
- Move OpenStack library from
python-neutronclient. This adds more precision over the OpenStach Nova host control and reduces the overall number of required dependencies.
- Accelerator, Host and clients now have a proper string representation.
- Speed up cloud host configuration.
- Host now support the
init_scriptargument to pass a custom bash script on instance startup, and the
init_configargument to pass a configuration file.
- Apyfal now accepts path-like objects as path/URL arguments.
- Add subsection support in configuration file (ex:
- Configuration file can be loaded from
- Configuration class is now a
- Configuration file is now open with UTF-8 encoding.
host_name_prefixin host section, This allow to add a custom prefix at the start of the created host name.
- Importing Apyfal from an unsupported Python version now raises
stop_modeis now correctly loaded from configuration file.
- Fix available regions list in exception message when trying to use a non existing region.
- Apyfal don’t wait until end of timeout if instance is in
errorstatus during instance provisioning.
- Instance now terminates correctly if both
stop_modewith OpenStack now pauses instance instead of terminates it.
- Exception on AWS IAM policy first creation.
startis not still mandatory when connecting to an already existing instance.
exit_host_on_signalhost parameter was removed due to side effects. Use accelerator with the
withstatement to automatically terminate instance after run.
Created the new apyfal library based on legacy acceleratorAPI.
Apyfal keeps all the features from acceleratorAPI but was largely improved. Apyfal is not backward compatible with acceleratorAPI (Read the documentation to see how update code). Future version of Apyfal will be compatible with this one.
Features of the 1.0.0 version:
- Accelerator start, process and stop in cloud environment.
- Accelerator configuration with arguments and/or configuration file.
- Support for generic OpenStack host.
- Support for AWS and OVH public host.
- Complete unittest for the core or the package.
- Full Sphinx documentation.