 41b6e41f26
			
		
	
	41b6e41f26
	
	
	
		
			
			Update all references of "LLC" to "Foundation". Change-Id: I009e86784ef4dcf38882d64b0eff484576e04efe
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Copyright (c) 2011 OpenStack Foundation
 | |
| # All Rights Reserved.
 | |
| #
 | |
| #    Licensed under the Apache License, Version 2.0 (the "License"); you may
 | |
| #    not use this file except in compliance with the License. You may obtain
 | |
| #    a copy of the License at
 | |
| #
 | |
| #         http://www.apache.org/licenses/LICENSE-2.0
 | |
| #
 | |
| #    Unless required by applicable law or agreed to in writing, software
 | |
| #    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 | |
| #    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 | |
| #    License for the specific language governing permissions and limitations
 | |
| #    under the License.
 | |
| """
 | |
| RAM Weigher.  Weigh hosts by their RAM usage.
 | |
| 
 | |
| The default is to spread instances across all hosts evenly.  If you prefer
 | |
| stacking, you can set the 'ram_weight_multiplier' option to a negative
 | |
| number and the weighing has the opposite effect of the default.
 | |
| """
 | |
| 
 | |
| from oslo.config import cfg
 | |
| 
 | |
| from nova.scheduler import weights
 | |
| 
 | |
| ram_weight_opts = [
 | |
|         cfg.FloatOpt('ram_weight_multiplier',
 | |
|                      default=1.0,
 | |
|                      help='Multiplier used for weighing ram.  Negative '
 | |
|                           'numbers mean to stack vs spread.'),
 | |
| ]
 | |
| 
 | |
| CONF = cfg.CONF
 | |
| CONF.register_opts(ram_weight_opts)
 | |
| 
 | |
| 
 | |
| class RAMWeigher(weights.BaseHostWeigher):
 | |
|     def _weight_multiplier(self):
 | |
|         """Override the weight multiplier."""
 | |
|         return CONF.ram_weight_multiplier
 | |
| 
 | |
|     def _weigh_object(self, host_state, weight_properties):
 | |
|         """Higher weights win.  We want spreading to be the default."""
 | |
|         return host_state.free_ram_mb
 |