Skip to main content

An object-oriented friendly & pythonic client for Amazon Web Services (AWS)

Project description

OOWS

Build Status PyPI version

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oows-0.0.4.tar.gz (4.7 kB view hashes)

Uploaded Source

Built Distribution

oows-0.0.4-py3-none-any.whl (6.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page