def define(self, name=None, **kwargs): """Define a hadoop stack. """ stackname = name or Default.generate_name(Names.STACK_COUNTER) # remove None to defer default definitions to latter for k in kwargs.keys(): if kwargs[k] is None: del kwargs[k] kwargs['local_path'] = os.path.join( os.path.expanduser('~/.cloudmesh/stacks'), stackname) try: spec = db.select(SPECIFICATION, name=stackname, type='stack')[0] spec.update(kwargs) db.updateObj(spec) except IndexError: spec = SPECIFICATION(stackname, 'stack', kwargs) db.insert(spec) Default.set_stack(stackname) Console.ok('Defined stack {}'.format(stackname))
def use(self, specname): """Activate the given specification :param specname: namne of the specification """ spec = db.select(SPECIFICATION, type='stack', name=specname)[0] Default.set_stack(spec.name)