RD: Updated SAL communication classes

Change-Id: Iee17853ebbf570a6576553eaeab2445821deadf8
This commit is contained in:
ipatini 2024-05-13 23:44:33 +03:00
parent 68b8bc9f34
commit a0b1e1d08b
3 changed files with 20 additions and 13 deletions

View File

@ -142,7 +142,7 @@ public class SALCommunicator {
}
public static String get_device_registration_json(String internal_ip_address, String external_ip_address, int cpu_cores, int ram_gb, int disk_gb, String device_name,String provider_id, String city_name, String country_name, String device_username, String device_password, double device_longitude, double device_latitude) {
public static String get_device_registration_json(String internal_ip_address, String external_ip_address, int external_access_port, String os_family, String os_architecture, int os_version, int cpu_cores, int ram_gb, int disk_gb, String device_name,String provider_id, String city_name, String country_name, String device_username, String device_password, String private_key, double device_longitude, double device_latitude) {
JSONObject root_json_object = new JSONObject();
JSONObject loginCredential = new JSONObject();
@ -154,7 +154,7 @@ public class SALCommunicator {
loginCredential.put("username", device_username);
loginCredential.put("password", device_password);
loginCredential.put("privateKey", "");
loginCredential.put("privateKey", private_key);
ipAddress1.put("IpAddressType", "PUBLIC_IP");
@ -166,9 +166,9 @@ public class SALCommunicator {
ipAddress2.put("value", internal_ip_address);
operatingSystem.put("operatingSystemFamily", "UBUNTU");
operatingSystem.put("operatingSystemArchitecture", "ARMv8");
operatingSystem.put("operatingSystemVersion", 2204);
operatingSystem.put("operatingSystemFamily", os_family);
operatingSystem.put("operatingSystemArchitecture", os_architecture);
operatingSystem.put("operatingSystemVersion", os_version);
geoLocation.put("city", city_name);
geoLocation.put("country", country_name);
@ -184,6 +184,7 @@ public class SALCommunicator {
root_json_object.put("name", device_name);
root_json_object.put("loginCredential", loginCredential);
root_json_object.put("port", external_access_port);
JSONArray ipAddresses = new JSONArray();
ipAddresses.add(ipAddress1);
@ -191,7 +192,7 @@ public class SALCommunicator {
root_json_object.put("ipAddresses", ipAddresses);
root_json_object.put("nodeProperties", nodeProperties);
root_json_object.put("systemArch", "ARMv8");
root_json_object.put("systemArch", os_architecture); //TODO refine - for now assuming that the architecture of the device is the same as that of the OS installed on top of it, could be a wrong assumption
root_json_object.put("scriptURL", "https://www.google.com");
root_json_object.put("jarURL", "https://www.activeeon.com/public_content/7cde3381417ff3784639dc41fa7e7cd0544a5234-morphemic-7bulls/node_13.1.0-SNAPSHOT_armv8.jar");

View File

@ -35,12 +35,12 @@ public class SynchronousBrokerPublisher {
HashSet<String> topics_to_publish_to = new HashSet<>();
topics_to_publish_to.add(topic);
broker_and_topics_to_publish_to.put(broker_ip,topics_to_publish_to);
log.error("changed1");
//log.error("changed1");
publisher_configuration_changed = true;
}else{
if (!broker_and_topics_to_publish_to.get(broker_ip).contains(topic)){
broker_and_topics_to_publish_to.get(broker_ip).add(topic);
log.error("changed2");
//log.error("changed2");
publisher_configuration_changed = true;
}
else{
@ -48,9 +48,9 @@ public class SynchronousBrokerPublisher {
}
}
log.error("preliminary_outside");
//log.error("preliminary_outside");
if (publisher_configuration_changed){
log.error("preliminary_inside1");
//log.error("preliminary_inside1");
// for (String current_broker_ip : broker_and_topics_to_publish_to.keySet()){
log.info("Publisher configuration changed, creating new connector at "+broker_ip+" for topic "+topic);
if (active_connector!=null) {
@ -58,7 +58,7 @@ public class SynchronousBrokerPublisher {
}
publishers.clear();
for (String broker_topic : broker_and_topics_to_publish_to.get(broker_ip)){
log.error("preliminary_inside2");
//log.error("preliminary_inside2");
//ArrayList<Publisher> publishers = new ArrayList<>();
SyncedPublisher publisher = new SyncedPublisher("resource_manager_"+broker_topic, broker_topic, true, true);
publishers.add(publisher);

View File

@ -72,6 +72,11 @@ public class SALRegistrationService implements InitializingBean {
String city_name = ""; //TODO improve this
String country_name = ""; //TODO improve this
String internal_ip = ""; //TODO improve this
String os_family = "UBUNTU"; //TODO improve this
String os_architecture = "ARMv8"; //TODO improve this
int os_version = 2204; //TODO improve this
String private_key = ""; //TODO improve this
int external_access_port = device.getPort();
double device_longitude = 0,device_latitude =0;
if (device.getLocation()!=null){
String location_name = "";
@ -94,7 +99,8 @@ public class SALRegistrationService implements InitializingBean {
//register_device_message.put("device_name",device_name);
//register_device_message.put("timestamp",(int)(clock.millis()/1000));
String register_device_message_string = get_device_registration_json(internal_ip,external_ip_address,cores,ram_gb,disk_gb,device_name,provider_id,city_name,country_name, device_username, device_password,device_longitude, device_latitude);
String register_device_message_string = get_device_registration_json(internal_ip,external_ip_address,external_access_port,os_family,os_architecture,os_version,cores,ram_gb,disk_gb,device_name,provider_id,city_name,country_name, device_username, device_password,private_key,device_longitude, device_latitude);
log.info("topic is {}", get_registration_topic_name(application_name));
log.info("broker ip is {}", processorProperties.getNebulous_broker_ip_address());
log.info("broker port is {}", processorProperties.getNebulous_broker_port());
@ -106,7 +112,7 @@ public class SALRegistrationService implements InitializingBean {
SynchronousBrokerPublisher register_device_publisher = new SynchronousBrokerPublisher(get_registration_topic_name(application_name), processorProperties.getNebulous_broker_ip_address(),processorProperties.getNebulous_broker_port(), processorProperties.getNebulous_broker_username(), processorProperties.getNebulous_broker_password(), "");
//TODO handle the response here
Map response = register_device_publisher.publish_for_response(register_device_message_string, Collections.singleton(application_name));
log.info("The response received while trying to register device " + device_name);
log.info("The response received while trying to register device " + device_name + " is "+response.toString());
//}
/* This is some realtime information, could be retrieved with a different call to the EMS.