def create_container(self, container_name): """ @inherits: :class:`StorageDriver.create_container` """ params = {'restype': 'container'} container_path = '/%s' % (container_name) response = self.connection.request(container_path, params=params, method='PUT') if response.status == httplib.CREATED: return self._response_to_container(container_name, response) elif response.status == httplib.CONFLICT: raise ContainerAlreadyExistsError( value='Container with this name already exists. The name must ' 'be unique among all the containers in the system', container_name=container_name, driver=self) elif response.status == httplib.BAD_REQUEST: raise InvalidContainerNameError(value='Container name contains ' + 'invalid characters.', container_name=container_name, driver=self) raise LibcloudError('Unexpected status code: %s' % (response.status), driver=self)
def create_container(self, container_name): """ Create a new container. @type container_name: C{str} @param container_name: Container name. @return: C{Container} instance on success. @rtype: L{Container} """ self._check_container_name(container_name) path = os.path.join(self.base_path, container_name) try: self._make_path(path, ignore_existing=False) except OSError: exp = sys.exc_info()[1] if exp.errno == errno.EEXIST: raise ContainerAlreadyExistsError( value='Container with this name already exists. The name ' 'must be unique among all the containers in the ' 'system', container_name=container_name, driver=self) else: raise LibcloudError('Error creating container %s' % container_name, driver=self) except Exception: raise LibcloudError('Error creating container %s' % container_name, driver=self) return self._make_container(container_name)
def create_container(self, container_name): """ >>> driver = DummyStorageDriver('key', 'secret') >>> container = driver.create_container(container_name='test container 1') >>> container <Container: name=test container 1, provider=Dummy Storage Provider> >>> container = driver.create_container( ... container_name='test container 1') #doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): ContainerAlreadyExistsError: """ if container_name in self._containers: raise ContainerAlreadyExistsError(container_name=container_name, value=None, driver=self) extra = {'object_count': 0} container = Container(name=container_name, extra=extra, driver=self) self._containers[container_name] = { 'container': container, 'objects': {}, 'cdn_url': 'http://www.test.com/container/%s' % (container_name.replace(' ', '_')) } return container
def create_container(self, container_name): """ >>> driver = DummyStorageDriver('key', 'secret') >>> container_name = 'test container 1' >>> container = driver.create_container(container_name=container_name) >>> container <Container: name=test container 1, provider=Dummy Storage Provider> >>> container = driver.create_container( ... container_name='test container 1') ... #doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): ContainerAlreadyExistsError: @inherits: :class:`StorageDriver.create_container` """ if container_name in self._containers: raise ContainerAlreadyExistsError(container_name=container_name, value=None, driver=self) extra = {"object_count": 0} container = Container(name=container_name, extra=extra, driver=self) self._containers[container_name] = { "container": container, "objects": {}, "cdn_url": "http://www.test.com/container/%s" % (container_name.replace(" ", "_")), } return container
def create_container(self, container_name): """ @inherits: :class:`StorageDriver.create_container` """ params = {"restype": "container"} container_path = "/%s" % (container_name) response = self.connection.request(container_path, params=params, method="PUT") if response.status == httplib.CREATED: return self._response_to_container(container_name, response) elif response.status == httplib.CONFLICT: raise ContainerAlreadyExistsError( value="Container with this name already exists. The name must " "be unique among all the containers in the system", container_name=container_name, driver=self, ) elif response.status == httplib.BAD_REQUEST: raise InvalidContainerNameError( value="Container name contains " + "invalid characters.", container_name=container_name, driver=self, ) raise LibcloudError("Unexpected status code: %s" % (response.status), driver=self)
def create_container(self, container_name): """ Create a new container. :type container_name: ``str`` :param container_name: Container name. :return: :class:`Container` instance on success. :rtype: :class:`Container` """ self._check_container_name(container_name) path = os.path.join(self.base_path, container_name) try: self._make_path(path, ignore_existing=False) except OSError as exp: if exp.errno == errno.EEXIST: raise ContainerAlreadyExistsError( value='Container with this name already exists. The name ' 'must be unique among all the containers in the ' 'system', container_name=container_name, driver=self) else: raise LibcloudError('Error creating container %s' % container_name, driver=self) except Exception: raise LibcloudError('Error creating container %s' % container_name, driver=self) return self._make_container(container_name)
def create_container(self, container_name): path = self._namespace_path(container_name + '/') try: result = self.connection.request(path, method='POST') except AtmosError, e: if e.code != 1016: raise raise ContainerAlreadyExistsError(e, self, container_name)
def create_container(self, container_name): path = self._namespace_path(container_name) + '/' try: self.connection.request(path, method='POST') except AtmosError as e: if e.code != 1016: raise raise ContainerAlreadyExistsError(e, self, container_name) return self.get_container(container_name)
def create_container(self, container_name): container_name = self._clean_container_name(container_name) response = self.connection.request( '/%s' % (container_name), method='PUT') if response.status == httplib.CREATED: # Accepted mean that container is not yet created but it will be # eventually extra = { 'object_count': 0 } container = Container(name=container_name, extra=extra, driver=self) return container elif response.status == httplib.ACCEPTED: error = ContainerAlreadyExistsError(None, self, container_name) raise error raise LibcloudError('Unexpected status code: %s' % (response.status))
def test_handles_race_condition_when_creating_container(self): with patch.object(self._storage, '_driver', new_callable=PropertyMock) as driver: container = {'get_was_called': False} # noinspection PyUnusedLocal def get_container(*args, **kwargs): if not container['get_was_called']: container['get_was_called'] = True # noinspection PyTypeChecker raise ContainerDoesNotExistError(None, driver, self._container) return container # noinspection PyTypeChecker driver.create_container.side_effect = throw(ContainerAlreadyExistsError(None, driver, self._container)) driver.get_container.side_effect = get_container self.assertIs(self._storage._client._wrapped, container)
def create_container(self, container_name): if self.ex_location_name: root = Element("CreateBucketConfiguration") child = SubElement(root, "LocationConstraint") child.text = self.ex_location_name data = tostring(root) else: data = "" response = self.connection.request( "/%s" % (container_name), data=data, method="PUT" ) if response.status == httplib.OK: container = Container(name=container_name, extra=None, driver=self) return container elif response.status == httplib.CONFLICT: if "BucketAlreadyOwnedByYou" in response.body: raise ContainerAlreadyExistsError( value="Container with this name already exists. The name " "be unique among all the containers in the system.", container_name=container_name, driver=self, ) raise InvalidContainerNameError( value="Container with this name already exists. The name must " "be unique among all the containers in the system.", container_name=container_name, driver=self, ) elif response.status == httplib.BAD_REQUEST: raise ContainerError( value="Bad request when creating container: %s" % response.body, container_name=container_name, driver=self, ) raise LibcloudError( "Unexpected status code: %s" % (response.status), driver=self )
def create_container(*args, **kwargs): raise ContainerAlreadyExistsError(None, driver, self._container)