def test_phone_home(self):
        instance_id = data_factory.generate_random_string(12)
        address = '127.0.0.1'
        port = network.find_free_port(address=address)
        server = cloudinit.PhoneHomeServer((address, port), instance_id)
        self.assertFalse(server.instance_phoned_back)

        server_thread = threading.Thread(target=server.handle_request)
        server_thread.start()
        conn = http_client.HTTPConnection(address, port)

        # contact the wrong url, and check the server does not
        # consider it a call back from the expected caller
        conn.request('POST', '/BAD_INSTANCE_ID')
        try:
            conn.getresponse()
        except:
            pass
        self.assertFalse(server.instance_phoned_back)
        conn.close()

        # now the right url
        server_thread = threading.Thread(target=server.handle_request)
        server_thread.start()
        conn = http_client.HTTPConnection(address, port)
        conn.request('POST', '/' + instance_id)
        try:
            conn.getresponse()
        except:
            pass
        self.assertTrue(server.instance_phoned_back)
        conn.close()
        server.server_close()
Esempio n. 2
0
 def setUp(self):
     # LinuxTest does many replay-incompatible things, but includes
     # useful methods. Do not setup LinuxTest here and just
     # call some functions.
     super(LinuxTest, self).setUp()
     self._set_distro()
     self.boot_path = self.download_boot()
     self.phone_server = cloudinit.PhoneHomeServer(('0.0.0.0', 0),
                                                   self.name)
     ssh_pubkey, self.ssh_key = self.set_up_existing_ssh_keys()
     self.cloudinit_path = self.prepare_cloudinit(ssh_pubkey)
 def setUp(self):
     self.port = network.find_free_port(address=self.ADDRESS, sequent=False)
     self.instance_id = data_factory.generate_random_string(12)
     self.server = cloudinit.PhoneHomeServer((self.ADDRESS, self.port),
                                             self.instance_id)
Esempio n. 4
0
 def set_up_cloudinit(self, ssh_pubkey=None):
     self.phone_server = cloudinit.PhoneHomeServer(('0.0.0.0', 0),
                                                   self.name)
     cloudinit_iso = self.prepare_cloudinit(ssh_pubkey)
     self.vm.add_args('-drive', 'file=%s,format=raw' % cloudinit_iso)
 def setUp(self):
     self.instance_id = data_factory.generate_random_string(12)
     self.server = cloudinit.PhoneHomeServer((self.ADDRESS, 0),
                                             self.instance_id)