Sketched out server-side GUI code for setting/getting device friendly name.
Change-Id: If9cfe6b549fc312495f429f05f0907e0e24f2ee7
Showing
1 changed file
with
33 additions
and
3 deletions
... | @@ -25,6 +25,8 @@ import org.onosproject.net.Device; | ... | @@ -25,6 +25,8 @@ import org.onosproject.net.Device; |
25 | import org.onosproject.net.DeviceId; | 25 | import org.onosproject.net.DeviceId; |
26 | import org.onosproject.net.Link; | 26 | import org.onosproject.net.Link; |
27 | import org.onosproject.net.Port; | 27 | import org.onosproject.net.Port; |
28 | +import org.onosproject.net.config.NetworkConfigService; | ||
29 | +import org.onosproject.net.config.basics.BasicDeviceConfig; | ||
28 | import org.onosproject.net.device.DeviceService; | 30 | import org.onosproject.net.device.DeviceService; |
29 | import org.onosproject.net.link.LinkService; | 31 | import org.onosproject.net.link.LinkService; |
30 | import org.onosproject.ui.RequestHandler; | 32 | import org.onosproject.ui.RequestHandler; |
... | @@ -38,7 +40,10 @@ import java.util.Collections; | ... | @@ -38,7 +40,10 @@ import java.util.Collections; |
38 | import java.util.List; | 40 | import java.util.List; |
39 | import java.util.Set; | 41 | import java.util.Set; |
40 | 42 | ||
43 | +import static com.google.common.base.Strings.emptyToNull; | ||
44 | +import static com.google.common.base.Strings.isNullOrEmpty; | ||
41 | import static org.apache.commons.lang.WordUtils.capitalizeFully; | 45 | import static org.apache.commons.lang.WordUtils.capitalizeFully; |
46 | +import static org.onosproject.net.DeviceId.deviceId; | ||
42 | 47 | ||
43 | /** | 48 | /** |
44 | * Message handler for device view related messages. | 49 | * Message handler for device view related messages. |
... | @@ -53,6 +58,9 @@ public class DeviceViewMessageHandler extends UiMessageHandler { | ... | @@ -53,6 +58,9 @@ public class DeviceViewMessageHandler extends UiMessageHandler { |
53 | private static final String DEV_DETAILS_RESP = "deviceDetailsResponse"; | 58 | private static final String DEV_DETAILS_RESP = "deviceDetailsResponse"; |
54 | private static final String DETAILS = "details"; | 59 | private static final String DETAILS = "details"; |
55 | 60 | ||
61 | + private static final String DEV_NAME_CHANGE_REQ = "deviceNameChangeRequest"; | ||
62 | + private static final String DEV_NAME_CHANGE_RESP = "deviceNameChangeResponse"; | ||
63 | + | ||
56 | private static final String ID = "id"; | 64 | private static final String ID = "id"; |
57 | private static final String TYPE = "type"; | 65 | private static final String TYPE = "type"; |
58 | private static final String AVAILABLE = "available"; | 66 | private static final String AVAILABLE = "available"; |
... | @@ -87,6 +95,7 @@ public class DeviceViewMessageHandler extends UiMessageHandler { | ... | @@ -87,6 +95,7 @@ public class DeviceViewMessageHandler extends UiMessageHandler { |
87 | protected Collection<RequestHandler> createRequestHandlers() { | 95 | protected Collection<RequestHandler> createRequestHandlers() { |
88 | return ImmutableSet.of( | 96 | return ImmutableSet.of( |
89 | new DataRequestHandler(), | 97 | new DataRequestHandler(), |
98 | + new NameChangeHandler(), | ||
90 | new DetailRequestHandler() | 99 | new DetailRequestHandler() |
91 | ); | 100 | ); |
92 | } | 101 | } |
... | @@ -146,7 +155,7 @@ public class DeviceViewMessageHandler extends UiMessageHandler { | ... | @@ -146,7 +155,7 @@ public class DeviceViewMessageHandler extends UiMessageHandler { |
146 | public void process(long sid, ObjectNode payload) { | 155 | public void process(long sid, ObjectNode payload) { |
147 | String id = string(payload, "id", "of:0000000000000000"); | 156 | String id = string(payload, "id", "of:0000000000000000"); |
148 | 157 | ||
149 | - DeviceId deviceId = DeviceId.deviceId(id); | 158 | + DeviceId deviceId = deviceId(id); |
150 | DeviceService service = get(DeviceService.class); | 159 | DeviceService service = get(DeviceService.class); |
151 | MastershipService ms = get(MastershipService.class); | 160 | MastershipService ms = get(MastershipService.class); |
152 | Device device = service.getDevice(deviceId); | 161 | Device device = service.getDevice(deviceId); |
... | @@ -154,8 +163,9 @@ public class DeviceViewMessageHandler extends UiMessageHandler { | ... | @@ -154,8 +163,9 @@ public class DeviceViewMessageHandler extends UiMessageHandler { |
154 | 163 | ||
155 | data.put(ID, deviceId.toString()); | 164 | data.put(ID, deviceId.toString()); |
156 | 165 | ||
157 | - // TODO: get friendly name from the device | 166 | + // Get friendly name of the device from the annotations |
158 | - data.put(NAME, deviceId.toString()); | 167 | + String name = device.annotations().value(AnnotationKeys.NAME); |
168 | + data.put(NAME, isNullOrEmpty(name) ? deviceId.toString() : name); | ||
159 | 169 | ||
160 | data.put(TYPE, capitalizeFully(device.type().toString())); | 170 | data.put(TYPE, capitalizeFully(device.type().toString())); |
161 | data.put(TYPE_IID, getTypeIconId(device)); | 171 | data.put(TYPE_IID, getTypeIconId(device)); |
... | @@ -210,4 +220,24 @@ public class DeviceViewMessageHandler extends UiMessageHandler { | ... | @@ -210,4 +220,24 @@ public class DeviceViewMessageHandler extends UiMessageHandler { |
210 | return port; | 220 | return port; |
211 | } | 221 | } |
212 | } | 222 | } |
223 | + | ||
224 | + // handler for changing device friendly name | ||
225 | + private final class NameChangeHandler extends RequestHandler { | ||
226 | + private NameChangeHandler() { | ||
227 | + super(DEV_NAME_CHANGE_REQ); | ||
228 | + } | ||
229 | + | ||
230 | + @Override | ||
231 | + public void process(long sid, ObjectNode payload) { | ||
232 | + DeviceId deviceId = deviceId(string(payload, "id", "of:0000000000000000")); | ||
233 | + NetworkConfigService service = get(NetworkConfigService.class); | ||
234 | + BasicDeviceConfig cfg = service.getConfig(deviceId, BasicDeviceConfig.class); | ||
235 | + | ||
236 | + // Name attribute missing (or being empty) from the payload means | ||
237 | + // that the friendly name should be unset. | ||
238 | + cfg.name(emptyToNull(string(payload, "name", null))); | ||
239 | + cfg.apply(); | ||
240 | + sendMessage(DEV_NAME_CHANGE_RESP, 0, payload); | ||
241 | + } | ||
242 | + } | ||
213 | } | 243 | } | ... | ... |
-
Please register or login to post a comment