Skip to content
This repository has been archived by the owner on Sep 23, 2020. It is now read-only.

Commit

Permalink
Adapted to libcloud 0.5.2 w/ cleaner Size lookup
Browse files Browse the repository at this point in the history
Rolled Nimboss version to 0.4.5
  • Loading branch information
labisso committed Jul 19, 2011
1 parent 60dc3ba commit 5742a22
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 20 deletions.
35 changes: 16 additions & 19 deletions nimboss/cluster.py
Expand Up @@ -87,7 +87,8 @@ def create_cluster(self, clusterdoc, context=None, **kwargs):
cluster = self.new_bare_cluster(id=context.uri)

for spec in nodes_specs:
cluster.add_node(launch_node_spec(spec, **kwargs))
cluster.add_node(launch_node_spec(spec, self.node_driver,
**kwargs))

return cluster

Expand All @@ -99,7 +100,7 @@ def launch_node_spec(self, spec, driver, **kwargs):
Returns a single Node or a list of Nodes.
"""
node_data = self._create_node_data(spec, **kwargs)
node_data = self._create_node_data(spec, driver, **kwargs)
node = driver.create_node(**node_data)

if isinstance(node, (list, tuple)):
Expand All @@ -110,12 +111,21 @@ def launch_node_spec(self, spec, driver, **kwargs):

return node

def _create_node_data(self, spec, **kwargs):
def _create_node_data(self, spec, driver, **kwargs):
"""Utility to get correct form of data to create a Node.
"""
image = NodeImage(spec.image, spec.name, self.node_driver)
sz = ec2.EC2_INSTANCE_TYPES[spec.size] #XXX generalize (for Nimbus, etc)
size = NodeSize(sz['id'], sz['name'], sz['ram'], sz['disk'], sz['bandwidth'], sz['price'], self.node_driver)
image = NodeImage(spec.image, spec.name, driver)

sizes = driver.list_sizes()
size = None
for asize in sizes:
if asize.id == spec.size:
size = asize
break
if size is None:
raise KeyError("Node size %s not found for driver %s" %
(spec.size, self.node_driver))

node_data = {
'name':spec.name,
'size':size,
Expand Down Expand Up @@ -143,16 +153,3 @@ def reboot_cluster(self, cluster):
"""
for (id, node) in cluster.nodes.iteritems():
node.destroy()


# hmmmm, needed? :
class NimbusClusterDriver(ClusterDriver):
nodeDriver = NimbusNodeDriver
create_node = nodeDriver.create_node
destroy_node = nodeDriver.destroy_node


class EC2ClusterDriver(ClusterDriver):
nodeDriver = EC2NodeDriver
create_node = nodeDriver.create_node
destroy_node = nodeDriver.destroy_node
2 changes: 1 addition & 1 deletion setup.py
Expand Up @@ -2,7 +2,7 @@

setupdict = {
'name' : 'nimboss',
'version' : '0.4.4',
'version' : '0.4.5',
'description' : 'Nimbus cloud client API',
'url': 'http://github.com/nimbusproject/Nimboss',
'download_url' : 'http://ooici.net/packages',
Expand Down

0 comments on commit 5742a22

Please sign in to comment.