yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #71664
[Bug 1755683] [NEW] RequestSpec object has only one instance_uuid
Public bug reported:
OpenStack Pike.
I create more than one instances on the dashboard. The nova-scheduler will revice a argument named spec_obj.
select_destinations(self, ctxt,request_spec=None,
filter_properties=None,spec_obj=_sentinel, instance_uuids=None)
spec_obj has a attribute named instance_uuid, the attribute will be used
in GroupAntiAffinityFilter class.
class _GroupAntiAffinityFilter(filters.BaseHostFilter):
"""Schedule the instance on a different host from a set of group
hosts.
"""
RUN_ON_REBUILD = False
def host_passes(self, host_state, spec_obj):
# Only invoke the filter if 'anti-affinity' is configured
policies = (spec_obj.instance_group.policies
if spec_obj.instance_group else [])
if self.policy_name not in policies:
return True
# NOTE(hanrong): Move operations like resize can check the same source
# compute node where the instance is. That case, AntiAffinityFilter
# must not return the source as a non-possible destination.
if spec_obj.instance_uuid in host_state.instances.keys():
return True
group_hosts = (spec_obj.instance_group.hosts
if spec_obj.instance_group else [])
LOG.debug("Group anti affinity: check if %(host)s not "
"in %(configured)s", {'host': host_state.host,
'configured': group_hosts})
if group_hosts:
return host_state.host not in group_hosts
# No groups configured
return True
When I create more than one instances, spec_obj.instance_uuid is always
the same.
** Affects: nova
Importance: Undecided
Status: New
** Description changed:
- I create more than one instances on the dashboard. The nova-scheduler
- will revice a argument named spec_obj.
+ OpenStack Pike.
+ I create more than one instances on the dashboard. The nova-scheduler will revice a argument named spec_obj.
select_destinations(self, ctxt,request_spec=None,
filter_properties=None,spec_obj=_sentinel, instance_uuids=None)
spec_obj has a attribute named instance_uuid, the attribute will be used
in GroupAntiAffinityFilter class.
class _GroupAntiAffinityFilter(filters.BaseHostFilter):
- """Schedule the instance on a different host from a set of group
- hosts.
- """
+ """Schedule the instance on a different host from a set of group
+ hosts.
+ """
- RUN_ON_REBUILD = False
+ RUN_ON_REBUILD = False
- def host_passes(self, host_state, spec_obj):
- # Only invoke the filter if 'anti-affinity' is configured
- policies = (spec_obj.instance_group.policies
- if spec_obj.instance_group else [])
- if self.policy_name not in policies:
- return True
- # NOTE(hanrong): Move operations like resize can check the same source
- # compute node where the instance is. That case, AntiAffinityFilter
- # must not return the source as a non-possible destination.
- if spec_obj.instance_uuid in host_state.instances.keys():
- return True
+ def host_passes(self, host_state, spec_obj):
+ # Only invoke the filter if 'anti-affinity' is configured
+ policies = (spec_obj.instance_group.policies
+ if spec_obj.instance_group else [])
+ if self.policy_name not in policies:
+ return True
+ # NOTE(hanrong): Move operations like resize can check the same source
+ # compute node where the instance is. That case, AntiAffinityFilter
+ # must not return the source as a non-possible destination.
+ if spec_obj.instance_uuid in host_state.instances.keys():
+ return True
- group_hosts = (spec_obj.instance_group.hosts
- if spec_obj.instance_group else [])
- LOG.debug("Group anti affinity: check if %(host)s not "
- "in %(configured)s", {'host': host_state.host,
- 'configured': group_hosts})
- if group_hosts:
- return host_state.host not in group_hosts
+ group_hosts = (spec_obj.instance_group.hosts
+ if spec_obj.instance_group else [])
+ LOG.debug("Group anti affinity: check if %(host)s not "
+ "in %(configured)s", {'host': host_state.host,
+ 'configured': group_hosts})
+ if group_hosts:
+ return host_state.host not in group_hosts
- # No groups configured
- return True
+ # No groups configured
+ return True
When I create more than one instances, spec_obj.instance_uuid is always
the same.
--
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/1755683
Title:
RequestSpec object has only one instance_uuid
Status in OpenStack Compute (nova):
New
Bug description:
OpenStack Pike.
I create more than one instances on the dashboard. The nova-scheduler will revice a argument named spec_obj.
select_destinations(self, ctxt,request_spec=None,
filter_properties=None,spec_obj=_sentinel, instance_uuids=None)
spec_obj has a attribute named instance_uuid, the attribute will be
used in GroupAntiAffinityFilter class.
class _GroupAntiAffinityFilter(filters.BaseHostFilter):
"""Schedule the instance on a different host from a set of group
hosts.
"""
RUN_ON_REBUILD = False
def host_passes(self, host_state, spec_obj):
# Only invoke the filter if 'anti-affinity' is configured
policies = (spec_obj.instance_group.policies
if spec_obj.instance_group else [])
if self.policy_name not in policies:
return True
# NOTE(hanrong): Move operations like resize can check the same source
# compute node where the instance is. That case, AntiAffinityFilter
# must not return the source as a non-possible destination.
if spec_obj.instance_uuid in host_state.instances.keys():
return True
group_hosts = (spec_obj.instance_group.hosts
if spec_obj.instance_group else [])
LOG.debug("Group anti affinity: check if %(host)s not "
"in %(configured)s", {'host': host_state.host,
'configured': group_hosts})
if group_hosts:
return host_state.host not in group_hosts
# No groups configured
return True
When I create more than one instances, spec_obj.instance_uuid is
always the same.
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1755683/+subscriptions
Follow ups