diff --git a/resource-discovery/src/main/java/eu/nebulous/resource/discovery/broker_communication/SALCommunicator.java b/resource-discovery/src/main/java/eu/nebulous/resource/discovery/broker_communication/SALCommunicator.java index 4b692aa..7d3f0af 100644 --- a/resource-discovery/src/main/java/eu/nebulous/resource/discovery/broker_communication/SALCommunicator.java +++ b/resource-discovery/src/main/java/eu/nebulous/resource/discovery/broker_communication/SALCommunicator.java @@ -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"); diff --git a/resource-discovery/src/main/java/eu/nebulous/resource/discovery/broker_communication/SynchronousBrokerPublisher.java b/resource-discovery/src/main/java/eu/nebulous/resource/discovery/broker_communication/SynchronousBrokerPublisher.java index 3958e17..5cdf4b9 100644 --- a/resource-discovery/src/main/java/eu/nebulous/resource/discovery/broker_communication/SynchronousBrokerPublisher.java +++ b/resource-discovery/src/main/java/eu/nebulous/resource/discovery/broker_communication/SynchronousBrokerPublisher.java @@ -35,12 +35,12 @@ public class SynchronousBrokerPublisher { HashSet 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 publishers = new ArrayList<>(); SyncedPublisher publisher = new SyncedPublisher("resource_manager_"+broker_topic, broker_topic, true, true); publishers.add(publisher); diff --git a/resource-discovery/src/main/java/eu/nebulous/resource/discovery/registration/service/SALRegistrationService.java b/resource-discovery/src/main/java/eu/nebulous/resource/discovery/registration/service/SALRegistrationService.java index fcde53a..607cb1f 100644 --- a/resource-discovery/src/main/java/eu/nebulous/resource/discovery/registration/service/SALRegistrationService.java +++ b/resource-discovery/src/main/java/eu/nebulous/resource/discovery/registration/service/SALRegistrationService.java @@ -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.