Exemplo n.º 1
0
    def test_create(self):
        with self.assertRaises(ValidationError):
            env = Environment.create(self.session, 'test-env',
                                        config=self.config)
        env = Environment.create(self.session, 'testenv', config=self.config)
        keys = {k.replace('paths.', ''): self.config[k]
                          for k in self.config if
                          k.startswith('paths.')}

        for key, path in keys.iteritems():
            if key.startswith('virtualenv'):
                continue

            if key.startswith('cgroups'):
                continue

            self.log.debug("%s: %s", key, path)
            self.assertTrue(os.path.isdir(path))

        self.session.commit()
        self.assert_env_paths(env)
Exemplo n.º 2
0
    def test_create_single_cgroup(self):
        controllers =  self.config['paths.cgroups.controllers']
        rel_path = self.config['paths.cgroups.relative_path']

        del self.config['paths.cgroups.controllers']
        self.config['paths.cgroups.relative_path'] = '/'

        env = Environment.create(self.session, 'testenv', config=self.config)
        self.session.commit()
        self.assert_env_paths(env)

        #restore options
        self.config['paths.cgroups.controllers'] = controllers
        self.config['paths.cgroups.realtive_path'] = rel_path
Exemplo n.º 3
0
 def test_delete(self):
     env = Environment.create(self.session, 'testenv', config=self.config)
     env.delete()
Exemplo n.º 4
0
    def test_deploy(self):

        self.import_data()
        owner = self.session.query(User)\
                .filter(User.email == '*****@*****.**').one()
        theme = self.session.query(Theme)\
                .filter(Theme.name == 'uffizi').one()
        env = Environment.create(self.session, 'testenv',
                                 config=self.config)
        instance = Instance.deploy(self.session, 'www.example.com', owner,
                                   env, owner, theme=theme)

        # vassal config is created only upon session commit
        self.assertFalse(os.path.exists(instance.paths.vassal_config))
        self.session.commit()
        self.assertTrue(os.path.exists(instance.paths.vassal_config))

        # various asserts for consistency
        with self.assertRaises(NotSupported):
            instance.domain = 'www.newdomain.com'
        with self.assertRaises(NotImplementedError):
            nt = self.session.query(Theme)\
                    .filter(Theme.name == 'moma').one()
            instance.theme = nt

        # test reload
        os.unlink(instance.paths.vassal_config)
        instance.reload()
        self.assertFalse(os.path.exists(instance.paths.vassal_config))
        self.session.commit()
        self.assertTrue(os.path.exists(instance.paths.vassal_config))
        self.assertTrue(instance.enabled)

        # test disable
        instance.enabled = False
        self.session.commit()
        self.assertFalse(os.path.exists(instance.paths.vassal_config))
        with self.assertRaises(OperationalError):
            instance.reload()

        # disable an already disable instance is a no-op
        self.assertFalse(instance.enabled)
        instance.enabled = False
        self.session.rollback()
        self.assertFalse(instance.enabled)

        # test enable
        instance.enabled = True
        self.assertFalse(os.path.exists(instance.paths.vassal_config))
        self.session.commit()
        self.assertTrue(os.path.exists(instance.paths.vassal_config))

        # enabling an already enabled instance is a no-op
        self.assertTrue(instance.enabled)
        instance.enabled = True
        self.session.rollback()
        self.assertTrue(instance.enabled)

        # test change environment
        newenv = Environment.create(self.session, 'testenv2',
                                    config=self.config)
        with self.assertRaises(OperationalError):
            instance.environment = newenv
        self.assertEqual(instance.environment, env)

        instance.enabled = False
        self.session.commit()

        instance.environment = newenv
        self.assertFalse(hasattr(instance, "_paths"))
        self.session.commit()

        self.assertEqual(instance.environment, newenv)
        instance.enabled = True
        self.session.commit()

        # "test" migration: call it at least once :(
        instance.upgrade_schema('head')

        # create an archive
        instance.archive(archive_name='test')
        p = os.path.join(instance.environment.paths.archives,
                         "test.tar.gz")
        self.assertTrue(os.path.exists(p))

        # test restore and delete
        with self.assertRaises(OperationalError):
            instance.delete()

        with self.assertRaises(OperationalError):
            instance.restore(archive_name='test')

        instance.enabled = False
        self.session.commit()
        #instance.restore(archive_name='test')

        instance.delete()
        self.assertFalse(os.path.exists(instance.paths.dir))
        self.session.commit()
        self.assertFalse(os.path.exists(instance.paths.dir))

        # todo assert database is not present

        """
Exemplo n.º 5
0
def create(session, task, name, virtualenv_name=None):
    env = Environment.create(session, name, virtualenv_name)
    return env.name