def test_get_works(self):
     arg = u'42'
     sg = doubles.make(self.mox, doubles.SecurityGroup,
                       id=u'SGID', name=u'Test SG',
                       description=u'XXX', tenant_id=u'TENANT')
     self.fake_client_set.compute.security_groups.get(arg).AndReturn(sg)
     fw_rule_sets._sg_to_view(sg).AndReturn('REPLY')
     self.mox.ReplayAll()
     rv = self.client.get('/v1/fw-rule-sets/%s' % arg)
     data = self.check_and_parse_response(rv)
     self.assertEquals(data, 'REPLY')
    def test_create_no_description(self):
        params = {'project': u'TENANT', 'name': u'Test SG'}
        tcs = mock_client_set(self.mox)
        fw_rule_sets.client_set_for_tenant(u'TENANT', fallback_to_api=True,
                                           eperm_status=404) \
                .AndReturn(tcs)
        tcs.compute.security_groups.create(name=u'Test SG',
                                           description='').AndReturn('SG')
        fw_rule_sets._sg_to_view('SG').AndReturn('REPLY')

        self.mox.ReplayAll()

        data = self.interact(params)
        self.assertEquals(data, 'REPLY')
 def test_get_works(self):
     arg = u'42'
     sg = doubles.make(self.mox,
                       doubles.SecurityGroup,
                       id=u'SGID',
                       name=u'Test SG',
                       description=u'XXX',
                       tenant_id=u'TENANT')
     self.fake_client_set.compute.security_groups.get(arg).AndReturn(sg)
     fw_rule_sets._sg_to_view(sg).AndReturn('REPLY')
     self.mox.ReplayAll()
     rv = self.client.get('/v1/fw-rule-sets/%s' % arg)
     data = self.check_and_parse_response(rv)
     self.assertEquals(data, 'REPLY')
    def test_list_for_my_projects(self):
        tenant = doubles.make(self.mox, doubles.Tenant, name='t1', id=u'PID1')

        self.fake_client_set.identity_public.tenants.list().AndReturn([tenant])

        tcs1 = mock_client_set(self.mox)
        fw_rule_sets.client_set_for_tenant(u'PID1', fallback_to_api=True) \
                .AndReturn(tcs1)
        tcs1.compute.security_groups.list().AndReturn(['SG1'])
        fw_rule_sets._sg_to_view('SG1', tenant.name).AndReturn('REPLY1')

        self.mox.ReplayAll()
        rv = self.client.get('/v1/fw-rule-sets/?my-projects=true')
        data = self.check_and_parse_response(rv)
        self.assertEquals(data.get('fw-rule-sets'), ['REPLY1'])
    def test_sg_to_view_works(self):
        tenant = doubles.make(self.mox, doubles.Tenant,
                              id=u'PID', name=u'Tenant')
        sg = doubles.make(self.mox, doubles.SecurityGroup,
                          id=42, name=u'Test SG',
                          description=u'XXX', tenant_id=u'PID')

        expected = {
            u'id': u'42',
            u'name': u'Test SG',
            u'description': u'XXX',
            u'project': {
                u'id': u'PID',
                u'href': '/v1/projects/PID',
                u'name': u'Tenant'
            },
            u'rules-href': u'/v1/fw-rule-sets/42/rules/',
            u'href': u'/v1/fw-rule-sets/42'
        }

        self.mox.ReplayAll()

        with self.app.test_request_context():
            res = fw_rule_sets._sg_to_view(sg, tenant.name)
        self.assertEquals(expected, res)
    def test_list_for_my_projects(self):
        tenant = doubles.make(self.mox, doubles.Tenant,
                              name='t1', id=u'PID1')

        self.fake_client_set.identity_public.tenants.list().AndReturn([tenant])

        tcs1 = mock_client_set(self.mox)
        fw_rule_sets.client_set_for_tenant(u'PID1', fallback_to_api=True) \
                .AndReturn(tcs1)
        tcs1.compute.security_groups.list().AndReturn(['SG1'])
        fw_rule_sets._sg_to_view('SG1', tenant.name).AndReturn('REPLY1')

        self.mox.ReplayAll()
        rv = self.client.get('/v1/fw-rule-sets/?my-projects=true')
        data = self.check_and_parse_response(rv)
        self.assertEquals(data.get('fw-rule-sets'), ['REPLY1'])
    def test_sg_to_view_works(self):
        tenant = doubles.make(self.mox,
                              doubles.Tenant,
                              id=u'PID',
                              name=u'Tenant')
        sg = doubles.make(self.mox,
                          doubles.SecurityGroup,
                          id=42,
                          name=u'Test SG',
                          description=u'XXX',
                          tenant_id=u'PID')

        expected = {
            u'id': u'42',
            u'name': u'Test SG',
            u'description': u'XXX',
            u'project': {
                u'id': u'PID',
                u'href': '/v1/projects/PID',
                u'name': u'Tenant'
            },
            u'rules-href': u'/v1/fw-rule-sets/42/rules/',
            u'href': u'/v1/fw-rule-sets/42'
        }

        self.mox.ReplayAll()

        with self.app.test_request_context():
            res = fw_rule_sets._sg_to_view(sg, tenant.name)
        self.assertEquals(expected, res)
    def test_create_no_description(self):
        params = {
            'project': u'TENANT',
            'name': u'Test SG'
        }
        tcs = mock_client_set(self.mox)
        fw_rule_sets.client_set_for_tenant(u'TENANT', fallback_to_api=True,
                                           eperm_status=404) \
                .AndReturn(tcs)
        tcs.compute.security_groups.create(
            name=u'Test SG', description='').AndReturn('SG')
        fw_rule_sets._sg_to_view('SG').AndReturn('REPLY')

        self.mox.ReplayAll()

        data = self.interact(params)
        self.assertEquals(data, 'REPLY')
    def test_list_works(self):
        tenants = (
            doubles.make(self.mox, doubles.Tenant, name='t1', id=u'PID1'),
            doubles.make(self.mox, doubles.Tenant, name='systenant', id=u'S'),
            doubles.make(self.mox, doubles.Tenant, name='t2', id=u'PID2'))

        self.fake_client_set.identity_admin.tenants.list().AndReturn(tenants)

        tcs1 = mock_client_set(self.mox)
        fw_rule_sets.client_set_for_tenant(u'PID1', fallback_to_api=True) \
                .AndReturn(tcs1)
        tcs1.compute.security_groups.list().AndReturn(['SG1', 'SG2'])
        fw_rule_sets._sg_to_view('SG1', tenants[0].name).AndReturn('REPLY1')
        fw_rule_sets._sg_to_view('SG2', tenants[0].name).AndReturn('REPLY2')

        tcs2 = mock_client_set(self.mox)
        fw_rule_sets.client_set_for_tenant(u'PID2', fallback_to_api=True) \
                .AndReturn(tcs2)
        tcs2.compute.security_groups.list().AndReturn(['SG3'])
        fw_rule_sets._sg_to_view('SG3', tenants[2].name).AndReturn('REPLY3')

        expected = {
            'collection': {
                'name': 'fw-rule-sets',
                'size': 3
            },
            'fw-rule-sets': ['REPLY1', 'REPLY2', 'REPLY3']
        }

        self.mox.ReplayAll()
        rv = self.client.get('/v1/fw-rule-sets/')
        data = self.check_and_parse_response(rv)
        self.assertEquals(data, expected)
    def test_list_works(self):
        tenants = (doubles.make(self.mox,
                                doubles.Tenant,
                                name='t1',
                                id=u'PID1'),
                   doubles.make(self.mox,
                                doubles.Tenant,
                                name='systenant',
                                id=u'S'),
                   doubles.make(self.mox,
                                doubles.Tenant,
                                name='t2',
                                id=u'PID2'))

        self.fake_client_set.identity_admin.tenants.list().AndReturn(tenants)

        tcs1 = mock_client_set(self.mox)
        fw_rule_sets.client_set_for_tenant(u'PID1', fallback_to_api=True) \
                .AndReturn(tcs1)
        tcs1.compute.security_groups.list().AndReturn(['SG1', 'SG2'])
        fw_rule_sets._sg_to_view('SG1', tenants[0].name).AndReturn('REPLY1')
        fw_rule_sets._sg_to_view('SG2', tenants[0].name).AndReturn('REPLY2')

        tcs2 = mock_client_set(self.mox)
        fw_rule_sets.client_set_for_tenant(u'PID2', fallback_to_api=True) \
                .AndReturn(tcs2)
        tcs2.compute.security_groups.list().AndReturn(['SG3'])
        fw_rule_sets._sg_to_view('SG3', tenants[2].name).AndReturn('REPLY3')

        expected = {
            'collection': {
                'name': 'fw-rule-sets',
                'size': 3
            },
            'fw-rule-sets': ['REPLY1', 'REPLY2', 'REPLY3']
        }

        self.mox.ReplayAll()
        rv = self.client.get('/v1/fw-rule-sets/')
        data = self.check_and_parse_response(rv)
        self.assertEquals(data, expected)