← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1324030] [NEW] Updating instance_uuid while scheduling a bulk of VMs

 

Public bug reported:

This problem concerns custom scheduler filters and weighers which can be added by user in order to specify his own scheduling algorithm.
During scheduling of a single VM, it's UUID can be retrieved from filter_properties:
"request_spec": {
    "block_device_mapping": [ {
            "instance_uuid": "f47fdf0e-c4fe-45fb-a827-ad3a0840ea85"
        }
    ]
}

However, when a bulk of VMs is scheduled, custom filters or weighers are
not able to read UUID of currently scheduled VM. "instance_uuid" in
filter_properties is always the same. Problem is still present on
Icehouse and nova's master.

Passing instance_uuid of a VM that is currently filtered or weighed
could be done inside _schedule() method:

class FilterScheduler(driver.Scheduler):
    ...
    def _schedule(self, context, request_spec, filter_properties, instance_uuids=None):
        ...
        for num in xrange(num_instances):
            # Set the "instance_uuid" in filter_properties.
            # It is accessible from instance_uuids[num].

** Affects: nova
     Importance: Undecided
         Status: New


** Tags: scheduler

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1324030

Title:
  Updating instance_uuid while scheduling a bulk of VMs

Status in OpenStack Compute (Nova):
  New

Bug description:
  This problem concerns custom scheduler filters and weighers which can be added by user in order to specify his own scheduling algorithm.
  During scheduling of a single VM, it's UUID can be retrieved from filter_properties:
  "request_spec": {
      "block_device_mapping": [ {
              "instance_uuid": "f47fdf0e-c4fe-45fb-a827-ad3a0840ea85"
          }
      ]
  }

  However, when a bulk of VMs is scheduled, custom filters or weighers
  are not able to read UUID of currently scheduled VM. "instance_uuid"
  in filter_properties is always the same. Problem is still present on
  Icehouse and nova's master.

  Passing instance_uuid of a VM that is currently filtered or weighed
  could be done inside _schedule() method:

  class FilterScheduler(driver.Scheduler):
      ...
      def _schedule(self, context, request_spec, filter_properties, instance_uuids=None):
          ...
          for num in xrange(num_instances):
              # Set the "instance_uuid" in filter_properties.
              # It is accessible from instance_uuids[num].

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1324030/+subscriptions


Follow ups

References