Ejemplo n.º 1
0
    def test_create_file_handle_webhandle(self, fake_tarfile, fake_exists,
                                          fake_webhandle):
        """Ova - ``_create_file_handle`` instantiates WebHandle if the supplied file does not exist"""
        fake_exists.return_value = False

        my_ova = ova.Ova("http://some/file")

        self.assertTrue(fake_exists.called)
        self.assertTrue(fake_webhandle.called)
Ejemplo n.º 2
0
    def test_create_file_handle_filehandle(self, fake_tarfile, fake_exists,
                                           fake_filehandle):
        """Ova - ``_create_file_handle`` instantiates FileHandle if the supplied file exists"""
        fake_exists.return_value = True

        my_ova = ova.Ova("/some/file")

        self.assertTrue(fake_exists.called)
        self.assertTrue(fake_filehandle.called)
Ejemplo n.º 3
0
    def test_vmdks_property_ro(self, fake_create_file_handle, fake_tarfile):
        """Ova - ``vmdks`` property is read-only"""
        fake_tar = MagicMock()
        fake_tar.getnames.return_value = ['some.vmdk', 'the.ovf']
        fake_tar.extractfile.return_value.read.return_value.decode.return_value = 'woot'
        fake_tarfile.open.return_value = fake_tar
        my_ova = ova.Ova('/some/file')

        with self.assertRaises(AttributeError):
            my_ova.vmdks = ['doh']
Ejemplo n.º 4
0
    def test_close(self, fake_create_file_handle, fake_tarfile):
        """Ova - ``close`` closes the file handle"""
        fake_tar = MagicMock()
        fake_tar.getnames.return_value = ['some.vmdk', 'the.ovf']
        fake_tar.extractfile.return_value.read.return_value.decode.return_value = 'woot'
        fake_tarfile.open.return_value = fake_tar
        my_ova = ova.Ova('/some/file')

        my_ova.close()

        self.assertTrue(my_ova._handle.close.called)
Ejemplo n.º 5
0
    def test_ovf_property(self, fake_create_file_handle, fake_tarfile):
        """Ova - ``ovf`` property returns the contents of the OVF file within the OVA"""
        fake_tar = MagicMock()
        fake_tar.getnames.return_value = ['some.vmdk', 'the.ovf']
        fake_tar.extractfile.return_value.read.return_value.decode.return_value = 'woot'
        fake_tarfile.open.return_value = fake_tar
        my_ova = ova.Ova('/some/file')

        expected = 'woot'
        result = my_ova.ovf

        self.assertEqual(expected, result)
Ejemplo n.º 6
0
    def test_networks_property(self, fake_create_file_handle, fake_tarfile):
        """Ova - ``networks`` property parses the OVF and returns all the network names"""
        fake_tar = MagicMock()
        fake_tar.getnames.return_value = ['some.vmdk', 'the.ovf']
        fake_tar.extractfile.return_value.read.return_value.decode.return_value = 'Network ovf:name="wooter"\nNetwork ovf:name="anotherWoot"'
        fake_tarfile.open.return_value = fake_tar
        my_ova = ova.Ova('/some/file')

        expected = ['wooter', 'anotherWoot']
        result = my_ova.networks

        self.assertEqual(expected, result)
Ejemplo n.º 7
0
    def test_chime_progress(self, fake_create_file_handle, fake_tarfile,
                            fake_timer):
        """Ova - ``_chime_progress`` starts a Timer"""
        fake_tar = MagicMock()
        fake_tar.getnames.return_value = ['some.vmdk', 'the.ovf']
        fake_tar.extractfile.return_value.read.return_value.decode.return_value = 'woot'
        fake_tarfile.open.return_value = fake_tar
        my_ova = ova.Ova('/some/file')

        my_ova._chime_progress('some lease object')

        self.assertTrue(fake_timer.called)
Ejemplo n.º 8
0
    def test_vmdks_property(self, fake_create_file_handle, fake_tarfile):
        """Ova - ``vmdks`` property returns the disk names"""
        fake_tar = MagicMock()
        fake_tar.getnames.return_value = ['some.vmdk', 'the.ovf']
        fake_tar.extractfile.return_value.read.return_value.decode.return_value = 'woot'
        fake_tarfile.open.return_value = fake_tar
        my_ova = ova.Ova('/some/file')

        expected = ['some.vmdk']
        result = my_ova.vmdks

        self.assertEqual(expected, result)
