From ffef150362c3530bf1f08df1fe1d22b4a14530b8 Mon Sep 17 00:00:00 2001 From: Bill Kish Date: Fri, 28 Dec 2018 14:20:20 -0500 Subject: [PATCH] 1.8.2: support for configurable azure sas tokens --- cogniac/common.py | 3 +++ cogniac/tenant.py | 18 +++++++++++++----- setup.py | 2 +- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/cogniac/common.py b/cogniac/common.py index ae89fe1..dbb8046 100644 --- a/cogniac/common.py +++ b/cogniac/common.py @@ -27,6 +27,9 @@ def __init__(self, message, status_code=None): if status_code is not None: self.status_code = status_code + def __str__(self): + return self.message + def credential_error(exception): return isinstance(exception, CredentialError) diff --git a/cogniac/tenant.py b/cogniac/tenant.py index 3510396..740da78 100644 --- a/cogniac/tenant.py +++ b/cogniac/tenant.py @@ -9,7 +9,9 @@ from retrying import retry from common import * -immutable_fields = ['aws_region', 'created_at', 'created_by', 'modified_at', 'modified_by', 'tenant_type', 'tenant_id'] +immutable_fields = ['region', 'created_at', 'created_by', 'modified_at', 'modified_by', 'tenant_id'] + +mutable_keys = ['name', 'description', 'azure_sas_tokens'] ## # CogniacTenant @@ -20,9 +22,10 @@ class CogniacTenant(object): @retry(stop_max_attempt_number=8, wait_exponential_multiplier=500, retry_on_exception=server_error) def get(cls, connection): resp = connection._get("/tenants/current") - return CogniacTenant(json.loads(resp.content)) + return CogniacTenant(connection, json.loads(resp.content)) - def __init__(self, tenant_dict): + def __init__(self, connection, tenant_dict): + self._cc = connection for k, v in tenant_dict.items(): super(CogniacTenant, self).__setattr__(k, v) @@ -35,5 +38,10 @@ def __repr__(self): def __setattr__(self, name, value): if name in immutable_fields: raise AttributeError("%s is immutable" % name) - if name in ['name', 'description']: - raise AttributeError("sdk does not support editing tenant objects") + if name in mutable_keys: + data = {name: value} + resp = self._cc._post("/tenants/%s" % self.tenant_id, json=data) + for k, v in resp.json().items(): + super(CogniacTenant, self).__setattr__(k, v) + return + super(CogniacTenant, self).__setattr__(name, value) diff --git a/setup.py b/setup.py index 9f4a4bf..1ffa3bc 100755 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ from distutils.core import setup setup(name='cogniac', - version='1.8.1', + version='1.8.2', description='Python SDK for Cogniac Public API', packages=['cogniac'], author = 'Cogniac Corporation',