Ejemplo n.º 1
0
    def testGetCredentials(self):
        srv = self.newService()
        uri = self._baseCloudUrl + '/users/%(username)s/credentials'
        client = self.newClient(srv, uri)

        response = client.request('GET')
        hndlr = credentials.Handler()
        data = response.read()
        self.failUnlessEqual(
            data, """\
<?xml version='1.0' encoding='UTF-8'?>
<descriptorData version="1.1" id="http://%s/TOPLEVEL/clouds/%s/instances/%s/users/JeanValjean/credentials">
  <publicAccessKeyId>User public key</publicAccessKeyId>
  <secretAccessKey>User private key</secretAccessKey>
</descriptorData>
""" % (client.hostport, self.cloudType, self.cloudName))

        # Wrong user name
        uri = self._baseCloudUrl + '/users/NOSUCHUSER/credentials'
        client = self.newClient(srv, uri)
        e = self.failUnlessRaises(ResponseError, client.request, 'GET')
        self.failUnlessEqual(e.status, 401)

        # bad cloud name (this should probably be moved to the instances test)
        uri = 'clouds/vmware/instances/badcloud.eng.rpath.com/users/NOSUCHUSER/credentials'
        client = self.newClient(srv, uri)
        e = self.failUnlessRaises(ResponseError, client.request, 'GET')
        self.failUnlessEqual(e.status, 404)
Ejemplo n.º 2
0
    def testSetCredentialsEC2(self):
        srv = self.newService()
        uri = 'clouds/ec2/instances/aws/users/%(username)s/credentials?_method=PUT'

        client = self.newClient(srv, uri)
        response = client.request('POST', body=_xmlNewEC2Creds)

        hndlr = credentials.Handler()

        data = response.read()
        node = hndlr.parseString(data)

        self.failUnlessEqual(node.getValid(), True)
Ejemplo n.º 3
0
    def testGetCredentials2(self):
        srv = self.newService()
        uri = self._baseCloudUrl + '/users/%(username)s/credentials?_method=GET'

        client = self.newClient(srv, uri)
        response = client.request('POST')
        hndlr = credentials.Handler()
        data = response.read()
        self.assertXMLEquals(
            data,
            """<?xml version='1.0' encoding='UTF-8'?>\n<descriptorData version="1.1" id="http://%s/TOPLEVEL/clouds/%s/instances/%s/users/JeanValjean/credentials">\n  <publicAccessKeyId>User public key</publicAccessKeyId>\n  <secretAccessKey>User private key</secretAccessKey>\n</descriptorData>\n"""
            % (client.hostport, self.cloudType, self.cloudName))

        # Wrong user name
        uri = self._baseCloudUrl + '/users/NOSUCHUSER/credentials'
        client = self.newClient(srv, uri)
        e = self.failUnlessRaises(ResponseError, client.request, 'GET')
        self.failUnlessEqual(e.status, 401)
Ejemplo n.º 4
0
    def testGetCredentials(self):
        srv = self.newService()
        uri = 'clouds/xen-enterprise/instances/xs01.eng.rpath.com/users/%(username)s/credentials?_method=GET'

        client = self.newClient(srv, uri)
        response = client.request('POST')
        hndlr = credentials.Handler()
        data = response.read()
        self.assertXMLEquals(
            data,
            """<?xml version='1.0' encoding='UTF-8'?>\n<descriptorData version="1.1" id="http://%s/TOPLEVEL/clouds/xen-enterprise/instances/xs01.eng.rpath.com/users/JeanValjean/credentials">\n  <username>root</username>\n  <password>SomePassword</password>\n</descriptorData>\n"""
            % client.hostport)

        # Wrong user name
        uri = 'clouds/xen-enterprise/instances/xs01.eng.rpath.com/users/NOSUCHUSER/credentials'
        client = self.newClient(srv, uri)
        e = self.failUnlessRaises(ResponseError, client.request, 'GET')
        self.failUnlessEqual(e.status, 401)
Ejemplo n.º 5
0
    def testSetCredentials(self):
        cloudName = 'xs01.eng.rpath.com'
        srv = self.newService()
        uri = 'clouds/xen-enterprise/instances/xs01.eng.rpath.com/users/%(username)s/credentials?_method=PUT'

        hndlr = credentials.Handler()

        client = self.newClient(srv, uri)
        response = client.request('POST', body=_xmlNewCreds)

        data = response.read()
        node = hndlr.parseString(data)

        self.failUnlessEqual(node.getValid(), True)

        # Make sure credentials made it
        creds = self.restdb.targetMgr.getTargetCredentialsForUser(
            'xen-enterprise', cloudName, 'JeanValjean')
        self.failUnlessEqual(creds, dict(username='******', password='******'))
Ejemplo n.º 6
0
    def testSetCredentialsFail(self):
        DummyTransport.dataMap['session.login_with_password'] = ({
            'Status':
            'Failure',
            'ErrorDescription': [
                'SESSION_AUTHENTICATION_FAILED', 'root',
                'Authentication failure'
            ],
        }, )
        srv = self.newService()
        uri = 'clouds/xen-enterprise/instances/xs01.eng.rpath.com/users/%(username)s/credentials?_method=PUT'

        hndlr = credentials.Handler()

        client = self.newClient(srv, uri)
        response = self.failUnlessRaises(ResponseError,
                                         client.request,
                                         'POST',
                                         body=_xmlNewCreds)
        self.failUnlessEqual(response.status, 403)