mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Fixes/tests on sample management server on new RPC/Async framework
This commit is contained in:
parent
510d3759a7
commit
a6c441fcc5
@ -26,7 +26,7 @@ public class SampleManagementServer {
|
|||||||
public void mainLoop() {
|
public void mainLoop() {
|
||||||
while(true) {
|
while(true) {
|
||||||
try {
|
try {
|
||||||
Thread.currentThread().sleep(1000);
|
Thread.sleep(1000);
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,20 +18,27 @@
|
|||||||
*/
|
*/
|
||||||
package org.apache.cloudstack.framework.messaging.server;
|
package org.apache.cloudstack.framework.messaging.server;
|
||||||
|
|
||||||
|
import java.util.Timer;
|
||||||
|
import java.util.TimerTask;
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import org.apache.cloudstack.framework.messaging.EventBus;
|
import org.apache.cloudstack.framework.messaging.EventBus;
|
||||||
import org.apache.cloudstack.framework.messaging.EventDispatcher;
|
import org.apache.cloudstack.framework.messaging.EventDispatcher;
|
||||||
import org.apache.cloudstack.framework.messaging.EventHandler;
|
import org.apache.cloudstack.framework.messaging.EventHandler;
|
||||||
|
import org.apache.cloudstack.framework.messaging.RpcCallbackListener;
|
||||||
|
import org.apache.cloudstack.framework.messaging.RpcException;
|
||||||
import org.apache.cloudstack.framework.messaging.RpcProvider;
|
import org.apache.cloudstack.framework.messaging.RpcProvider;
|
||||||
import org.apache.cloudstack.framework.messaging.RpcServerCall;
|
import org.apache.cloudstack.framework.messaging.RpcServerCall;
|
||||||
import org.apache.cloudstack.framework.messaging.RpcServiceDispatcher;
|
import org.apache.cloudstack.framework.messaging.RpcServiceDispatcher;
|
||||||
import org.apache.cloudstack.framework.messaging.RpcServiceHandler;
|
import org.apache.cloudstack.framework.messaging.RpcServiceHandler;
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class SampleManagerComponent {
|
public class SampleManagerComponent {
|
||||||
|
private static final Logger s_logger = Logger.getLogger(SampleManagerComponent.class);
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private EventBus _eventBus;
|
private EventBus _eventBus;
|
||||||
@ -39,6 +46,8 @@ public class SampleManagerComponent {
|
|||||||
@Inject
|
@Inject
|
||||||
private RpcProvider _rpcProvider;
|
private RpcProvider _rpcProvider;
|
||||||
|
|
||||||
|
private Timer _timer = new Timer();
|
||||||
|
|
||||||
public SampleManagerComponent() {
|
public SampleManagerComponent() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -50,6 +59,12 @@ public class SampleManagerComponent {
|
|||||||
// subscribe to all network events (for example)
|
// subscribe to all network events (for example)
|
||||||
_eventBus.subscribe("network",
|
_eventBus.subscribe("network",
|
||||||
EventDispatcher.getDispatcher(this));
|
EventDispatcher.getDispatcher(this));
|
||||||
|
|
||||||
|
_timer.schedule(new TimerTask() {
|
||||||
|
public void run() {
|
||||||
|
testRpc();
|
||||||
|
}
|
||||||
|
}, 3000);
|
||||||
}
|
}
|
||||||
|
|
||||||
@RpcServiceHandler(command="NetworkPrepare")
|
@RpcServiceHandler(command="NetworkPrepare")
|
||||||
@ -60,4 +75,24 @@ public class SampleManagerComponent {
|
|||||||
@EventHandler(topic="network.prepare")
|
@EventHandler(topic="network.prepare")
|
||||||
void onPrepareNetwork(String sender, String topic, Object args) {
|
void onPrepareNetwork(String sender, String topic, Object args) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void testRpc() {
|
||||||
|
SampleStoragePrepareCommand cmd = new SampleStoragePrepareCommand();
|
||||||
|
cmd.setStoragePool("Pool1");
|
||||||
|
cmd.setVolumeId("vol1");
|
||||||
|
|
||||||
|
_rpcProvider.newCall()
|
||||||
|
.setCommand("StoragePrepare").setCommandArg(cmd).setTimeout(10000)
|
||||||
|
.addCallbackListener(new RpcCallbackListener<SampleStoragePrepareAnswer>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(SampleStoragePrepareAnswer result) {
|
||||||
|
s_logger.info("StoragePrepare return result: " + result.getResult());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(RpcException e) {
|
||||||
|
s_logger.info("StoragePrepare failed");
|
||||||
|
}
|
||||||
|
}).apply();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -28,10 +28,13 @@ import org.apache.cloudstack.framework.messaging.RpcProvider;
|
|||||||
import org.apache.cloudstack.framework.messaging.RpcServerCall;
|
import org.apache.cloudstack.framework.messaging.RpcServerCall;
|
||||||
import org.apache.cloudstack.framework.messaging.RpcServiceDispatcher;
|
import org.apache.cloudstack.framework.messaging.RpcServiceDispatcher;
|
||||||
import org.apache.cloudstack.framework.messaging.RpcServiceHandler;
|
import org.apache.cloudstack.framework.messaging.RpcServiceHandler;
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class SampleManagerComponent2 {
|
public class SampleManagerComponent2 {
|
||||||
|
private static final Logger s_logger = Logger.getLogger(SampleManagerComponent2.class);
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private EventBus _eventBus;
|
private EventBus _eventBus;
|
||||||
|
|
||||||
@ -53,7 +56,13 @@ public class SampleManagerComponent2 {
|
|||||||
|
|
||||||
@RpcServiceHandler(command="StoragePrepare")
|
@RpcServiceHandler(command="StoragePrepare")
|
||||||
void onStartCommand(RpcServerCall call) {
|
void onStartCommand(RpcServerCall call) {
|
||||||
call.completeCall("StoragePrepare completed");
|
s_logger.info("Reevieved StoragePrpare call");
|
||||||
|
SampleStoragePrepareCommand cmd = call.getCommandArgument();
|
||||||
|
|
||||||
|
s_logger.info("StoragePrepare command arg. pool: " + cmd.getStoragePool() + ", vol: " + cmd.getVolumeId());
|
||||||
|
SampleStoragePrepareAnswer answer = new SampleStoragePrepareAnswer();
|
||||||
|
|
||||||
|
call.completeCall(answer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(topic="storage.prepare")
|
@EventHandler(topic="storage.prepare")
|
||||||
|
|||||||
@ -0,0 +1,37 @@
|
|||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
package org.apache.cloudstack.framework.messaging.server;
|
||||||
|
|
||||||
|
import org.apache.cloudstack.framework.messaging.OnwireName;
|
||||||
|
|
||||||
|
@OnwireName(name="SampleStoragePrepareAnswer")
|
||||||
|
public class SampleStoragePrepareAnswer {
|
||||||
|
String result;
|
||||||
|
|
||||||
|
public SampleStoragePrepareAnswer() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getResult() {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setResult(String result) {
|
||||||
|
this.result = result;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,47 @@
|
|||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
package org.apache.cloudstack.framework.messaging.server;
|
||||||
|
|
||||||
|
import org.apache.cloudstack.framework.messaging.OnwireName;
|
||||||
|
|
||||||
|
@OnwireName(name="SampleStoragePrepareCommand")
|
||||||
|
public class SampleStoragePrepareCommand {
|
||||||
|
|
||||||
|
String storagePool;
|
||||||
|
String volumeId;
|
||||||
|
|
||||||
|
public SampleStoragePrepareCommand() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStoragePool() {
|
||||||
|
return storagePool;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStoragePool(String storagePool) {
|
||||||
|
this.storagePool = storagePool;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getVolumeId() {
|
||||||
|
return volumeId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVolumeId(String volumeId) {
|
||||||
|
this.volumeId = volumeId;
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user