ONOS-2624
Fix host annotations of host description

Change-Id: I4822741e8cdef5c9620f5f2b8cf260fc0f523bf9
diff --git a/providers/ovsdb/host/src/main/java/org/onosproject/ovsdb/provider/host/OvsdbHostProvider.java b/providers/ovsdb/host/src/main/java/org/onosproject/ovsdb/provider/host/OvsdbHostProvider.java
index 7aa63f6..8d2fd14 100644
--- a/providers/ovsdb/host/src/main/java/org/onosproject/ovsdb/provider/host/OvsdbHostProvider.java
+++ b/providers/ovsdb/host/src/main/java/org/onosproject/ovsdb/provider/host/OvsdbHostProvider.java
@@ -1,147 +1,148 @@
-/*
- * Copyright 2015 Open Networking Laboratory
- *
- * Licensed 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.onosproject.ovsdb.provider.host;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static org.onlab.util.Tools.toHex;
-import static org.slf4j.LoggerFactory.getLogger;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Deactivate;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.apache.felix.scr.annotations.Service;
-import org.onlab.packet.VlanId;
-import org.onosproject.core.CoreService;
-import org.onosproject.net.DefaultAnnotations;
-import org.onosproject.net.DeviceId;
-import org.onosproject.net.Host;
-import org.onosproject.net.HostId;
-import org.onosproject.net.HostLocation;
-import org.onosproject.net.PortNumber;
-import org.onosproject.net.host.DefaultHostDescription;
-import org.onosproject.net.host.HostDescription;
-import org.onosproject.net.host.HostProvider;
-import org.onosproject.net.host.HostProviderRegistry;
-import org.onosproject.net.host.HostProviderService;
-import org.onosproject.net.host.HostService;
-import org.onosproject.net.provider.AbstractProvider;
-import org.onosproject.net.provider.ProviderId;
-import org.onosproject.ovsdb.controller.EventSubject;
-import org.onosproject.ovsdb.controller.OvsdbController;
-import org.onosproject.ovsdb.controller.OvsdbEvent;
-import org.onosproject.ovsdb.controller.OvsdbEventListener;
-import org.onosproject.ovsdb.controller.OvsdbEventSubject;
-import org.slf4j.Logger;
-
-/**
- * Provider which uses an ovsdb controller to detect host.
- */
-@Component(immediate = true)
-@Service
-public class OvsdbHostProvider extends AbstractProvider implements HostProvider {
-    private final Logger log = getLogger(getClass());
-
-    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
-    protected HostProviderRegistry providerRegistry;
-
-    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
-    protected HostService hostService;
-    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
-    protected CoreService coreService;
-    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
-    protected OvsdbController controller;
-
-    private HostProviderService providerService;
-    private OvsdbEventListener innerEventListener = new InnerOvsdbEventListener();
-
-    @Activate
-    public void activate() {
-        providerService = providerRegistry.register(this);
-        controller.addOvsdbEventListener(innerEventListener);
-        log.info("Started");
-    }
-
-    @Deactivate
-    public void deactivate() {
-        providerRegistry.unregister(this);
-        providerService = null;
-        log.info("Stopped");
-    }
-
-    public OvsdbHostProvider() {
-        super(new ProviderId("ovsdb", "org.onosproject.ovsdb.provider.host"));
-    }
-
-    @Override
-    public void triggerProbe(Host host) {
-        log.info("Triggering probe on host {}", host);
-    }
-
-    private class InnerOvsdbEventListener implements OvsdbEventListener {
-
-        @Override
-        public void handle(OvsdbEvent<EventSubject> event) {
-            OvsdbEventSubject subject = null;
-            if (event.subject() instanceof OvsdbEventSubject) {
-                subject = (OvsdbEventSubject) event.subject();
-            }
-            checkNotNull(subject, "EventSubject is not null");
-            // If ifaceid is null,it indicates this is not a vm port.
-            if (subject.ifaceid() == null) {
-                return;
-            }
-            switch (event.type()) {
-            case PORT_ADDED:
-                HostId hostId = HostId.hostId(subject.hwAddress(), null);
-                DeviceId deviceId = DeviceId.deviceId(uri(subject.dpid().value()));
-                PortNumber portNumber = PortNumber.portNumber(subject
-                        .portNumber().value(), subject.portName().value());
-                HostLocation loaction = new HostLocation(deviceId, portNumber,
-                                                         0L);
-                DefaultAnnotations annotations = DefaultAnnotations.builder()
-                        .set("ifaceid", subject.ifaceid().value()).build();
-                HostDescription hostDescription = new DefaultHostDescription(
-                                                                             subject.hwAddress(),
-                                                                             VlanId.vlanId(),
-                                                                             loaction,
-                                                                             annotations);
-                providerService.hostDetected(hostId, hostDescription);
-                break;
-            case PORT_REMOVED:
-                HostId host = HostId.hostId(subject.hwAddress(), null);
-                providerService.hostVanished(host);
-                break;
-            default:
-                break;
-            }
-
-        }
-
-    }
-
-    public URI uri(String value) {
-        try {
-            return new URI("of", toHex(Long.valueOf(value)), null);
-        } catch (URISyntaxException e) {
-            return null;
-        }
-    }
-}
+/*

+ * Copyright 2015 Open Networking Laboratory

+ *

+ * Licensed 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.onosproject.ovsdb.provider.host;

+

+import static com.google.common.base.Preconditions.checkNotNull;

+import static org.onlab.util.Tools.toHex;

+import static org.slf4j.LoggerFactory.getLogger;

+

+import java.net.URI;

+import java.net.URISyntaxException;

+

+import org.apache.felix.scr.annotations.Activate;

+import org.apache.felix.scr.annotations.Component;

+import org.apache.felix.scr.annotations.Deactivate;

+import org.apache.felix.scr.annotations.Reference;

+import org.apache.felix.scr.annotations.ReferenceCardinality;

+import org.apache.felix.scr.annotations.Service;

+import org.onlab.packet.VlanId;

+import org.onosproject.core.CoreService;

+import org.onosproject.net.DefaultAnnotations;

+import org.onosproject.net.DeviceId;

+import org.onosproject.net.Host;

+import org.onosproject.net.HostId;

+import org.onosproject.net.HostLocation;

+import org.onosproject.net.PortNumber;

+import org.onosproject.net.SparseAnnotations;

+import org.onosproject.net.host.DefaultHostDescription;

+import org.onosproject.net.host.HostDescription;

+import org.onosproject.net.host.HostProvider;

+import org.onosproject.net.host.HostProviderRegistry;

+import org.onosproject.net.host.HostProviderService;

+import org.onosproject.net.host.HostService;

+import org.onosproject.net.provider.AbstractProvider;

+import org.onosproject.net.provider.ProviderId;

+import org.onosproject.ovsdb.controller.EventSubject;

+import org.onosproject.ovsdb.controller.OvsdbController;

+import org.onosproject.ovsdb.controller.OvsdbEvent;

+import org.onosproject.ovsdb.controller.OvsdbEventListener;

+import org.onosproject.ovsdb.controller.OvsdbEventSubject;

+import org.slf4j.Logger;

+

+/**

+ * Provider which uses an ovsdb controller to detect host.

+ */

