Beispiel #1
0
    def test_create_fw_rule_sets(self):
        params = {
            u'project': u'PID',
            u'name': u'name',
            u'image': u'image',
            u'instance-type': u'flavor',
            u'fw-rule-sets': [u'3', u'8']
        }
        sgs = [
            doubles.make(self.mox, doubles.SecurityGroup, id=u'3', name='sg3'),
            doubles.make(self.mox, doubles.SecurityGroup, id=u'8', name='sg8')
        ]
        instances.client_set_for_tenant(u'PID').AndReturn(self.tcs)
        self.tcs.compute.security_groups.get(u'3').AndReturn(sgs[0])
        self.tcs.compute.security_groups.get(u'8').AndReturn(sgs[1])
        self.tcs.compute.servers.create(
            name=u'name',
            image=u'image',
            flavor=u'flavor',
            security_groups=['sg3', 'sg8'],
            key_name=None,
            admin_pass=None
        ).AndReturn('VM1')
        instances._instance_to_view('VM1').AndReturn('REPLY')

        self.mox.ReplayAll()
        data = self.interact(params)
        self.assertEquals(data, 'REPLY')
Beispiel #2
0
    def test_create_fw_rule_sets(self):
        params = {
            u'project': u'PID',
            u'name': u'name',
            u'image': u'image',
            u'instance-type': u'flavor',
            u'fw-rule-sets': [u'3', u'8']
        }
        sgs = [
            doubles.make(self.mox, doubles.SecurityGroup, id=u'3', name='sg3'),
            doubles.make(self.mox, doubles.SecurityGroup, id=u'8', name='sg8')
        ]
        instances.client_set_for_tenant(u'PID').AndReturn(self.tcs)
        self.tcs.compute.security_groups.get(u'3').AndReturn(sgs[0])
        self.tcs.compute.security_groups.get(u'8').AndReturn(sgs[1])
        self.tcs.compute.servers.create(name=u'name',
                                        image=u'image',
                                        flavor=u'flavor',
                                        security_groups=['sg3', 'sg8'],
                                        key_name=None,
                                        admin_pass=None).AndReturn('VM1')
        instances._instance_to_view('VM1').AndReturn('REPLY')

        self.mox.ReplayAll()
        data = self.interact(params)
        self.assertEquals(data, 'REPLY')
Beispiel #3
0
    def test_create_expires(self):
        server = doubles.make(self.mox,
                              doubles.Server,
                              id=u'VMID',
                              name=u'name')
        params = {
            u'project': u'PID',
            u'name': u'name',
            u'image': u'image',
            u'instance-type': u'flavor',
            u'expires-at': u'2013-01-17T15:36:00Z'
        }
        instances.client_set_for_tenant(u'PID').AndReturn(self.tcs)
        self.tcs.compute.servers.create(name=u'name',
                                        image=u'image',
                                        flavor=u'flavor',
                                        security_groups=None,
                                        key_name=None,
                                        admin_pass=None).AndReturn(server)
        instances.InstanceDataDAO.create(u'VMID',
                                         expires_at=datetime(
                                             2013, 1, 17, 15, 36, 0),
                                         remind_at=None)
        instances._instance_to_view(server).AndReturn('REPLY')

        self.mox.ReplayAll()
        data = self.interact(params)
        self.assertEquals(data, 'REPLY')
Beispiel #4
0
    def test_create_expires(self):
        server = doubles.make(self.mox, doubles.Server,
                              id=u'VMID', name=u'name')
        params = {
            u'project': u'PID',
            u'name': u'name',
            u'image': u'image',
            u'instance-type': u'flavor',
            u'expires-at': u'2013-01-17T15:36:00Z'
        }
        instances.client_set_for_tenant(u'PID').AndReturn(self.tcs)
        self.tcs.compute.servers.create(
            name=u'name',
            image=u'image',
            flavor=u'flavor',
            security_groups=None,
            key_name=None,
            admin_pass=None
        ).AndReturn(server)
        instances.InstanceDataDAO.create(u'VMID',
                             expires_at=datetime(2013, 1, 17, 15, 36, 0),
                             remind_at=None)
        instances._instance_to_view(server).AndReturn('REPLY')

        self.mox.ReplayAll()
        data = self.interact(params)
        self.assertEquals(data, 'REPLY')
Beispiel #5
0
    def test_create_fw_rule_set_not_found(self):
        params = {
            u'project': u'PID',
            u'name': u'name',
            u'image': u'image',
            u'instance-type': u'flavor',
            u'fw-rule-sets': [u'3', u'8']
        }
        instances.client_set_for_tenant(u'PID').AndReturn(self.tcs)
        self.tcs.compute.security_groups.get(u'3')\
                .AndRaise(osc_exc.NotFound('failure'))

        self.mox.ReplayAll()
        data = self.interact(params, expected_status_code=400)
        self.assertEquals(u'3', data.get('element-value'))
        self.assertEquals(u'fw-rule-sets', data.get('element-name'))
