def setUpClass(cls): # TODO: Mock all tests so etcd doesn't need to be running ( lambda res: res if res is True else raise_f(HTTPException, "Failed to connect to etcd, errno: {}".format(res)) )(ping_port(port=2379))
def attempt_provision(self, create_or_deploy='create', prefer_provider=None, prefer_image=None): if ping_port() is not True: raise EnvironmentError('etcd server not up') if prefer_provider: self.strategy.strategy['provider']['options'] = (next( ifilter( lambda obj: obj.keys()[0] == prefer_provider, self.strategy.strategy['provider']['options'] ) ),) ''' # Prefer syntax self.strategy.strategy['provider']['options'].insert( 0, self.strategy.strategy['provider']['options'].pop( next( ifilter( lambda (idx, obj): obj.keys()[0] == prefer_provider, enumerate(self.strategy.strategy['provider']['options']) ) )[0] ) ) ''' for i in xrange(len(self.strategy.strategy['provider']['options'])): # Threshold logger.info('Attempting to create node "{node_name}" on: {provider}'.format( node_name=self.strategy.get_node_name(), provider=self.provider_dict['provider']['name'] )) self.provision(create_or_deploy) if self.node: save_node_info(self.node_name, node_to_dict(self.node), marshall=json) return self.node self.restrategise() raise LibcloudError('Failed to provision node')