Ejemplo n.º 1
0
    def create_model(self, class_, *args, **kwargs):
        """
        create an instance of the model being tested, this will instrument
        some methods of the model to check if they have been called
        """
        obj = class_.objects.create(*args, **kwargs)

        # patch model class
        CallProxy.patch(obj, 'parse_transient_info')
        CallProxy.patch(obj, 'parse_persistent_info')
        CallProxy.patch(obj, '_refresh')
        CallProxy.patch(obj, 'load_info')
        CallProxy.patch(obj, 'save')
        return obj
Ejemplo n.º 2
0
    def create_model(self, class_, *args, **kwargs):
        """
        create an instance of the model being tested, this will instrument
        some methods of the model to check if they have been called
        """
        obj = class_.objects.create(*args, **kwargs)

        # patch model class
        CallProxy.patch(obj, 'parse_transient_info')
        CallProxy.patch(obj, 'parse_persistent_info')
        CallProxy.patch(obj, '_refresh')
        CallProxy.patch(obj, 'load_info')
        CallProxy.patch(obj, 'save')
        return obj
 def create_model(self, **kwargs):
     """
     create an instance of the model being tested, this will instrument
     some methods of the model to check if they have been called
     """
     cluster, chaff = Cluster.objects.get_or_create(hostname='test.foo.org')
     obj = self.Model(cluster=cluster, **kwargs)
     
     # patch model class
     CallProxy.patch(obj, 'parse_transient_info')
     CallProxy.patch(obj, 'parse_persistent_info')
     CallProxy.patch(obj, '_refresh')
     CallProxy.patch(obj, 'load_info')
     CallProxy.patch(obj, 'save')
     return obj
    def create_model(self, **kwargs):
        """
        create an instance of the model being tested, this will instrument
        some methods of the model to check if they have been called
        """
        cluster, chaff = Cluster.objects.get_or_create(hostname='test.foo.org')
        obj = self.Model(cluster=cluster, **kwargs)

        # patch model class
        CallProxy.patch(obj, 'parse_transient_info')
        CallProxy.patch(obj, 'parse_persistent_info')
        CallProxy.patch(obj, '_refresh')
        CallProxy.patch(obj, 'load_info')
        CallProxy.patch(obj, 'save')
        return obj
Ejemplo n.º 5
0
    def test_cache_reset_error(self):
        """
        Tests that cache reset is working properly.

        Verifies:
            * when success or error status is achieved
              the job no longer updates
        """
        job = self.test_save()
        job.ignore_cache = True
        job.save()
        rapi = job.rapi
        rapi.GetJobStatus.response = JOB_RUNNING
        CallProxy.patch(job, '_refresh')

        # load with running status, should refresh
        job.load_info()
        self.assertTrue(job.ignore_cache)
        job._refresh.assertCalled(self)
        job._refresh.reset()

        # load again with running status, should refresh
        job.load_info()
        self.assertTrue(job.ignore_cache)
        job._refresh.assertCalled(self)
        job._refresh.reset()

        # load again with success status, should refresh and flip cache flag
        rapi.GetJobStatus.response = JOB_ERROR
        job.load_info()
        self.assertFalse(job.ignore_cache)
        job._refresh.assertCalled(self)
        job._refresh.reset()

        # load again with success status, should use cache
        job.load_info()
        self.assertFalse(job.ignore_cache)
        job._refresh.assertNotCalled(self)
Ejemplo n.º 6
0
    def test_cache_reset_error(self):
        """
        Tests that cache reset is working properly.

        Verifies:
            * when success or error status is achieved the job no longer updates
        """
        job = self.test_save()
        job.ignore_cache = True
        job.save()
        rapi = job.rapi
        rapi.GetJobStatus.response = JOB_RUNNING
        CallProxy.patch(job, '_refresh')

        # load with running status, should refresh
        job.load_info()
        self.assertTrue(job.ignore_cache)
        job._refresh.assertCalled(self)
        job._refresh.reset()

        # load again with running status, should refresh
        job.load_info()
        self.assertTrue(job.ignore_cache)
        job._refresh.assertCalled(self)
        job._refresh.reset()

        # load again with success status, should refresh and flip cache flag
        rapi.GetJobStatus.response = JOB_ERROR
        job.load_info()
        self.assertFalse(job.ignore_cache)
        job._refresh.assertCalled(self)
        job._refresh.reset()

        # load again with success status, should use cache
        job.load_info()
        self.assertFalse(job.ignore_cache)
        job._refresh.assertNotCalled(self)
Ejemplo n.º 7
0
    def __new__(cls, *args, **kwargs):
        """
        Inherits from the RapiProxy and extends it to return
        information for Xen clusters instead of Kvm clusters.
        """
        instance = RapiProxy.__new__(cls, *args, **kwargs)
        # Unbind functions that are to be patched
        instance.GetInstances = None
        instance.GetInstance = None
        instance.GetInfo = None
        instance.GetOperatingSystems = None
        CallProxy.patch(instance, "GetInstances", False, INSTANCES)
        CallProxy.patch(instance, "GetInstance", False, XEN_PVM_INSTANCE)
        CallProxy.patch(instance, "GetInfo", False, XEN_INFO)
        CallProxy.patch(instance, "GetOperatingSystems", False, XEN_OPERATING_SYSTEMS)

        return instance