+@Component(immediate = true)

+@Service

+public class OvsdbHostProvider extends AbstractProvider implements HostProvider {

+    private final Logger log = getLogger(getClass());

+

+    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)

+    protected HostProviderRegistry providerRegistry;

+

+    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)

+    protected HostService hostService;

+    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)

+    protected CoreService coreService;

+    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)

+    protected OvsdbController controller;

+

+    private HostProviderService providerService;

+    private OvsdbEventListener innerEventListener = new InnerOvsdbEventListener();

+

+    @Activate

+    public void activate() {

+        providerService = providerRegistry.register(this);

+        controller.addOvsdbEventListener(innerEventListener);

+        log.info("Started");

+    }

+

+    @Deactivate

+    public void deactivate() {

+        providerRegistry.unregister(this);

+        providerService = null;

+        log.info("Stopped");

+    }

+

+    public OvsdbHostProvider() {

+        super(new ProviderId("ovsdb", "org.onosproject.ovsdb.provider.host"));

+    }

+

+    @Override

+    public void triggerProbe(Host host) {

+        log.info("Triggering probe on host {}", host);

+    }

+

+    private class InnerOvsdbEventListener implements OvsdbEventListener {

+

+        @Override

+        public void handle(OvsdbEvent<EventSubject> event) {

+            OvsdbEventSubject subject = null;

+            if (event.subject() instanceof OvsdbEventSubject) {

+                subject = (OvsdbEventSubject) event.subject();

+            }

+            checkNotNull(subject, "EventSubject is not null");

+            // If ifaceid is null,it indicates this is not a vm port.

+            if (subject.ifaceid() == null) {

+                return;

+            }

+            switch (event.type()) {

+            case PORT_ADDED:

+                HostId hostId = HostId.hostId(subject.hwAddress(), null);

+                DeviceId deviceId = DeviceId.deviceId(uri(subject.dpid().value()));

+                PortNumber portNumber = PortNumber.portNumber(subject

+                        .portNumber().value(), subject.portName().value());

+                HostLocation loaction = new HostLocation(deviceId, portNumber,

+                                                         0L);

+                SparseAnnotations annotations = DefaultAnnotations.builder()

+                        .set("ifaceid", subject.ifaceid().value()).build();

+                HostDescription hostDescription = new DefaultHostDescription(

+                                                                             subject.hwAddress(),

+                                                                             VlanId.vlanId(),

+                                                                             loaction,

+                                                                             annotations);

+                providerService.hostDetected(hostId, hostDescription);

+                break;

+            case PORT_REMOVED:

+                HostId host = HostId.hostId(subject.hwAddress(), null);

+                providerService.hostVanished(host);

+                break;

+            default:

+                break;

+            }

+

+        }

+

+    }

+

+    public URI uri(String value) {

+        try {

+            return new URI("of", toHex(Long.valueOf(value)), null);

+        } catch (URISyntaxException e) {

+            return null;

+        }

+    }

+}