dbus-systemd 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +8 -0
  3. data/README.md +57 -8
  4. data/Rakefile +5 -3
  5. data/Vagrantfile +3 -3
  6. data/bin/console +3 -3
  7. data/dbus-systemd.gemspec +14 -13
  8. data/lib/dbus/systemd.rb +20 -0
  9. data/lib/dbus/systemd/helpers.rb +20 -0
  10. data/lib/dbus/systemd/hostnamed.rb +22 -2
  11. data/lib/dbus/systemd/importd.rb +20 -0
  12. data/lib/dbus/systemd/importd/manager.rb +24 -4
  13. data/lib/dbus/systemd/importd/transfer.rb +22 -2
  14. data/lib/dbus/systemd/job.rb +22 -2
  15. data/lib/dbus/systemd/localed.rb +22 -2
  16. data/lib/dbus/systemd/logind.rb +20 -0
  17. data/lib/dbus/systemd/logind/manager.rb +27 -7
  18. data/lib/dbus/systemd/logind/seat.rb +22 -2
  19. data/lib/dbus/systemd/logind/session.rb +22 -2
  20. data/lib/dbus/systemd/logind/user.rb +22 -2
  21. data/lib/dbus/systemd/machined.rb +20 -0
  22. data/lib/dbus/systemd/machined/image.rb +22 -2
  23. data/lib/dbus/systemd/machined/machine.rb +22 -2
  24. data/lib/dbus/systemd/machined/manager.rb +25 -5
  25. data/lib/dbus/systemd/manager.rb +25 -5
  26. data/lib/dbus/systemd/mixin.rb +20 -0
  27. data/lib/dbus/systemd/networkd.rb +20 -0
  28. data/lib/dbus/systemd/networkd/link.rb +22 -2
  29. data/lib/dbus/systemd/networkd/manager.rb +23 -3
  30. data/lib/dbus/systemd/resolved.rb +20 -0
  31. data/lib/dbus/systemd/resolved/link.rb +22 -2
  32. data/lib/dbus/systemd/resolved/manager.rb +23 -3
  33. data/lib/dbus/systemd/timedated.rb +22 -2
  34. data/lib/dbus/systemd/unit.rb +22 -2
  35. data/lib/dbus/systemd/unit/automount.rb +26 -4
  36. data/lib/dbus/systemd/unit/device.rb +26 -4
  37. data/lib/dbus/systemd/unit/mount.rb +26 -4
  38. data/lib/dbus/systemd/unit/path.rb +26 -4
  39. data/lib/dbus/systemd/unit/scope.rb +26 -4
  40. data/lib/dbus/systemd/unit/service.rb +26 -4
  41. data/lib/dbus/systemd/unit/slice.rb +26 -4
  42. data/lib/dbus/systemd/unit/snapshot.rb +26 -4
  43. data/lib/dbus/systemd/unit/socket.rb +26 -4
  44. data/lib/dbus/systemd/unit/swap.rb +26 -4
  45. data/lib/dbus/systemd/unit/target.rb +26 -4
  46. data/lib/dbus/systemd/unit/timer.rb +26 -4
  47. data/lib/dbus/systemd/version.rb +21 -1
  48. metadata +21 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1cd2469e3dc60e16cf19abd9bee2e6a6461af4b5
4
- data.tar.gz: 28b3857611bda2e745538aad82896b087311f83c
3
+ metadata.gz: b0d7cb7f2cc7465907d88f909e89cfab72fc2417
4
+ data.tar.gz: f883e6d2188cb5ccda2c5a995ac480a611afda26
5
5
  SHA512:
