Skip to content

Module isilon.api.containers

View Source
import attr

from isilon.api.base import BaseAPI

@attr.s(frozen=True)

class Containers(BaseAPI):

    async def objects(self, container_name: str, headers: dict = {}, **kwargs):

        """Show container details and list objects."""

        response = await self.base_request(

            self.http.get,

            f"{self.url}/{self.API_VERSION}/AUTH_{self.credentials.account}/{container_name}?format=json",

            headers=headers,

            **kwargs,

        )

        response = await response.json()

        return response

    async def create(self, container_name, headers: dict = {}, **kwargs) -> int:

        """Create container."""

        response = await self.base_request(

            self.http.put,

            f"{self.url}/{self.API_VERSION}/AUTH_{self.credentials.account}/{container_name}",

            headers=headers,

            **kwargs,

        )

        return int(response.status)

    async def update_metadata(self, container_name, headers: dict = {}, **kwargs):

        """Create, update, or delete container metadata."""

        response = await self.base_request(

            self.http.put,

            f"{self.url}/{self.API_VERSION}/AUTH_{self.credentials.account}/{container_name}",

            headers=headers,

            **kwargs,

        )

        return response.status

    async def show_metadata(self, container_name, headers: dict = {}, **kwargs):

        """Show container metadata."""

        response = await self.base_request(

            self.http.head,

            f"{self.url}/{self.API_VERSION}/AUTH_{self.credentials.account}/{container_name}",

            headers=headers,

            **kwargs,

        )

        return response.headers

    async def delete(self, container_name, headers: dict = {}, **kwargs):

        """Delete container."""

        response = await self.base_request(

            self.http.delete,

            f"{self.url}/{self.API_VERSION}/AUTH_{self.credentials.account}/{container_name}",

            headers=headers,

            **kwargs,

        )

        return response.status

Classes

Containers

class Containers(
    http: isilon.http.Http,
    url,
    credentials: isilon.creds.Credentials
)
View Source
class Containers(BaseAPI):

    async def objects(self, container_name: str, headers: dict = {}, **kwargs):

        """Show container details and list objects."""

        response = await self.base_request(

            self.http.get,

            f"{self.url}/{self.API_VERSION}/AUTH_{self.credentials.account}/{container_name}?format=json",

            headers=headers,

            **kwargs,

        )

        response = await response.json()

        return response

    async def create(self, container_name, headers: dict = {}, **kwargs) -> int:

        """Create container."""

        response = await self.base_request(

            self.http.put,

            f"{self.url}/{self.API_VERSION}/AUTH_{self.credentials.account}/{container_name}",

            headers=headers,

            **kwargs,

        )

        return int(response.status)

    async def update_metadata(self, container_name, headers: dict = {}, **kwargs):

        """Create, update, or delete container metadata."""

        response = await self.base_request(

            self.http.put,

            f"{self.url}/{self.API_VERSION}/AUTH_{self.credentials.account}/{container_name}",

            headers=headers,

            **kwargs,

        )

        return response.status

    async def show_metadata(self, container_name, headers: dict = {}, **kwargs):

        """Show container metadata."""

        response = await self.base_request(

            self.http.head,

            f"{self.url}/{self.API_VERSION}/AUTH_{self.credentials.account}/{container_name}",

            headers=headers,

            **kwargs,

        )

        return response.headers

    async def delete(self, container_name, headers: dict = {}, **kwargs):

        """Delete container."""

        response = await self.base_request(

            self.http.delete,

            f"{self.url}/{self.API_VERSION}/AUTH_{self.credentials.account}/{container_name}",

            headers=headers,

            **kwargs,

        )

        return response.status

Ancestors (in MRO)

  • isilon.api.base.BaseAPI

Class variables

API_VERSION

Methods

base_request
def base_request(
    self,
    fn,
    url,
    headers: dict = {},
    *args,
    **kwargs
)
View Source
    async def base_request(self, fn, url, headers: dict = {}, *args, **kwargs):

        headers = await self.get_token(headers)

        response = await fn(url, headers=headers, *args, **kwargs)

        return response
create
def create(
    self,
    container_name,
    headers: dict = {},
    **kwargs
) -> int

Create container.

View Source
    async def create(self, container_name, headers: dict = {}, **kwargs) -> int:

        """Create container."""

        response = await self.base_request(

            self.http.put,

            f"{self.url}/{self.API_VERSION}/AUTH_{self.credentials.account}/{container_name}",

            headers=headers,

            **kwargs,

        )

        return int(response.status)
delete
def delete(
    self,
    container_name,
    headers: dict = {},
    **kwargs
)

Delete container.

View Source
    async def delete(self, container_name, headers: dict = {}, **kwargs):

        """Delete container."""

        response = await self.base_request(

            self.http.delete,

            f"{self.url}/{self.API_VERSION}/AUTH_{self.credentials.account}/{container_name}",

            headers=headers,

            **kwargs,

        )

        return response.status
get_token
def get_token(
    self,
    headers: dict
) -> dict
View Source
    async def get_token(self, headers: dict) -> dict:

        token = await self.credentials.x_auth_token(self.url)

        headers.update(token)

        return headers
objects
def objects(
    self,
    container_name: str,
    headers: dict = {},
    **kwargs
)

Show container details and list objects.

View Source
    async def objects(self, container_name: str, headers: dict = {}, **kwargs):

        """Show container details and list objects."""

        response = await self.base_request(

            self.http.get,

            f"{self.url}/{self.API_VERSION}/AUTH_{self.credentials.account}/{container_name}?format=json",

            headers=headers,

            **kwargs,

        )

        response = await response.json()

        return response
show_metadata
def show_metadata(
    self,
    container_name,
    headers: dict = {},
    **kwargs
)

Show container metadata.

View Source
    async def show_metadata(self, container_name, headers: dict = {}, **kwargs):

        """Show container metadata."""

        response = await self.base_request(

            self.http.head,

            f"{self.url}/{self.API_VERSION}/AUTH_{self.credentials.account}/{container_name}",

            headers=headers,

            **kwargs,

        )

        return response.headers
update_metadata
def update_metadata(
    self,
    container_name,
    headers: dict = {},
    **kwargs
)

Create, update, or delete container metadata.

View Source
    async def update_metadata(self, container_name, headers: dict = {}, **kwargs):

        """Create, update, or delete container metadata."""

        response = await self.base_request(

            self.http.put,

            f"{self.url}/{self.API_VERSION}/AUTH_{self.credentials.account}/{container_name}",

            headers=headers,

            **kwargs,

        )

        return response.status