factor out the imageselect stuff, make way for parameters
diff --git a/xos/tosca/execute.py b/xos/tosca/execute.py
index 7160ec4..4f74d28 100644
--- a/xos/tosca/execute.py
+++ b/xos/tosca/execute.py
@@ -7,6 +7,7 @@
from core.models import Slice,Sliver,User,Flavor,Node,Image
from nodeselect import XOSNodeSelector
+from imageselect import XOSImageSelector
class XOSTosca(object):
def __init__(self, tosca_yaml, parent_dir=None):
@@ -39,7 +40,7 @@
# TODO: pick flavor based on parameters
flavor = Flavor.objects.get(name="m1.small")
- compute_node = XOSNodeSelector(user).get_nodes(1)[0]
+ compute_node = XOSNodeSelector(user, mem_size=mem_size, num_cpus=num_cpus, disk_size=disk_size).get_nodes(1)[0]
return (compute_node, flavor)
@@ -49,12 +50,7 @@
type = v.get_property_value("type")
architecture = v.get_property_value("architecture")
- # TODO: pick image based on parameters
-
- imgs=Image.objects.filter(name="Ubuntu 14.04 LTS") # portal
- if imgs:
- return imgs[0]
- return Image.objects.get(name="Ubuntu-14.04-LTS") # demo
+ return XOSImageSelector(user, distribution=distribution, version=version, type=type, architecture=architecture).get_image()
def execute_nodetemplate(self, user, nodetemplate):
if (nodetemplate.type == "tosca.nodes.Slice"):
@@ -79,14 +75,6 @@
if not sliceName:
raise Exception("No slice requirement for node %s" % nodetemplate.name)
- #sliceName = None
- #artifacts = nodetemplate.entity_tpl.get("artifacts",[])
- #for artifact in artifacts:
- # if artifact.get("xos_slice", None):
- # sliceName = artifact["xos_slice"]
- #if not sliceName:
- # raise Exception("No xos_slice artifact for node %s" % nodetemplate.name)
-
slice = Slice.objects.filter(name=sliceName)
if not slice:
raise Exception("Could not find slice %s" % sliceName)