error handling
diff --git a/bin/Barreleye.py b/bin/Barreleye.py
index 436bec1..e32f559 100644
--- a/bin/Barreleye.py
+++ b/bin/Barreleye.py
@@ -279,7 +279,7 @@
 	}
 
 SYSTEM_CONFIG['org.openbmc.sensors.Occ'] = {
-		'system_state' : 'HOST_UP',
+		'system_state' : 'BOOTED',
 		'start_process' : True,
 		'monitor_process' : True,
 		'process_name' : 'sensor_occ.exe',
diff --git a/bin/eventlogger.py b/bin/eventlogger.py
index 95edfb8..131faec 100644
--- a/bin/eventlogger.py
+++ b/bin/eventlogger.py
@@ -35,7 +35,7 @@
 
 		json_dump = json.dumps(message)
 		print "EVENT_LOG: "+json_dump
-		syslog.openlog('[OpenBmc]',logoption=syslog.LOG_PID)
+		syslog.openlog('OpenBmc',logoption=syslog.LOG_PID)
 		syslog.syslog(priority,json_dump)
 		syslog.closelog()
 		
diff --git a/bin/sensor_manager.py b/bin/sensor_manager.py
index 0020a1a..9a193d6 100644
--- a/bin/sensor_manager.py
+++ b/bin/sensor_manager.py
@@ -38,8 +38,10 @@
 		self.sensor_cache = {}
 
 	@dbus.service.method(DBUS_NAME,
-		in_signature='', out_signature='a{sv}')
+		in_signature='', out_signature='a{sa{sv}}')
 	def getSensorsAll(self):
+		## this is probably not ok
+		##sensors = []
 		return self.sensor_cache;
 	
 	@dbus.service.method(DBUS_NAME,
diff --git a/interfaces/openbmc_intf.c b/interfaces/openbmc_intf.c
index fcdac58..5ccc4f5 100644
--- a/interfaces/openbmc_intf.c
+++ b/interfaces/openbmc_intf.c
@@ -209,6 +209,19 @@
   FALSE
 };
 
