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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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

Hashes for oows-0.0.4.tar.gz
Algorithm Hash digest
SHA256 50a8a03efe5adb1b4e54925f3049bf7063c6a029000ce5b9324220ac169bd47d
MD5 3f494894dc56992a108e498662e3dccf
BLAKE2b-256 4b8276f894bee4064f4163687572b2477ea5a6e12956fc8ba0a34f94b36ac724

See more details on using hashes here.

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

Hashes for oows-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 0ffa627143fce24cc70e6148c23ea0f04d3300662a73d22a4113e6b4b9510e96
MD5 5ade02988dbf9b1cd88513bc96b437ef
BLAKE2b-256 d4980eaf643bcfbc129998f10ec945e405f2a20b4e3b1f2c5b79ddd217ce935f

See more details on using hashes here.

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