6
- metadata.gz: de319d06ece28ba8b079c4a5475b96f2eb9232312e167dd8a1befdf1f9983a931f357780c4453c6ace2773f46dcd9247c64710124b7d66c953320d6120201c4a
7
- data.tar.gz: 8d541b384d3f00d06d1c89f8e929e94595f55e9424df20eceffe823742b0409135ccafee8eb763c9b7ca395bc0af3bb74340e08bead31e667a89392154d542eb
6
+ metadata.gz: 759886ec0c0824f88ded4061564ced21937a9dc090c8cc8c3069dfa5493e3d54bf1345a95d4472bf52c09ca36e0db8e3d6adf00df31c20e5fcc4fab4fe1febfc
7
+ data.tar.gz: 6d54949564d74a83c60cb9ee4d300d01fe1dbc8a0411740cc6b6463632affdf05f57eca30453fc92343aeeb31983be1cb01e1cfbdc37a1c33afc8df1f00a71d2
data/.rubocop.yml ADDED
@@ -0,0 +1,8 @@
1
+ AllCops:
2
+ Exclude:
3
+ - dbus-systemd.gemspec
4
+ - spec/**/*
5
+ Metrics/LineLength:
6
+ Max: 100
7
+ Documentation:
8
+ Enabled: false
data/README.md CHANGED
@@ -42,7 +42,7 @@ irb(main):004:0> h.Get(DBus::Systemd::Hostnamed::INTERFACE, 'Hostname').first
42
42
  => "derp.localdomain"
43
43
  irb(main):005:0> h.SetHostname('my-hostname.localdomain', false)
44
44
  => []
45
- irb(main):006:0> h.Get(DBus::Systemd::Hostnamed::INTERFACE, 'Hostname').first
45
+ irb(main):006:0> h.properties['Hostname']
46
46
  => "my-hostname.localdomain"
47
47
  ```
48
48
 
@@ -70,7 +70,7 @@ irb(main):009:0> l = DBus::Systemd::Localed.new
70
70
  => ...
71
71
  irb(main):010:0> l.object.methods - Object.methods
72
72
  => [:Set, :Get, :GetAll, :Ping, :GetMachineId, :Introspect, :SetLocale, :SetVConsoleKeyboard, :SetX11Keyboard, :[], :[]=, :path, :destination, :bus, :introspect, :api, :subnodes, :introspected, :default_iface, :interfaces, :define_shortcut_methods, :has_iface?, :on_signal, :subnodes=, :introspected=, :default_iface=]
73
- irb(main):011:0> l.GetAll(DBus::Systemd::Localed::INTERFACE).first
73
+ irb(main):011:0> l.properties
74
74
  => {"Locale"=>["LANG=en_US.UTF-8"], "X11Layout"=>"", "X11Model"=>"", "X11Variant"=>"", "X11Options"=>"", "VConsoleKeymap"=>"us", "VConsoleKeymapToggle"=>""}
75
75
  ```
76
76
 
@@ -91,7 +91,7 @@ irb(main):016:0> l.sessions
91
91
  => [{:id=>"3", :user_id=>1000, :user_name=>"vagrant", :seat_id=>"", :object_path=>"/org/freedesktop/login1/session/_33"}]
92
92
  irb(main):017:0> u = l.user(1000)
93
93
  => ...
94
- irb(main):019:0> u.GetAll(DBus::Systemd::Logind::User::INTERFACE).first
94
+ irb(main):019:0> u.properties
95
95
  => {"UID"=>1000, "GID"=>1000, "Name"=>"vagrant", "Timestamp"=>1475452037907590, "TimestampMonotonic"=>122159600, "RuntimePath"=>"/run/user/1000", "Service"=>"user@1000.service", "Slice"=>"user-1000.slice", "Display"=>["3", "/org/freedesktop/login1/session/_33"], "State"=>"active", "Sessions"=>[["3", "/org/freedesktop/login1/session/_33"]], "IdleHint"=>false, "IdleSinceHint"=>0, "IdleSinceHintMonotonic"=>0, "Linger"=>false}
