def add_slivers(self, slivers, sliver_urn=None, no_dupes=False):
- if not isinstance(slivers, list):
- slivers = [slivers]
-
+ slivers = self.__process_slivers(slivers)
nodes_with_slivers = self.get_nodes_with_slivers()
for sliver in slivers:
hostname = sliver['hostname']
raise InvalidRSpec(message)
return True
-
def cleanup(self):
"""
Optional method which inheriting classes can choose to implent.
"""
pass
+ def __process_slivers(self, slivers):
+ """
+ Creates a dict of sliver details for each sliver host
+
+ @param slivers a single hostname, list of hostanmes or list of dicts keys on hostname,
+ Returns a list of dicts
+ """
+ if not isinstance(slivers, list):
+ slivers = [slivers]
+ dicts = []
+ for sliver in slivers:
+ if isinstance(sliver, dict):
+ dicts.append(sliver)
+ elif isinstance(sliver, basestring):
+ dicts.append({'hostname': sliver})
+ return dicts
def __str__(self):
return self.toxml()
pass
def add_slivers(self, slivers, network=None, sliver_urn=None, no_dupes=False):
- if not isinstance(slivers, list):
- slivers = [slivers]
-
+ slivers = self.__process_slivers(slivers)
nodes_with_slivers = self.get_nodes_with_slivers(network)
for sliver in slivers:
if sliver['hostname'] in nodes_with_slivers: