def test_GetKeys(self): p = Puck(transport=MockTransport) keys = p.getKeys() self.assertTrue(isinstance(keys, dict)) self.assertGreater(len(keys.keys()), 0) for k in keys: self.assertEqual(keys[k].keys().sort(), getKey().keys().sort(), "getKeys dict keys are not the same as expected.")
def test_GetEnvironments(self): p = Puck(transport=MockTransport) env = p.getEnvironments() self.assertIsInstance(env, list) self.assertIsInstance(env[0], dict) self.assertGreater(len(env[0].keys()), 0) attrs = ['code', 'id', 'name'] [[self.assertTrue(e.has_key(a)) for a in attrs] for e in env]
def test_GetJails(self): p = Puck(transport=MockTransport) jails = p.getJails(None) self.assertTrue(isinstance(jails, dict), "getJails() did not return a dictionary.") self.assertGreater(len(jails.keys()), 0) for k in jails: self.assertGreater(len(jails[k]), 0, "No jails under `%s`" % k) for i in jails[k]: self.assertEqual(jails[k][i].keys().sort(), getJail().keys().sort(), "getJails dict keys are not the same as expected.")
def test_loadRegistration(self): p = Puck(transport=MockTransport) p._registration_file = '/tmp/non-existent-reg' self.assertFalse(p._loadRegistration()) with open("/tmp/reg-test", 'w') as f: f.write('test') p._registration_file = '/tmp/reg-test' reg = p._loadRegistration() self.assertIsInstance(reg, dict) attrs = [ 'status', 'instance_id', 'name', 'image_id', 'ip', 'config', 'instance_type_id', 'id', 'user' ] for a in attrs: self.assertTrue(reg.has_key(a))
def testGetVM(self): p = Puck(transport=MockTransport) self.assertTrue(isinstance(p.getVM(), VM))
def test_GetYumRepo(self): p = Puck(transport=MockTransport) repo = p.getYumRepo('development') self.assertTrue(isinstance(repo, dict)) self.assertTrue(repo.has_key('data')) self.assertGreater(len(repo['data']), 0, "Empty repo data!")
args = parser.parse_args() (pid, ezjl_socket) = start_jail_launcher() if args.daemonize: daemonizer = cherrypy.process.plugins.Daemonizer(cherrypy.engine) daemonizer.subscribe() cherrypy.config.update(args.config) lookup = TemplateLookup( directories=[os.path.join(args.templatedir, reldir) for reldir in ["html"]] ) puck = Puck() puck.getVM().jails.setSocket(ezjl_socket) root = RootController(lookup, puck) root.configure = ConfigurationController(lookup, puck) root.setup = SetupController(lookup, puck) cherrypy.engine.vmsetup = SetupPlugin(puck, cherrypy.engine) cherrypy.engine.vmsetup.subscribe() cherrypy.process.plugins.SignalHandler.handlers['SIGINT'] = cherrypy.engine.exit cherrypy.engine.signal_handler.subscribe() if hasattr(cherrypy.engine, "console_control_handler"): cherrypy.engine.console_control_handler.subscribe()