public void send(final Object cmd, final String path, final KvmCommandFailureChecker checker, final SteppingSendCallback<KvmResponseWrapper> completion) { List<KVMHostAsyncHttpCallMsg> msgs = hostUuids.stream().map(huuid -> { KVMHostAsyncHttpCallMsg msg = new KVMHostAsyncHttpCallMsg(); msg.setCommand(cmd); msg.setHostUuid(huuid); msg.setPath(path); msg.setNoStatusCheck(noStatusCheck); bus.makeTargetServiceIdByResourceUuid(msg, HostConstant.SERVICE_ID, huuid); return msg; }).collect(Collectors.toList()); bus.send(msgs, msgs.size(), new CloudBusSteppingCallback(completion) { @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); } }); }
msg.setHostUuid(huuid); msg.setPath(path); msg.setNoStatusCheck(noStatusCheck); bus.makeTargetServiceIdByResourceUuid(msg, HostConstant.SERVICE_ID, huuid); bus.send(msg, new CloudBusCallBack(completion) {
@Override public KVMHostAsyncHttpCallMsg call(String arg) { InitCmd cmd = new InitCmd(); cmd.uuid = self.getUuid(); cmd.path = self.getUrl(); cmd.hostUuid = arg; KVMHostAsyncHttpCallMsg msg = new KVMHostAsyncHttpCallMsg(); msg.setCommand(cmd); msg.setPath(INIT_PATH); msg.setHostUuid(arg); msg.setNoStatusCheck(noCheckStatus); bus.makeTargetServiceIdByResourceUuid(msg, HostConstant.SERVICE_ID, arg); return msg; } });
@Override public void checkDefaultRules(String hostUuid, Completion completion) { CheckDefaultSecurityGroupCmd cmd = new CheckDefaultSecurityGroupCmd(); KVMHostAsyncHttpCallMsg msg = new KVMHostAsyncHttpCallMsg(); msg.setHostUuid(hostUuid); msg.setPath(SECURITY_GROUP_CHECK_DEFAULT_RULES_ON_HOST_PATH); msg.setCommand(cmd); msg.setNoStatusCheck(true); bus.makeTargetServiceIdByResourceUuid(msg, HostConstant.SERVICE_ID, hostUuid); bus.send(msg, new CloudBusCallBack(completion) { @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(); } }); }
msg.setHostUuid(hostUuid); msg.setPath(BATCH_APPLY_EIP_PATH); msg.setNoStatusCheck(noHostStatusCheck); bus.makeTargetServiceIdByResourceUuid(msg, HostConstant.SERVICE_ID, hostUuid); bus.send(msg, new CloudBusCallBack(completion) {
msg.setPath(SECURITY_GROUP_REFRESH_RULE_ON_HOST_PATH); msg.setCommand(cmd); msg.setNoStatusCheck(true); bus.makeTargetServiceIdByResourceUuid(msg, HostConstant.SERVICE_ID, hto.getHostUuid()); bus.send(msg, new CloudBusCallBack(complete) {
msg.setCommand(cmd); msg.setPath(VXLAN_KVM_POPULATE_FDB_L2VXLAN_NETWORK_PATH); msg.setNoStatusCheck(noStatusCheck); bus.makeTargetServiceIdByResourceUuid(msg, HostConstant.SERVICE_ID, hostUuid); bus.send(msg, new CloudBusCallBack(completion1) {
msg.setHostUuid(hostUuid); msg.setPath(BATCH_DELETE_EIP_PATH); msg.setNoStatusCheck(noHostStatusCheck); bus.makeTargetServiceIdByResourceUuid(msg, HostConstant.SERVICE_ID, hostUuid); bus.send(msg, new CloudBusCallBack(completion) {
private <T extends NfsPrimaryStorageAgentResponse> void asyncHttpCall(String path, final String hostUuid, NfsPrimaryStorageAgentCommand cmd, boolean noCheckStatus, final Class<T> rspType, PrimaryStorageInventory inv, final ReturnValueCompletion<T> completion) { cmd.setUuid(inv.getUuid()); KVMHostAsyncHttpCallMsg msg = new KVMHostAsyncHttpCallMsg(); msg.setHostUuid(hostUuid); msg.setPath(path); msg.setNoStatusCheck(noCheckStatus); msg.setCommand(cmd); bus.makeTargetServiceIdByResourceUuid(msg, HostConstant.SERVICE_ID, hostUuid); bus.send(msg, new CloudBusCallBack(completion) { @Override public void run(MessageReply reply) { if (!reply.isSuccess()) { completion.fail(reply.getError()); return; } KVMHostAsyncHttpCallReply r = reply.castReply(); final T rsp = r.toResponse(rspType); if (!rsp.isSuccess()) { completion.fail(operr("operation error, because:%s", rsp.getError())); return; } updatePrimaryStorageCapacity(inv.getUuid(), rsp); completion.success(rsp); } }); }
msg.setHostUuid(hostUuid); msg.setPath(path); msg.setNoStatusCheck(noCheckStatus); msg.setCommand(cmd); bus.makeTargetServiceIdByResourceUuid(msg, HostConstant.SERVICE_ID, hostUuid);
kmsg.setCommand(cmd); kmsg.setPath(VXLAN_KVM_POPULATE_FDB_L2VXLAN_NETWORKS_PATH); kmsg.setNoStatusCheck(true); bus.makeTargetServiceIdByResourceUuid(kmsg, HostConstant.SERVICE_ID, vtep.getHostUuid()); bus.send(kmsg, new CloudBusCallBack(completion1) {
protected <T extends AgentResponse> void httpCall(String path, final String hostUuid, AgentCommand cmd, boolean noCheckStatus, final Class<T> rspType, final ReturnValueCompletion<T> completion) { cmd.uuid = self.getUuid(); cmd.storagePath = self.getUrl(); KVMHostAsyncHttpCallMsg msg = new KVMHostAsyncHttpCallMsg(); msg.setHostUuid(hostUuid); msg.setPath(path); msg.setNoStatusCheck(noCheckStatus); msg.setCommand(cmd); bus.makeTargetServiceIdByResourceUuid(msg, HostConstant.SERVICE_ID, hostUuid); bus.send(msg, new CloudBusCallBack(completion) { @Override public void run(MessageReply reply) { if (!reply.isSuccess()) { completion.fail(reply.getError()); return; } KVMHostAsyncHttpCallReply r = reply.castReply(); T rsp = r.toResponse(rspType); if (!rsp.isSuccess()) { completion.fail(operr("operation error, because:%s", rsp.getError())); return; } if (rsp.getTotalCapacity() != null && rsp.getAvailableCapacity() != null) { new LocalStorageCapacityUpdater().updatePhysicalCapacityByKvmAgentResponse(self.getUuid(), hostUuid, rsp); } completion.success(rsp); } }); }
msg.setHostUuid(host.getUuid()); msg.setPath(KVMConstant.KVM_HOST_CAPACITY_PATH); msg.setNoStatusCheck(true); msg.setCommand(new HostCapacityCmd()); bus.makeTargetServiceIdByResourceUuid(msg, HostConstant.SERVICE_ID, host.getUuid());
VmSyncCmd cmd = new VmSyncCmd(); msg.setCommand(cmd); msg.setNoStatusCheck(true); msg.setHostUuid(host.getUuid()); msg.setPath(KVMConstant.KVM_VM_SYNC_PATH);
msg.setCommand(cmd); msg.setPath(VXLAN_KVM_CHECK_L2VXLAN_NETWORK_PATH); msg.setNoStatusCheck(noStatusCheck); bus.makeTargetServiceIdByResourceUuid(msg, HostConstant.SERVICE_ID, hostUuid); bus.send(msg, new CloudBusCallBack(completion) {
msg.setCommand(cmd); msg.setPath(VXLAN_KVM_CHECK_L2VXLAN_NETWORK_PATH); msg.setNoStatusCheck(noStatusCheck); bus.makeTargetServiceIdByResourceUuid(msg, HostConstant.SERVICE_ID, hostUuid); bus.send(msg, new CloudBusCallBack(trigger) {
msg.setNoStatusCheck(noStatusCheck); msg.setCommand(cmd); msg.setHostUuid(hostUuid);
msg.setCommand(cmd); msg.setPath(KVMConstant.KVM_REALIZE_L2NOVLAN_NETWORK_PATH); msg.setNoStatusCheck(noStatusCheck); msg.setHostUuid(hostUuid); bus.makeTargetServiceIdByResourceUuid(msg, HostConstant.SERVICE_ID, hostUuid);
msg.setCommand(cmd); msg.setPath(KVMConstant.KVM_CHECK_L2VLAN_NETWORK_PATH); msg.setNoStatusCheck(noStatusCheck); bus.makeTargetServiceIdByResourceUuid(msg, HostConstant.SERVICE_ID, hostUuid); bus.send(msg, new CloudBusCallBack(completion) {
msg.setHostUuid(hostUuid); msg.setCommand(cmd); msg.setNoStatusCheck(noStatusCheck); msg.setPath(KVMConstant.KVM_REALIZE_L2VLAN_NETWORK_PATH); bus.makeTargetServiceIdByResourceUuid(msg, HostConstant.SERVICE_ID, hostUuid);