aix_facter_helper 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
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