Prep 2.2.17 release (#4642)
This commit is contained in:
parent
39fff64493
commit
9258316e16
@ -1,7 +0,0 @@
|
|||||||
[bumpversion]
|
|
||||||
current_version = 1.3.4
|
|
||||||
|
|
||||||
[bumpversion:file:setup.py]
|
|
||||||
|
|
||||||
[bumpversion:file:moto/__init__.py]
|
|
||||||
|
|
8
.github/workflows/build.yml
vendored
8
.github/workflows/build.yml
vendored
@ -170,8 +170,8 @@ jobs:
|
|||||||
- name: Start MotoServer
|
- name: Start MotoServer
|
||||||
run: |
|
run: |
|
||||||
python setup.py sdist
|
python setup.py sdist
|
||||||
docker run --rm -t --name motoserver -e TEST_SERVER_MODE=true -e AWS_SECRET_ACCESS_KEY=server_secret -e AWS_ACCESS_KEY_ID=server_key -v `pwd`:/moto -p 5000:5000 -v /var/run/docker.sock:/var/run/docker.sock python:3.7-buster /moto/travis_moto_server.sh &
|
docker run --rm -t --name motoserver -e TEST_SERVER_MODE=true -e AWS_SECRET_ACCESS_KEY=server_secret -e AWS_ACCESS_KEY_ID=server_key -v `pwd`:/moto -p 5000:5000 -v /var/run/docker.sock:/var/run/docker.sock python:3.7-buster /moto/scripts/ci_moto_server.sh &
|
||||||
python wait_for.py
|
python scripts/ci_wait_for_server.py
|
||||||
- name: Get pip cache dir
|
- name: Get pip cache dir
|
||||||
id: pip-cache
|
id: pip-cache
|
||||||
run: |
|
run: |
|
||||||
@ -290,8 +290,8 @@ jobs:
|
|||||||
- name: Start MotoServer
|
- name: Start MotoServer
|
||||||
run: |
|
run: |
|
||||||
python setup.py sdist
|
python setup.py sdist
|
||||||
docker run --rm -t --name motoserver -e TEST_SERVER_MODE=true -e MOTO_PORT=4566 -e AWS_SECRET_ACCESS_KEY=server_secret -e AWS_ACCESS_KEY_ID=server_key -v `pwd`:/moto -p 4566:4566 -v /var/run/docker.sock:/var/run/docker.sock python:3.7-buster /moto/travis_moto_server.sh &
|
docker run --rm -t --name motoserver -e TEST_SERVER_MODE=true -e MOTO_PORT=4566 -e AWS_SECRET_ACCESS_KEY=server_secret -e AWS_ACCESS_KEY_ID=server_key -v `pwd`:/moto -p 4566:4566 -v /var/run/docker.sock:/var/run/docker.sock python:3.7-buster /moto/scripts/ci_moto_server.sh &
|
||||||
MOTO_PORT=4566 python wait_for.py
|
MOTO_PORT=4566 python scripts/ci_wait_for_server.py
|
||||||
# Poor man's parallelization
|
# Poor man's parallelization
|
||||||
# Running them sequentially takes to much time
|
# Running them sequentially takes to much time
|
||||||
# And using the build in parallel-argument does not help with reducing runtime
|
# And using the build in parallel-argument does not help with reducing runtime
|
||||||
|
38
CHANGELOG.md
38
CHANGELOG.md
@ -1,6 +1,44 @@
|
|||||||
Moto Changelog
|
Moto Changelog
|
||||||
===================
|
===================
|
||||||
|
|
||||||
|
2.2.17
|
||||||
|
------
|
||||||
|
New Services:
|
||||||
|
* CloudFront:
|
||||||
|
* create_distribution()
|
||||||
|
* delete_distribution()
|
||||||
|
* get_distribution()
|
||||||
|
* list_distributions()
|
||||||
|
|
||||||
|
New Methods:
|
||||||
|
* Autoscaling:
|
||||||
|
* describe_tags()
|
||||||
|
* CloudFormation:
|
||||||
|
* get_stack_policy()
|
||||||
|
* set_stack_policy()
|
||||||
|
* DynamoDB:
|
||||||
|
* restore_table_to_point_in_time()
|
||||||
|
* Glue:
|
||||||
|
* delete_database()
|
||||||
|
* list_jobs()
|
||||||
|
* IAM:
|
||||||
|
* update_group()
|
||||||
|
* Route53 Resolver:
|
||||||
|
* associate_resolver_rule()
|
||||||
|
* create_resolver_rule()
|
||||||
|
* delete_resolver_rule()
|
||||||
|
* disassociate_resolver_rule()
|
||||||
|
* get_resolver_rule()
|
||||||
|
* get_resolver_rule_association()
|
||||||
|
* list_resolver_rules()
|
||||||
|
* list_resolver_rule_associations()
|
||||||
|
|
||||||
|
Miscellaneous:
|
||||||
|
* Batch: register_job_definition() now supports the timeout-parameter
|
||||||
|
* Batch: submit_job() now supports the timeout-parameter
|
||||||
|
* EC2: describe_network_interfaces() now supports the `attachment.instance-id` filter
|
||||||
|
|
||||||
|
|
||||||
2.2.16
|
2.2.16
|
||||||
------
|
------
|
||||||
New Services:
|
New Services:
|
||||||
|
@ -204,7 +204,7 @@
|
|||||||
|
|
||||||
## autoscaling
|
## autoscaling
|
||||||
<details>
|
<details>
|
||||||
<summary>45% implemented</summary>
|
<summary>47% implemented</summary>
|
||||||
|
|
||||||
- [X] attach_instances
|
- [X] attach_instances
|
||||||
- [X] attach_load_balancer_target_groups
|
- [X] attach_load_balancer_target_groups
|
||||||
@ -241,7 +241,7 @@
|
|||||||
- [ ] describe_scaling_activities
|
- [ ] describe_scaling_activities
|
||||||
- [ ] describe_scaling_process_types
|
- [ ] describe_scaling_process_types
|
||||||
- [ ] describe_scheduled_actions
|
- [ ] describe_scheduled_actions
|
||||||
- [ ] describe_tags
|
- [X] describe_tags
|
||||||
- [ ] describe_termination_policy_types
|
- [ ] describe_termination_policy_types
|
||||||
- [ ] describe_warm_pool
|
- [ ] describe_warm_pool
|
||||||
- [X] detach_instances
|
- [X] detach_instances
|
||||||
@ -329,7 +329,7 @@
|
|||||||
|
|
||||||
## cloudformation
|
## cloudformation
|
||||||
<details>
|
<details>
|
||||||
<summary>27% implemented</summary>
|
<summary>30% implemented</summary>
|
||||||
|
|
||||||
- [ ] activate_type
|
- [ ] activate_type
|
||||||
- [ ] batch_describe_type_configurations
|
- [ ] batch_describe_type_configurations
|
||||||
@ -364,7 +364,7 @@
|
|||||||
- [ ] detect_stack_set_drift
|
- [ ] detect_stack_set_drift
|
||||||
- [ ] estimate_template_cost
|
- [ ] estimate_template_cost
|
||||||
- [X] execute_change_set
|
- [X] execute_change_set
|
||||||
- [ ] get_stack_policy
|
- [X] get_stack_policy
|
||||||
- [ ] get_template
|
- [ ] get_template
|
||||||
- [ ] get_template_summary
|
- [ ] get_template_summary
|
||||||
- [ ] import_stacks_to_stack_set
|
- [ ] import_stacks_to_stack_set
|
||||||
@ -385,7 +385,7 @@
|
|||||||
- [ ] register_publisher
|
- [ ] register_publisher
|
||||||
- [ ] register_type
|
- [ ] register_type
|
||||||
- [ ] rollback_stack
|
- [ ] rollback_stack
|
||||||
- [ ] set_stack_policy
|
- [X] set_stack_policy
|
||||||
- [ ] set_type_configuration
|
- [ ] set_type_configuration
|
||||||
- [ ] set_type_default_version
|
- [ ] set_type_default_version
|
||||||
- [ ] signal_resource
|
- [ ] signal_resource
|
||||||
@ -1119,7 +1119,7 @@
|
|||||||
|
|
||||||
## dynamodb
|
## dynamodb
|
||||||
<details>
|
<details>
|
||||||
<summary>56% implemented</summary>
|
<summary>58% implemented</summary>
|
||||||
|
|
||||||
- [ ] batch_execute_statement
|
- [ ] batch_execute_statement
|
||||||
- [X] batch_get_item
|
- [X] batch_get_item
|
||||||
@ -1157,7 +1157,7 @@
|
|||||||
- [X] put_item
|
- [X] put_item
|
||||||
- [X] query
|
- [X] query
|
||||||
- [X] restore_table_from_backup
|
- [X] restore_table_from_backup
|
||||||
- [ ] restore_table_to_point_in_time
|
- [X] restore_table_to_point_in_time
|
||||||
- [X] scan
|
- [X] scan
|
||||||
- [X] tag_resource
|
- [X] tag_resource
|
||||||
- [X] transact_get_items
|
- [X] transact_get_items
|
||||||
@ -1579,6 +1579,7 @@
|
|||||||
- [ ] modify_launch_template
|
- [ ] modify_launch_template
|
||||||
- [X] modify_managed_prefix_list
|
- [X] modify_managed_prefix_list
|
||||||
- [X] modify_network_interface_attribute
|
- [X] modify_network_interface_attribute
|
||||||
|
- [ ] modify_private_dns_name_options
|
||||||
- [ ] modify_reserved_instances
|
- [ ] modify_reserved_instances
|
||||||
- [ ] modify_security_group_rules
|
- [ ] modify_security_group_rules
|
||||||
- [ ] modify_snapshot_attribute
|
- [ ] modify_snapshot_attribute
|
||||||
@ -2149,11 +2150,14 @@
|
|||||||
|
|
||||||
## forecast
|
## forecast
|
||||||
<details>
|
<details>
|
||||||
<summary>14% implemented</summary>
|
<summary>11% implemented</summary>
|
||||||
|
|
||||||
|
- [ ] create_auto_predictor
|
||||||
- [ ] create_dataset
|
- [ ] create_dataset
|
||||||
- [X] create_dataset_group
|
- [X] create_dataset_group
|
||||||
- [ ] create_dataset_import_job
|
- [ ] create_dataset_import_job
|
||||||
|
- [ ] create_explainability
|
||||||
|
- [ ] create_explainability_export
|
||||||
- [ ] create_forecast
|
- [ ] create_forecast
|
||||||
- [ ] create_forecast_export_job
|
- [ ] create_forecast_export_job
|
||||||
- [ ] create_predictor
|
- [ ] create_predictor
|
||||||
@ -2161,14 +2165,19 @@
|
|||||||
- [ ] delete_dataset
|
- [ ] delete_dataset
|
||||||
- [X] delete_dataset_group
|
- [X] delete_dataset_group
|
||||||
- [ ] delete_dataset_import_job
|
- [ ] delete_dataset_import_job
|
||||||
|
- [ ] delete_explainability
|
||||||
|
- [ ] delete_explainability_export
|
||||||
- [ ] delete_forecast
|
- [ ] delete_forecast
|
||||||
- [ ] delete_forecast_export_job
|
- [ ] delete_forecast_export_job
|
||||||
- [ ] delete_predictor
|
- [ ] delete_predictor
|
||||||
- [ ] delete_predictor_backtest_export_job
|
- [ ] delete_predictor_backtest_export_job
|
||||||
- [ ] delete_resource_tree
|
- [ ] delete_resource_tree
|
||||||
|
- [ ] describe_auto_predictor
|
||||||
- [ ] describe_dataset
|
- [ ] describe_dataset
|
||||||
- [X] describe_dataset_group
|
- [X] describe_dataset_group
|
||||||
- [ ] describe_dataset_import_job
|
- [ ] describe_dataset_import_job
|
||||||
|
- [ ] describe_explainability
|
||||||
|
- [ ] describe_explainability_export
|
||||||
- [ ] describe_forecast
|
- [ ] describe_forecast
|
||||||
- [ ] describe_forecast_export_job
|
- [ ] describe_forecast_export_job
|
||||||
- [ ] describe_predictor
|
- [ ] describe_predictor
|
||||||
@ -2177,6 +2186,8 @@
|
|||||||
- [X] list_dataset_groups
|
- [X] list_dataset_groups
|
||||||
- [ ] list_dataset_import_jobs
|
- [ ] list_dataset_import_jobs
|
||||||
- [ ] list_datasets
|
- [ ] list_datasets
|
||||||
|
- [ ] list_explainabilities
|
||||||
|
- [ ] list_explainability_exports
|
||||||
- [ ] list_forecast_export_jobs
|
- [ ] list_forecast_export_jobs
|
||||||
- [ ] list_forecasts
|
- [ ] list_forecasts
|
||||||
- [ ] list_predictor_backtest_export_jobs
|
- [ ] list_predictor_backtest_export_jobs
|
||||||
@ -2229,7 +2240,7 @@
|
|||||||
|
|
||||||
## glue
|
## glue
|
||||||
<details>
|
<details>
|
||||||
<summary>8% implemented</summary>
|
<summary>9% implemented</summary>
|
||||||
|
|
||||||
- [ ] batch_create_partition
|
- [ ] batch_create_partition
|
||||||
- [ ] batch_delete_connection
|
- [ ] batch_delete_connection
|
||||||
@ -2271,7 +2282,7 @@
|
|||||||
- [ ] delete_column_statistics_for_table
|
- [ ] delete_column_statistics_for_table
|
||||||
- [ ] delete_connection
|
- [ ] delete_connection
|
||||||
- [X] delete_crawler
|
- [X] delete_crawler
|
||||||
- [ ] delete_database
|
- [X] delete_database
|
||||||
- [ ] delete_dev_endpoint
|
- [ ] delete_dev_endpoint
|
||||||
- [ ] delete_job
|
- [ ] delete_job
|
||||||
- [ ] delete_ml_transform
|
- [ ] delete_ml_transform
|
||||||
@ -2346,7 +2357,7 @@
|
|||||||
- [ ] list_blueprints
|
- [ ] list_blueprints
|
||||||
- [ ] list_crawlers
|
- [ ] list_crawlers
|
||||||
- [ ] list_dev_endpoints
|
- [ ] list_dev_endpoints
|
||||||
- [ ] list_jobs
|
- [X] list_jobs
|
||||||
- [ ] list_ml_transforms
|
- [ ] list_ml_transforms
|
||||||
- [ ] list_registries
|
- [ ] list_registries
|
||||||
- [ ] list_schema_versions
|
- [ ] list_schema_versions
|
||||||
@ -2547,7 +2558,7 @@
|
|||||||
- [X] update_access_key
|
- [X] update_access_key
|
||||||
- [X] update_account_password_policy
|
- [X] update_account_password_policy
|
||||||
- [ ] update_assume_role_policy
|
- [ ] update_assume_role_policy
|
||||||
- [ ] update_group
|
- [X] update_group
|
||||||
- [X] update_login_profile
|
- [X] update_login_profile
|
||||||
- [ ] update_open_id_connect_provider_thumbprint
|
- [ ] update_open_id_connect_provider_thumbprint
|
||||||
- [X] update_role
|
- [X] update_role
|
||||||
@ -2565,7 +2576,7 @@
|
|||||||
|
|
||||||
## iot
|
## iot
|
||||||
<details>
|
<details>
|
||||||
<summary>28% implemented</summary>
|
<summary>27% implemented</summary>
|
||||||
|
|
||||||
- [ ] accept_certificate_transfer
|
- [ ] accept_certificate_transfer
|
||||||
- [ ] add_thing_to_billing_group
|
- [ ] add_thing_to_billing_group
|
||||||
@ -2664,6 +2675,7 @@
|
|||||||
- [X] describe_job
|
- [X] describe_job
|
||||||
- [X] describe_job_execution
|
- [X] describe_job_execution
|
||||||
- [ ] describe_job_template
|
- [ ] describe_job_template
|
||||||
|
- [ ] describe_managed_job_template
|
||||||
- [ ] describe_mitigation_action
|
- [ ] describe_mitigation_action
|
||||||
- [ ] describe_provisioning_template
|
- [ ] describe_provisioning_template
|
||||||
- [ ] describe_provisioning_template_version
|
- [ ] describe_provisioning_template_version
|
||||||
@ -2720,6 +2732,7 @@
|
|||||||
- [X] list_job_executions_for_thing
|
- [X] list_job_executions_for_thing
|
||||||
- [ ] list_job_templates
|
- [ ] list_job_templates
|
||||||
- [X] list_jobs
|
- [X] list_jobs
|
||||||
|
- [ ] list_managed_job_templates
|
||||||
- [ ] list_mitigation_actions
|
- [ ] list_mitigation_actions
|
||||||
- [ ] list_ota_updates
|
- [ ] list_ota_updates
|
||||||
- [ ] list_outgoing_certificates
|
- [ ] list_outgoing_certificates
|
||||||
@ -3544,6 +3557,7 @@
|
|||||||
- [ ] promote_read_replica
|
- [ ] promote_read_replica
|
||||||
- [ ] promote_read_replica_db_cluster
|
- [ ] promote_read_replica_db_cluster
|
||||||
- [ ] purchase_reserved_db_instances_offering
|
- [ ] purchase_reserved_db_instances_offering
|
||||||
|
- [ ] reboot_db_cluster
|
||||||
- [X] reboot_db_instance
|
- [X] reboot_db_instance
|
||||||
- [ ] register_db_proxy_targets
|
- [ ] register_db_proxy_targets
|
||||||
- [ ] remove_from_global_cluster
|
- [ ] remove_from_global_cluster
|
||||||
@ -3573,7 +3587,7 @@
|
|||||||
|
|
||||||
## redshift
|
## redshift
|
||||||
<details>
|
<details>
|
||||||
<summary>24% implemented</summary>
|
<summary>23% implemented</summary>
|
||||||
|
|
||||||
- [ ] accept_reserved_node_exchange
|
- [ ] accept_reserved_node_exchange
|
||||||
- [ ] add_partner
|
- [ ] add_partner
|
||||||
@ -3644,6 +3658,7 @@
|
|||||||
- [ ] describe_node_configuration_options
|
- [ ] describe_node_configuration_options
|
||||||
- [ ] describe_orderable_cluster_options
|
- [ ] describe_orderable_cluster_options
|
||||||
- [ ] describe_partners
|
- [ ] describe_partners
|
||||||
|
- [ ] describe_reserved_node_exchange_status
|
||||||
- [ ] describe_reserved_node_offerings
|
- [ ] describe_reserved_node_offerings
|
||||||
- [ ] describe_reserved_nodes
|
- [ ] describe_reserved_nodes
|
||||||
- [ ] describe_resize
|
- [ ] describe_resize
|
||||||
@ -3660,6 +3675,7 @@
|
|||||||
- [ ] enable_logging
|
- [ ] enable_logging
|
||||||
- [X] enable_snapshot_copy
|
- [X] enable_snapshot_copy
|
||||||
- [X] get_cluster_credentials
|
- [X] get_cluster_credentials
|
||||||
|
- [ ] get_reserved_node_exchange_configuration_options
|
||||||
- [ ] get_reserved_node_exchange_offerings
|
- [ ] get_reserved_node_exchange_offerings
|
||||||
- [ ] modify_aqua_configuration
|
- [ ] modify_aqua_configuration
|
||||||
- [ ] modify_authentication_profile
|
- [ ] modify_authentication_profile
|
||||||
@ -3801,7 +3817,7 @@
|
|||||||
|
|
||||||
## route53resolver
|
## route53resolver
|
||||||
<details>
|
<details>
|
||||||
<summary>27% implemented</summary>
|
<summary>26% implemented</summary>
|
||||||
|
|
||||||
- [ ] associate_firewall_rule_group
|
- [ ] associate_firewall_rule_group
|
||||||
- [ ] associate_resolver_endpoint_ip_address
|
- [ ] associate_resolver_endpoint_ip_address
|
||||||
@ -4911,6 +4927,7 @@
|
|||||||
- meteringmarketplace
|
- meteringmarketplace
|
||||||
- mgh
|
- mgh
|
||||||
- mgn
|
- mgn
|
||||||
|
- migration-hub-refactor-spaces
|
||||||
- migrationhub-config
|
- migrationhub-config
|
||||||
- migrationhubstrategy
|
- migrationhubstrategy
|
||||||
- mobile
|
- mobile
|
||||||
|
@ -60,7 +60,12 @@ autoscaling
|
|||||||
- [ ] describe_scaling_activities
|
- [ ] describe_scaling_activities
|
||||||
- [ ] describe_scaling_process_types
|
- [ ] describe_scaling_process_types
|
||||||
- [ ] describe_scheduled_actions
|
- [ ] describe_scheduled_actions
|
||||||
- [ ] describe_tags
|
- [X] describe_tags
|
||||||
|
|
||||||
|
Pagination is not yet implemented.
|
||||||
|
Only the `auto-scaling-group` and `propagate-at-launch` filters are implemented.
|
||||||
|
|
||||||
|
|
||||||
- [ ] describe_termination_policy_types
|
- [ ] describe_termination_policy_types
|
||||||
- [ ] describe_warm_pool
|
- [ ] describe_warm_pool
|
||||||
- [X] detach_instances
|
- [X] detach_instances
|
||||||
|
@ -58,7 +58,7 @@ cloudformation
|
|||||||
- [ ] detect_stack_set_drift
|
- [ ] detect_stack_set_drift
|
||||||
- [ ] estimate_template_cost
|
- [ ] estimate_template_cost
|
||||||
- [X] execute_change_set
|
- [X] execute_change_set
|
||||||
- [ ] get_stack_policy
|
- [X] get_stack_policy
|
||||||
- [ ] get_template
|
- [ ] get_template
|
||||||
- [ ] get_template_summary
|
- [ ] get_template_summary
|
||||||
- [ ] import_stacks_to_stack_set
|
- [ ] import_stacks_to_stack_set
|
||||||
@ -79,7 +79,11 @@ cloudformation
|
|||||||
- [ ] register_publisher
|
- [ ] register_publisher
|
||||||
- [ ] register_type
|
- [ ] register_type
|
||||||
- [ ] rollback_stack
|
- [ ] rollback_stack
|
||||||
- [ ] set_stack_policy
|
- [X] set_stack_policy
|
||||||
|
|
||||||
|
Note that Moto does no validation/parsing/enforcement of this policy - we simply persist it.
|
||||||
|
|
||||||
|
|
||||||
- [ ] set_type_configuration
|
- [ ] set_type_configuration
|
||||||
- [ ] set_type_default_version
|
- [ ] set_type_default_version
|
||||||
- [ ] signal_resource
|
- [ ] signal_resource
|
||||||
|
@ -62,6 +62,11 @@ dynamodb
|
|||||||
- [X] query
|
- [X] query
|
||||||
- [X] restore_table_from_backup
|
- [X] restore_table_from_backup
|
||||||
- [X] restore_table_to_point_in_time
|
- [X] restore_table_to_point_in_time
|
||||||
|
|
||||||
|
Currently this only accepts the source and target table elements, and will
|
||||||
|
copy all items from the source without respect to other arguments.
|
||||||
|
|
||||||
|
|
||||||
- [X] scan
|
- [X] scan
|
||||||
- [X] tag_resource
|
- [X] tag_resource
|
||||||
- [X] transact_get_items
|
- [X] transact_get_items
|
||||||
|
@ -428,6 +428,7 @@ ec2
|
|||||||
- [ ] modify_launch_template
|
- [ ] modify_launch_template
|
||||||
- [X] modify_managed_prefix_list
|
- [X] modify_managed_prefix_list
|
||||||
- [X] modify_network_interface_attribute
|
- [X] modify_network_interface_attribute
|
||||||
|
- [ ] modify_private_dns_name_options
|
||||||
- [ ] modify_reserved_instances
|
- [ ] modify_reserved_instances
|
||||||
- [ ] modify_security_group_rules
|
- [ ] modify_security_group_rules
|
||||||
- [ ] modify_snapshot_attribute
|
- [ ] modify_snapshot_attribute
|
||||||
|
@ -25,9 +25,12 @@ forecast
|
|||||||
|
|
||||||
|start-h3| Implemented features for this service |end-h3|
|
|start-h3| Implemented features for this service |end-h3|
|
||||||
|
|
||||||
|
- [ ] create_auto_predictor
|
||||||
- [ ] create_dataset
|
- [ ] create_dataset
|
||||||
- [X] create_dataset_group
|
- [X] create_dataset_group
|
||||||
- [ ] create_dataset_import_job
|
- [ ] create_dataset_import_job
|
||||||
|
- [ ] create_explainability
|
||||||
|
- [ ] create_explainability_export
|
||||||
- [ ] create_forecast
|
- [ ] create_forecast
|
||||||
- [ ] create_forecast_export_job
|
- [ ] create_forecast_export_job
|
||||||
- [ ] create_predictor
|
- [ ] create_predictor
|
||||||
@ -35,14 +38,19 @@ forecast
|
|||||||
- [ ] delete_dataset
|
- [ ] delete_dataset
|
||||||
- [X] delete_dataset_group
|
- [X] delete_dataset_group
|
||||||
- [ ] delete_dataset_import_job
|
- [ ] delete_dataset_import_job
|
||||||
|
- [ ] delete_explainability
|
||||||
|
- [ ] delete_explainability_export
|
||||||
- [ ] delete_forecast
|
- [ ] delete_forecast
|
||||||
- [ ] delete_forecast_export_job
|
- [ ] delete_forecast_export_job
|
||||||
- [ ] delete_predictor
|
- [ ] delete_predictor
|
||||||
- [ ] delete_predictor_backtest_export_job
|
- [ ] delete_predictor_backtest_export_job
|
||||||
- [ ] delete_resource_tree
|
- [ ] delete_resource_tree
|
||||||
|
- [ ] describe_auto_predictor
|
||||||
- [ ] describe_dataset
|
- [ ] describe_dataset
|
||||||
- [X] describe_dataset_group
|
- [X] describe_dataset_group
|
||||||
- [ ] describe_dataset_import_job
|
- [ ] describe_dataset_import_job
|
||||||
|
- [ ] describe_explainability
|
||||||
|
- [ ] describe_explainability_export
|
||||||
- [ ] describe_forecast
|
- [ ] describe_forecast
|
||||||
- [ ] describe_forecast_export_job
|
- [ ] describe_forecast_export_job
|
||||||
- [ ] describe_predictor
|
- [ ] describe_predictor
|
||||||
@ -51,6 +59,8 @@ forecast
|
|||||||
- [X] list_dataset_groups
|
- [X] list_dataset_groups
|
||||||
- [ ] list_dataset_import_jobs
|
- [ ] list_dataset_import_jobs
|
||||||
- [ ] list_datasets
|
- [ ] list_datasets
|
||||||
|
- [ ] list_explainabilities
|
||||||
|
- [ ] list_explainability_exports
|
||||||
- [ ] list_forecast_export_jobs
|
- [ ] list_forecast_export_jobs
|
||||||
- [ ] list_forecasts
|
- [ ] list_forecasts
|
||||||
- [ ] list_predictor_backtest_export_jobs
|
- [ ] list_predictor_backtest_export_jobs
|
||||||
|
@ -65,7 +65,7 @@ glue
|
|||||||
- [ ] delete_column_statistics_for_table
|
- [ ] delete_column_statistics_for_table
|
||||||
- [ ] delete_connection
|
- [ ] delete_connection
|
||||||
- [X] delete_crawler
|
- [X] delete_crawler
|
||||||
- [ ] delete_database
|
- [X] delete_database
|
||||||
- [ ] delete_dev_endpoint
|
- [ ] delete_dev_endpoint
|
||||||
- [ ] delete_job
|
- [ ] delete_job
|
||||||
- [ ] delete_ml_transform
|
- [ ] delete_ml_transform
|
||||||
@ -140,7 +140,7 @@ glue
|
|||||||
- [ ] list_blueprints
|
- [ ] list_blueprints
|
||||||
- [ ] list_crawlers
|
- [ ] list_crawlers
|
||||||
- [ ] list_dev_endpoints
|
- [ ] list_dev_endpoints
|
||||||
- [ ] list_jobs
|
- [X] list_jobs
|
||||||
- [ ] list_ml_transforms
|
- [ ] list_ml_transforms
|
||||||
- [ ] list_registries
|
- [ ] list_registries
|
||||||
- [ ] list_schema_versions
|
- [ ] list_schema_versions
|
||||||
|
@ -173,7 +173,7 @@ iam
|
|||||||
- [X] update_access_key
|
- [X] update_access_key
|
||||||
- [X] update_account_password_policy
|
- [X] update_account_password_policy
|
||||||
- [ ] update_assume_role_policy
|
- [ ] update_assume_role_policy
|
||||||
- [ ] update_group
|
- [X] update_group
|
||||||
- [X] update_login_profile
|
- [X] update_login_profile
|
||||||
- [ ] update_open_id_connect_provider_thumbprint
|
- [ ] update_open_id_connect_provider_thumbprint
|
||||||
- [X] update_role
|
- [X] update_role
|
||||||
|
@ -122,6 +122,7 @@ iot
|
|||||||
- [X] describe_job
|
- [X] describe_job
|
||||||
- [X] describe_job_execution
|
- [X] describe_job_execution
|
||||||
- [ ] describe_job_template
|
- [ ] describe_job_template
|
||||||
|
- [ ] describe_managed_job_template
|
||||||
- [ ] describe_mitigation_action
|
- [ ] describe_mitigation_action
|
||||||
- [ ] describe_provisioning_template
|
- [ ] describe_provisioning_template
|
||||||
- [ ] describe_provisioning_template_version
|
- [ ] describe_provisioning_template_version
|
||||||
@ -178,6 +179,7 @@ iot
|
|||||||
- [X] list_job_executions_for_thing
|
- [X] list_job_executions_for_thing
|
||||||
- [ ] list_job_templates
|
- [ ] list_job_templates
|
||||||
- [X] list_jobs
|
- [X] list_jobs
|
||||||
|
- [ ] list_managed_job_templates
|
||||||
- [ ] list_mitigation_actions
|
- [ ] list_mitigation_actions
|
||||||
- [ ] list_ota_updates
|
- [ ] list_ota_updates
|
||||||
- [ ] list_outgoing_certificates
|
- [ ] list_outgoing_certificates
|
||||||
|
@ -140,6 +140,7 @@ rds
|
|||||||
- [ ] promote_read_replica
|
- [ ] promote_read_replica
|
||||||
- [ ] promote_read_replica_db_cluster
|
- [ ] promote_read_replica_db_cluster
|
||||||
- [ ] purchase_reserved_db_instances_offering
|
- [ ] purchase_reserved_db_instances_offering
|
||||||
|
- [ ] reboot_db_cluster
|
||||||
- [X] reboot_db_instance
|
- [X] reboot_db_instance
|
||||||
- [ ] register_db_proxy_targets
|
- [ ] register_db_proxy_targets
|
||||||
- [ ] remove_from_global_cluster
|
- [ ] remove_from_global_cluster
|
||||||
|
@ -94,6 +94,7 @@ redshift
|
|||||||
- [ ] describe_node_configuration_options
|
- [ ] describe_node_configuration_options
|
||||||
- [ ] describe_orderable_cluster_options
|
- [ ] describe_orderable_cluster_options
|
||||||
- [ ] describe_partners
|
- [ ] describe_partners
|
||||||
|
- [ ] describe_reserved_node_exchange_status
|
||||||
- [ ] describe_reserved_node_offerings
|
- [ ] describe_reserved_node_offerings
|
||||||
- [ ] describe_reserved_nodes
|
- [ ] describe_reserved_nodes
|
||||||
- [ ] describe_resize
|
- [ ] describe_resize
|
||||||
@ -110,6 +111,7 @@ redshift
|
|||||||
- [ ] enable_logging
|
- [ ] enable_logging
|
||||||
- [X] enable_snapshot_copy
|
- [X] enable_snapshot_copy
|
||||||
- [X] get_cluster_credentials
|
- [X] get_cluster_credentials
|
||||||
|
- [ ] get_reserved_node_exchange_configuration_options
|
||||||
- [ ] get_reserved_node_exchange_offerings
|
- [ ] get_reserved_node_exchange_offerings
|
||||||
- [ ] modify_aqua_configuration
|
- [ ] modify_aqua_configuration
|
||||||
- [ ] modify_authentication_profile
|
- [ ] modify_authentication_profile
|
||||||
|
@ -31,6 +31,8 @@ route53resolver
|
|||||||
- [ ] associate_resolver_endpoint_ip_address
|
- [ ] associate_resolver_endpoint_ip_address
|
||||||
- [ ] associate_resolver_query_log_config
|
- [ ] associate_resolver_query_log_config
|
||||||
- [X] associate_resolver_rule
|
- [X] associate_resolver_rule
|
||||||
|
Return description for a newly created resolver rule association.
|
||||||
|
|
||||||
- [ ] create_firewall_domain_list
|
- [ ] create_firewall_domain_list
|
||||||
- [ ] create_firewall_rule
|
- [ ] create_firewall_rule
|
||||||
- [ ] create_firewall_rule_group
|
- [ ] create_firewall_rule_group
|
||||||
@ -43,6 +45,8 @@ route53resolver
|
|||||||
|
|
||||||
- [ ] create_resolver_query_log_config
|
- [ ] create_resolver_query_log_config
|
||||||
- [X] create_resolver_rule
|
- [X] create_resolver_rule
|
||||||
|
Return description for a newly created resolver rule.
|
||||||
|
|
||||||
- [ ] delete_firewall_domain_list
|
- [ ] delete_firewall_domain_list
|
||||||
- [ ] delete_firewall_rule
|
- [ ] delete_firewall_rule
|
||||||
- [ ] delete_firewall_rule_group
|
- [ ] delete_firewall_rule_group
|
||||||
@ -51,10 +55,14 @@ route53resolver
|
|||||||
|
|
||||||
- [ ] delete_resolver_query_log_config
|
- [ ] delete_resolver_query_log_config
|
||||||
- [X] delete_resolver_rule
|
- [X] delete_resolver_rule
|
||||||
|
Delete a resolver rule.
|
||||||
|
|
||||||
- [ ] disassociate_firewall_rule_group
|
- [ ] disassociate_firewall_rule_group
|
||||||
- [ ] disassociate_resolver_endpoint_ip_address
|
- [ ] disassociate_resolver_endpoint_ip_address
|
||||||
- [ ] disassociate_resolver_query_log_config
|
- [ ] disassociate_resolver_query_log_config
|
||||||
- [X] disassociate_resolver_rule
|
- [X] disassociate_resolver_rule
|
||||||
|
Removes association between a resolver rule and a VPC.
|
||||||
|
|
||||||
- [ ] get_firewall_config
|
- [ ] get_firewall_config
|
||||||
- [ ] get_firewall_domain_list
|
- [ ] get_firewall_domain_list
|
||||||
- [ ] get_firewall_rule_group
|
- [ ] get_firewall_rule_group
|
||||||
@ -69,7 +77,11 @@ route53resolver
|
|||||||
- [ ] get_resolver_query_log_config_association
|
- [ ] get_resolver_query_log_config_association
|
||||||
- [ ] get_resolver_query_log_config_policy
|
- [ ] get_resolver_query_log_config_policy
|
||||||
- [X] get_resolver_rule
|
- [X] get_resolver_rule
|
||||||
|
Return info for specified resolver rule.
|
||||||
|
|
||||||
- [X] get_resolver_rule_association
|
- [X] get_resolver_rule_association
|
||||||
|
Return info for specified resolver rule association.
|
||||||
|
|
||||||
- [ ] get_resolver_rule_policy
|
- [ ] get_resolver_rule_policy
|
||||||
- [ ] import_firewall_domains
|
- [ ] import_firewall_domains
|
||||||
- [ ] list_firewall_configs
|
- [ ] list_firewall_configs
|
||||||
@ -89,7 +101,11 @@ route53resolver
|
|||||||
- [ ] list_resolver_query_log_config_associations
|
- [ ] list_resolver_query_log_config_associations
|
||||||
- [ ] list_resolver_query_log_configs
|
- [ ] list_resolver_query_log_configs
|
||||||
- [X] list_resolver_rule_associations
|
- [X] list_resolver_rule_associations
|
||||||
|
List all resolver rule associations, using filters if specified.
|
||||||
|
|
||||||
- [X] list_resolver_rules
|
- [X] list_resolver_rules
|
||||||
|
List all resolver rules, using filters if specified.
|
||||||
|
|
||||||
- [X] list_tags_for_resource
|
- [X] list_tags_for_resource
|
||||||
List all tags for the given resource.
|
List all tags for the given resource.
|
||||||
|
|
||||||
|
@ -1730,12 +1730,12 @@ class DynamoDBBackend(BaseBackend):
|
|||||||
self.tables[target_table_name] = new_table
|
self.tables[target_table_name] = new_table
|
||||||
return new_table
|
return new_table
|
||||||
|
|
||||||
"""
|
|
||||||
Currently this only accepts the source and target table elements, and will
|
|
||||||
copy all items from the source without respect to other arguments.
|
|
||||||
"""
|
|
||||||
|
|
||||||
def restore_table_to_point_in_time(self, target_table_name, source_table_name):
|
def restore_table_to_point_in_time(self, target_table_name, source_table_name):
|
||||||
|
"""
|
||||||
|
Currently this only accepts the source and target table elements, and will
|
||||||
|
copy all items from the source without respect to other arguments.
|
||||||
|
"""
|
||||||
|
|
||||||
source = self.get_table(source_table_name)
|
source = self.get_table(source_table_name)
|
||||||
if source is None:
|
if source is None:
|
||||||
raise KeyError()
|
raise KeyError()
|
||||||
|
@ -2075,14 +2075,11 @@ class IAMBackend(BaseBackend):
|
|||||||
return group
|
return group
|
||||||
|
|
||||||
def get_group(self, group_name, marker=None, max_items=None):
|
def get_group(self, group_name, marker=None, max_items=None):
|
||||||
group = None
|
|
||||||
try:
|
try:
|
||||||
group = self.groups[group_name]
|
return self.groups[group_name]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
raise IAMNotFoundException("Group {0} not found".format(group_name))
|
raise IAMNotFoundException("Group {0} not found".format(group_name))
|
||||||
|
|
||||||
return group
|
|
||||||
|
|
||||||
def list_groups(self):
|
def list_groups(self):
|
||||||
return self.groups.values()
|
return self.groups.values()
|
||||||
|
|
||||||
@ -2122,11 +2119,11 @@ class IAMBackend(BaseBackend):
|
|||||||
"The group with name {0} cannot be found.".format(group_name)
|
"The group with name {0} cannot be found.".format(group_name)
|
||||||
)
|
)
|
||||||
|
|
||||||
def update_group(self, group_name, new_group_name, new_path="/"):
|
def update_group(self, group_name, new_group_name, new_path):
|
||||||
if new_group_name:
|
if new_group_name:
|
||||||
if new_group_name in self.groups:
|
if new_group_name in self.groups:
|
||||||
raise IAMConflictException(
|
raise IAMConflictException(
|
||||||
"Group {0} already exists".format(new_group_name)
|
message="Group {0} already exists".format(new_group_name)
|
||||||
)
|
)
|
||||||
try:
|
try:
|
||||||
group = self.groups[group_name]
|
group = self.groups[group_name]
|
||||||
|
@ -507,7 +507,7 @@ class IamResponse(BaseResponse):
|
|||||||
def update_group(self):
|
def update_group(self):
|
||||||
group_name = self._get_param("GroupName")
|
group_name = self._get_param("GroupName")
|
||||||
new_group_name = self._get_param("NewGroupName")
|
new_group_name = self._get_param("NewGroupName")
|
||||||
new_path = self._get_param("NewPath", "/")
|
new_path = self._get_param("NewPath")
|
||||||
iam_backend.update_group(group_name, new_group_name, new_path)
|
iam_backend.update_group(group_name, new_group_name, new_path)
|
||||||
template = self.response_template(GENERIC_EMPTY_TEMPLATE)
|
template = self.response_template(GENERIC_EMPTY_TEMPLATE)
|
||||||
return template.render(name="UpdateGroup")
|
return template.render(name="UpdateGroup")
|
||||||
|
@ -317,7 +317,7 @@ def create_backend_app(service):
|
|||||||
|
|
||||||
def signal_handler(reset_server_port, signum, frame):
|
def signal_handler(reset_server_port, signum, frame):
|
||||||
if reset_server_port:
|
if reset_server_port:
|
||||||
del os.environ["MOTO_SERVER_PORT"]
|
del os.environ["MOTO_PORT"]
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
|
|
||||||
@ -335,7 +335,11 @@ def main(argv=sys.argv[1:]):
|
|||||||
"-H", "--host", type=str, help="Which host to bind", default="127.0.0.1"
|
"-H", "--host", type=str, help="Which host to bind", default="127.0.0.1"
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"-p", "--port", type=int, help="Port number to use for connection", default=5000
|
"-p",
|
||||||
|
"--port",
|
||||||
|
type=int,
|
||||||
|
help="Port number to use for connection",
|
||||||
|
default=int(os.environ.get("MOTO_PORT", 5000)),
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"-r",
|
"-r",
|
||||||
@ -361,9 +365,9 @@ def main(argv=sys.argv[1:]):
|
|||||||
args = parser.parse_args(argv)
|
args = parser.parse_args(argv)
|
||||||
|
|
||||||
reset_server_port = False
|
reset_server_port = False
|
||||||
if "MOTO_SERVER_PORT" not in os.environ:
|
if "MOTO_PORT" not in os.environ:
|
||||||
reset_server_port = True
|
reset_server_port = True
|
||||||
os.environ["MOTO_SERVER_PORT"] = f"{args.port}"
|
os.environ["MOTO_PORT"] = f"{args.port}"
|
||||||
|
|
||||||
try:
|
try:
|
||||||
signal.signal(signal.SIGINT, partial(signal_handler, reset_server_port))
|
signal.signal(signal.SIGINT, partial(signal_handler, reset_server_port))
|
||||||
|
@ -47,7 +47,7 @@ def ecs_new_arn_format():
|
|||||||
|
|
||||||
|
|
||||||
def moto_server_port():
|
def moto_server_port():
|
||||||
return os.environ.get("MOTO_SERVER_PORT") or "5000"
|
return os.environ.get("MOTO_PORT") or "5000"
|
||||||
|
|
||||||
|
|
||||||
def moto_server_host():
|
def moto_server_host():
|
||||||
|
5
scripts/ci_moto_server.sh
Executable file
5
scripts/ci_moto_server.sh
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
pip install $(ls /moto/dist/moto*.gz)[server,all]
|
||||||
|
moto_server -H 0.0.0.0 > /moto/server_output.log 2>&1
|
@ -1,21 +1,11 @@
|
|||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
|
|
||||||
try:
|
import urllib.request as urllib
|
||||||
# py2
|
from urllib.error import URLError
|
||||||
import urllib2 as urllib
|
import socket
|
||||||
from urllib2 import URLError
|
|
||||||
import socket
|
|
||||||
import httplib
|
|
||||||
|
|
||||||
EXCEPTIONS = (URLError, socket.error, httplib.BadStatusLine)
|
EXCEPTIONS = (URLError, socket.timeout, ConnectionResetError)
|
||||||
except ImportError:
|
|
||||||
# py3
|
|
||||||
import urllib.request as urllib
|
|
||||||
from urllib.error import URLError
|
|
||||||
import socket
|
|
||||||
|
|
||||||
EXCEPTIONS = (URLError, socket.timeout, ConnectionResetError)
|
|
||||||
|
|
||||||
|
|
||||||
start_ts = time.time()
|
start_ts = time.time()
|
@ -8,6 +8,10 @@ markers =
|
|||||||
[coverage:run]
|
[coverage:run]
|
||||||
relative_files = True
|
relative_files = True
|
||||||
|
|
||||||
|
[flake8]
|
||||||
|
ignore = W503,W605,E128,E501,E203,E266,E501,E231
|
||||||
|
exclude = moto/packages,dist
|
||||||
|
|
||||||
[pylint.'MESSAGES CONTROL']
|
[pylint.'MESSAGES CONTROL']
|
||||||
disable = W,C,R,E
|
disable = W,C,R,E
|
||||||
# Check we have any tests with duplicate names (causing them to be skipped)
|
# Check we have any tests with duplicate names (causing them to be skipped)
|
||||||
|
@ -355,3 +355,73 @@ def test_delete_unknown_group():
|
|||||||
err.value.response["Error"]["Message"].should.equal(
|
err.value.response["Error"]["Message"].should.equal(
|
||||||
"The group with name unknown-group cannot be found."
|
"The group with name unknown-group cannot be found."
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@mock_iam
|
||||||
|
def test_update_group_name():
|
||||||
|
conn = boto3.client("iam", region_name="us-east-1")
|
||||||
|
conn.create_group(GroupName="my-group")
|
||||||
|
initial_group = conn.get_group(GroupName="my-group")["Group"]
|
||||||
|
|
||||||
|
conn.update_group(GroupName="my-group", NewGroupName="new-group")
|
||||||
|
|
||||||
|
# The old group-name should no longer exist
|
||||||
|
with pytest.raises(ClientError) as exc:
|
||||||
|
conn.get_group(GroupName="my-group")
|
||||||
|
exc.value.response["Error"]["Code"].should.equal("NoSuchEntity")
|
||||||
|
|
||||||
|
result = conn.get_group(GroupName="new-group")["Group"]
|
||||||
|
result["Path"].should.equal("/")
|
||||||
|
result["GroupName"].should.equal("new-group")
|
||||||
|
result["GroupId"].should.equal(initial_group["GroupId"])
|
||||||
|
result["Arn"].should.match(":group/new-group")
|
||||||
|
|
||||||
|
|
||||||
|
@mock_iam
|
||||||
|
def test_update_group_name_that_has_a_path():
|
||||||
|
conn = boto3.client("iam", region_name="us-east-1")
|
||||||
|
conn.create_group(GroupName="my-group", Path="/path")
|
||||||
|
|
||||||
|
conn.update_group(GroupName="my-group", NewGroupName="new-group")
|
||||||
|
|
||||||
|
# Verify the path hasn't changed
|
||||||
|
new = conn.get_group(GroupName="new-group")["Group"]
|
||||||
|
new["Path"].should.equal("/path")
|
||||||
|
|
||||||
|
|
||||||
|
@mock_iam
|
||||||
|
def test_update_group_path():
|
||||||
|
conn = boto3.client("iam", region_name="us-east-1")
|
||||||
|
conn.create_group(GroupName="my-group", Path="/path")
|
||||||
|
|
||||||
|
conn.update_group(
|
||||||
|
GroupName="my-group", NewGroupName="new-group", NewPath="/new-path"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Verify the path has changed
|
||||||
|
new = conn.get_group(GroupName="new-group")["Group"]
|
||||||
|
new["Path"].should.equal("/new-path")
|
||||||
|
|
||||||
|
|
||||||
|
@mock_iam
|
||||||
|
def test_update_group_that_does_not_exist():
|
||||||
|
conn = boto3.client("iam", region_name="us-east-1")
|
||||||
|
|
||||||
|
with pytest.raises(ClientError) as exc:
|
||||||
|
conn.update_group(GroupName="nonexisting", NewGroupName="..")
|
||||||
|
err = exc.value.response["Error"]
|
||||||
|
err["Code"].should.equal("NoSuchEntity")
|
||||||
|
err["Message"].should.equal("The group with name nonexisting cannot be found.")
|
||||||
|
|
||||||
|
|
||||||
|
@mock_iam
|
||||||
|
def test_update_group_with_existing_name():
|
||||||
|
conn = boto3.client("iam", region_name="us-east-1")
|
||||||
|
conn.create_group(GroupName="existing1")
|
||||||
|
conn.create_group(GroupName="existing2")
|
||||||
|
|
||||||
|
with pytest.raises(ClientError) as exc:
|
||||||
|
conn.update_group(GroupName="existing1", NewGroupName="existing2")
|
||||||
|
err = exc.value.response["Error"]
|
||||||
|
err["Code"].should.equal("Conflict")
|
||||||
|
err["Message"].should.equal("Group existing2 already exists")
|
||||||
|
19
tox.ini
19
tox.ini
@ -1,19 +0,0 @@
|
|||||||
[tox]
|
|
||||||
envlist = py27, py36, py37
|
|
||||||
|
|
||||||
[testenv]
|
|
||||||
setenv =
|
|
||||||
BOTO_CONFIG=/dev/null
|
|
||||||
AWS_SECRET_ACCESS_KEY=foobar_secret
|
|
||||||
AWS_ACCESS_KEY_ID=foobar_key
|
|
||||||
AWS_DEFAULT_REGION=us-east-1
|
|
||||||
deps =
|
|
||||||
-r{toxinidir}/requirements.txt
|
|
||||||
-r{toxinidir}/requirements-dev.txt
|
|
||||||
commands =
|
|
||||||
{envpython} setup.py test
|
|
||||||
pytest -v {posargs}
|
|
||||||
|
|
||||||
[flake8]
|
|
||||||
ignore = W503,W605,E128,E501,E203,E266,E501,E231
|
|
||||||
exclude = moto/packages,dist
|
|
@ -1,7 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
export MOTO_PORT=${MOTO_PORT:-5000}
|
|
||||||
|
|
||||||
set -e
|
|
||||||
pip install $(ls /moto/dist/moto*.gz)[server,all]
|
|
||||||
moto_server -H 0.0.0.0 -p ${MOTO_PORT} > /moto/server_output.log 2>&1
|
|
Loading…
Reference in New Issue
Block a user