Exemplo n.º 1
0
# interpreted as representing official policies, either expressed
# or implied, of GRNET S.A.

from kamaki.clients.astakos import AstakosClient
from kamaki.clients.pithos import PithosClient

AUTHENTICATION_URL = "https://astakos.example.com/identity/v2.0"
TOKEN = "User-Token"
astakos = AstakosClient(AUTHENTICATION_URL, TOKEN)

service_type = PithosClient.service_type
endpoint = astakos.get_endpoint_url(service_type)
pithos = PithosClient(endpoint, TOKEN)

user = astakos.authenticate()
uuid = user["access"]["user"]["id"]
pithos.account = uuid

#  Get the project containers we care for
containers = filter(lambda c: c["name"] in ("pithos", "images"),
                    pithos.list_containers())

#  Construct dict of the form {CONTAINER_NAME: PROJECT_ID, ...}
projects = dict([(c["name"], c["x_container_policy"]["project"])
                 for c in containers])

#  Check projects and reassign if needed
if projects["pithos"] != projects["images"]:
    pithos.container = "images"
    pithos.reassign_container(projects["pithos"])
Exemplo n.º 2
0
from kamaki.clients.astakos import AstakosClient
from kamaki.clients.pithos import PithosClient

AUTHENTICATION_URL = "https://astakos.example.com/identity/v2.0"
TOKEN = "User-Token"
astakos = AstakosClient(AUTHENTICATION_URL, TOKEN)

service_type = PithosClient.service_type
endpoint = astakos.get_endpoint_url(service_type)
pithos = PithosClient(endpoint, TOKEN)

user = astakos.authenticate()
uuid = user["access"]["user"]["id"]
pithos.account = uuid

#  Get the project containers we care for
containers = filter(
    lambda c: c["name"] in ("pithos", "images"),
    pithos.list_containers())

#  Construct dict of the form {CONTAINER_NAME: PROJECT_ID, ...}
projects = dict([(
    c["name"],
    c["x_container_policy"]["project"]) for c in containers])

#  Check projects and reassign if needed
if projects["pithos"] != projects["images"]:
    pithos.container = "images"
    pithos.reassign_container(projects["pithos"])
Exemplo n.º 3
0
TOKEN = "User-Token"
astakos = AstakosClient(AUTHENTICATION_URL, TOKEN)

#  Our data
container_name = "course_container"
user = astakos.authenticate()
uuid = user["access"]["user"]["id"]

#  Initialize a Pithos client
service_type = PithosClient.service_type
endpoint = astakos.get_endpoint_url(service_type)
pithos = PithosClient(endpoint, TOKEN, uuid, container_name)

#  To what project is this container assigned to?
container = pithos.get_container_info(container_name)
container_project = container["x-container-policy-project"]

#  Get quota info
quotas = astakos.get_quotas()
container_quotas = quotas[container_project]["pithos.diskspace"]
usage, limit = container_quotas["usage"], container_quotas["limit"]

if usage < limit:
    print "Quotas for container {0} are OK".format(container_name)
else:
    #  We need to reassign to another project
    new_project = "a9f87654-3af2-1e09-8765-43a2df1098765"
    pithos.reassign_container(project_id=new_project)
    print "Container {name} is reassigned to project {id}".format(
        name=container_name, id=new_project)