Ejemplo n.º 9
0
    def test_init_extracts_vmdks(self, fake_create_file_handle, fake_tarfile):
        """Ova - ``__init__`` extracts the OVF file from the OVA"""
        fake_tar = MagicMock()
        fake_tar.getnames.return_value = ['some.vmdk', 'the.ovf']
        fake_tar.extractfile.return_value.read.return_value.decode.return_value = 'woot'
        fake_tarfile.open.return_value = fake_tar
        my_ova = ova.Ova('/some/file')

        expected = ['some.vmdk']
        result = list(my_ova._disks.keys())

        self.assertEqual(expected, result)
Ejemplo n.º 10
0
    def test_timer(self, fake_create_file_handle, fake_tarfile,
                   fake_chime_progress):
        """Ova - ``_timer`` schedules another Timer while upload is still progressing"""
        fake_tar = MagicMock()
        fake_tar.getnames.return_value = ['some.vmdk', 'the.ovf']
        fake_tar.extractfile.return_value.read.return_value.decode.return_value = 'woot'
        fake_tarfile.open.return_value = fake_tar
        fake_lease = MagicMock()
        my_ova = ova.Ova('/some/file')

        my_ova._timer(fake_lease)

        self.assertTrue(fake_chime_progress.called)
Ejemplo n.º 11
0
    def test_upload_disk_none(self, fake_create_file_handle, fake_tarfile,
                              fake_urlopen):
        """Ova - ``_upload_disk`` preps the OVA for deployment again"""
        fake_tar = MagicMock()
        fake_tar.getnames.return_value = ['some.vmdk', 'the.ovf']
        fake_tar.extractfile.return_value.read.return_value.decode.return_value = 'woot'
        fake_tarfile.open.return_value = fake_tar
        fake_disk = MagicMock()
        fake_disk.path = 'someOther.vmdk'
        my_ova = ova.Ova('/some/file')

        my_ova._upload_disk(fake_disk)

        self.assertFalse(fake_urlopen.called)
Ejemplo n.º 12
0
    def test_deploy_progress_property(self, fake_create_file_handle,
                                      fake_tarfile):
        """Ova - ``deploy_progress`` property returns the deploy progress"""
        fake_tar = MagicMock()
        fake_tar.getnames.return_value = ['some.vmdk', 'the.ovf']
        fake_tar.extractfile.return_value.read.return_value.decode.return_value = 'woot'
        fake_tarfile.open.return_value = fake_tar
        my_ova = ova.Ova('/some/file')
        my_ova._prog = 50

        result = my_ova.deploy_progress
        expected = 50

        self.assertEqual(result, expected)
Ejemplo n.º 13
0
    def test_timer_race(self, fake_create_file_handle, fake_tarfile,
                        fake_chime_progress):
        """Ova - ``_timer`` handles race between upload completion and chiming progress"""
        fake_tar = MagicMock()
        fake_tar.getnames.return_value = ['some.vmdk', 'the.ovf']
        fake_tar.extractfile.return_value.read.return_value.decode.return_value = 'woot'
        fake_tarfile.open.return_value = fake_tar
        fake_lease = MagicMock()
        fake_lease.Progress.side_effect = [vmodl.fault.ManagedObjectNotFound()]
        my_ova = ova.Ova('/some/file')

        my_ova._timer(fake_lease)

        self.assertFalse(fake_lease.Abort.called)
Ejemplo n.º 14
0
    def test_timer_error(self, fake_create_file_handle, fake_tarfile,
                         fake_chime_progress):
        """Ova - ``_timer`` does not schedule another Timer when the upload has failed"""
        fake_tar = MagicMock()
        fake_tar.getnames.return_value = ['some.vmdk', 'the.ovf']
        fake_tar.extractfile.return_value.read.return_value.decode.return_value = 'woot'
        fake_tarfile.open.return_value = fake_tar
        fake_lease = MagicMock()
        fake_lease.state = 'error'
        my_ova = ova.Ova('/some/file')

        my_ova._timer(fake_lease)

        self.assertFalse(fake_chime_progress.called)
Ejemplo n.º 15
0
    def test_timer_exception(self, fake_create_file_handle, fake_tarfile,
                             fake_sys):
        """Ova - ``_timer`` aborts the upload if there's any Exceptions"""
        fake_tar = MagicMock()
        fake_tar.getnames.return_value = ['some.vmdk', 'the.ovf']
        fake_tar.extractfile.return_value.read.return_value.decode.return_value = 'woot'
        fake_tarfile.open.return_value = fake_tar
        fake_lease = MagicMock()
        fake_lease.Progress.side_effect = [Exception('testing')]
        my_ova = ova.Ova('/some/file')

        my_ova._timer(fake_lease)

        self.assertTrue(fake_lease.Abort.called)
        self.assertTrue(fake_sys.stderr.flush.called)
