mastercontrol 0.1.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.
- checksums.yaml +7 -0
- data/lib/mastercontrol/server.rb +76 -0
- data/lib/mastercontrol/version.rb +3 -0
- data/lib/mastercontrol.rb +16 -0
- metadata +145 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: bf15efdf74b52a15d97218a50e3fdb0b176a58c3
|
4
|
+
data.tar.gz: dad691d2d32cfd514e3f8ec0011449ac696208a6
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d0e1457e31d5d994a94a94223c6031a5d76b195dad8f025b2bf71b1d6d5761ec4affbefe30286f90e426e0ed9ca2c6c6137062d4911c967cab1bdb6b2d669cdc
|
7
|
+
data.tar.gz: 8c0a4b16edda0363a815f246fb2cf261aea9d9fb2f1543792a87df06ed32ccf87a278738c35dc7b6385792fc406e963dfeb1cf94e45ff37db226c8f44ab0c39c
|
@@ -0,0 +1,76 @@
|
|
1
|
+
require 'rest-client'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
class ServerLoad
|
5
|
+
attr_accessor :one, :five, :fifteen
|
6
|
+
def initialize(res_one, res_five, res_fifteen)
|
7
|
+
@one = res_one.to_f
|
8
|
+
@five = res_five.to_f
|
9
|
+
@fifteen = res_fifteen.to_f
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
class ServerHostname
|
14
|
+
attr_accessor :name
|
15
|
+
def initialize(res_hostname)
|
16
|
+
@name = res_hostname
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
class DiskPartition
|
21
|
+
attr_accessor :disk, :filesystem, :mount, :used, :percentage, :total, :available
|
22
|
+
def initialize(res_disk, res_filesystem, res_mount, res_used, res_percentage, res_total, res_available)
|
23
|
+
@disk = res_disk
|
24
|
+
@filesystem = res_filesystem
|
25
|
+
@mount = res_mount
|
26
|
+
@used = res_used.to_i
|
27
|
+
@percentage = res_percentage.to_f
|
28
|
+
@total = res_total.to_i
|
29
|
+
@available = res_available.to_i
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
module Mastercontrol
|
34
|
+
module Server
|
35
|
+
|
36
|
+
def self.system_load_avg
|
37
|
+
url = "#{Mastercontrol.base_url}/systemloadavg?api.version=1"
|
38
|
+
response = RestClient.get url, {authorization: Mastercontrol.auth_header}
|
39
|
+
|
40
|
+
# parse the json
|
41
|
+
json_response = JSON.parse(response)
|
42
|
+
|
43
|
+
# build and return the ServerLoad Object
|
44
|
+
ServerLoad.new(json_response["data"]["one"], json_response["data"]["five"], json_response["data"]["fifteen"])
|
45
|
+
end
|
46
|
+
|
47
|
+
def self.hostname
|
48
|
+
url = "#{Mastercontrol.base_url}/gethostname?api.version=1"
|
49
|
+
response = RestClient.get url, {authorization: Mastercontrol.auth_header}
|
50
|
+
|
51
|
+
# parse the json
|
52
|
+
json_response = JSON.parse(response)
|
53
|
+
|
54
|
+
# build and return the ServerHostname Object
|
55
|
+
ServerHostname.new(json_response['data']['hostname'])
|
56
|
+
end
|
57
|
+
|
58
|
+
def self.disk_usage
|
59
|
+
url = "#{Mastercontrol.base_url}/getdiskusage?api.version=1"
|
60
|
+
response = RestClient.get url, {authorization: Mastercontrol.auth_header}
|
61
|
+
|
62
|
+
# parse the json
|
63
|
+
json_response = JSON.parse(response)
|
64
|
+
|
65
|
+
return_array = []
|
66
|
+
|
67
|
+
# loop through partitions and create/add their DiskPartion objects to the return array
|
68
|
+
json_response["data"]["partition"].each do |part|
|
69
|
+
return_array << DiskPartition.new(part["disk"], part["filesystem"], part["mount"], part["used"], part["percentage"], part["total"], part["available"])
|
70
|
+
end
|
71
|
+
|
72
|
+
# return the array of DiskPartition Objects
|
73
|
+
return_array
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require "mastercontrol/version"
|
2
|
+
require "mastercontrol/server"
|
3
|
+
|
4
|
+
module Mastercontrol
|
5
|
+
class << self
|
6
|
+
attr_accessor :access_hash, :server_hostname
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.base_url
|
10
|
+
"https://#{server_hostname}:2087/json-api"
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.auth_header
|
14
|
+
"WHM root:#{Mastercontrol.access_hash}"
|
15
|
+
end
|
16
|
+
end
|
metadata
ADDED
@@ -0,0 +1,145 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: mastercontrol
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Matt Williams
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-07-18 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rest-client
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.12'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.12'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '10.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '10.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '3.0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '3.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: vcr
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '3.0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '3.0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: webmock
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '2.1'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '2.1'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: codeclimate-test-reporter
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0.6'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0.6'
|
111
|
+
description: MasterControl is a Ruby library for the cPanel/WHM APIs
|
112
|
+
email:
|
113
|
+
- matt@rackfleet.com
|
114
|
+
executables: []
|
115
|
+
extensions: []
|
116
|
+
extra_rdoc_files: []
|
117
|
+
files:
|
118
|
+
- lib/mastercontrol.rb
|
119
|
+
- lib/mastercontrol/server.rb
|
120
|
+
- lib/mastercontrol/version.rb
|
121
|
+
homepage: https://github.com/rackfleet/mastercontrol
|
122
|
+
licenses:
|
123
|
+
- MIT
|
124
|
+
metadata: {}
|
125
|
+
post_install_message:
|
126
|
+
rdoc_options: []
|
127
|
+
require_paths:
|
128
|
+
- lib
|
129
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
130
|
+
requirements:
|
131
|
+
- - ">="
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: '0'
|
134
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
requirements: []
|
140
|
+
rubyforge_project:
|
141
|
+
rubygems_version: 2.5.1
|
142
|
+
signing_key:
|
143
|
+
specification_version: 4
|
144
|
+
summary: cPanel/WHM API Library
|
145
|
+
test_files: []
|