96
96
  ```
97
97
 
@@ -108,22 +108,71 @@ irb(main):024:0> mm.machines
108
108
  => [{:name=>".host", :class=>"host", :service_id=>"", :object_path=>"/org/freedesktop/machine1/machine/_2ehost"}]
109
109
  irb(main):023:0> mm.images
110
110
  => [{:name=>"Fedora-23", :type=>"raw", :read_only=>false, :creation_time=>1446171608000000, :modification_time=>1446171608000000, :disk_space=>589676544, :object_path=>"/org/freedesktop/machine1/image/Fedora_2d23"}, {:name=>".raw-https:\\x2f\\x2fdl\\x2efedoraproject\\x2eorg\\x2fpub\\x2ffedora\\x2flinux\\x2freleases\\x2f24\\x2fCloudImages\\x2fx86_64\\x2fimages\\x2fFedora-Cloud-Base-24-1\\x2e2\\x2ex86_64\\x2eraw\\x2exz.\\x227fef0a4-5353f9c7441a0\\x22", :type=>"raw", :read_only=>true, :creation_time=>1465922207000000, :modification_time=>1465922207000000, :disk_space=>540872704, :object_path=>"/org/freedesktop/machine1/image/_2eraw_2dhttps_3a_5cx2f_5cx2fdl_5cx2efedoraproject_5cx2eorg_5cx2fpub_5cx2ffedora_5cx2flinux_5cx2freleases_5cx2f24_5cx2fCloudImages_5cx2fx86_5f64_5cx2fimages_5cx2fFedora_2dCloud_2dBase_2d24_2d1_5cx2e2_5cx2ex86_5f64_5cx2eraw_5cx2exz_2e_5cx227fef0a4_2d5353f9c7441a0_5cx22"}, {:name=>".raw-https:\\x2f\\x2fdl\\x2efedoraproject\\x2eorg\\x2fpub\\x2ffedora\\x2flinux\\x2freleases\\x2f23\\x2fCloud\\x2fx86_64\\x2fImages\\x2fFedora-Cloud-Base-23-20151030\\x2ex86_64\\x2eraw\\x2exz.\\x229205894-5234910faa600\\x22", :type=>"raw", :read_only=>true, :creation_time=>1446171608000000, :modification_time=>1446171608000000, :disk_space=>589676544, :object_path=>"/org/freedesktop/machine1/image/_2eraw_2dhttps_3a_5cx2f_5cx2fdl_5cx2efedoraproject_5cx2eorg_5cx2fpub_5cx2ffedora_5cx2flinux_5cx2freleases_5cx2f23_5cx2fCloud_5cx2fx86_5f64_5cx2fImages_5cx2fFedora_2dCloud_2dBase_2d23_2d20151030_5cx2ex86_5f64_5cx2eraw_5cx2exz_2e_5cx229205894_2d5234910faa600_5cx22"}, {:name=>"Fedora-24", :type=>"raw", :read_only=>false, :creation_time=>1465922207000000, :modification_time=>1465922207000000, :disk_space=>540872704, :object_path=>"/org/freedesktop/machine1/image/Fedora_2d24"}, {:name=>"test", :type=>"raw", :read_only=>false, :creation_time=>1446171608000000, :modification_time=>1446171608000000, :disk_space=>589676544, :object_path=>"/org/freedesktop/machine1/image/test"}, {:name=>".host", :type=>"directory", :read_only=>false, :creation_time=>0, :modification_time=>0, :disk_space=>18446744073709551615, :object_path=>"/org/freedesktop/machine1/image/_2ehost"}]
111
- irb(main):025:0> mm.GetAll(DBus::Systemd::Machined::Manager::INTERFACE).first
111
+ irb(main):025:0> mm.properties
112
112
  => {"PoolPath"=>"/var/lib/machines", "PoolUsage"=>1191448576, "PoolLimit"=>2105020416}
113
113
  irb(main):026:0> mi = mm.image('Fedora-24')
114
114
  => ...
115
115
  irb(main):027:0> mi.object.methods - Object.methods
116
116
  => [:Set, :Get, :GetAll, :Ping, :GetMachineId, :Introspect, :Remove, :Rename, :Clone, :MarkReadOnly, :SetLimit, :[], :[]=, :path, :destination, :bus, :introspect, :api, :subnodes, :introspected, :default_iface, :interfaces, :define_shortcut_methods, :has_iface?, :on_signal, :subnodes=, :introspected=, :default_iface=]
117
- irb(main):028:0> mi.GetAll(DBus::Systemd::Machined::Image::INTERFACE).first
117
+ irb(main):028:0> mi.properties
118
118
  => {"Name"=>"Fedora-24", "Path"=>"/var/lib/machines/Fedora-24.raw", "Type"=>"raw", "ReadOnly"=>false, "CreationTimestamp"=>1465922207000000, "ModificationTimestamp"=>1465922207000000, "Usage"=>540872704, "Limit"=>3221225472, "UsageExclusive"=>540872704, "LimitExclusive"=>3221225472}
119
119
  irb(main):029:0> machine = mm.machine('.host')
120
120
  => ..
121
121
  irb(main):030:0> machine.object.methods - Object.methods
122
122
  => [:Set, :Get, :GetAll, :Kill, :Ping, :GetMachineId, :Introspect, :Terminate, :GetAddresses, :GetOSRelease, :OpenPTY, :OpenLogin, :OpenShell, :BindMount, :CopyFrom, :CopyTo, :[], :[]=, :path, :destination, :bus, :introspect, :api, :subnodes, :introspected, :default_iface, :interfaces, :define_shortcut_methods, :has_iface?, :on_signal, :subnodes=, :introspected=, :default_iface=]
123
- irb(main):032:0> machine.GetAll(DBus::Systemd::Machined::Machine::INTERFACE).first
123
+ irb(main):032:0> machine.properties
124
124
  => {"Name"=>".host", "Id"=>[77, 46, 68, 242, 105, 232, 78, 52, 157, 152, 76, 171, 175, 145, 140, 130], "Timestamp"=>1475451915747985, "TimestampMonotonic"=>0, "Service"=>"", "Unit"=>"-.slice", "Leader"=>1, "Class"=>"host", "RootDirectory"=>"/", "NetworkInterfaces"=>[], "State"=>"running"}
125
125
  ```