+static const _ExtendedGDBusPropertyInfo _occ_property_info_instance_name =
+{
+  {
+    -1,
+    (gchar *) "instance_name",
+    (gchar *) "s",
+    G_DBUS_PROPERTY_INFO_FLAGS_READABLE,
+    NULL
+  },
+  "instance-name",
+  FALSE
+};
+
 static const _ExtendedGDBusPropertyInfo _occ_property_info_poll_interval =
 {
   {
@@ -225,6 +238,7 @@
 static const _ExtendedGDBusPropertyInfo * const _occ_property_info_pointers[] =
 {
   &_occ_property_info_state,
+  &_occ_property_info_instance_name,
   &_occ_property_info_poll_interval,
   NULL
 };
@@ -270,6 +284,7 @@
 occ_override_properties (GObjectClass *klass, guint property_id_begin)
 {
   g_object_class_override_property (klass, property_id_begin++, "state");
+  g_object_class_override_property (klass, property_id_begin++, "instance-name");
   g_object_class_override_property (klass, property_id_begin++, "poll-interval");
   return property_id_begin - 1;
 }
@@ -287,6 +302,7 @@
  * @parent_iface: The parent interface.
  * @handle_collect: Handler for the #Occ::handle-collect signal.
  * @handle_init: Handler for the #Occ::handle-init signal.
+ * @get_instance_name: Getter for the #Occ:instance-name property.
  * @get_poll_interval: Getter for the #Occ:poll-interval property.
  * @get_state: Getter for the #Occ:state property.
  *
@@ -355,6 +371,15 @@
   g_object_interface_install_property (iface,
     g_param_spec_string ("state", "state", "state", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   /**
+   * Occ:instance-name:
+   *
+   * Represents the D-Bus property <link linkend="gdbus-property-org-openbmc-Occ.instance_name">"instance_name"</link>.
+   *
+   * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
+   */
+  g_object_interface_install_property (iface,
+    g_param_spec_string ("instance-name", "instance_name", "instance_name", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  /**
    * Occ:poll-interval:
    *
    * Represents the D-Bus property <link linkend="gdbus-property-org-openbmc-Occ.poll_interval">"poll_interval"</link>.
@@ -417,6 +442,57 @@
 }
 
 /**
+ * occ_get_instance_name: (skip)
+ * @object: A #Occ.
+ *
+ * Gets the value of the <link linkend="gdbus-property-org-openbmc-Occ.instance_name">"instance_name"</link> D-Bus property.
+ *
+ * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+ *
+ * <warning>The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use occ_dup_instance_name() if on another thread.</warning>
+ *
+ * Returns: (transfer none): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
+ */
+const gchar *
+occ_get_instance_name (Occ *object)
+{
+  return OCC_GET_IFACE (object)->get_instance_name (object);
+}
+
+/**
+ * occ_dup_instance_name: (skip)
+ * @object: A #Occ.
+ *
+ * Gets a copy of the <link linkend="gdbus-property-org-openbmc-Occ.instance_name">"instance_name"</link> D-Bus property.
+ *
+ * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+ *
+ * Returns: (transfer full): The property value or %NULL if the property is not set. The returned value should be freed with g_free().
+ */
+gchar *
+occ_dup_instance_name (Occ *object)
+{
+  gchar *value;
+  g_object_get (G_OBJECT (object), "instance-name", &value, NULL);
+  return value;
+}
+
+/**
+ * occ_set_instance_name: (skip)
+ * @object: A #Occ.
+ * @value: The value to set.
+ *
+ * Sets the <link linkend="gdbus-property-org-openbmc-Occ.instance_name">"instance_name"</link> D-Bus property to @value.
+ *
+ * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.
+ */
+void
+occ_set_instance_name (Occ *object, const gchar *value)
+{
+  g_object_set (G_OBJECT (object), "instance-name", value, NULL);
+}
+
+/**
  * occ_get_poll_interval: (skip)
  * @object: A #Occ.
  *
@@ -715,7 +791,7 @@
 {
   const _ExtendedGDBusPropertyInfo *info;
   GVariant *variant;
-  g_assert (prop_id != 0 && prop_id - 1 < 2);
+  g_assert (prop_id != 0 && prop_id - 1 < 3);
   info = _occ_property_info_pointers[prop_id - 1];
   variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (object), info->parent_struct.name);
   if (info->use_gvariant)
@@ -762,7 +838,7 @@
 {
   const _ExtendedGDBusPropertyInfo *info;
   GVariant *variant;
-  g_assert (prop_id != 0 && prop_id - 1 < 2);
+  g_assert (prop_id != 0 && prop_id - 1 < 3);
   info = _occ_property_info_pointers[prop_id - 1];
   variant = g_dbus_gvalue_to_gvariant (value, G_VARIANT_TYPE (info->parent_struct.signature));
   g_dbus_proxy_call (G_DBUS_PROXY (object),
@@ -859,6 +935,21 @@
   return value;
 }
 
+static const gchar *
+occ_proxy_get_instance_name (Occ *object)
+{
+  OccProxy *proxy = OCC_PROXY (object);
+  GVariant *variant;
+  const gchar *value = NULL;
+  variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "instance_name");
+  if (variant != NULL)
+    {
+      value = g_variant_get_string (variant, NULL);
+      g_variant_unref (variant);
+    }
+  return value;
+}
+
 static gint 
 occ_proxy_get_poll_interval (Occ *object)
 {
@@ -912,6 +1003,7 @@
 occ_proxy_iface_init (OccIface *iface)
 {
   iface->get_state = occ_proxy_get_state;
+  iface->get_instance_name = occ_proxy_get_instance_name;
   iface->get_poll_interval = occ_proxy_get_poll_interval;
 }
 
@@ -1339,7 +1431,7 @@
 {
   OccSkeleton *skeleton = OCC_SKELETON (object);
   guint n;
-  for (n = 0; n < 2; n++)
+  for (n = 0; n < 3; n++)
     g_value_unset (&skeleton->priv->properties[n]);
   g_free (skeleton->priv->properties);
   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
@@ -1357,7 +1449,7 @@
   GParamSpec   *pspec G_GNUC_UNUSED)
 {
   OccSkeleton *skeleton = OCC_SKELETON (object);
-  g_assert (prop_id != 0 && prop_id - 1 < 2);
+  g_assert (prop_id != 0 && prop_id - 1 < 3);
   g_mutex_lock (&skeleton->priv->lock);
   g_value_copy (&skeleton->priv->properties[prop_id - 1], value);
   g_mutex_unlock (&skeleton->priv->lock);
@@ -1474,7 +1566,7 @@
   GParamSpec   *pspec)
 {
   OccSkeleton *skeleton = OCC_SKELETON (object);
-  g_assert (prop_id != 0 && prop_id - 1 < 2);
+  g_assert (prop_id != 0 && prop_id - 1 < 3);
   g_mutex_lock (&skeleton->priv->lock);
   g_object_freeze_notify (object);
   if (!_g_value_equal (value, &skeleton->priv->properties[prop_id - 1]))
@@ -1499,9 +1591,10 @@
 
   g_mutex_init (&skeleton->priv->lock);
   skeleton->priv->context = g_main_context_ref_thread_default ();
-  skeleton->priv->properties = g_new0 (GValue, 2);
+  skeleton->priv->properties = g_new0 (GValue, 3);
   g_value_init (&skeleton->priv->properties[0], G_TYPE_STRING);
-  g_value_init (&skeleton->priv->properties[1], G_TYPE_INT);
+  g_value_init (&skeleton->priv->properties[1], G_TYPE_STRING);
+  g_value_init (&skeleton->priv->properties[2], G_TYPE_INT);
 }
 
 static const gchar *
@@ -1515,13 +1608,24 @@
   return value;
 }
 
+static const gchar *
+occ_skeleton_get_instance_name (Occ *object)
+{
+  OccSkeleton *skeleton = OCC_SKELETON (object);
+  const gchar *value;
+  g_mutex_lock (&skeleton->priv->lock);
+  value = g_value_get_string (&(skeleton->priv->properties[1]));
+  g_mutex_unlock (&skeleton->priv->lock);
+  return value;
+}
+
 static gint 
 occ_skeleton_get_poll_interval (Occ *object)
 {
   OccSkeleton *skeleton = OCC_SKELETON (object);
   gint value;
   g_mutex_lock (&skeleton->priv->lock);
-  value = g_value_get_int (&(skeleton->priv->properties[1]));
+  value = g_value_get_int (&(skeleton->priv->properties[2]));
   g_mutex_unlock (&skeleton->priv->lock);
   return value;
 }
@@ -1556,6 +1660,7 @@
 occ_skeleton_iface_init (OccIface *iface)
 {
   iface->get_state = occ_skeleton_get_state;
+  iface->get_instance_name = occ_skeleton_get_instance_name;
   iface->get_poll_interval = occ_skeleton_get_poll_interval;
 }
 
@@ -17669,6 +17774,42 @@
 
 /* ---- Introspection data for org.openbmc.EventLog ---- */
 
+static const _ExtendedGDBusArgInfo _event_log_method_info_get_event_log_OUT_ARG_log =
+{
+  {
+    -1,
+    (gchar *) "log",
+    (gchar *) "a(s)",
+    NULL
+  },
+  FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _event_log_method_info_get_event_log_OUT_ARG_pointers[] =
+{
+  &_event_log_method_info_get_event_log_OUT_ARG_log,
+  NULL
+};
+
+static const _ExtendedGDBusMethodInfo _event_log_method_info_get_event_log =
+{
+  {
+    -1,
+    (gchar *) "getEventLog",
+    NULL,
+    (GDBusArgInfo **) &_event_log_method_info_get_event_log_OUT_ARG_pointers,
+    NULL
+  },
+  "handle-get-event-log",
+  FALSE
+};
+
+static const _ExtendedGDBusMethodInfo * const _event_log_method_info_pointers[] =
+{
+  &_event_log_method_info_get_event_log,
+  NULL
+};
+
 static const _ExtendedGDBusArgInfo _event_log_signal_info_event_log_ARG_priority =
 {
   {
@@ -17720,7 +17861,7 @@
   {
     -1,
     (gchar *) "org.openbmc.EventLog",
-    NULL,
+    (GDBusMethodInfo **) &_event_log_method_info_pointers,
     (GDBusSignalInfo **) &_event_log_signal_info_pointers,
     NULL,
     NULL
@@ -17769,6 +17910,7 @@
 /**
  * EventLogIface:
  * @parent_iface: The parent interface.
+ * @handle_get_event_log: Handler for the #EventLog::handle-get-event-log signal.
  * @event_log: Handler for the #EventLog::event-log signal.
  *
  * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-openbmc-EventLog.top_of_page">org.openbmc.EventLog</link>.
@@ -17780,6 +17922,29 @@
 static void
 event_log_default_init (EventLogIface *iface)
 {
+  /* GObject signals for incoming D-Bus method calls: */
+  /**
+   * EventLog::handle-get-event-log:
+   * @object: A #EventLog.
+   * @invocation: A #GDBusMethodInvocation.
+   *
+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-openbmc-EventLog.getEventLog">getEventLog()</link> D-Bus method.
+   *
+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call event_log_complete_get_event_log() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+   *
+   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
+   */
+  g_signal_new ("handle-get-event-log",
+    G_TYPE_FROM_INTERFACE (iface),
+    G_SIGNAL_RUN_LAST,
+    G_STRUCT_OFFSET (EventLogIface, handle_get_event_log),
+    g_signal_accumulator_true_handled,
+    NULL,
+    g_cclosure_marshal_generic,
+    G_TYPE_BOOLEAN,
+    1,
+    G_TYPE_DBUS_METHOD_INVOCATION);
+
   /* GObject signals for received D-Bus signals: */
   /**
    * EventLog::event-log:
@@ -17820,6 +17985,125 @@
   g_signal_emit_by_name (object, "event-log", arg_priority, arg_message);
 }
 
+/**
+ * event_log_call_get_event_log:
+ * @proxy: A #EventLogProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously invokes the <link linkend="gdbus-method-org-openbmc-EventLog.getEventLog">getEventLog()</link> D-Bus method on @proxy.
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call event_log_call_get_event_log_finish() to get the result of the operation.
+ *
+ * See event_log_call_get_event_log_sync() for the synchronous, blocking version of this method.
+ */
+void
+event_log_call_get_event_log (
+    EventLog *proxy,
+    GCancellable *cancellable,
+    GAsyncReadyCallback callback,
+    gpointer user_data)
+{
+  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+    "getEventLog",
+    g_variant_new ("()"),
+    G_DBUS_CALL_FLAGS_NONE,
+    -1,
+    cancellable,
+    callback,
+    user_data);
+}
+
+/**
+ * event_log_call_get_event_log_finish:
+ * @proxy: A #EventLogProxy.
+ * @out_log: (out): Return location for return parameter or %NULL to ignore.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to event_log_call_get_event_log().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with event_log_call_get_event_log().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+event_log_call_get_event_log_finish (
+    EventLog *proxy,
+    GVariant **out_log,
+    GAsyncResult *res,
+    GError **error)
+{
+  GVariant *_ret;
+  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
+  if (_ret == NULL)
+    goto _out;
+  g_variant_get (_ret,
+                 "(@a(s))",
+                 out_log);
+  g_variant_unref (_ret);
+_out:
+  return _ret != NULL;
+}
+
+/**
+ * event_log_call_get_event_log_sync:
+ * @proxy: A #EventLogProxy.
+ * @out_log: (out): Return location for return parameter or %NULL to ignore.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously invokes the <link linkend="gdbus-method-org-openbmc-EventLog.getEventLog">getEventLog()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See event_log_call_get_event_log() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+event_log_call_get_event_log_sync (
+    EventLog *proxy,
+    GVariant **out_log,
+    GCancellable *cancellable,
+    GError **error)
+{
+  GVariant *_ret;
+  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+    "getEventLog",
+    g_variant_new ("()"),
+    G_DBUS_CALL_FLAGS_NONE,
+    -1,
+    cancellable,
+    error);
+  if (_ret == NULL)
+    goto _out;
+  g_variant_get (_ret,
+                 "(@a(s))",
+                 out_log);
+  g_variant_unref (_ret);
+_out:
+  return _ret != NULL;
+}
+
+/**
+ * event_log_complete_get_event_log:
+ * @object: A #EventLog.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * @log: Parameter to return.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-openbmc-EventLog.getEventLog">getEventLog()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ *
+ * This method will free @invocation, you cannot use it afterwards.
+ */
+void
+event_log_complete_get_event_log (
+    EventLog *object,
+    GDBusMethodInvocation *invocation,
+    GVariant *log)
+{
+  g_dbus_method_invocation_return_value (invocation,
+    g_variant_new ("(@a(s))",
+                   log));
+}
+
 /* ------------------------------------------------------------------------ */
 
 /**
diff --git a/interfaces/openbmc_intf.h b/interfaces/openbmc_intf.h
index 3e764c1..c064672 100644
--- a/interfaces/openbmc_intf.h
+++ b/interfaces/openbmc_intf.h
@@ -37,6 +37,8 @@
     Occ *object,
     GDBusMethodInvocation *invocation);
 
+  const gchar * (*get_instance_name) (Occ *object);
+
   gint  (*get_poll_interval) (Occ *object);
 
   const gchar * (*get_state) (Occ *object);
@@ -100,6 +102,10 @@
 gchar *occ_dup_state (Occ *object);
 void occ_set_state (Occ *object, const gchar *value);
 
+const gchar *occ_get_instance_name (Occ *object);
+gchar *occ_dup_instance_name (Occ *object);
+void occ_set_instance_name (Occ *object, const gchar *value);
+
 gint occ_get_poll_interval (Occ *object);
 void occ_set_poll_interval (Occ *object, gint value);
 
@@ -2343,6 +2349,11 @@
 {
   GTypeInterface parent_iface;
 
+
+  gboolean (*handle_get_event_log) (
+    EventLog *object,
+    GDBusMethodInvocation *invocation);
+
   void (*event_log) (
     EventLog *object,
     gint arg_priority,
@@ -2356,6 +2367,14 @@
 guint event_log_override_properties (GObjectClass *klass, guint property_id_begin);
 
 
+/* D-Bus method call completion functions: */
+void event_log_complete_get_event_log (
+    EventLog *object,
+    GDBusMethodInvocation *invocation,
+    GVariant *log);
+
+
+
 /* D-Bus signal emissions functions: */
 void event_log_emit_event_log (
     EventLog *object,
@@ -2364,6 +2383,27 @@
 
 
 
+/* D-Bus method calls: */
+void event_log_call_get_event_log (
+    EventLog *proxy,
+    GCancellable *cancellable,
+    GAsyncReadyCallback callback,
+    gpointer user_data);
+
+gboolean event_log_call_get_event_log_finish (
+    EventLog *proxy,
+    GVariant **out_log,
+    GAsyncResult *res,
+    GError **error);
+
+gboolean event_log_call_get_event_log_sync (
+    EventLog *proxy,
+    GVariant **out_log,
+    GCancellable *cancellable,
+    GError **error);
+
+
+
 /* ---- */
 
 #define TYPE_EVENT_LOG_PROXY (event_log_proxy_get_type ())
diff --git a/objects/sensor_occ_obj.c b/objects/sensor_occ_obj.c
index bd68382..91935f2 100644
--- a/objects/sensor_occ_obj.c
+++ b/objects/sensor_occ_obj.c
@@ -13,9 +13,12 @@
 

 static gboolean poll_occ(gpointer user_data)

 {

-/*

+	//g_dbus_object_get_object_path(G_DBUS_OBJECT(user_data)),

+	Occ* occ = object_get_occ((Object*)user_data);

+

 	gchar *s;

-	s = g_strdup_printf ("%s/Temperature/%d",g_dbus_object_get_object_path(G_DBUS_OBJECT(user_data)), 1);

+	s = g_strdup_printf ("%s/Temperature/P8_%s_Core_%d",

+			dbus_object_path,occ_get_instance_name(occ),1);

 	g_print("%s\n",s);

 

 	GDBusInterface* interface = g_dbus_object_manager_get_interface((GDBusObjectManager*)manager,s,

@@ -31,12 +34,9 @@
 	}

 	g_free (s);

 	//g_free(interface);

-*/

 	return TRUE;

 }

 

-

-

 static gboolean

 on_init (Occ         *occ,

          GDBusMethodInvocation  *invocation,

@@ -84,6 +84,7 @@
 		Occ *occ = occ_skeleton_new ();

   		object_skeleton_set_occ (object, occ);

   		g_object_unref (occ);

+		occ_set_instance_name(occ,cmd->argv[i]);

 

 		SensorI2c *i2c = sensor_i2c_skeleton_new ();

   		object_skeleton_set_sensor_i2c (object, i2c);

diff --git a/xml/openbmc_intf.xml b/xml/openbmc_intf.xml
index 728fdbd..8418b9a 100644
--- a/xml/openbmc_intf.xml
+++ b/xml/openbmc_intf.xml
@@ -3,6 +3,7 @@
 		<method name="init"/>
 		<method name="collect"/>
 		<property name="state" type="s" access="readwrite"/>
+		<property name="instance_name" type="s" access="read"/>
 		<property name="poll_interval" type="i" access="readwrite"/>
 	</interface>
 
@@ -123,6 +124,9 @@
 		<signal name="WatchdogError"/>
 	</interface>
 	<interface name="org.openbmc.EventLog">
+		<method name="getEventLog">
+			<arg name="log" type="a(s)" direction="out"/>
+		</method>
 		<signal name="EventLog">
 			<arg name="priority" type="i"/>
 			<arg name="message" type="s"/>