Ejemplo n.º 16
0
    def test_deploy(self, fake_create_file_handle, fake_tarfile,
                    fake_upload_disk, fake_chime_progress, fake_reset):
        """Ova - ``deploy`` happy path test"""
        fake_tar = MagicMock()
        fake_tar.getnames.return_value = ['some.vmdk', 'the.ovf']
        fake_tar.extractfile.return_value.read.return_value.decode.return_value = 'woot'
        fake_tarfile.open.return_value = fake_tar
        fake_lease = MagicMock()
        fake_deploy_spec = MagicMock()
        fake_deploy_spec.fileItem = [MagicMock()]
        my_ova = ova.Ova('/some/file')

        my_ova.deploy(fake_deploy_spec, fake_lease, 'my-vcenter-host')

        self.assertTrue(fake_upload_disk.called)
        self.assertTrue(fake_reset.called)
Ejemplo n.º 17
0
    def test_deploy_exception(self, fake_create_file_handle, fake_tarfile,
                              fake_upload_disk, fake_chime_progress,
                              fake_reset):
        """Ova - ``deploy`` abofts if any Exception is raised"""
        fake_tar = MagicMock()
        fake_tar.getnames.return_value = ['some.vmdk', 'the.ovf']
        fake_tar.extractfile.return_value.read.return_value.decode.return_value = 'woot'
        fake_tarfile.open.return_value = fake_tar
        fake_lease = MagicMock()
        fake_deploy_spec = MagicMock()
        fake_deploy_spec.fileItem = [MagicMock()]
        fake_upload_disk.side_effect = Exception('testing')
        my_ova = ova.Ova('/some/file')

        with self.assertRaises(Exception):
            my_ova.deploy(fake_deploy_spec, fake_lease, 'my-vcenter-host')

        self.assertTrue(fake_lease.Abort.called)
Ejemplo n.º 18
0
    def test_get_device_url_raises(self, fake_create_file_handle,
                                   fake_tarfile):
        """Ova - ``_get_device_url`` raises RuntimeError if nothing matches"""
        fake_tar = MagicMock()
        fake_tar.getnames.return_value = ['some.vmdk', 'the.ovf']
        fake_tar.extractfile.return_value.read.return_value.decode.return_value = 'woot'
        fake_tarfile.open.return_value = fake_tar
        fake_device1 = MagicMock()
        fake_device1.importKey = 'foo'
        fake_device1.url = 'https://foo'
        fake_lease = MagicMock()
        fake_lease.info.deviceUrl = [fake_device1]
        fake_file_item = MagicMock()
        fake_file_item.deviceId = 'bar'
        my_ova = ova.Ova('/some/file')
        my_ova._lease = fake_lease

        with self.assertRaises(RuntimeError):
            my_ova._get_device_url(fake_file_item)
Ejemplo n.º 19
0
    def test_reset(self, fake_create_file_handle, fake_tarfile):
        """Ova - ``_reset`` preps the OVA for deployment again"""
        fake_tar = MagicMock()
        fake_tar.getnames.return_value = ['some.vmdk', 'the.ovf']
        fake_tar.extractfile.return_value.read.return_value.decode.return_value = 'woot'
        fake_tarfile.open.return_value = fake_tar
        my_ova = ova.Ova('/some/file')
        my_ova._spec = 'some spec'
        my_ova._lease = 'some lease'
        my_ova._host = 'some-vc-host'
        my_ova._prog = 100

        my_ova._reset()

        self.assertEqual(my_ova._spec, None)
        self.assertEqual(my_ova._lease, None)
        self.assertEqual(my_ova._host, None)
        self.assertEqual(my_ova._prog, None)
        self.assertTrue(my_ova._disks['some.vmdk'].seek.called)
Ejemplo n.º 20
0
    def test_get_device_url(self, fake_create_file_handle, fake_tarfile):
        """Ova - ``_get_device_url`` returns the upload URL when the import key matches"""
        fake_tar = MagicMock()
        fake_tar.getnames.return_value = ['some.vmdk', 'the.ovf']
        fake_tar.extractfile.return_value.read.return_value.decode.return_value = 'woot'
        fake_tarfile.open.return_value = fake_tar
        fake_device1 = MagicMock()
        fake_device1.importKey = 'foo'
        fake_device1.url = 'https://foo'
        fake_device2 = MagicMock()
        fake_device2.importKey = 'bar'
        fake_device2.url = 'https://bar'
        fake_lease = MagicMock()
        fake_lease.info.deviceUrl = [fake_device1, fake_device2]
        fake_file_item = MagicMock()
        fake_file_item.deviceId = 'bar'
        my_ova = ova.Ova('/some/file')
        my_ova._lease = fake_lease

        result = my_ova._get_device_url(fake_file_item)
        expected = 'https://bar'

        self.assertEqual(result, expected)