126
126
 
127
+ ### DBus::Systemd::Networkd
128
+
129
+ There's not really documentation published for this, but some busctl work will show you what's available.
130
+
131
+ e.g....
132
+
133
+ ```bash
134
+ [root@localhost vagrant]# busctl introspect org.freedesktop.network1 /org/freedesktop/network1
135
+ NAME TYPE SIGNATURE RESULT/VALUE FLAGS
136
+ org.freedesktop.DBus.Introspectable interface - - -
137
+ .Introspect method - s -
138
+ org.freedesktop.DBus.Peer interface - - -
139
+ .GetMachineId method - s -
140
+ .Ping method - - -
141
+ org.freedesktop.DBus.Properties interface - - -
142
+ .Get method ss v -
143
+ .GetAll method s a{sv} -
144
+ .Set method ssv - -
145
+ .PropertiesChanged signal sa{sv}as - -
146
+ org.freedesktop.network1.Manager interface - - -
147
+ .OperationalState property s "routable" emits-change
148
+ [root@localhost vagrant]# busctl introspect org.freedesktop.network1 /org/freedesktop/network1/link/1
149
+ NAME TYPE SIGNATURE RESULT/VALUE FLAGS
150
+ org.freedesktop.DBus.Introspectable interface - - -
151
+ .Introspect method - s -
152
+ org.freedesktop.DBus.Peer interface - - -
153
+ .GetMachineId method - s -
154
+ .Ping method - - -
155
+ org.freedesktop.DBus.Properties interface - - -
156
+ .Get method ss v -
157
+ .GetAll method s a{sv} -
158
+ .Set method ssv - -
159
+ .PropertiesChanged signal sa{sv}as - -
160
+ org.freedesktop.network1.Link interface - - -
161
+ .AdministrativeState property s "unmanaged" emits-change
162
+ .OperationalState property s "carrier" emits-change
163
+ ```
164
+
165
+ ```ruby
166
+ irb(main):003:0> nm = DBus::Systemd::Networkd::Manager.new
167
+ => ...
168
+ irb(main):004:0> nm.properties
169
+ => {"OperationalState"=>"routable"}
170
+ irb(main):003:0> l = nm.link(1)
171
+ => ...
172
+ irb(main):004:0> l.properties
173
+ => {"OperationalState"=>"carrier", "AdministrativeState"=>"unmanaged"}
174
+ ```
175
+
127
176
  ### DBus::Systemd::Resolved
128
177
 
