Ejemplo n.º 1
0
    def test_retrieval_error(self):
        """Ensures an instance is set for deletion when not found."""
        def retrieve_machine(*args, **kwargs):
            raise net.NotFoundError('404', 404, '404')

        def send_machine_event(*args, **kwargs):
            pass

        self.mock(catalog.machine_provider, 'retrieve_machine',
                  retrieve_machine)
        self.mock(catalog.metrics, 'send_machine_event', send_machine_event)

        key = instances.get_instance_key(
            'base-name',
            'revision',
            'zone',
            'instance-name',
        )
        key = models.Instance(
            key=key,
            cataloged=True,
            instance_group_manager=instances.get_instance_group_manager_key(
                key),
        ).put()

        catalog.update_cataloged_instance(key)
        self.failUnless(key.get().cataloged)
        self.failIf(key.get().leased)
        self.failUnless(key.get().pending_deletion)
Ejemplo n.º 2
0
    def test_updated_lease_expiration_ts(self):
        """Ensures an instance can be updated with a lease_expiration_ts."""
        now = int(utils.time_time())

        def retrieve_machine(*args, **kwargs):
            return {
                'lease_expiration_ts': str(now),
            }

        self.mock(catalog.machine_provider, 'retrieve_machine',
                  retrieve_machine)

        key = instances.get_instance_key(
            'base-name',
            'revision',
            'zone',
            'instance-name',
        )
        key = models.Instance(
            key=key,
            cataloged=True,
            instance_group_manager=instances.get_instance_group_manager_key(
                key),
        ).put()

        self.failIf(key.get().leased)
        catalog.update_cataloged_instance(key)
        self.failUnless(key.get().cataloged)
        self.assertEqual(key.get().lease_expiration_ts,
                         datetime.datetime.utcfromtimestamp(now))
        self.failUnless(key.get().leased)
        self.failIf(key.get().pending_deletion)
Ejemplo n.º 3
0
    def test_not_cataloged(self):
        """Ensures nothing happens when the instance is not cataloged."""
        def retrieve_machine(*args, **kwargs):
            self.fail('retrieve_machine called')

        self.mock(catalog.machine_provider, 'retrieve_machine',
                  retrieve_machine)

        key = instances.get_instance_key(
            'base-name',
            'revision',
            'zone',
            'instance-name',
        )
        key = models.Instance(
            key=key,
            cataloged=False,
            instance_group_manager=instances.get_instance_group_manager_key(
                key),
        ).put()

        catalog.update_cataloged_instance(key)
        self.failIf(key.get().cataloged)
        self.failIf(key.get().leased)
        self.failIf(key.get().pending_deletion)
Ejemplo n.º 4
0
    def post(self):
        """Updates information about a cataloged instance.

    Params:
      key: URL-safe key for a models.Instance.
    """
        key = ndb.Key(urlsafe=self.request.get('key'))
        assert key.kind() == 'Instance', key
        catalog.update_cataloged_instance(key)
Ejemplo n.º 5
0
    def test_not_found(self):
        """Ensures nothing happens when the instance doesn't exist."""
        def retrieve_machine(*args, **kwargs):
            self.fail('retrieve_machine called')

        self.mock(catalog.machine_provider, 'retrieve_machine',
                  retrieve_machine)

        catalog.update_cataloged_instance(
            ndb.Key(models.Instance, 'fake-instance'))
        self.failIf(models.Instance.query().get())