Beispiel #1
0
 def getVmTypes(self, req):
     ca = CloudAdmin()
     r = ""
     for type in ca.getInstanceTypeSize():
         r += """{"name" : "%s" , "cpus" : "%s" , "memory" : "%s" , "disc" : "%s"},""" % (
             type[1], type[2], type[3], type[4])
     return atmo_util.jsoner("\"success\"", "\"\"", "[" + r[:-1] + "]")
Beispiel #2
0
 def checkEc2ResourceQuota(self,newly_requested_cpu=0,newly_requested_mem=0): # return true / false
   # get user quota / no quota info means no quota (unlimited use)
   p = User_resource_quotas.objects.filter(userid=self.userid)
   if p.count() == 0 :
     cpu_limit = mem_limit = -1
   else :
     cpu_limit = p[0].cpu
     mem_limit = p[0].memory
   # get current instances and total resource uses / sum all cpus and all mem
   if (cpu_limit != -1) and (mem_limit != -1) :
     ca = CloudAdmin()
     machine_types = ca.getInstanceTypeSize()
     euca_conn = self.euca.make_connection()
     try :
       reservations = euca_conn.get_all_instances()
     except Exception, ex:
       euca.disaply_error_and_exit('%s' % ex)
     # reservation
     current_cpu_use = current_mem_use = 0
     for reservation in reservations:
       for instance in reservation.instances:
         for mt in machine_types :
           if instance.instance_type == mt[1] :
             current_cpu_use += int(mt[2])
             current_mem_use += int(mt[3])
     if (cpu_limit >= current_cpu_use+newly_requested_cpu) and (mem_limit >= current_mem_use+newly_requested_mem):
       quotaAvailability = { "result" : "available" }
     else :
       quotaAvailability = { "result" : "unavailable", "current_cpu": current_cpu_use, "current_mem": current_mem_use, "limit_cpu" : cpu_limit, "limit_mem": mem_limit }
Beispiel #3
0
 def convertMachineTypeStringToNum(self, machine_type):
     ca = CloudAdmin()
     machine_types = ca.getInstanceTypeSize()
     return_value = None
     for mt in machine_types:
         if machine_type == mt[1]:
             return_value = {"cpu": mt[2], "mem": mt[3]}
     return return_value
Beispiel #4
0
 def convertMachineTypeStringToNum(self,machine_type):
   ca = CloudAdmin()
   machine_types = ca.getInstanceTypeSize()
   return_value = None;
   for mt in machine_types:
     if machine_type == mt[1] :
         return_value = {"cpu":mt[2],"mem":mt[3]}
   return return_value
Beispiel #5
0
 def checkEc2ResourceQuota(self,
                           newly_requested_cpu=0,
                           newly_requested_mem=0):  # return true / false
     # get user quota / no quota info means no quota (unlimited use)
     p = User_resource_quotas.objects.filter(userid=self.userid)
     if p.count() == 0:
         cpu_limit = mem_limit = -1
     else:
         cpu_limit = p[0].cpu
         mem_limit = p[0].memory
     # get current instances and total resource uses / sum all cpus and all mem
     if (cpu_limit != -1) and (mem_limit != -1):
         ca = CloudAdmin()
         machine_types = ca.getInstanceTypeSize()
         euca_conn = self.euca.make_connection()
         try:
             reservations = euca_conn.get_all_instances()
         except Exception, ex:
             euca.disaply_error_and_exit('%s' % ex)
         # reservation
         current_cpu_use = current_mem_use = 0
         for reservation in reservations:
             for instance in reservation.instances:
                 for mt in machine_types:
                     if instance.instance_type == mt[1]:
                         current_cpu_use += int(mt[2])
                         current_mem_use += int(mt[3])
         if (cpu_limit >= current_cpu_use + newly_requested_cpu) and (
                 mem_limit >= current_mem_use + newly_requested_mem):
             quotaAvailability = {"result": "available"}
         else:
             quotaAvailability = {
                 "result": "unavailable",
                 "current_cpu": current_cpu_use,
                 "current_mem": current_mem_use,
                 "limit_cpu": cpu_limit,
                 "limit_mem": mem_limit
             }
Beispiel #6
0
 def getVmTypes(self,req) :
   ca = CloudAdmin()
   r = ""
   for type in ca.getInstanceTypeSize() : r += """{"name" : "%s" , "cpus" : "%s" , "memory" : "%s" , "disc" : "%s"},""" % (type[1],type[2],type[3],type[4])
   return atmo_util.jsoner("\"success\"","\"\"", "["+r[:-1]+"]")