129
178
  For full docs, see [official docs](https://www.freedesktop.org/wiki/Software/systemd/resolved/).
@@ -150,7 +199,7 @@ irb(main):030:0> t.GetAll(DBus::Systemd::Timedated::INTERFACE).first
150
199
  => {"Timezone"=>"UTC", "LocalRTC"=>true, "CanNTP"=>true, "NTP"=>false, "NTPSynchronized"=>true, "TimeUSec"=>1475454744352557, "RTCTimeUSec"=>1475454742000000}
151
200
  irb(main):030:0> t.SetTimezone('America/Los_Angeles', false)
152
201
  => []
153
- irb(main):030:0> t.Get(DBus::Systemd::Timedated::INTERFACE, 'Timezone').first
202
+ irb(main):030:0> t.properties['Timezone']
154
203
  => "America/Los_Angeles"
155
204
  ```
156
205
 
@@ -169,7 +218,7 @@ irb(main):036:0> mgr.Get(DBus::Systemd::Manager::INTERFACE, 'Version').first
169
218
  => "229"
170
219
  irb(main):037:0> mgr.Get(DBus::Systemd::Manager::INTERFACE, 'UnitPath').first
171
220
  => ["/etc/systemd/system", "/run/systemd/system", "/run/systemd/generator", "/usr/local/lib/systemd/system", "/usr/lib/systemd/system", "/run/systemd/generator.late"]
172
- irb(main):038:0> mgr.Get(DBus::Systemd::Manager::INTERFACE, 'NFailedUnits').first
221
+ irb(main):038:0> mgr.properties['NFailedUnits']
173
222
  => 0
174
223
  ```
175
224
 
data/Rakefile CHANGED
@@ -1,6 +1,8 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+ require 'rubocop/rake_task'
3
4
 
5
+ RuboCop::RakeTask.new
4
6
  RSpec::Core::RakeTask.new(:spec)
5
7
 
6
- task :default => :spec
8
+ task default: [:rubocop, :spec]
data/Vagrantfile CHANGED
@@ -3,10 +3,10 @@
3
3
 
4
4
  Vagrant.configure('2') do |config|
5
5
  config.vm.box = 'bento/fedora-24'
6
- config.vm.box_version = '2.2.9'
7
6
  config.vm.box_check_update = true
8
7
 
9
- config.vm.provision "shell", inline: <<-SHELL
10
- dnf install -y git ruby rubygem-bundler systemd-container btrfs-progs
8
+ config.vm.provision 'shell', inline: <<-SHELL
9
+ dnf install -y git ruby systemd-container btrfs-progs
10
+ gem instal bundler --no-document
11
11
  SHELL
12
12
  end
data/bin/console CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "bundler/setup"
4
- require "dbus/systemd"
3
+ require 'bundler/setup'
4
+ require 'dbus/systemd'
5
5
 
6
6
  # You can add fixtures and/or initialization code here to make experimenting
7
7
  # with your gem easier. You can also use a different console, if you like.
@@ -10,5 +10,5 @@ require "dbus/systemd"
10
10
  # require "pry"
11
11
  # Pry.start
12
12
 
13
- require "irb"
13
+ require 'irb'
14
14
  IRB.start
data/dbus-systemd.gemspec CHANGED
@@ -4,32 +4,33 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'dbus/systemd/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "dbus-systemd"
7
+ spec.name = 'dbus-systemd'
8
8
  spec.version = DBus::Systemd::VERSION
9
- spec.authors = ["Nathan Williams"]
10
- spec.email = ["nath.e.will@gmail.com"]
9
+ spec.authors = ['Nathan Williams']
10
+ spec.email = ['nath.e.will@gmail.com']
11
11
 
12
12
  spec.summary = 'systemd D-Bus API library'
13
13
  spec.description = 'library for interfacing with systemd D-Bus APIs'
14
- spec.homepage = "https://github.com/nathwill/ruby-dbus-systemd"
15
- spec.license = "MIT"
14
+ spec.homepage = 'https://github.com/nathwill/ruby-dbus-systemd'
15
+ spec.license = 'MIT'
16
16
 
17
17
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
18
18
  # to allow pushing to a single host or delete this section to allow pushing to any host.
19
19
  if spec.respond_to?(:metadata)
20
- spec.metadata['allowed_push_host'] = "https://rubygems.org"
20
+ spec.metadata['allowed_push_host'] = 'https://rubygems.org'
21
21
  else
22
- raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
22
+ raise 'RubyGems 2.0 or newer is required to protect against public gem pushes.'
23
23
  end
24
24
 
25
25
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
26
- spec.bindir = "exe"
26
+ spec.bindir = 'exe'
27
27
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
- spec.require_paths = ["lib"]
28
+ spec.require_paths = ['lib']
29
29
 
30
- spec.add_runtime_dependency "ruby-dbus", "~> 0.13"
30
+ spec.add_runtime_dependency 'ruby-dbus', '~> 0.13'
31
31
 
32
- spec.add_development_dependency "bundler", "~> 1.10"
33
- spec.add_development_dependency "rake", "~> 10.0"
34
- spec.add_development_dependency "rspec", "~> 3.0"
32
+ spec.add_development_dependency 'bundler', '~> 1.12'
33
+ spec.add_development_dependency 'rake', '~> 10.5'
34
+ spec.add_development_dependency 'rspec', '~> 3.0'
35
+ spec.add_development_dependency 'rubocop', '~> 0.43'
35
36
  end
data/lib/dbus/systemd.rb CHANGED
@@ -1,3 +1,23 @@
1
+ #
2
+ # Copyright (C) 2016 Nathan Williams <nath.e.will@gmail.com>
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of
5
+ # this software and associated documentation files (the "Software"), to deal in
6
+ # the Software without restriction, including without limitation the rights to
7
+ # use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
8
+ # the Software, and to permit persons to whom the Software is furnished to do so,
9
+ # subject to the following conditions:
10
+ #
11
+ # The above copyright notice and this permission notice shall be included in all
12
+ # copies or substantial portions of the Software.
13
+ #
14
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
16
+ # FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
17
+ # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
18
+ # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
+ # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
+ #
1
21
  require_relative 'systemd/helpers'
2
22
  require_relative 'systemd/hostnamed'
3
23
  require_relative 'systemd/importd'
@@ -1,3 +1,23 @@
1
+ #
2
+ # Copyright (C) 2016 Nathan Williams <nath.e.will@gmail.com>
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of
5
+ # this software and associated documentation files (the "Software"), to deal in
6
+ # the Software without restriction, including without limitation the rights to
7
+ # use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
8
+ # the Software, and to permit persons to whom the Software is furnished to do so,
9
+ # subject to the following conditions:
10
+ #
11
+ # The above copyright notice and this permission notice shall be included in all
12
+ # copies or substantial portions of the Software.
13
+ #
14
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
16
+ # FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
17
+ # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
18
+ # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
+ # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
+ #
1
21
  require 'dbus'
2
22
 
3
23
  module DBus
@@ -1,4 +1,24 @@
1
1
  #
2
+ # Copyright (C) 2016 Nathan Williams <nath.e.will@gmail.com>
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of
5
+ # this software and associated documentation files (the "Software"), to deal in
6
+ # the Software without restriction, including without limitation the rights to
7
+ # use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
8
+ # the Software, and to permit persons to whom the Software is furnished to do so,
9
+ # subject to the following conditions:
10
+ #
11
+ # The above copyright notice and this permission notice shall be included in all
12
+ # copies or substantial portions of the Software.
13
+ #
14
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
16
+ # FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
17
+ # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
18
+ # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
+ # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
+ #
21
+ #
2
22
  # See docs for full API description:
3
23
  # https://www.freedesktop.org/wiki/Software/systemd/hostnamed/
4
24
  #
@@ -8,8 +28,8 @@ require_relative 'mixin'
8
28
  module DBus
9
29
  module Systemd
10
30
  class Hostnamed
11
- NODE = '/org/freedesktop/hostname1'
12
- INTERFACE = 'org.freedesktop.hostname1'
31
+ NODE = '/org/freedesktop/hostname1'.freeze
32
+ INTERFACE = 'org.freedesktop.hostname1'.freeze
13
33
 
14
34
  include Mixin::MethodMissing
15
35
  include Mixin::Properties
@@ -1,4 +1,24 @@
1
1
  #
2
+ # Copyright (C) 2016 Nathan Williams <nath.e.will@gmail.com>
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of
5
+ # this software and associated documentation files (the "Software"), to deal in
6
+ # the Software without restriction, including without limitation the rights to
7
+ # use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
8
+ # the Software, and to permit persons to whom the Software is furnished to do so,
9
+ # subject to the following conditions:
10
+ #
11
+ # The above copyright notice and this permission notice shall be included in all
12
+ # copies or substantial portions of the Software.
13
+ #
14
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
16
+ # FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
17
+ # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
18
+ # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
+ # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
+ #
21
+ #
2
22
  # See docs for full API description:
3
23
  # https://www.freedesktop.org/wiki/Software/systemd/importd/
4
24
  #
@@ -1,3 +1,23 @@
1
+ #
2
+ # Copyright (C) 2016 Nathan Williams <nath.e.will@gmail.com>
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of
5
+ # this software and associated documentation files (the "Software"), to deal in
6
+ # the Software without restriction, including without limitation the rights to
7
+ # use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
8
+ # the Software, and to permit persons to whom the Software is furnished to do so,
9
+ # subject to the following conditions:
10
+ #
11
+ # The above copyright notice and this permission notice shall be included in all
12
+ # copies or substantial portions of the Software.
13
+ #
14
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
16
+ # FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
17
+ # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
18
+ # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
+ # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
+ #
1
21
  require_relative '../helpers'
2
22
  require_relative '../mixin'
3
23
  require_relative 'transfer'
@@ -5,11 +25,11 @@ require_relative 'transfer'
5
25
  module DBus
6
26
  module Systemd
7
27
  module Importd
8
- INTERFACE = 'org.freedesktop.import1'
28
+ INTERFACE = 'org.freedesktop.import1'.freeze
9
29
 
10
30
  class Manager
11
- NODE = '/org/freedesktop/import1'
12
- INTERFACE = 'org.freedesktop.import1.Manager'
31
+ NODE = '/org/freedesktop/import1'.freeze
32
+ INTERFACE = 'org.freedesktop.import1.Manager'.freeze
13
33
 
14
34
  TRANSFER_INDICES = {
15
35
  id: 0,
@@ -18,7 +38,7 @@ module DBus
18
38
  image_name: 3,
19
39
  progress: 4,
20
40
  object_path: 5
21
- }
41
+ }.freeze
22
42
 