Ejemplo n.º 8
0
    def __new__(cls, *args, **kwargs):
        """
        Inherits from the RapiProxy and extends it to return
        information for Xen clusters instead of Kvm clusters.
        """
        instance = RapiProxy.__new__(cls, *args, **kwargs)
        # Unbind functions that are to be patched
        instance.GetInstances = None
        instance.GetInstance = None
        instance.GetInfo = None
        instance.GetOperatingSystems = None
        CallProxy.patch(instance, 'GetInstances', False, INSTANCES)
        CallProxy.patch(instance, 'GetInstance', False, XEN_PVM_INSTANCE)
        CallProxy.patch(instance, 'GetInfo', False, XEN_INFO)
        CallProxy.patch(instance, 'GetOperatingSystems', False,
                        XEN_OPERATING_SYSTEMS)

        return instance
Ejemplo n.º 9
0
 def __new__(cls, *args, **kwargs):
     """
     Each time the RapiProxy is created, monkey patch
     the GanetiRapiClient methods to return static data.
     """
     instance = object.__new__(cls)
     instance.__init__(*args, **kwargs)
     CallProxy.patch(instance, 'GetInstances', False, INSTANCES)
     CallProxy.patch(instance, 'GetInstance', False, INSTANCE)
     CallProxy.patch(instance, 'GetNodes', False, NODES_MAP)
     CallProxy.patch(instance, 'GetNode', False, NODE)
     CallProxy.patch(instance, 'GetInfo', False, INFO)
     CallProxy.patch(instance, 'GetOperatingSystems', False,
         OPERATING_SYSTEMS)
     CallProxy.patch(instance, 'GetJobStatus', False, JOB_RUNNING)
     CallProxy.patch(instance, 'StartupInstance', False, 1)
     CallProxy.patch(instance, 'ShutdownInstance', False, 1)
     CallProxy.patch(instance, 'RebootInstance', False, 1)
     CallProxy.patch(instance, 'ReinstallInstance', False, 1)
     CallProxy.patch(instance, 'AddInstanceTags', False)
     CallProxy.patch(instance, 'DeleteInstanceTags', False)
     CallProxy.patch(instance, 'CreateInstance', False, 1)
     CallProxy.patch(instance, 'DeleteInstance', False, 1)
     CallProxy.patch(instance, 'ModifyInstance', False, 1)
     CallProxy.patch(instance, 'MigrateInstance', False, 1)
     CallProxy.patch(instance, 'RenameInstance', False, 1)
     CallProxy.patch(instance, 'RedistributeConfig', False, 1)
     CallProxy.patch(instance, 'ReplaceInstanceDisks', False, 1)
     CallProxy.patch(instance, 'SetNodeRole', False, 1)
     CallProxy.patch(instance, 'EvacuateNode', False, 1)
     CallProxy.patch(instance, 'MigrateNode', False, 1)
     
     return instance
Ejemplo n.º 10
0
    def __new__(cls, *args, **kwargs):
        """
        Each time the RapiProxy is created, monkey patch
        the GanetiRapiClient methods to return static data.
        """
        instance = object.__new__(cls)
        instance.__init__(*args, **kwargs)
        CallProxy.patch(instance, 'GetInstances', False, INSTANCES)
        CallProxy.patch(instance, 'GetInstance', False, INSTANCE)
        CallProxy.patch(instance, 'GetNodes', False, NODES_MAP)
        CallProxy.patch(instance, 'GetNode', False, NODE)
        CallProxy.patch(instance, 'GetInfo', False, INFO)
        CallProxy.patch(instance, 'GetOperatingSystems', False,
                        OPERATING_SYSTEMS)
        CallProxy.patch(instance, 'GetJobStatus', False, JOB_RUNNING)
        CallProxy.patch(instance, 'StartupInstance', False, 1)
        CallProxy.patch(instance, 'ShutdownInstance', False, 1)
        CallProxy.patch(instance, 'RebootInstance', False, 1)
        CallProxy.patch(instance, 'ReinstallInstance', False, 1)
        CallProxy.patch(instance, 'AddInstanceTags', False)
        CallProxy.patch(instance, 'DeleteInstanceTags', False)
        CallProxy.patch(instance, 'CreateInstance', False, 1)
        CallProxy.patch(instance, 'DeleteInstance', False, 1)
        CallProxy.patch(instance, 'ModifyInstance', False, 1)
        CallProxy.patch(instance, 'MigrateInstance', False, 1)
        CallProxy.patch(instance, 'RenameInstance', False, 1)
        CallProxy.patch(instance, 'RedistributeConfig', False, 1)
        CallProxy.patch(instance, 'ReplaceInstanceDisks', False, 1)
        CallProxy.patch(instance, 'SetNodeRole', False, 1)
        CallProxy.patch(instance, 'EvacuateNode', False, 1)
        CallProxy.patch(instance, 'MigrateNode', False, 1)

        return instance