Beispiel #6
0
    def test_create_fw_rule_set_not_found(self):
        params = {
            u'project': u'PID',
            u'name': u'name',
            u'image': u'image',
            u'instance-type': u'flavor',
            u'fw-rule-sets': [u'3', u'8']
        }
        instances.client_set_for_tenant(u'PID').AndReturn(self.tcs)
        self.tcs.compute.security_groups.get(u'3')\
                .AndRaise(osc_exc.NotFound('failure'))

        self.mox.ReplayAll()
        data = self.interact(params, expected_status_code=400)
        self.assertEquals(u'3', data.get('element-value'))
        self.assertEquals(u'fw-rule-sets', data.get('element-name'))
Beispiel #7
0
    def test_servers_for_user_work(self):
        self.mox.StubOutWithMock(instances, 'client_set_for_tenant')
        tenants = [doubles.make(self.mox, doubles.Tenant, id='P1'),
                   doubles.make(self.mox, doubles.Tenant, id='P3')]
        tcs = self._fake_client_set_factory()

        self.fake_client_set.identity_public.tenants.list() \
                .AndReturn(tenants)
        instances.client_set_for_tenant('P1').AndReturn(tcs)
        tcs.compute.servers.list().AndReturn(['V1', 'V2', 'V3'])

        self.mox.ReplayAll()
        with self.app.test_request_context('/v1/instances?my-projects=true'
                                           '&project:in=P1|P2'):
            self.install_fake_auth()
            instances.parse_collection_request(instances._SCHEMA.sortby)
            result = instances._servers_for_user()
        self.assertEquals(result, ['V1', 'V2', 'V3'])
Beispiel #8
0
    def test_create_overlimit(self):
        params = {
            u'project': u'PID',
            u'name': u'name',
            u'image': u'image',
            u'instance-type': u'flavor'
        }
        instances.client_set_for_tenant(u'PID').AndReturn(self.tcs)
        self.tcs.compute.servers.create(name=u'name',
                                        image=u'image',
                                        flavor=u'flavor',
                                        security_groups=None,
                                        key_name=None,
                                        admin_pass=None).AndRaise(
                                            osc_exc.OverLimit('failure'))

        self.mox.ReplayAll()
        data = self.interact(params, expected_status_code=403)
        self.assertTrue('limits' in data.get('message', '').lower())
Beispiel #9
0
    def test_create(self):
        params = {
            u'project': u'PID',
            u'name': u'name',
            u'image': u'image',
            u'instance-type': u'flavor',
        }
        instances.client_set_for_tenant(u'PID').AndReturn(self.tcs)
        self.tcs.compute.servers.create(name=u'name',
                                        image=u'image',
                                        flavor=u'flavor',
                                        security_groups=None,
                                        key_name=None,
                                        admin_pass=None).AndReturn('VM1')
        instances._instance_to_view('VM1').AndReturn('REPLY')

        self.mox.ReplayAll()
        data = self.interact(params)
        self.assertEquals(data, 'REPLY')
Beispiel #10
0
    def test_servers_for_user_work(self):
        self.mox.StubOutWithMock(instances, 'client_set_for_tenant')
        tenants = [
            doubles.make(self.mox, doubles.Tenant, id='P1'),
            doubles.make(self.mox, doubles.Tenant, id='P3')
        ]
        tcs = self._fake_client_set_factory()

        self.fake_client_set.identity_public.tenants.list() \
                .AndReturn(tenants)
        instances.client_set_for_tenant('P1').AndReturn(tcs)
        tcs.compute.servers.list().AndReturn(['V1', 'V2', 'V3'])

        self.mox.ReplayAll()
        with self.app.test_request_context('/v1/instances?my-projects=true'
                                           '&project:in=P1|P2'):
            self.install_fake_auth()
            instances.parse_collection_request(instances._SCHEMA.sortby)
            result = instances._servers_for_user()
        self.assertEquals(result, ['V1', 'V2', 'V3'])
Beispiel #11
0
    def test_create_overlimit(self):
        params = {
            u'project': u'PID',
            u'name': u'name',
            u'image': u'image',
            u'instance-type': u'flavor'
        }
        instances.client_set_for_tenant(u'PID').AndReturn(self.tcs)
        self.tcs.compute.servers.create(
            name=u'name',
            image=u'image',
            flavor=u'flavor',
            security_groups=None,
            key_name=None,
            admin_pass=None
        ).AndRaise(osc_exc.OverLimit('failure'))

        self.mox.ReplayAll()
        data = self.interact(params, expected_status_code=403)
        self.assertTrue('limits' in data.get('message', '').lower())
Beispiel #12
0
    def test_create(self):
        params = {
            u'project': u'PID',
            u'name': u'name',
            u'image': u'image',
            u'instance-type': u'flavor',
        }
        instances.client_set_for_tenant(u'PID').AndReturn(self.tcs)
        self.tcs.compute.servers.create(
            name=u'name',
            image=u'image',
            flavor=u'flavor',
            security_groups=None,
            key_name=None,
            admin_pass=None
        ).AndReturn('VM1')
        instances._instance_to_view('VM1').AndReturn('REPLY')

        self.mox.ReplayAll()
        data = self.interact(params)
        self.assertEquals(data, 'REPLY')