23
43
  include Systemd::Mixin::MethodMissing
24
44
  include Systemd::Mixin::Properties
@@ -1,3 +1,23 @@
1
+ #
2
+ # Copyright (C) 2016 Nathan Williams <nath.e.will@gmail.com>
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of
5
+ # this software and associated documentation files (the "Software"), to deal in
6
+ # the Software without restriction, including without limitation the rights to
7
+ # use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
8
+ # the Software, and to permit persons to whom the Software is furnished to do so,
9
+ # subject to the following conditions:
10
+ #
11
+ # The above copyright notice and this permission notice shall be included in all
12
+ # copies or substantial portions of the Software.
13
+ #
14
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
16
+ # FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
17
+ # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
18
+ # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
+ # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
+ #
1
21
  require_relative '../mixin'
2
22
  require_relative 'manager'
3
23
 
@@ -5,14 +25,14 @@ module DBus
5
25
  module Systemd
6
26
  module Importd
7
27
  class Transfer
8
- INTERFACE = 'org.freedesktop.import1.Transfer'
28
+ INTERFACE = 'org.freedesktop.import1.Transfer'.freeze
9
29
 
10
30
  include Systemd::Mixin::MethodMissing
11
31
  include Systemd::Mixin::Properties
12
32
 
13
33
  def initialize(id, manager = Manager.new)
