completely wrap non-attribute functions in D-Bus
authorLennart Poettering <lennart@poettering.net>
Mon, 30 Jun 2008 21:24:50 +0000 (23:24 +0200)
committerLennart Poettering <lennart@poettering.net>
Mon, 30 Jun 2008 21:24:50 +0000 (23:24 +0200)
smartkitd.vala

index 7b2e636..847e90d 100644 (file)
@@ -26,261 +26,361 @@ using Hal;
 using Smart;
 
 errordomain Error {
-    SMART_NOT_AVAILABLE,
-    SYSTEM,
-    NOT_FOUND
+        SYSTEM,
+        NOT_FOUND,
+        SLEEPING,
+        UNKNOWN_TEST
 }
 
 [DBus (name = "net.poettering.SmartKit.Manager")]
 public interface ManagerAPI {
-    public abstract DBus.ObjectPath getDiskByUDI(string udi) throws Error;
-    public abstract DBus.ObjectPath getDiskByPath(string path) throws Error;
-/*     public abstract DBus.ObjectPath[] getDisks() throws Error; */
+        public abstract DBus.ObjectPath getDiskByUDI(string udi) throws Error;
+        public abstract DBus.ObjectPath getDiskByPath(string path) throws Error;
+
+        /* public abstract DBus.ObjectPath[] getDisks() throws Error; */
 }
 
 [DBus (name = "net.poettering.SmartKit.Disk")]
 public interface DiskAPI {
 
-/*     public abstract uint64 size { get; } */
+        public abstract string getPath() throws Error;
+        public abstract string getUDI() throws Error;
+
+        public abstract uint64 getSize() throws Error;
+
+        public abstract bool checkSleepMode() throws Error;
 
-    public abstract string getPath() throws Error;
-    public abstract string getUDI() throws Error;
+        public abstract bool isIdentifyAvailable() throws Error;
+        public abstract string getIdentifySerial() throws Error;
+        public abstract string getIdentifyFirmware() throws Error;
+        public abstract string getIdentifyModel() throws Error;
 
-    public abstract uint64 getSize() throws Error;
+        public abstract bool isSmartAvailable() throws Error;
+        public abstract bool checkSmartStatus() throws Error;
+        public abstract void readSmartData(bool wakeup) throws Error;
 
-    public abstract bool checkPowerMode() throws Error;
+        public abstract void startSelfTest(string test) throws Error;
+        public abstract void abortSelfTest() throws Error;
 
-    public abstract bool isIdentifyAvailable() throws Error;
-    public abstract string getIdentifySerial() throws Error;
-    public abstract string getIdentifyFirmware() throws Error;
-    public abstract string getIdentifyModel() throws Error;
+        public abstract string getOfflineDataCollectionStatus() throws Error;
+        public abstract uint getTotalOfflineDataCollectionSeconds() throws Error;
 
-    public abstract bool isSmartAvailable() throws Error;
-    public abstract void readSmartData() throws Error;
+        public abstract string getSelfTestExecutionStatus() throws Error;
+        public abstract uint getSelfTestExecutionPercentRemaining() throws Error;
 
-    public abstract string getOfflineDataCollectionStatus() throws Error;
-    public abstract uint getSelfTestExecutionPercentRemaining() throws Error;
-    public abstract uint getTotalOfflineDataCollectionSeconds() throws Error;
-    public abstract bool getConveyanceTestAvailable() throws Error;
-    public abstract bool getShortAndExtendedTestAvailable() throws Error;
-    public abstract bool getStartTestAvailable() throws Error;
-    public abstract bool getAbortTestAvailable() throws Error;
+        public abstract bool getConveyanceTestAvailable() throws Error;
+        public abstract bool getShortAndExtendedTestAvailable() throws Error;
+        public abstract bool getStartTestAvailable() throws Error;
+        public abstract bool getAbortTestAvailable() throws Error;
 
-    public abstract uint getShortTestPollingMinutes() throws Error;
-    public abstract uint getExtendedTestPollingMinutes() throws Error;
-    public abstract uint getConveyanceTestPollingMinutes() throws Error;
+        public abstract uint getShortTestPollingMinutes() throws Error;
+        public abstract uint getExtendedTestPollingMinutes() throws Error;
+        public abstract uint getConveyanceTestPollingMinutes() throws Error;
 }
 
 public class Disk : GLib.Object, DiskAPI {
-    private Smart.Disk disk;
-    public string dbus_path;
-
-    public string path { get; construct; }
-    public string udi { get; construct; }
-    public DBus.Connection connection { get; construct; }
-
-    Disk(DBus.Connection connection, string path, string udi) {
-        this.connection = connection;
-        this.path = path;
-        this.udi = udi;
-    }
-
-    private string clean_path(string s) {
-        var builder = new StringBuilder ();
-        string t;
-
-        for (int i = 0; i < s.size(); i++)
-            if (s[i].isalnum() || s[i] == '_')
-                builder.append_unichar(s[i]);
-            else
-                builder.append_unichar('_');
-
-        return builder.str;
-    }
-
-    public void open() throws Error {
-        if (Smart.Disk.open(this.path, out this.disk) < 0)
-            throw new Error.SYSTEM("open() failed");
-
-        weak Smart.IdentifyParsedData *d;
-
-        if (this.disk.identify_parse(out d) >= 0)
-            this.dbus_path = "/disk/%s/%s".printf(clean_path(d->model), clean_path(d->serial));
-        else
-            this.dbus_path = "/disk/%s".printf(clean_path(this.path));
-
-        stderr.printf("Registering D-Bus path %s\n", this.dbus_path);
-        this.connection.register_object(this.dbus_path, this);
-
-        this.disk.smart_read_data();
-    }
-
-    public string getPath() throws Error {
-        return this.path;
-    }
-
-    public string getUDI() throws Error {
-        return this.udi;
-    }
-
-    public uint64 getSize() throws Error {
-        uint64 s;
-        if (this.disk.get_size(out s) < 0)
-            throw new Error.SYSTEM("get_size() failed: %s", Smart.strerror(Smart.errno));
-        return s;
-    }
-
-    public bool checkPowerMode() throws Error {
-        bool b;
-        if (this.disk.check_sleep_mode(out b) < 0)
-            throw new Error.SYSTEM("check_power_mode() failed: %s", Smart.strerror(Smart.errno));
-        return b;
-    }
-
-    public bool isIdentifyAvailable() throws Error {
-        bool b;
-        if (this.disk.identify_is_available(out b) < 0)
-            throw new Error.SYSTEM("identify_is_available() failed: %s", Smart.strerror(Smart.errno));
-        return b;
-    }
-
-    public string getIdentifySerial() throws Error {
-        weak Smart.IdentifyParsedData *d;
-        if (this.disk.identify_parse(out d) < 0)
-            throw new Error.SYSTEM("identify_parse() failed: %s", Smart.strerror(Smart.errno));
-        return d->serial;
-    }
-
-    public string getIdentifyFirmware() throws Error {
-        weak Smart.IdentifyParsedData *d;
-        if (this.disk.identify_parse(out d) < 0)
-            throw new Error.SYSTEM("identify_parse() failed: %s", Smart.strerror(Smart.errno));
-        return d->firmware;
-    }
-
-    public string getIdentifyModel() throws Error {
-        weak Smart.IdentifyParsedData *d;
-        if (this.disk.identify_parse(out d) < 0)
-            throw new Error.SYSTEM("identify_parse() failed: %s", Smart.strerror(Smart.errno));
-        return d->model;
-    }
-
-    public bool isSmartAvailable() throws Error {
-        bool b;
-        if (this.disk.smart_is_available(out b) < 0)
-            throw new Error.SYSTEM("smart_is_available() failed: %s", Smart.strerror(Smart.errno));
-        return b;
-    }
-
-    public void readSmartData() throws Error {
-        if (this.disk.smart_read_data() < 0)
-            throw new Error.SYSTEM("smart_read_data() failed: %s", Smart.strerror(Smart.errno));
-    }
-
-    public string getOfflineDataCollectionStatus() throws Error {
-        weak Smart.SmartParsedData *d;
-
-        if (this.disk.smart_parse(out d) < 0)
-            throw new Error.SYSTEM("smart_parse() failed: %s", Smart.strerror(Smart.errno));
+        private Smart.Disk disk;
+        public string dbus_path;
 
-        switch (d->offline_data_collection_status) {
-            case SmartOfflineDataCollectionStatus.NEVER:
-                return "never";
-            case SmartOfflineDataCollectionStatus.SUCCESS:
-                return "success";
-            case SmartOfflineDataCollectionStatus.INPROGRESS:
-                return "inprogress";
-            case SmartOfflineDataCollectionStatus.SUSPENDED:
-                return "suspended";
-            case SmartOfflineDataCollectionStatus.ABORTED:
-                return "aborted";
-            case SmartOfflineDataCollectionStatus.FATAL:
-                return "fatal";
-            default:
-                return "unknown";
+        public string path { get; construct; }
+        public string udi { get; construct; }
+        public DBus.Connection connection { get; construct; }
+
+        Disk(DBus.Connection connection, string path, string udi) {
+                this.connection = connection;
+                this.path = path;
+                this.udi = udi;
         }
-    }
 
-    public uint getSelfTestExecutionPercentRemaining() throws Error {
-        weak Smart.SmartParsedData *d;
+        private string clean_path(string s) {
+                var builder = new StringBuilder ();
+                string t;
 
-        if (this.disk.smart_parse(out d) < 0)
-            throw new Error.SYSTEM("smart_parse() failed: %s", Smart.strerror(Smart.errno));
+                for (int i = 0; i < s.size(); i++)
+                        if (s[i].isalnum() || s[i] == '_')
+                                builder.append_unichar(s[i]);
+                        else
+                                builder.append_unichar('_');
 
-        return d->self_test_execution_percent_remaining;
-    }
+                return builder.str;
+        }
 
-    public uint getTotalOfflineDataCollectionSeconds() throws Error {
-        weak Smart.SmartParsedData *d;
+        public void open() throws Error {
+                if (Smart.Disk.open(this.path, out this.disk) < 0)
+                        throw new Error.SYSTEM("open() failed");
 
-        if (this.disk.smart_parse(out d) < 0)
-            throw new Error.SYSTEM("smart_parse() failed: %s", Smart.strerror(Smart.errno));
+                weak Smart.IdentifyParsedData *d;
 
-        return d->total_offline_data_collection_seconds;
-    }
+                if (this.disk.identify_parse(out d) >= 0)
+                        this.dbus_path = "/disk/%s/%s".printf(clean_path(d->model), clean_path(d->serial));
+                else
+                        this.dbus_path = "/disk/%s".printf(clean_path(this.path));
 
-    public bool getConveyanceTestAvailable() throws Error {
-        weak Smart.SmartParsedData *d;
+                stderr.printf("Registering D-Bus path %s\n", this.dbus_path);
+                this.connection.register_object(this.dbus_path, this);
 
-        if (this.disk.smart_parse(out d) < 0)
-            throw new Error.SYSTEM("smart_parse() failed: %s", Smart.strerror(Smart.errno));
+                this.disk.smart_read_data();
+        }
 
-        return d->conveyance_test_available;
-    }
+        public string getPath() throws Error {
+                return this.path;
+        }
 
-    public bool getShortAndExtendedTestAvailable() throws Error {
-        weak Smart.SmartParsedData *d;
+        public string getUDI() throws Error {
+                return this.udi;
+        }
 
-        if (this.disk.smart_parse(out d) < 0)
-            throw new Error.SYSTEM("smart_parse() failed: %s", Smart.strerror(Smart.errno));
+        public uint64 getSize() throws Error {
+                uint64 s;
 
-        return d->short_and_extended_test_available;
-    }
+                if (this.disk.get_size(out s) < 0)
+                        throw new Error.SYSTEM("get_size() failed: %s", Smart.strerror(Smart.errno));
 
-    public bool getStartTestAvailable() throws Error {
-        Smart.SmartParsedData *d;
+                return s;
+        }
 
-        if (this.disk.smart_parse(out d) < 0)
-            throw new Error.SYSTEM("smart_parse() failed: %s", Smart.strerror(Smart.errno));
+        public bool checkSleepMode() throws Error {
+                bool awake;
 
-        return d->start_test_available;
-    }
+                if (this.disk.check_sleep_mode(out awake) < 0)
+                        throw new Error.SYSTEM("check_sleep_mode() failed: %s", Smart.strerror(Smart.errno));
 
-    public bool getAbortTestAvailable() throws Error {
-        Smart.SmartParsedData *d;
+                return awake;
+        }
 
-        if (this.disk.smart_parse(out d) < 0)
-            throw new Error.SYSTEM("smart_parse() failed: %s", Smart.strerror(Smart.errno));
+        public bool isIdentifyAvailable() throws Error {
+                bool available;
 
-        return d->abort_test_available;
-    }
+                if (this.disk.identify_is_available(out available) < 0)
+                        throw new Error.SYSTEM("identify_is_available() failed: %s", Smart.strerror(Smart.errno));
 
-    public uint getShortTestPollingMinutes() throws Error {
-        Smart.SmartParsedData *d;
+                return available;
+        }
 
-        if (this.disk.smart_parse(out d) < 0)
-            throw new Error.SYSTEM("smart_parse() failed: %s", Smart.strerror(Smart.errno));
+        public string getIdentifySerial() throws Error {
+                weak Smart.IdentifyParsedData *d;
 
-        return d->short_test_polling_minutes;
-    }
+                if (this.disk.identify_parse(out d) < 0)
+                        throw new Error.SYSTEM("identify_parse() failed: %s", Smart.strerror(Smart.errno));
 
-    public uint getExtendedTestPollingMinutes() throws Error {
-        Smart.SmartParsedData *d;
+                return d->serial;
+        }
+
+        public string getIdentifyFirmware() throws Error {
+                weak Smart.IdentifyParsedData *d;
+
+                if (this.disk.identify_parse(out d) < 0)
+                        throw new Error.SYSTEM("identify_parse() failed: %s", Smart.strerror(Smart.errno));
+
+                return d->firmware;
+        }
 
-        if (this.disk.smart_parse(out d) < 0)
-            throw new Error.SYSTEM("smart_parse() failed: %s", Smart.strerror(Smart.errno));
+        public string getIdentifyModel() throws Error {
+                weak Smart.IdentifyParsedData *d;
 
-        return d->extended_test_polling_minutes;
-    }
+                if (this.disk.identify_parse(out d) < 0)
+                        throw new Error.SYSTEM("identify_parse() failed: %s", Smart.strerror(Smart.errno));
 
-    public uint getConveyanceTestPollingMinutes() throws Error {
-        Smart.SmartParsedData *d;
+                return d->model;
+        }
+
+        public bool isSmartAvailable() throws Error {
+                bool available;
+
+                if (this.disk.smart_is_available(out available) < 0)
+                        throw new Error.SYSTEM("smart_is_available() failed: %s", Smart.strerror(Smart.errno));
+
+                return available;
+        }
 
-        if (this.disk.smart_parse(out d) < 0)
-            throw new Error.SYSTEM("smart_parse() failed: %s", Smart.strerror(Smart.errno));
+        public bool checkSmartStatus() throws Error {
+                bool good;
 
-        return d->conveyance_test_polling_minutes;
-    }
+                if (this.disk.smart_status(out good) < 0)
+                        throw new Error.SYSTEM("smart_status() failed: %s", Smart.strerror(Smart.errno));
+
+                return good;
+        }
+
+        public void readSmartData(bool wakeup) throws Error {
+                bool awake;
+
+                if (!wakeup) {
+                        if (this.disk.check_sleep_mode(out awake) < 0)
+                                throw new Error.SYSTEM("check_sleep_mode() failed: %s", Smart.strerror(Smart.errno));
+
+                        if (!awake)
+                                throw new Error.SLEEPING("Disk is in sleep mode");
+                }
+
+                if (this.disk.smart_read_data() < 0)
+                        throw new Error.SYSTEM("smart_read_data() failed: %s", Smart.strerror(Smart.errno));
+        }
+
+        public void startSelfTest(string test) {
+                SmartSelfTest t;
+
+                switch (test) {
+                        case "short":
+                                t = SmartSelfTest.SHORT;
+                                break;
+                        case "extended":
+                                t = SmartSelfTest.EXTENDED;
+                                break;
+                        case "conveyance":
+                                t = SmartSelfTest.CONVEYANCE;
+                                break;
+                        default:
+                                throw new Error.UNKNOWN_TEST("Test %s not known", test);
+                }
+
+                if (this.disk.smart_self_test(t) < 0)
+                        throw new Error.SYSTEM("smart_self_test() failed: %s", Smart.strerror(Smart.errno));
+        }
+
+        public void abortSelfTest() {
+
+                if (this.disk.smart_self_test(SmartSelfTest.ABORT) < 0)
+                        throw new Error.SYSTEM("smart_self_test() failed: %s", Smart.strerror(Smart.errno));
+
+        }
+
+        public string getOfflineDataCollectionStatus() throws Error {
+                weak SmartParsedData *d;
+
+                if (this.disk.smart_parse(out d) < 0)
+                        throw new Error.SYSTEM("smart_parse() failed: %s", Smart.strerror(Smart.errno));
+
+                switch (d->offline_data_collection_status) {
+                        case SmartOfflineDataCollectionStatus.NEVER:
+                                return "never";
+                        case SmartOfflineDataCollectionStatus.SUCCESS:
+                                return "success";
+                        case SmartOfflineDataCollectionStatus.INPROGRESS:
+                                return "inprogress";
+                        case SmartOfflineDataCollectionStatus.SUSPENDED:
+                                return "suspended";
+                        case SmartOfflineDataCollectionStatus.ABORTED:
+                                return "aborted";
+                        case SmartOfflineDataCollectionStatus.FATAL:
+                                return "fatal";
+                        default:
+                                return "unknown";
+                }
+        }
+
+        public uint getTotalOfflineDataCollectionSeconds() throws Error {
+                weak Smart.SmartParsedData *d;
+
+                if (this.disk.smart_parse(out d) < 0)
+                        throw new Error.SYSTEM("smart_parse() failed: %s", Smart.strerror(Smart.errno));
+
+                return d->total_offline_data_collection_seconds;
+        }
+
+        public string getSelfTestExecutionStatus() throws Error {
+                weak SmartParsedData *d;
+
+                if (this.disk.smart_parse(out d) < 0)
+                        throw new Error.SYSTEM("smart_parse() failed: %s", Smart.strerror(Smart.errno));
+
+                switch (d->self_test_execution_status) {
+                        case SmartSelfTestExecutionStatus.SUCCESS_OR_NEVER:
+                                return "sucess-or-never";
+                        case SmartSelfTestExecutionStatus.ABORTED:
+                                return "aborted";
+                        case SmartSelfTestExecutionStatus.INTERRUPTED:
+                                return "interrupted";
+                        case SmartSelfTestExecutionStatus.FATAL:
+                                return "fatal";
+                        case SmartSelfTestExecutionStatus.ERROR_UNKNOWN:
+                                return "error-unknown";
+                        case SmartSelfTestExecutionStatus.ERROR_ELECTRICAL:
+                                return "error-electrical";
+                        case SmartSelfTestExecutionStatus.ERROR_SERVO:
+                                return "error-servo";
+                        case SmartSelfTestExecutionStatus.ERROR_READ:
+                                return "error-read";
+                        case SmartSelfTestExecutionStatus.ERROR_HANDLING:
+                                return "error-handling";
+                        case SmartSelfTestExecutionStatus.INPROGRESS:
+                                return "inprogress";
+                        default:
+                                return "unknown";
+                }
+        }
+
+        public uint getSelfTestExecutionPercentRemaining() throws Error {
+                weak Smart.SmartParsedData *d;
+
+                if (this.disk.smart_parse(out d) < 0)
+                        throw new Error.SYSTEM("smart_parse() failed: %s", Smart.strerror(Smart.errno));
+
+                return d->self_test_execution_percent_remaining;
+        }
+
+        public bool getConveyanceTestAvailable() throws Error {
+                weak Smart.SmartParsedData *d;
+
+                if (this.disk.smart_parse(out d) < 0)
+                        throw new Error.SYSTEM("smart_parse() failed: %s", Smart.strerror(Smart.errno));
+
+                return d->conveyance_test_available;
+        }
+
+        public bool getShortAndExtendedTestAvailable() throws Error {
+                weak Smart.SmartParsedData *d;
+
+                if (this.disk.smart_parse(out d) < 0)
+                        throw new Error.SYSTEM("smart_parse() failed: %s", Smart.strerror(Smart.errno));
+
+                return d->short_and_extended_test_available;
+        }
+
+        public bool getStartTestAvailable() throws Error {
+                weak Smart.SmartParsedData *d;
+
+                if (this.disk.smart_parse(out d) < 0)
+                        throw new Error.SYSTEM("smart_parse() failed: %s", Smart.strerror(Smart.errno));
+
+                return d->start_test_available;
+        }
+
+        public bool getAbortTestAvailable() throws Error {
+                weak Smart.SmartParsedData *d;
+
+                if (this.disk.smart_parse(out d) < 0)
+                        throw new Error.SYSTEM("smart_parse() failed: %s", Smart.strerror(Smart.errno));
+
+                return d->abort_test_available;
+        }
+
+        public uint getShortTestPollingMinutes() throws Error {
+                weak Smart.SmartParsedData *d;
+
+                if (this.disk.smart_parse(out d) < 0)
+                        throw new Error.SYSTEM("smart_parse() failed: %s", Smart.strerror(Smart.errno));
+
+                return d->short_test_polling_minutes;
+        }
+
+        public uint getExtendedTestPollingMinutes() throws Error {
+                weak Smart.SmartParsedData *d;
+
+                if (this.disk.smart_parse(out d) < 0)
+                        throw new Error.SYSTEM("smart_parse() failed: %s", Smart.strerror(Smart.errno));
+
+                return d->extended_test_polling_minutes;
+        }
+
+        public uint getConveyanceTestPollingMinutes() throws Error {
+                weak Smart.SmartParsedData *d;
+
+                if (this.disk.smart_parse(out d) < 0)
+                        throw new Error.SYSTEM("smart_parse() failed: %s", Smart.strerror(Smart.errno));
+
+                return d->conveyance_test_polling_minutes;
+        }
 
 /*     public uint64 size { */
 /*         get { */
@@ -293,59 +393,59 @@ public class Disk : GLib.Object, DiskAPI {
 }
 
 public class Manager : GLib.Object, ManagerAPI {
-    public DBus.Connection connection { get; construct; }
-    public List<Disk> disks;
+        public DBus.Connection connection { get; construct; }
+        public List<Disk> disks;
 
-    public DBus.RawConnection raw_connection;
-    public Hal.Context hal_context;
+        public DBus.RawConnection raw_connection;
+        public Hal.Context hal_context;
 
-    Manager(DBus.Connection connection) {
-        this.connection = connection;
-    }
+        Manager(DBus.Connection connection) {
+                this.connection = connection;
+        }
 
-    public void start() throws Error {
-        DBus.RawError err;
+        public void start() throws Error {
+                DBus.RawError err;
 
-        this.connection.register_object("/", this);
+                this.connection.register_object("/", this);
 
-        this.raw_connection = DBus.RawBus.get(DBus.BusType.SYSTEM, ref err);
+                this.raw_connection = DBus.RawBus.get(DBus.BusType.SYSTEM, ref err);
 
-        this.hal_context = new Hal.Context();
-        this.hal_context.set_dbus_connection(this.raw_connection);
+                this.hal_context = new Hal.Context();
+                this.hal_context.set_dbus_connection(this.raw_connection);
 
-        string[] haldisks = this.hal_context.find_device_by_capability("storage", ref err);
+                string[] haldisks = this.hal_context.find_device_by_capability("storage", ref err);
 
-        foreach (string udi in haldisks) {
-            string bdev = this.hal_context.device_get_property_string(udi, "block.device", ref err);
+                foreach (string udi in haldisks) {
+                        string bdev = this.hal_context.device_get_property_string(udi, "block.device", ref err);
 
-            stderr.printf("Found device %s\n", bdev);
+                        stderr.printf("Found device %s\n", bdev);
 
-            try {
-                Disk disk = new Disk(this.connection, bdev, udi);
-                disk.open();
-                this.disks.append(#disk);
-            } catch (Error e) {
-                stderr.printf("Failed to open disk %s: %s\n", bdev, e.message);
-            }
+                        try {
+                                Disk disk = new Disk(this.connection, bdev, udi);
+                                disk.open();
+                                this.disks.append(#disk);
+                        } catch (Error e) {
+                                stderr.printf("Failed to open disk %s: %s\n", bdev, e.message);
+                        }
+                }
         }
-    }
 
-    public DBus.ObjectPath getDiskByUDI(string udi) throws Error {
+        public DBus.ObjectPath getDiskByUDI(string udi) throws Error {
 
-        foreach (Disk d in this.disks)
-            if (d.udi == udi)
-                return new DBus.ObjectPath(d.dbus_path);
+                foreach (Disk d in this.disks)
+                        if (d.udi == udi)
+                                return new DBus.ObjectPath(d.dbus_path);
 
-        throw new Error.NOT_FOUND("Device not found");
-    }
+                throw new Error.NOT_FOUND("Device not found");
+        }
 
-    public DBus.ObjectPath getDiskByPath(string path) throws Error {
-        foreach (Disk d in this.disks)
-            if (d.path == path)
-                return new DBus.ObjectPath(d.dbus_path);
+        public DBus.ObjectPath getDiskByPath(string path) throws Error {
+                foreach (Disk d in this.disks)
+                        if (d.path == path)
+                                return new DBus.ObjectPath(d.dbus_path);
 
-        throw new Error.NOT_FOUND("Device not found");
-    }
+                throw new Error.NOT_FOUND("Device not found");
+        }
 
 /*     public DBus.ObjectPath[] getDisks() throws Error { */
 /*         DBus.ObjectPath[] o = new DBus.ObjectPath[this.disks.length()]; */
@@ -359,32 +459,30 @@ public class Manager : GLib.Object, ManagerAPI {
 
 }
 
-
-
 int main() {
 
-    try {
-        var c = DBus.Bus.get(DBus.BusType.SYSTEM);
+        try {
+                var c = DBus.Bus.get(DBus.BusType.SYSTEM);
 
-        dynamic DBus.Object bus = c.get_object("org.freedesktop.DBus", "/org/freedesktop/DBus", "org.freedesktop.DBus");
+                dynamic DBus.Object bus = c.get_object("org.freedesktop.DBus", "/org/freedesktop/DBus", "org.freedesktop.DBus");
 
-        uint request_name_result = bus.RequestName("net.poettering.SmartKit", (uint) 0);
+                uint request_name_result = bus.RequestName("net.poettering.SmartKit", (uint) 0);
 
-        if (request_name_result == DBus.RequestNameReply.PRIMARY_OWNER) {
+                if (request_name_result == DBus.RequestNameReply.PRIMARY_OWNER) {
 
-            MainLoop loop = new MainLoop(null, false);
-            Manager manager = new Manager(c);
+                        MainLoop loop = new MainLoop(null, false);
+                        Manager manager = new Manager(c);
 
-            manager.start();
+                        manager.start();
 
-            stdout.printf("Started\n");
-            loop.run();
-        }
+                        stdout.printf("Started\n");
+                        loop.run();
+                }
 
-    } catch (Error e) {
-        stderr.printf("Error: %s\n", e.message);
-        return 1;
-    }
+        } catch (Error e) {
+                stderr.printf("Error: %s\n", e.message);
+                return 1;
+        }
 
-    return 0;
+        return 0;
 }