def __init__(self): print "You are about to generate a puppet master server!" print "If one already exists, this method will fail. Please modify the code and rerun." print "If you want to learn puppet, use generic servers instead!" print "You can continue if you know the consequences of having multiple puppetmasters." sleep(3) # need to init the parent object to get connections BaseServer.__init__(self, "Puppetmaster") # Stop if puppetmaster exists if utils.get_puppetmaster_instance(self.ec2_conn) is not None: print "... and a puppetmaster exists. We're stopping now!" raise Exception("Puppetmaster exists!") # parameters are very specific. # use a string with comma separation between security groups!! # using lists will cause a creation to fail! self.params = [ ("Hostname", self.hostname), ("PrivateIpAddress", self.private_ip), ("SubnetType",self.privacy_setting), ("SubnetRegion", self.subnet["az"]), ("InstanceType", self.instance_type), ("SecurityGroupIds", self.security_groups)]
def __init__(self): BaseServer.__init__(self, "Lists") self.params = [ ("Hostname", self.hostname), ("PrivateIpAddress", self.private_ip), ("SubnetType", self.privacy_setting), ("SubnetRegion", self.subnet["az"]), ("PuppetmasterIP", self.puppetmaster_ip), ("PuppetmasterHostname", self.puppetmaster_hostname), ("InstanceType", self.instance_type), ("SecurityGroupIds", self.security_groups)]
def __init__(self): # need to init the parent object to get connections BaseServer.__init__(self, "File") self._volumes = [self._hcfg2_configuration[vdev] for vdev in self._hcfg2_configuration['vdevs']] self.params = [ ("Hostname", self.hostname), ("PrivateIpAddress", self.private_ip), ("SubnetType", self.privacy_setting), ("SubnetRegion", self.subnet["az"]), ("PuppetmasterIP", self.puppetmaster_ip), ("PuppetmasterHostname", self.puppetmaster_hostname), ("InstanceType", self.instance_type), ("SecurityGroupIds", self.security_groups)]
def __init__(self): BaseServer.__init__(self, "Generic") self._pokemon = Pokemon.get_pokemon(self.host_number) print "You chose: " + self._pokemon self.params = [ ("Hostname", self.hostname), ("Pokemon", self._pokemon), ("PrivateIpAddress", self.private_ip), ("SubnetType", self.privacy_setting), ("SubnetRegion", self.subnet["az"]), ("PuppetmasterIP", self.puppetmaster_ip), ("PuppetmasterHostname", self.puppetmaster_hostname), ("InstanceType", self.instance_type), ("SecurityGroupIds", self.security_groups)]
class BaseServerTest(unittest.TestCase): def setUp(self): self.transport = proto_helpers.FakeDatagramTransport() self.server = BaseServer(prompt=MockedPrompt()) self.server.transport = self.transport self.FAKE_ENDPOINT = ('111.22.33.44', 4000) def _connect(self): msg = 'CONNECT|127.0.0.1|3000|Buddy' self.server.datagramReceived(msg, self.FAKE_ENDPOINT) def _is_connected(self): return self.FAKE_ENDPOINT in self.server.clients def test_connect(self): self._connect() resp, addr = self.transport.written[0] self.assertEqual(resp, 'RESP|SUCCESS|') self.assertEqual(addr, self.FAKE_ENDPOINT) self.assertTrue(self._is_connected()) def test_ignoreExcessConnects(self): for x in xrange(10): self._connect() self.assertEqual(len(self.server.clients), 1) def test_timedDisconnect(self): self._connect() # still connected after 30 heartbeats for x in xrange(30): self.server.sendHeartbeat() self.assertTrue(self._is_connected()) # disconnected after 31th heartbeat self.server.sendHeartbeat() self.assertFalse(self._is_connected())
def setUp(self): self.transport = proto_helpers.FakeDatagramTransport() self.server = BaseServer(prompt=MockedPrompt()) self.server.transport = self.transport self.FAKE_ENDPOINT = ('111.22.33.44', 4000)