@Override public void run(MessageReply reply) { if (!reply.isSuccess()) { completion.fail(reply.getError()); return; } ListDirectionResponse rsp = ((KVMHostAsyncHttpCallReply) reply).toResponse(ListDirectionResponse.class); if (!rsp.isSuccess()) { logger.warn(String.format("failed to list path[%s] on nfs primary storage[uuid:%s], %s, will clean up", path, pinv.getUuid(), rsp.getError())); completion.fail(operr("%s", rsp.getError())); } else { completion.success(rsp.getPaths()); } } });
@Override public void run(MessageReply reply) { if (!reply.isSuccess()) { completion.fail(reply.getError()); return; } KVMHostAsyncHttpCallReply ar = reply.castReply(); KvmResponseWrapper w = new KvmResponseWrapper(ar.getResponse()); ErrorCode err = checker.getError(w); if (err != null) { completion.fail(err); return; } completion.success(w); } });
@Override public void run(MessageReply reply) { if (!reply.isSuccess()) { completion.fail(reply.getError()); return; } CreateTemplateFromVolumeRsp rsp = ((KVMHostAsyncHttpCallReply) reply).toResponse(CreateTemplateFromVolumeRsp.class); if (!rsp.isSuccess()) { String sb = String.format("failed to create template from volume, because %s", rsp.getError()) + String.format("\ntemplate:%s", JSONObjectUtil.toJsonString(image)) + String.format("\nvolume:%s", JSONObjectUtil.toJsonString(volume)) + String.format("\nnfs primary storage uuid:%s", primaryStorage.getUuid()) + String.format("\nKVM host uuid:%s, management ip:%s", destHost.getUuid(), destHost.getManagementIp()); completion.fail(operr(sb)); return; } StringBuilder sb = new StringBuilder(); sb.append(String.format("successfully created template from volumes")); sb.append(String.format("\ntemplate:%s", JSONObjectUtil.toJsonString(image))); sb.append(String.format("\nvolume:%s", JSONObjectUtil.toJsonString(volume))); sb.append(String.format("\nnfs primary storage uuid:%s", primaryStorage.getUuid())); sb.append(String.format("\nKVM host uuid:%s, management ip:%s", destHost.getUuid(), destHost.getManagementIp())); logger.debug(sb.toString()); nfsMgr.reportCapacityIfNeeded(primaryStorage.getUuid(), rsp); completion.success(installPath); } });
@Override public void run(NeedReplyMessage msg, MessageReply reply) { KVMHostAsyncHttpCallMsg kmsg = (KVMHostAsyncHttpCallMsg) msg; completion.hostUuid = kmsg.getHostUuid(); if (!reply.isSuccess()) { completion.fail(reply.getError()); return; } KVMHostAsyncHttpCallReply ar = reply.castReply(); KvmResponseWrapper w = new KvmResponseWrapper(ar.getResponse()); ErrorCode err = checker.getError(w); if (err != null) { completion.fail(err); return; } completion.success(w); } });
@Override public void run(MessageReply reply) { if (!reply.isSuccess()) { completion.fail(reply.getError()); return; } OfflineMergeSnapshotRsp rsp = ((KVMHostAsyncHttpCallReply) reply).toResponse(OfflineMergeSnapshotRsp.class); if (!rsp.isSuccess()) { completion.fail(operr("operation error, because:%s", rsp.getError())); return; } nfsMgr.reportCapacityIfNeeded(pinv.getUuid(), rsp); completion.success(); } });
@Override public void run(MessageReply reply) { if (!reply.isSuccess()) { complete.fail(reply.getError()); return; } CreateEmptyVolumeResponse rsp = ((KVMHostAsyncHttpCallReply) reply).toResponse(CreateEmptyVolumeResponse.class); if (!rsp.isSuccess()) { ErrorCode err = operr("unable to create empty volume[uuid:%s, name:%s] on kvm host[uuid:%s, ip:%s], because %s", volume.getUuid(), volume.getName(), host.getUuid(), host.getManagementIp(), rsp.getError()); complete.fail(err); return; } volume.setInstallPath(cmd.getInstallUrl()); volume.setFormat(VolumeConstant.VOLUME_FORMAT_QCOW2); nfsMgr.reportCapacityIfNeeded(pinv.getUuid(), rsp); complete.success(volume); } });
@Override public void run(List<MessageReply> replies) { for (MessageReply reply : replies) { String hostUuid = hostUuids.get(replies.indexOf(reply)); if (!reply.isSuccess()) { logger.warn(String.format("cannot get the physical capacity of local storage on the host[uuid:%s], %s", hostUuid, reply.getError())); continue; } KVMHostAsyncHttpCallReply r = reply.castReply(); AgentResponse rsp = r.toResponse(AgentResponse.class); if (!rsp.isSuccess()) { logger.warn(String.format("cannot get the physical capacity of local storage on the host[uuid:%s], %s", hostUuid, rsp.getError())); continue; } ret.totalPhysicalSize += rsp.getTotalCapacity(); ret.availablePhysicalSize += rsp.getAvailableCapacity(); } completion.success(ret); } });
VmSyncResponse ret = r.toResponse(VmSyncResponse.class); if (ret.isSuccess()) { Map<String, VmInstanceState> states = new HashMap<String, VmInstanceState>(ret.getStates().size());
@Override public void run(MessageReply reply) { if (!reply.isSuccess()) { completion.fail(reply.getError()); return; } KVMHostAsyncHttpCallReply hreply = reply.castReply(); CheckDefaultSecurityGroupResponse rsp = hreply.toResponse(CheckDefaultSecurityGroupResponse.class); if (!rsp.isSuccess()) { ErrorCode err = operr("failed to check default rules of security group on kvm host[uuid:%s], because %s", hostUuid, rsp.getError()); completion.fail(err); return; } String info = String.format("successfully applied rules of security group rules to kvm host[uuid:%s]", hostUuid); logger.debug(info); completion.success(); } });
@Override public void run(MessageReply reply) { if (!reply.isSuccess()) { completion.fail(reply.getError()); return; } KVMHostAsyncHttpCallReply ar = reply.castReply(); AgentRsp rsp = ar.toResponse(AgentRsp.class); if (!rsp.success) { completion.fail(operr("operation error, because:%s", rsp.error)); return; } for (AfterApplyFlatEipExtensionPoint ext : pluginRgty.getExtensionList(AfterApplyFlatEipExtensionPoint.class)) { ext.AfterApplyFlatEip(asList(struct.getVip().getUuid()), hostUuid); } completion.success(); } });
@Override public void run(MessageReply reply) { if (!reply.isSuccess()) { completion.fail(reply.getError()); return; } KVMHostAsyncHttpCallReply hreply = reply.castReply(); KVMAgentCommands.UpdateGroupMemberResponse rsp = hreply.toResponse(KVMAgentCommands.UpdateGroupMemberResponse.class); if (!rsp.isSuccess()) { completion.fail(operr("operation error, because:%s", rsp.getError())); return; } completion.success(); } });
@Override public void run(MessageReply reply) { if (!reply.isSuccess()) { chain.fail(reply.getError()); } else { KVMHostAsyncHttpCallReply hreply = reply.castReply(); PrepareBootstrapInfoRsp rsp = hreply.toResponse(PrepareBootstrapInfoRsp.class); if (rsp.isSuccess()) { chain.next(); } else { chain.fail(operr("operation error, because:%s", rsp.getError())); } } } });
@Override public void run(MessageReply reply) { if (!reply.isSuccess()) { completion.fail(reply.getError()); return; } KVMHostAsyncHttpCallReply hreply = reply.castReply(); CleanupUnusedRulesOnHostResponse rsp = hreply.toResponse(CleanupUnusedRulesOnHostResponse.class); if (!rsp.isSuccess()) { completion.fail(operr("operation error, because:%s", rsp.getError())); return; } completion.success(); } });
@Override public void run(MessageReply reply) { if (!reply.isSuccess()) { completion.fail(reply.getError()); return; } KVMHostAsyncHttpCallReply r = reply.castReply(); ReleaseUserdataRsp rsp = r.toResponse(ReleaseUserdataRsp.class); if (!rsp.isSuccess()) { completion.fail(operr("operation error, because:%s", rsp.getError())); return; } completion.success(); } });
@Override public void run(MessageReply reply) { if (!reply.isSuccess()) { complete.fail(reply.getError()); return; } KVMHostAsyncHttpCallReply hreply = reply.castReply(); ApplySecurityGroupRuleResponse rsp = hreply.toResponse(ApplySecurityGroupRuleResponse.class); if (!rsp.isSuccess()) { ErrorCode err = operr("failed to apply rules of security group rules to kvm host[uuid:%s], because %s", hto.getHostUuid(), rsp.getError()); complete.fail(err); return; } String info = String.format("successfully applied rules of security group rules to kvm host[uuid:%s]", hto.getHostUuid()); logger.debug(info); complete.success(); } });
@Override public void run(MessageReply reply) { if (!reply.isSuccess()) { complete.fail(reply.getError()); return; } KVMHostAsyncHttpCallReply hreply = reply.castReply(); ApplySecurityGroupRuleResponse rsp = hreply.toResponse(ApplySecurityGroupRuleResponse.class); if (!rsp.isSuccess()) { ErrorCode err = operr("failed to apply rules of security group rules to kvm host[uuid:%s], because %s", hto.getHostUuid(), rsp.getError()); complete.fail(err); return; } String info = String.format("successfully applied rules of security group rules to kvm host[uuid:%s]", hto.getHostUuid()); logger.debug(info); complete.success(); } });
@Override public void run(MessageReply reply) { if (!reply.isSuccess()) { ErrorCode err = reply.getError(); if (err.isError(HostErrors.OPERATION_FAILURE_GC_ELIGIBLE)) { FlatEipGC gc = new FlatEipGC(); gc.eips = eips; gc.hostUuid = hostUuid; gc.NAME = String.format("gc-flat-eips-on-hosts-%s", hostUuid); gc.submit(); completion.success(); } else { completion.fail(reply.getError()); } return; } KVMHostAsyncHttpCallReply ar = reply.castReply(); AgentRsp rsp = ar.toResponse(AgentRsp.class); if (!rsp.success) { completion.fail(operr("operation error, because:%s", rsp.error)); return; } completion.success(); } });
@Override public void run(MessageReply reply) { if (!reply.isSuccess()) { complete.fail(reply.getError()); return; } DeleteVirtualRouterBootstrapIsoRsp rsp = ((KVMHostAsyncHttpCallReply)reply).toResponse(DeleteVirtualRouterBootstrapIsoRsp.class); if (!rsp.isSuccess()) { ErrorCode err = operr("failed to delete VirtualRouterBootstrapIso[%s] on kvm host[uuid:%s] for virtual router[uuid:%s], because %s", iso.getIsoPath(), hostUuid, iso.getVirtualRouterUuid(), rsp.getError()); complete.fail(err); return; } complete.success(); } });
@Override public void run(MessageReply reply) { if (!reply.isSuccess()) { complete.fail(reply.getError()); return; } KVMHostAsyncHttpCallReply kreply = reply.castReply(); GetVncPortResponse rsp = kreply.toResponse(GetVncPortResponse.class); if (!rsp.isSuccess()) { complete.fail(operr("operation error, because:%s", rsp.getError())); return; } if (rsp.getPort() < 0) { complete.fail(operr("unexpected VNC port number[%d] for VM [uuid:%s]", rsp.getPort(), vm.getUuid())); return; } SimpleQuery<HostVO> q = dbf.createQuery(HostVO.class); q.select(HostVO_.managementIp); q.add(HostVO_.uuid, Op.EQ, vm.getHostUuid()); String mgmtIp = q.findValue(); try { URI uri = new URI(String.format("http://%s:%s/", mgmtIp, rsp.getPort())); complete.success(uri); } catch (URISyntaxException e) { complete.fail(inerr(e.getMessage())); } } });
@Override public void run(MessageReply reply) { if (!reply.isSuccess()) { completion.fail(reply.getError()); return; } KVMHostAsyncHttpCallReply hreply = reply.castReply(); CheckVlanBridgeResponse rsp = hreply.toResponse(CheckVlanBridgeResponse.class); if (!rsp.isSuccess()) { ErrorCode err = operr("failed to check bridge[%s] for l2VlanNetwork[uuid:%s, name:%s] on kvm host[uuid:%s], %s", cmd.getBridgeName(), l2vlan.getUuid(), l2vlan.getName(), hostUuid, rsp.getError()); completion.fail(err); return; } String info = String.format("successfully checked bridge[%s] for l2VlanNetwork[uuid:%s, name:%s] on kvm host[uuid:%s]", cmd.getBridgeName(), l2vlan.getUuid(), l2vlan.getName(), hostUuid); logger.debug(info); completion.success(); } });