예제 #1
0
    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)]
예제 #2
0
파일: lists.py 프로젝트: hcs/hcs-cloud
    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)]
예제 #3
0
파일: file.py 프로젝트: hcs/hcs-cloud
    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)]
예제 #4
0
파일: generic.py 프로젝트: hcs/hcs-cloud
    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)]
예제 #5
0
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())
예제 #6
0
 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)