aix_facter_helper 0.1.1 → 0.1.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 01570f938afce339d4b54cfb9ba9e222183c01f8e26f21cf9336ee4eef5ee088
4
- data.tar.gz: 117359d8957feded81b2453fefc5053885b8ff600c7b5451cfab7529394088f0
3
+ metadata.gz: efcbddb8673ad7ee82e89e58e6d26f830fcb15dcf641c0fa7dcc34241ea71fa0
4
+ data.tar.gz: 449ef8cb4d3068b3b2cf2f93fa054b41962d1ecb247cf8ac106bd9f8ffe7e466
5
5
  SHA512:
6
- metadata.gz: 121f3d9aa83353ad55c29d80964dfb359ca6c22dcfab8ed35e86b16ef7d2c802342e6e5aa6a7ac0ab62bb1029fb1c897a72a6590456721bd0c3624a15719d43c
7
- data.tar.gz: 87c8330abcbd3014a21706a2fa05553a2ee5e3a8c737921f10fe7a24413b44e8ec3fd29fada948565d0569700d17f2b18c2a24599ebf427a7bc356e0d4573906
6
+ metadata.gz: dc8c74b87428acf04484947a346fb8224da7df42aff189c64b12d35a0528b4d6000ac6c92032609a68e663a043390364b60f31d48151a0af642fd65fe47353ca
7
+ data.tar.gz: 62ad7647042e0fe436f08ad96842312442be13ae249aa8bd28158cc4ad8e7a4eb48a69f90334db2d6d387ce05b6bd2d6ebf4e016c6483d852328c4c31f49e34a
@@ -1,16 +1,33 @@
1
1
  #include <ruby.h>
2
+ #include <sys/kinfo.h>
2
3
 
3
4
  VALUE AixFacterHelperModule = Qnil;
4
5
 
6
+ // Converts the given integer average into a load average.
7
+ static double to_load_avg(double average) {
8
+ // 65536 is the load average scale on AIX machines.
9
+ return average / 65536;
10
+ }
11
+
5
12
 
6
- VALUE aixFacterHelper_HelloWorld(VALUE self) {
7
- VALUE result = rb_str_new_cstr("Hello, world!");
13
+ VALUE aixFacterHelper_getLoadAverages(VALUE self) {
14
+ VALUE result = Qnil;
15
+ long long averages[3];
16
+ int buf_size = 3 * sizeof(long long);
17
+ int rc = getkerninfo(KINFO_GET_AVENRUN, (char*)averages, &buf_size, 0);
18
+ if (rc < 0) {
8
19
  return result;
20
+ }
21
+ result = rb_ary_new();
22
+ rb_ary_push(result, DBL2NUM(to_load_avg(averages[0])));
23
+ rb_ary_push(result, DBL2NUM(to_load_avg(averages[1])));
24
+ rb_ary_push(result, DBL2NUM(to_load_avg(averages[2])));
25
+ return result;
9
26
  }
10
27
 
11
28
 
12
29
  void Init_aix_facter_helper() {
13
30
  AixFacterHelperModule = rb_define_module("AixFacterHelper");
14
- rb_define_module_function(AixFacterHelperModule, "HelloWorld", aixFacterHelper_HelloWorld, 0);
31
+ rb_define_module_function(AixFacterHelperModule, "getLoadAverages", aixFacterHelper_getLoadAverages, 0);
15
32
  }
16
33
 
@@ -1,3 +1,3 @@
1
1
  module AixFacterHelper
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aix_facter_helper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ciprian Badescu