14
34
  @object = manager.service.object("#{Manager::NODE}/transfer/_#{id}")
15
- .tap(&:introspect)
35
+ .tap(&:introspect)
16
36
  end
17
37
  end
18
38
  end
@@ -1,10 +1,30 @@
1
+ #
2
+ # Copyright (C) 2016 Nathan Williams <nath.e.will@gmail.com>
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of
5
+ # this software and associated documentation files (the "Software"), to deal in
6
+ # the Software without restriction, including without limitation the rights to
7
+ # use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
8
+ # the Software, and to permit persons to whom the Software is furnished to do so,
9
+ # subject to the following conditions:
10
+ #
11
+ # The above copyright notice and this permission notice shall be included in all
12
+ # copies or substantial portions of the Software.
13
+ #
14
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
16
+ # FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
17
+ # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
18
+ # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
+ # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
+ #
1
21
  require_relative 'manager'
2
22
  require_relative 'mixin'
3
23
 
4
24
  module DBus
5
25
  module Systemd
6
26
  class Job
7
- INTERFACE = 'org.freedesktop.systemd1.Job'
27
+ INTERFACE = 'org.freedesktop.systemd1.Job'.freeze
8
28
 
9
29
  include Mixin::MethodMissing
10
30
  include Mixin::Properties
@@ -12,7 +32,7 @@ module DBus
12
32
  def initialize(id, manager = Manager.new)
13
33
  job_path = manager.GetJob(id).first
14
34
  @object = manager.service.object(job_path)
15
- .tap(&:introspect)
35
+ .tap(&:introspect)
16
36
  end
17
37
  end
18
38
  end