An object-oriented friendly & pythonic client for Amazon Web Services (AWS)
Project description
OOWS
Warning — this project is in early development. Contributions and feedbacks are welcome. Usage in production systems is discouraged
OOWS (oh-owls) is an object-oriented friendly client for Amazon Web Services — AWS. It is based on boto3 official client and aims to provide a cleaner and more Pythonic interface to handle AWS resources.
Currently, Boto3 already provides the Resource Model which is a nicer and more OO-friendly interface over raw JSON, as explained here. Although it works, it does not provide an interface for resources I currently need. This project started by a personal need of mine to ease the current state of programmatic access to ECS resources.
Rationale
Suppose you want to list all of a cluster's services' task definitions. Using pure boto3
, you'd need to write something like:
session = boto3.Session()
ecs_client = session.client('ecs')
services = ecs_client.list_services(cluster="MyCluster")['serviceArns']
for service in services:
s = ecs_client.describe_services(cluster="MyCluster", services=[service])
print("The task definition is {}".format(s['services'][0]['taskDefinition']))
But using oows
, you can rewrite this code to something like:
cluster = Cluster("MyCluster")
for service in cluster.services:
print("The task definition is {}".format(service.task_definition))
Quick Start
Currently, OOWS supports only a few ECS components and operations.
First, install it with PIP
pip install boto3 oows
As of now, you'll need to supply a regular boto3 Session
import boto3
from oows import ecs
s = boto3.Session() # Create a new boto3 Session.
cluster = ecs.Cluster("MyCluster", s) # Initialize a new cluster object
service = ecs.Service("server", cluster, s) # Initialize a new service object
task_definition = service.task_definition # Gets the service's task definition
task_definition.update_env("new_env", "new_value") # Creates a new task definition with updated env
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file oows-0.0.4.tar.gz
.
File metadata
- Download URL: oows-0.0.4.tar.gz
- Upload date:
- Size: 4.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.1.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50a8a03efe5adb1b4e54925f3049bf7063c6a029000ce5b9324220ac169bd47d |
|
MD5 | 3f494894dc56992a108e498662e3dccf |
|
BLAKE2b-256 | 4b8276f894bee4064f4163687572b2477ea5a6e12956fc8ba0a34f94b36ac724 |
File details
Details for the file oows-0.0.4-py3-none-any.whl
.
File metadata
- Download URL: oows-0.0.4-py3-none-any.whl
- Upload date:
- Size: 6.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.1.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0ffa627143fce24cc70e6148c23ea0f04d3300662a73d22a4113e6b4b9510e96 |
|
MD5 | 5ade02988dbf9b1cd88513bc96b437ef |
|
BLAKE2b-256 | d4980eaf643bcfbc129998f10ec945e405f2a20b4e3b1f2c5b79ddd217ce935f |