def test_missing_in_ganeti(self): """ Tests missing_in_ganeti property """ cluster = Cluster(hostname='ganeti.example.test') cluster.save() vm_current = VirtualMachine(cluster=cluster, hostname='gimager2.example.bak') vm_removed = VirtualMachine(cluster=cluster, hostname='does.not.exist.org') vm_current.save() vm_removed.save() self.assertEqual([u'does.not.exist.org'], cluster.missing_in_ganeti) vm_current.delete() vm_removed.delete() cluster.delete()
def test_sync_virtual_machines(self): """ Tests synchronizing cached virtuals machines (stored in db) with info the ganeti cluster is storing Verifies: * VMs no longer in ganeti are deleted * VMs missing from the database are added """ cluster = Cluster(hostname='ganeti.example.test') cluster.save() vm_missing = 'gimager.example.bak' vm_current = VirtualMachine(cluster=cluster, hostname='gimager2.example.bak') vm_removed = VirtualMachine(cluster=cluster, hostname='does.not.exist.org') vm_current.save() vm_removed.save() cluster.sync_virtual_machines() self.assertTrue(VirtualMachine.objects.get(cluster=cluster, hostname=vm_missing), 'missing vm was not created') self.assertTrue( VirtualMachine.objects.get( cluster=cluster, hostname=vm_current.hostname), 'previously existing vm was not created') self.assertTrue( VirtualMachine.objects.filter( cluster=cluster, hostname=vm_removed.hostname), "vm not in ganeti was not removed from db") cluster.sync_virtual_machines(True) self.assertFalse( VirtualMachine.objects.filter( cluster=cluster, hostname=vm_removed.hostname), 'vm not present in ganeti was not removed from db') vm_removed.delete() vm_current.delete() cluster.delete()
def test_sync_virtual_machines(self): """ Tests synchronizing cached virtuals machines (stored in db) with info the ganeti cluster is storing Verifies: * VMs no longer in ganeti are deleted * VMs missing from the database are added """ cluster = Cluster(hostname='ganeti.example.test') cluster.save() vm_missing = 'gimager.example.bak' vm_current = VirtualMachine(cluster=cluster, hostname='gimager2.example.bak') vm_removed = VirtualMachine(cluster=cluster, hostname='does.not.exist.org') vm_current.save() vm_removed.save() cluster.sync_virtual_machines() self.assertTrue( VirtualMachine.objects.get(cluster=cluster, hostname=vm_missing), 'missing vm was not created') self.assertTrue( VirtualMachine.objects.get(cluster=cluster, hostname=vm_current.hostname), 'previously existing vm was not created') self.assertTrue( VirtualMachine.objects.filter(cluster=cluster, hostname=vm_removed.hostname), "vm not in ganeti was not removed from db") cluster.sync_virtual_machines(True) self.assertFalse( VirtualMachine.objects.filter(cluster=cluster, hostname=vm_removed.hostname), 'vm not present in ganeti was not removed from db') vm_removed.delete() vm_current.delete() cluster.delete()