def test_update_sg_with_configured_id(self):
        mock_zk = self._api_server._db_conn._zk_db
        sg_obj = SecurityGroup('%s-sg' % self.id())

        self.api.security_group_create(sg_obj)

        sg_obj = self.api.security_group_read(id=sg_obj.uuid)
        allocated_sg_id = sg_obj.security_group_id
        configured_sg_id = sg_obj.configured_security_group_id
        self.assertEqual(sg_obj.get_fq_name_str(),
                         mock_zk.get_sg_from_id(allocated_sg_id))
        self.assertEqual(configured_sg_id, 0)

        sg_obj.set_configured_security_group_id(42)
        self.api.security_group_update(sg_obj)

        sg_obj = self.api.security_group_read(id=sg_obj.uuid)
        sg_id = sg_obj.security_group_id
        configured_sg_id = sg_obj.configured_security_group_id
        self.assertEqual(sg_id, 42)
        self.assertEqual(configured_sg_id, 42)
        self.assertNotEqual(mock_zk.get_sg_from_id(sg_id),
                            sg_obj.get_fq_name_str())

        sg_obj.set_configured_security_group_id(0)
        self.api.security_group_update(sg_obj)

        sg_obj = self.api.security_group_read(id=sg_obj.uuid)
        allocated_sg_id = sg_obj.security_group_id
        configured_sg_id = sg_obj.configured_security_group_id
        self.assertEqual(sg_obj.get_fq_name_str(),
                         mock_zk.get_sg_from_id(allocated_sg_id))
        self.assertEqual(configured_sg_id, 0)
    def test_update_sg_with_configured_id(self):
        mock_zk = self._api_server._db_conn._zk_db
        sg_obj = SecurityGroup('%s-sg' % self.id())

        self.api.security_group_create(sg_obj)

        sg_obj = self.api.security_group_read(id=sg_obj.uuid)
        allocated_sg_id = sg_obj.security_group_id
        configured_sg_id = sg_obj.configured_security_group_id
        self.assertEqual(sg_obj.get_fq_name_str(),
                         mock_zk.get_sg_from_id(allocated_sg_id))
        self.assertEqual(configured_sg_id, 0)

        sg_obj.set_configured_security_group_id(42)
        self.api.security_group_update(sg_obj)

        sg_obj = self.api.security_group_read(id=sg_obj.uuid)
        sg_id = sg_obj.security_group_id
        configured_sg_id = sg_obj.configured_security_group_id
        self.assertEqual(sg_id, 42)
        self.assertEqual(configured_sg_id, 42)
        self.assertNotEqual(mock_zk.get_sg_from_id(sg_id),
                            sg_obj.get_fq_name_str())

        sg_obj.set_configured_security_group_id(0)
        self.api.security_group_update(sg_obj)

        sg_obj = self.api.security_group_read(id=sg_obj.uuid)
        allocated_sg_id = sg_obj.security_group_id
        configured_sg_id = sg_obj.configured_security_group_id
        self.assertEqual(sg_obj.get_fq_name_str(),
                         mock_zk.get_sg_from_id(allocated_sg_id))
        self.assertEqual(configured_sg_id, 0)
    def test_create_sg_with_configured_id_is_limited(self):
        sg_obj = SecurityGroup('%s-sg' % self.id())

        sg_obj.set_configured_security_group_id(8000000)
        with ExpectedException(BadRequest):
            self.api.security_group_create(sg_obj)

        sg_obj.set_configured_security_group_id(-1)
        with ExpectedException(BadRequest):
            self.api.security_group_create(sg_obj)
    def test_create_sg_with_configured_id_is_limited(self):
        sg_obj = SecurityGroup('%s-sg' % self.id())

        sg_obj.set_configured_security_group_id(8000000)
        with ExpectedException(BadRequest):
            self.api.security_group_create(sg_obj)

        sg_obj.set_configured_security_group_id(-1)
        with ExpectedException(BadRequest):
            self.api.security_group_create(sg_obj)