auth_service_url = config.get_config("storage", "openstack.url", DEFAULT_AUTH_URLS[provider])
username = config.get_config("storage", "openstack.username")
+ container_name = config.get_config("storage", "openstack.container")
reauth_period = 23*60*60 #seconds
auth_client = AuthenticationClient(api_key, provider, auth_service_url, username, reauth_period)
- return OpenStackContainer(auth_client)
+ return OpenStackContainer(auth_client, container_name)
class UnexpectedAuthenticationResponse(Exception):
I represent a real OpenStack container.
"""
- def __init__(self, auth_client):
+ def __init__(self, auth_client, container_name):
self._auth_client = auth_client
+ self._container_name = container_name
#self.client = OpenStackClient(auth_client)
#self.ServiceError = OpenStackError
"enabled = true\n" +
"backend = cloud.openstack\n" +
"openstack.provider = rackspace\n" +
- "openstack.username = alex\n")
+ "openstack.username = alex\n" +
+ "openstack.container = test\n")
fileutil.write(os.path.join(basedir, "tahoe.cfg"), config)
c = client.Client(basedir)
mock_AuthenticationClient.assert_called_with("dummy", "rackspace",
"https://identity.api.rackspacecloud.com/v1.0",
"alex", 23*60*60)
- self.failUnlessEqual(len(mock_OpenStackContainer.mock_calls), 1)
+ container_call_args = mock_OpenStackContainer.call_args_list
+ self.failUnlessEqual(len(container_call_args), 1)
+ self.failUnlessEqual(container_call_args[0][0][1:], ("test",))
server = c.getServiceNamed("storage")
self.failUnless(isinstance(server.backend, CloudBackend), server.backend)
"readonly = true\n" +
"backend = cloud.openstack\n" +
"openstack.provider = rackspace\n" +
- "openstack.username = alex\n")
+ "openstack.username = alex\n" +
+ "openstack.container = test\n")
self.failUnlessRaises(InvalidValueError, client.Client, basedir)
def test_openstack_config_no_username(self):
"[storage]\n" +
"enabled = true\n" +
"backend = cloud.openstack\n" +
- "openstack.provider = rackspace\n")
+ "openstack.provider = rackspace\n" +
+ "openstack.container = test\n")
+ self.failUnlessRaises(MissingConfigEntry, client.Client, basedir)
+
+ def test_openstack_config_no_container(self):
+ basedir = "client.Basic.test_openstack_config_no_container"
+ os.mkdir(basedir)
+ self._write_secret(basedir, "openstack_api_key")
+ fileutil.write(os.path.join(basedir, "tahoe.cfg"),
+ BASECONFIG +
+ "[storage]\n" +
+ "enabled = true\n" +
+ "backend = cloud.openstack\n" +
+ "openstack.provider = rackspace\n" +
+ "openstack.username = alex\n")
self.failUnlessRaises(MissingConfigEntry, client.Client, basedir)
def test_openstack_config_no_api_key(self):
"enabled = true\n" +
"backend = cloud.openstack\n" +
"openstack.provider = rackspace\n" +
- "openstack.username = alex\n")
+ "openstack.username = alex\n" +
+ "openstack.container = test\n")
self.failUnlessRaises(MissingConfigEntry, client.Client, basedir)
def test_expire_mutable_false_unsupported(self):
PROVIDER = "rackspace"
AUTH_SERVICE_URL = "auth_service_url"
USERNAME = "username"
+ CONTAINER = "container"
API_KEY = "api_key"
STORAGE_URL = "storage_url"
CDN_MANAGEMENT_URL = "cdn_management_url"
'openstack.provider': self.PROVIDER,
'openstack.url': self.AUTH_SERVICE_URL,
'openstack.username': self.USERNAME,
+ 'openstack.container': self.CONTAINER,
}
from allmydata.node import _None
class MockConfig(object):