blob: cab8e56a27b997f9d6dfa6ca343ca983e9dfc044 [file] [log] [blame]
Scott Baker68217012015-08-10 17:06:23 -07001import os
2import sys
3
Tony Mack3de59e32015-08-19 11:58:18 -04004from core.models import Slice,Instance,User,Flavor,Node,Image
Scott Baker68217012015-08-10 17:06:23 -07005
6class XOSFlavorSelector(object):
7 def __init__(self, user, mem_size=None, num_cpus=None, disk_size=None):
8 self.user = user
9 self.mem_size = self.get_mb(mem_size)
10 self.num_cpus = int(num_cpus)
11 self.disk_size = self.get_gb(disk_size)
12
13 def get_gb(self, s):
14 if "GB" in s:
15 return int(s.split("GB")[0].strip())
16 if "MB" in s:
17 return int(s.split("MB")[0].strip())/1024
18 return int(s)
19
20 def get_mb(self, s):
Scott Baker80f12662015-09-08 17:23:38 -070021 if "GB" in s:
22 return int(s.split("GB")[0].strip())*1024
23 if "MB" in s:
24 return int(s.split("MB")[0].strip())
25 return int(s)
Scott Baker68217012015-08-10 17:06:23 -070026
27 def get_flavor(self):
28 flavor = "m1.tiny"
29 if (self.mem_size>512) or (self.disk_size>1):
30 flavor = "m1.small"
31 if (self.mem_size>2048) or (self.disk_size>20) or (self.num_cpus>1):
32 flavor = "m1.medium"
33 if (self.mem_size>4096) or (self.disk_size>40) or (self.num_cpus>2):
34 flavor = "m1.large"
35 if (self.mem_size>8192) or (self.disk_size>80) or (self.num_cpus>4):
36 flavor = "m1.xlarge"
37
38 return Flavor.objects.get(name=flavor)
39