def delete_network(self, request, context): print("Handling delete_network call for:\n%s" % request) config = Kconfig() result = config.k.delete_network(request.network) response = kcli_pb2.result(**result) return response
def switch_host(self, request, context): print("Handling switch_host call for:\n%s" % request) baseconfig = Kbaseconfig() result = baseconfig.switch_host(request.client) response = kcli_pb2.result(**result) return response
def delete_image(self, request, context): print("Handling delete_image call for:\n%s" % request) config = Kconfig() result = config.k.delete_image(request.image) response = kcli_pb2.result(**result) return response
def delete_repo(self, request, context): print("Handing delete_profile call for:\n%s" % request) baseconfig = Kconfig() result = baseconfig.delete_repo(request.repo) response = kcli_pb2.result(**result) return response
def delete_plan(self, request, context): print("Handling delete_plan call for:\n%s" % request) config = Kconfig() result = config.plan(request.plan, delete=True) response = kcli_pb2.result(**result) return response
def delete_host(self, request, context): print("Handling delete_host call for:\n%s" % request) common.delete_host(request.client) result = {'result': 'success'} response = kcli_pb2.result(**result) return response
def create_vm(self, request, context): print("Handling create_vm call for:\n%s" % request) config = Kconfig() overrides = ast.literal_eval( request.overrides) if request.overrides != '' else {} profile = request.profile customprofile = ast.literal_eval( request.customprofile) if request.customprofile != '' else {} name = request.name if name == '': name = nameutils.get_random_name() if config.type in ['gcp', 'kubevirt']: name = name.replace('_', '-') if config.type != 'aws': pprint("Using %s as name of the vm" % name) if request.image != '': if request.image in config.profiles: pprint("Using %s as profile" % request.image) profile = request.image elif profile is not None: if profile.endswith('.yml'): profilefile = profile profile = None if not os.path.exists(profilefile): error("Missing profile file %s" % profilefile) result = { 'result': 'failure', 'reason': "Missing profile file %s" % profilefile } response = kcli_pb2.result(**result) return response else: with open(profilefile, 'r') as entries: entries = yaml.safe_load(entries) entrieskeys = list(entries.keys()) if len(entrieskeys) == 1: profile = entrieskeys[0] customprofile = entries[profile] pprint("Using data from %s as profile" % profilefile) else: error("Cant' parse %s as profile file" % profilefile) result = { 'result': 'failure', 'reason': "Missing profile file %s" % profilefile } response = kcli_pb2.result(**result) return response elif overrides: profile = 'kvirt' config.profiles[profile] = {} else: error( "You need to either provide a profile, an image or some parameters" ) result = { 'result': 'failure', 'reason': "You need to either provide a profile, an image or some parameters" } response = kcli_pb2.result(**result) response = kcli_pb2.result(**result) return response if request.vmfiles: for _fil in request.vmfiles: origin = _fil.origin content = _fil.content with open(origin, 'w') as f: f.write(content) if request.ignitionfile != '': with open("%s.ign" % name, 'w') as f: f.write(request.ignitionfile) result = config.create_vm(name, profile, overrides=overrides, customprofile=customprofile) result['vm'] = name response = kcli_pb2.result(**result) return response
def stop(self, request, context): print("Handling stop call for:\n%s" % request) config = Kconfig() result = config.k.stop(request.name) response = kcli_pb2.result(**result) return response