def get_bucket_info(self, cos_url): # noqa: E501 """ Return the information of the given bucket Raises ------- ValueError if invalid COS URL Examples -------- .. code-block:: console curl https://config.cloud-object-storage.cloud.ibm.com/v1/b/my-bucket \ -H 'authorization: bearer <IAM_token>' 200 status code: .. code-block:: python # NOTE: long strings are broken using ( sub1, sub2) { "name": "my-new-bucket", "crn": ("crn:v1:bluemix:public:cloud-object-storage:global:" "a/ 3bf0d9003abfb5d29761c3e97696b71c:xxxxxxx-6c4f-4a62-a165-696756d63903:bucket:my-new-bucket"), "service_instance_id": "xxxxxxx-6c4f-4a62-a165-696756d63903", "service_instance_crn": ("crn:v1:bluemix:public:cloud-object-storage:global" ":a/3bf0d9003abfb5d29761c3e97696b71c:xxxxxxx-6c4f-4a62-a165-696756d63903::"), "time_created": "2018-03-26T16:23:36.980Z", "time_updated": "2018-10-17T19:29:10.117Z", "object_count": 764265234, "bytes_used": 28198745752445144 } .. todo:: https://cloud.ibm.com/apidocs/cos/cos-configuration?code=python """ if not self.is_valid_cos_url(cos_url): msg = "Not a valid COS URL: {}".format(cos_url) raise ValueError(msg) from cos_config.resource_configuration_v1 import ResourceConfigurationV1 bucket = self.get_bucket(cos_url) if bucket in self.buckets_info: return self.buckets_info[bucket] else: client = ResourceConfigurationV1(iam_apikey=self.apikey) config = client.get_bucket_config(bucket) self.buckets_info[bucket] = config return config
def update_bucket(self, cos_url): """ todo ---- revise this """ from cos_config.resource_configuration_v1 import ResourceConfigurationV1 api_key = self.apikey bucket = self.get_bucket(cos_url) client = ResourceConfigurationV1(iam_apikey=api_key) client.update_bucket_config( bucket, firewall={"allowed_ip": ["10.142.175.0/22", "10.198.243.79"]})
def _update_bucket(self, cos_url): """ Update the bucket given by COS URL .. todo:: revise this """ if not self.is_valid_cos_url(cos_url): msg = "Not a valid COS URL: {}".format(cos_url) raise ValueError(msg) from cos_config.resource_configuration_v1 import ResourceConfigurationV1 api_key = self.apikey bucket = self.get_bucket(cos_url) client = ResourceConfigurationV1(iam_apikey=api_key) client.update_bucket_config( bucket, firewall={"allowed_ip": ["10.142.175.0/22", "10.198.243.79"]})
def get_bucket_info(self, cos_url): """ .. code-block: console curl https://config.cloud-object-storage.cloud.ibm.com/v1/b/my-bucket \ -H 'authorization: bearer <IAM_token>' 200 status code: .. code-block:: python { "name": "my-new-bucket", "crn": "crn:v1:bluemix:public:cloud-object-storage:global:a/ 3bf0d9003abfb5d29761c3e97696b71c:xxxxxxx-6c4f-4a62-a165-696756d63903:bucket:my-new-bucket", "service_instance_id": "xxxxxxx-6c4f-4a62-a165-696756d63903", "service_instance_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a/3bf0d9003abfb5d29761c3e97696b71c:xxxxxxx-6c4f-4a62-a165-696756d63903::", "time_created": "2018-03-26T16:23:36.980Z", "time_updated": "2018-10-17T19:29:10.117Z", "object_count": 764265234, "bytes_used": 28198745752445144 } todo ---- https://cloud.ibm.com/apidocs/cos/cos-configuration?code=python """ from cos_config.resource_configuration_v1 import ResourceConfigurationV1 bucket = self.get_bucket(cos_url) if bucket in self.buckets_info: return self.buckets_info[bucket] else: client = ResourceConfigurationV1(iam_apikey=self.apikey) config = client.get_bucket_config(bucket) self.buckets_info[bucket] = config return config