fog-oneandone 1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (174) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +36 -0
  3. data/CONTRIBUTING.md +276 -0
  4. data/CONTRIBUTORS.md +1 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.md +20 -0
  7. data/README.md +317 -0
  8. data/bin/fog +78 -0
  9. data/examples/example_app.rb +80 -0
  10. data/fog-oneandone.gemspec +22 -0
  11. data/gemfiles/Gemfile-edge +7 -0
  12. data/lib/fog-oneandone.rb +10 -0
  13. data/lib/oneandone/compute.rb +713 -0
  14. data/lib/oneandone/core.rb +11 -0
  15. data/lib/oneandone/models/compute/firewall.rb +128 -0
  16. data/lib/oneandone/models/compute/firewalls.rb +24 -0
  17. data/lib/oneandone/models/compute/image.rb +72 -0
  18. data/lib/oneandone/models/compute/images.rb +24 -0
  19. data/lib/oneandone/models/compute/load_balancer.rb +149 -0
  20. data/lib/oneandone/models/compute/load_balancers.rb +24 -0
  21. data/lib/oneandone/models/compute/monitoring_policies.rb +24 -0
  22. data/lib/oneandone/models/compute/monitoring_policy.rb +196 -0
  23. data/lib/oneandone/models/compute/private_network.rb +105 -0
  24. data/lib/oneandone/models/compute/private_networks.rb +24 -0
  25. data/lib/oneandone/models/compute/public_ip.rb +68 -0
  26. data/lib/oneandone/models/compute/public_ips.rb +24 -0
  27. data/lib/oneandone/models/compute/server.rb +434 -0
  28. data/lib/oneandone/models/compute/servers.rb +24 -0
  29. data/lib/oneandone/models/compute/shared_storage.rb +101 -0
  30. data/lib/oneandone/models/compute/shared_storages.rb +24 -0
  31. data/lib/oneandone/models/compute/vpn.rb +70 -0
  32. data/lib/oneandone/models/compute/vpns.rb +24 -0
  33. data/lib/oneandone/requests/compute/access.rb +35 -0
  34. data/lib/oneandone/requests/compute/add_firewall.rb +70 -0
  35. data/lib/oneandone/requests/compute/add_firewall_ips.rb +67 -0
  36. data/lib/oneandone/requests/compute/add_firewall_rules.rb +68 -0
  37. data/lib/oneandone/requests/compute/add_hdds.rb +65 -0
  38. data/lib/oneandone/requests/compute/add_load_balancer.rb +76 -0
  39. data/lib/oneandone/requests/compute/add_load_balancer_ips.rb +67 -0
  40. data/lib/oneandone/requests/compute/add_load_balancer_rules.rb +68 -0
  41. data/lib/oneandone/requests/compute/add_mp_servers.rb +64 -0
  42. data/lib/oneandone/requests/compute/add_ports.rb +65 -0
  43. data/lib/oneandone/requests/compute/add_private_network.rb +65 -0
  44. data/lib/oneandone/requests/compute/add_private_network_servers.rb +67 -0
  45. data/lib/oneandone/requests/compute/add_processes.rb +65 -0
  46. data/lib/oneandone/requests/compute/add_server_ip.rb +72 -0
  47. data/lib/oneandone/requests/compute/add_shared_storage_servers.rb +64 -0
  48. data/lib/oneandone/requests/compute/change_password.rb +45 -0
  49. data/lib/oneandone/requests/compute/change_status.rb +69 -0
  50. data/lib/oneandone/requests/compute/clone_server.rb +67 -0
  51. data/lib/oneandone/requests/compute/create_firewall.rb +78 -0
  52. data/lib/oneandone/requests/compute/create_image.rb +101 -0
  53. data/lib/oneandone/requests/compute/create_load_balancer.rb +104 -0
  54. data/lib/oneandone/requests/compute/create_monitoring_policy.rb +93 -0
  55. data/lib/oneandone/requests/compute/create_private_network.rb +82 -0
  56. data/lib/oneandone/requests/compute/create_public_ip.rb +77 -0
  57. data/lib/oneandone/requests/compute/create_server.rb +139 -0
  58. data/lib/oneandone/requests/compute/create_shared_storage.rb +83 -0
  59. data/lib/oneandone/requests/compute/create_snapshot.rb +51 -0
  60. data/lib/oneandone/requests/compute/create_vpn.rb +80 -0
  61. data/lib/oneandone/requests/compute/delete_firewall.rb +51 -0
  62. data/lib/oneandone/requests/compute/delete_firewall_rule.rb +60 -0
  63. data/lib/oneandone/requests/compute/delete_hdd.rb +61 -0
  64. data/lib/oneandone/requests/compute/delete_image.rb +51 -0
  65. data/lib/oneandone/requests/compute/delete_load_balancer.rb +51 -0
  66. data/lib/oneandone/requests/compute/delete_load_balancer_rule.rb +60 -0
  67. data/lib/oneandone/requests/compute/delete_monitoring_policy.rb +51 -0
  68. data/lib/oneandone/requests/compute/delete_port.rb +60 -0
  69. data/lib/oneandone/requests/compute/delete_private_network.rb +51 -0
  70. data/lib/oneandone/requests/compute/delete_process.rb +60 -0
  71. data/lib/oneandone/requests/compute/delete_public_ip.rb +51 -0
  72. data/lib/oneandone/requests/compute/delete_server.rb +51 -0
  73. data/lib/oneandone/requests/compute/delete_server_ip.rb +60 -0
  74. data/lib/oneandone/requests/compute/delete_shared_storage.rb +51 -0
  75. data/lib/oneandone/requests/compute/delete_snapshot.rb +51 -0
  76. data/lib/oneandone/requests/compute/delete_vpn.rb +51 -0
  77. data/lib/oneandone/requests/compute/eject_dvd.rb +51 -0
  78. data/lib/oneandone/requests/compute/get_datacenter.rb +50 -0
  79. data/lib/oneandone/requests/compute/get_dvd.rb +50 -0
  80. data/lib/oneandone/requests/compute/get_dvd_iso.rb +50 -0
  81. data/lib/oneandone/requests/compute/get_firewall.rb +50 -0
  82. data/lib/oneandone/requests/compute/get_firewall_ip.rb +59 -0
  83. data/lib/oneandone/requests/compute/get_firewall_rule.rb +59 -0
  84. data/lib/oneandone/requests/compute/get_fixed_server.rb +50 -0
  85. data/lib/oneandone/requests/compute/get_hardware.rb +50 -0
  86. data/lib/oneandone/requests/compute/get_hdd.rb +60 -0
  87. data/lib/oneandone/requests/compute/get_hdds.rb +50 -0
  88. data/lib/oneandone/requests/compute/get_image.rb +50 -0
  89. data/lib/oneandone/requests/compute/get_load_balancer.rb +50 -0
  90. data/lib/oneandone/requests/compute/get_load_balancer_ip.rb +59 -0
  91. data/lib/oneandone/requests/compute/get_load_balancer_rule.rb +59 -0
  92. data/lib/oneandone/requests/compute/get_log.rb +51 -0
  93. data/lib/oneandone/requests/compute/get_monitored_server.rb +49 -0
  94. data/lib/oneandone/requests/compute/get_monitoring_policy.rb +50 -0
  95. data/lib/oneandone/requests/compute/get_mp_server.rb +59 -0
  96. data/lib/oneandone/requests/compute/get_port.rb +59 -0
  97. data/lib/oneandone/requests/compute/get_private_network.rb +50 -0
  98. data/lib/oneandone/requests/compute/get_private_network_server.rb +59 -0
  99. data/lib/oneandone/requests/compute/get_process.rb +59 -0
  100. data/lib/oneandone/requests/compute/get_public_ip.rb +50 -0
  101. data/lib/oneandone/requests/compute/get_server.rb +50 -0
  102. data/lib/oneandone/requests/compute/get_server_appliance.rb +50 -0
  103. data/lib/oneandone/requests/compute/get_server_image.rb +50 -0
  104. data/lib/oneandone/requests/compute/get_server_ip.rb +59 -0
  105. data/lib/oneandone/requests/compute/get_server_private_network.rb +59 -0
  106. data/lib/oneandone/requests/compute/get_shared_storage.rb +50 -0
  107. data/lib/oneandone/requests/compute/get_shared_storage_server.rb +59 -0
  108. data/lib/oneandone/requests/compute/get_snapshot.rb +50 -0
  109. data/lib/oneandone/requests/compute/get_vpn.rb +50 -0
  110. data/lib/oneandone/requests/compute/install_server_image.rb +72 -0
  111. data/lib/oneandone/requests/compute/list_datacenters.rb +56 -0
  112. data/lib/oneandone/requests/compute/list_dvds.rb +56 -0
  113. data/lib/oneandone/requests/compute/list_firewall_ips.rb +50 -0
  114. data/lib/oneandone/requests/compute/list_firewall_rules.rb +50 -0
  115. data/lib/oneandone/requests/compute/list_firewalls.rb +56 -0
  116. data/lib/oneandone/requests/compute/list_fixed_servers.rb +40 -0
  117. data/lib/oneandone/requests/compute/list_images.rb +56 -0
  118. data/lib/oneandone/requests/compute/list_ip_firewalls.rb +59 -0
  119. data/lib/oneandone/requests/compute/list_ip_load_balancers.rb +59 -0
  120. data/lib/oneandone/requests/compute/list_load_balancer_ips.rb +50 -0
  121. data/lib/oneandone/requests/compute/list_load_balancer_rules.rb +50 -0
  122. data/lib/oneandone/requests/compute/list_load_balancers.rb +56 -0
  123. data/lib/oneandone/requests/compute/list_logs.rb +59 -0
  124. data/lib/oneandone/requests/compute/list_monitored_servers.rb +51 -0
  125. data/lib/oneandone/requests/compute/list_monitoring_policies.rb +56 -0
  126. data/lib/oneandone/requests/compute/list_mp_servers.rb +50 -0
  127. data/lib/oneandone/requests/compute/list_ports.rb +51 -0
  128. data/lib/oneandone/requests/compute/list_private_network_servers.rb +50 -0
  129. data/lib/oneandone/requests/compute/list_private_networks.rb +56 -0
  130. data/lib/oneandone/requests/compute/list_processes.rb +51 -0
  131. data/lib/oneandone/requests/compute/list_public_ips.rb +56 -0
  132. data/lib/oneandone/requests/compute/list_server_appliances.rb +56 -0
  133. data/lib/oneandone/requests/compute/list_server_ips.rb +50 -0
  134. data/lib/oneandone/requests/compute/list_server_private_networks.rb +50 -0
  135. data/lib/oneandone/requests/compute/list_servers.rb +56 -0
  136. data/lib/oneandone/requests/compute/list_shared_storage_servers.rb +50 -0
  137. data/lib/oneandone/requests/compute/list_shared_storages.rb +56 -0
  138. data/lib/oneandone/requests/compute/list_usages.rb +54 -0
  139. data/lib/oneandone/requests/compute/list_vpns.rb +56 -0
  140. data/lib/oneandone/requests/compute/load_dvd.rb +65 -0
  141. data/lib/oneandone/requests/compute/ping.rb +38 -0
  142. data/lib/oneandone/requests/compute/ping_auth.rb +38 -0
  143. data/lib/oneandone/requests/compute/remove_firewall.rb +60 -0
  144. data/lib/oneandone/requests/compute/remove_firewall_ip.rb +60 -0
  145. data/lib/oneandone/requests/compute/remove_load_balancer.rb +71 -0
  146. data/lib/oneandone/requests/compute/remove_load_balancer_ip.rb +60 -0
  147. data/lib/oneandone/requests/compute/remove_mp_server.rb +60 -0
  148. data/lib/oneandone/requests/compute/remove_private_network.rb +60 -0
  149. data/lib/oneandone/requests/compute/remove_private_network_server.rb +60 -0
  150. data/lib/oneandone/requests/compute/remove_shared_storage_server.rb +60 -0
  151. data/lib/oneandone/requests/compute/restore_snapshot.rb +35 -0
  152. data/lib/oneandone/requests/compute/status.rb +50 -0
  153. data/lib/oneandone/requests/compute/update_firewall.rb +76 -0
  154. data/lib/oneandone/requests/compute/update_hardware.rb +82 -0
  155. data/lib/oneandone/requests/compute/update_hdd.rb +71 -0
  156. data/lib/oneandone/requests/compute/update_image.rb +80 -0
  157. data/lib/oneandone/requests/compute/update_load_balancer.rb +96 -0
  158. data/lib/oneandone/requests/compute/update_monitoring_policy.rb +82 -0
  159. data/lib/oneandone/requests/compute/update_port.rb +74 -0
  160. data/lib/oneandone/requests/compute/update_private_network.rb +82 -0
  161. data/lib/oneandone/requests/compute/update_process.rb +76 -0
  162. data/lib/oneandone/requests/compute/update_public_ip.rb +71 -0
  163. data/lib/oneandone/requests/compute/update_server.rb +76 -0
  164. data/lib/oneandone/requests/compute/update_shared_storage.rb +80 -0
  165. data/lib/oneandone/requests/compute/update_vpn.rb +76 -0
  166. data/tests/oneandone/test_firewalls.rb +188 -0
  167. data/tests/oneandone/test_images.rb +79 -0
  168. data/tests/oneandone/test_load_balancers.rb +192 -0
  169. data/tests/oneandone/test_monitoring_policies.rb +342 -0
  170. data/tests/oneandone/test_private_networks.rb +123 -0
  171. data/tests/oneandone/test_public_ips.rb +75 -0
  172. data/tests/oneandone/test_servers.rb +465 -0
  173. data/tests/oneandone/test_shared_storages.rb +131 -0
  174. metadata +259 -0
@@ -0,0 +1,11 @@
1
+ require "fog/core"
2
+ require "fog/json"
3
+
4
+ module Fog
5
+ module OneAndOne
6
+ extend Fog::Provider
7
+
8
+ service(:compute, 'Compute')
9
+
10
+ end # OneAndOne
11
+ end # Fog
@@ -0,0 +1,128 @@
1
+ module Fog
2
+ module Compute
3
+ class OneAndOne
4
+ class Firewall < Fog::Model
5
+
6
+ # Declare Model Attributes
7
+ identity :id
8
+
9
+ attribute :name
10
+ attribute :description
11
+ attribute :state
12
+ attribute :creation_date
13
+ attribute :rules
14
+ attribute :server_ips
15
+
16
+
17
+ def save
18
+
19
+ requires :name, :rules
20
+
21
+ # Perform Request
22
+ response = service.create_firewall(name: name, rules: rules,
23
+ description: description)
24
+
25
+ # Merge Attributes
26
+ merge_attributes(response.body)
27
+
28
+ true
29
+
30
+ end
31
+
32
+
33
+ def update(options = {})
34
+
35
+ requires :id
36
+
37
+ response = service.update_firewall(firewall_id: id, name: options[:name],
38
+ description: options[:description])
39
+
40
+ # Merge Attributes
41
+ merge_attributes(response.body)
42
+
43
+ true
44
+
45
+ end
46
+
47
+
48
+ def add_ips(options = {})
49
+
50
+ requires :id
51
+
52
+ response = service.add_firewall_ips(firewall_id: id,
53
+ ips: options[:ips])
54
+
55
+ # Merge Attributes
56
+ merge_attributes(response.body)
57
+
58
+ true
59
+
60
+ end
61
+
62
+
63
+ def remove_ip(options = {})
64
+
65
+ requires :id
66
+
67
+ response = service.remove_firewall_ip(firewall_id: id,
68
+ ip_id: options[:ip_id])
69
+
70
+ # Merge Attributes
71
+ merge_attributes(response.body)
72
+
73
+ true
74
+
75
+ end
76
+
77
+
78
+ def add_rules(options = {})
79
+
80
+ requires :id
81
+
82
+ response = service.add_firewall_rules(firewall_id: id,
83
+ rules: options[:rules])
84
+
85
+ # Merge Attributes
86
+ merge_attributes(response.body)
87
+
88
+ true
89
+
90
+ end
91
+
92
+
93
+ def delete_rule(options = {})
94
+
95
+ requires :id
96
+
97
+ response = service.delete_firewall_rule(firewall_id: id,
98
+ rule_id: options[:rule_id])
99
+
100
+ # Merge Attributes
101
+ merge_attributes(response.body)
102
+
103
+ true
104
+
105
+ end
106
+
107
+
108
+ def destroy
109
+
110
+ requires :id
111
+
112
+ service.delete_firewall(id)
113
+
114
+ true
115
+
116
+ end
117
+
118
+
119
+ def ready?
120
+
121
+ state == 'ACTIVE'
122
+
123
+ end
124
+
125
+ end # Firewall
126
+ end # OneAndOne
127
+ end # Compute
128
+ end # Fog
@@ -0,0 +1,24 @@
1
+ require_relative 'firewall'
2
+
3
+ module Fog
4
+ module Compute
5
+ class OneAndOne
6
+ class Firewalls < Fog::Collection
7
+ model Fog::Compute::OneAndOne::Firewall
8
+
9
+ def all
10
+ response = service.list_firewalls
11
+ load(response.body)
12
+ end
13
+
14
+ def get(id)
15
+ response = service.get_firewall(id)
16
+ new(response.body)
17
+ rescue Excon::Errors::NotFound
18
+ nil
19
+ end
20
+
21
+ end # Firewalls
22
+ end # OneAndOne
23
+ end # Compute
24
+ end # Fog
@@ -0,0 +1,72 @@
1
+ module Fog
2
+ module Compute
3
+ class OneAndOne
4
+ class Image < Fog::Model
5
+
6
+ # Declare Model Attributes
7
+ identity :id
8
+
9
+ attribute :name
10
+ attribute :description
11
+ attribute :datacenter
12
+ attribute :min_hdd_size
13
+ attribute :state
14
+ attribute :hdds
15
+ attribute :server_id
16
+ attribute :frequency
17
+ attribute :num_images
18
+ attribute :creation_date
19
+
20
+
21
+ def save
22
+
23
+ requires :name, :server_id, :frequency, :num_images
24
+
25
+ # Perform Request
26
+ response = service.create_image(name: name, description: description,
27
+ server_id: server_id, frequency: frequency, num_images: num_images)
28
+
29
+ # Merge Attributes
30
+ merge_attributes(response.body)
31
+
32
+ true
33
+
34
+ end
35
+
36
+
37
+ def update(options = {})
38
+
39
+ requires :id
40
+
41
+ response = service.update_image(image_id: id, name: options[:name],
42
+ description: options[:description], frequency: options[:frequency])
43
+
44
+ # Merge Attributes
45
+ merge_attributes(response.body)
46
+
47
+ true
48
+
49
+ end
50
+
51
+
52
+ def destroy
53
+
54
+ requires :id
55
+
56
+ service.delete_image(id)
57
+
58
+ true
59
+
60
+ end
61
+
62
+
63
+ def ready?
64
+
65
+ state == 'ENABLED'
66
+
67
+ end
68
+
69
+ end # Image
70
+ end # OneAndOne
71
+ end # Compute
72
+ end # Fog
@@ -0,0 +1,24 @@
1
+ require_relative 'image'
2
+
3
+ module Fog
4
+ module Compute
5
+ class OneAndOne
6
+ class Images < Fog::Collection
7
+ model Fog::Compute::OneAndOne::Image
8
+
9
+ def all
10
+ response = service.list_images
11
+ load(response.body)
12
+ end
13
+
14
+ def get(id)
15
+ response = service.get_image(id)
16
+ new(response.body)
17
+ rescue Excon::Errors::NotFound
18
+ nil
19
+ end
20
+
21
+ end # Images
22
+ end # OneAndOne
23
+ end # Compute
24
+ end # Fog
@@ -0,0 +1,149 @@
1
+ module Fog
2
+ module Compute
3
+ class OneAndOne
4
+ class LoadBalancer < Fog::Model
5
+
6
+ # Declare Model Attributes
7
+ identity :id
8
+
9
+ attribute :name
10
+ attribute :description
11
+ attribute :state
12
+ attribute :rules
13
+ attribute :datacenter
14
+ attribute :datacenter_id
15
+ attribute :health_check_test
16
+ attribute :health_check_interval
17
+ attribute :persistence
18
+ attribute :persistence_time
19
+ attribute :method
20
+ attribute :health_check_path
21
+ attribute :health_check_parse
22
+ attribute :creation_date
23
+ attribute :server_ips
24
+
25
+
26
+ def save
27
+
28
+ requires :name, :rules, :health_check_test, :health_check_interval,
29
+ :persistence, :persistence_time, :method
30
+
31
+ # Perform Request
32
+ response = service.create_load_balancer(name: name,
33
+ description: description, health_check_test: health_check_test,
34
+ health_check_interval: health_check_interval,
35
+ persistence: persistence, persistence_time: persistence_time,
36
+ method: method, rules: rules, health_check_path: health_check_path,
37
+ health_check_parse: health_check_parse, datacenter_id: datacenter_id)
38
+
39
+ # Merge Attributes
40
+ merge_attributes(response.body)
41
+
42
+ true
43
+
44
+ end
45
+
46
+
47
+ def update(options = {})
48
+
49
+ requires :id
50
+
51
+ response = service.update_load_balancer(load_balancer_id: id,
52
+ name: options[:name], description: options[:description],
53
+ health_check_test: options[:health_check_test],
54
+ health_check_interval: options[:health_check_interval],
55
+ persistence: options[:persistence],
56
+ persistence_time: options[:persistence_time],
57
+ method: options[:method],
58
+ health_check_path: options[:health_check_path],
59
+ health_check_parse: options[:health_check_parse])
60
+
61
+ # Merge Attributes
62
+ merge_attributes(response.body)
63
+
64
+ true
65
+
66
+ end
67
+
68
+
69
+ def add_ips(options = {})
70
+
71
+ requires :id
72
+
73
+ response = service.add_load_balancer_ips(load_balancer_id: id,
74
+ ips: options[:ips])
75
+
76
+ # Merge Attributes
77
+ merge_attributes(response.body)
78
+
79
+ true
80
+
81
+ end
82
+
83
+
84
+ def remove_ip(options = {})
85
+
86
+ requires :id
87
+
88
+ response = service.remove_load_balancer_ip(load_balancer_id: id,
89
+ ip_id: options[:ip_id])
90
+
91
+ # Merge Attributes
92
+ merge_attributes(response.body)
93
+
94
+ true
95
+
96
+ end
97
+
98
+
99
+ def add_rules(options = {})
100
+
101
+ requires :id
102
+
103
+ response = service.add_load_balancer_rules(load_balancer_id: id,
104
+ rules: options[:rules])
105
+
106
+ # Merge Attributes
107
+ merge_attributes(response.body)
108
+
109
+ true
110
+
111
+ end
112
+
113
+
114
+ def delete_rule(options = {})
115
+
116
+ requires :id
117
+
118
+ response = service.delete_load_balancer_rule(load_balancer_id: id,
119
+ rule_id: options[:rule_id])
120
+
121
+ # Merge Attributes
122
+ merge_attributes(response.body)
123
+
124
+ true
125
+
126
+ end
127
+
128
+
129
+ def destroy
130
+
131
+ requires :id
132
+
133
+ service.delete_load_balancer(id)
134
+
135
+ true
136
+
137
+ end
138
+
139
+
140
+ def ready?
141
+
142
+ state == 'ACTIVE'
143
+
144
+ end
145
+
146
+ end # LoadBalancer
147
+ end # OneAndOne
148
+ end # Compute
149
+ end # Fog
@@ -0,0 +1,24 @@
1
+ require_relative 'load_balancer'
2
+
3
+ module Fog
4
+ module Compute
5
+ class OneAndOne
6
+ class LoadBalancers < Fog::Collection
7
+ model Fog::Compute::OneAndOne::LoadBalancer
8
+
9
+ def all
10
+ response = service.list_load_balancers
11
+ load(response.body)
12
+ end
13
+
14
+ def get(id)
15
+ response = service.get_load_balancer(id)
16
+ new(response.body)
17
+ rescue Excon::Errors::NotFound
18
+ nil
19
+ end
20
+
21
+ end # LoadBalancers
22
+ end # OneAndOne
23
+ end # Compute
24
+ end # Fog
@@ -0,0 +1,24 @@
1
+ require_relative 'monitoring_policy'
2
+
3
+ module Fog
4
+ module Compute
5
+ class OneAndOne
6
+ class MonitoringPolicies < Fog::Collection
7
+ model Fog::Compute::OneAndOne::MonitoringPolicy
8
+
9
+ def all
10
+ response = service.list_monitoring_policies
11
+ load(response.body)
12
+ end
13
+
14
+ def get(id)
15
+ response = service.get_monitoring_policy(id)
16
+ new(response.body)
17
+ rescue Excon::Errors::NotFound
18
+ nil
19
+ end
20
+
21
+ end # MonitoringPolicies
22
+ end # OneAndOne
23
+ end # Compute
24
+ end # Fog
@@ -0,0 +1,196 @@
1
+ module Fog
2
+ module Compute
3
+ class OneAndOne
4
+ class MonitoringPolicy < Fog::Model
5
+
6
+ # Declare Model Attributes
7
+ identity :id
8
+
9
+ attribute :name
10
+ attribute :description
11
+ attribute :email
12
+ attribute :agent
13
+ attribute :thresholds
14
+ attribute :ports
15
+ attribute :processes
16
+
17
+ attribute :state
18
+ attribute :creation_date
19
+ attribute :servers
20
+
21
+
22
+ def save
23
+
24
+ requires :name, :agent, :email, :thresholds, :ports, :processes
25
+
26
+ # Perform Request
27
+ response = service.create_monitoring_policy(name: name,
28
+ description: description, email: email, agent: agent,
29
+ thresholds: thresholds, ports: ports, processes: processes)
30
+
31
+ # Merge Attributes
32
+ merge_attributes(response.body)
33
+
34
+ true
35
+
36
+ end
37
+
38
+
39
+ def update(options = {})
40
+
41
+ requires :id
42
+
43
+ response = service.update_monitoring_policy(monitoring_policy_id: id,
44
+ name: options[:name], description: options[:description],
45
+ email: options[:email], thresholds: options[:thresholds])
46
+
47
+ # Merge Attributes
48
+ merge_attributes(response.body)
49
+
50
+ true
51
+
52
+ end
53
+
54
+
55
+ def add_ports(options = {})
56
+
57
+ requires :id
58
+
59
+ response = service.add_ports(monitoring_policy_id: id,
60
+ ports: options[:ports])
61
+
62
+ # Merge Attributes
63
+ merge_attributes(response.body)
64
+
65
+ true
66
+
67
+ end
68
+
69
+
70
+ def delete_port(options = {})
71
+
72
+ requires :id
73
+
74
+ response = service.delete_port(monitoring_policy_id: id,
75
+ port_id: options[:port_id])
76
+
77
+ # Merge Attributes
78
+ merge_attributes(response.body)
79
+
80
+ true
81
+
82
+ end
83
+
84
+
85
+ def update_port(options = {})
86
+
87
+ requires :id
88
+
89
+ response = service.update_port(monitoring_policy_id: id,
90
+ port_id: options[:port_id], new_port: options[:new_port])
91
+
92
+ # Merge Attributes
93
+ merge_attributes(response.body)
94
+
95
+ true
96
+
97
+ end
98
+
99
+
100
+ def add_processes(options = {})
101
+
102
+ requires :id
103
+
104
+ response = service.add_processes(monitoring_policy_id: id,
105
+ processes: options[:processes])
106
+
107
+ # Merge Attributes
108
+ merge_attributes(response.body)
109
+
110
+ true
111
+
112
+ end
113
+
114
+
115
+ def delete_process(options = {})
116
+
117
+ requires :id
118
+
119
+ response = service.delete_process(monitoring_policy_id: id,
120
+ process_id: options[:process_id])
121
+
122
+ # Merge Attributes
123
+ merge_attributes(response.body)
124
+
125
+ true
126
+
127
+ end
128
+
129
+
130
+ def update_process(options = {})
131
+
132
+ requires :id
133
+
134
+ response = service.update_process(monitoring_policy_id: id,
135
+ process_id: options[:process_id],
136
+ new_process: options[:new_process])
137
+
138
+ # Merge Attributes
139
+ merge_attributes(response.body)
140
+
141
+ true
142
+
143
+ end
144
+
145
+
146
+ def add_servers(options = {})
147
+
148
+ requires :id
149
+
150
+ response = service.add_mp_servers(monitoring_policy_id: id,
151
+ servers: options[:servers])
152
+
153
+ # Decode and Merge Attributes
154
+ merge_attributes(response.body)
155
+
156
+ true
157
+
158
+ end
159
+
160
+
161
+ def remove_server(options = {})
162
+
163
+ requires :id
164
+
165
+ response = service.remove_mp_server(monitoring_policy_id: id,
166
+ server_id: options[:server_id])
167
+
168
+ # Merge Attributes
169
+ merge_attributes(response.body)
170
+
171
+ true
172
+
173
+ end
174
+
175
+
176
+ def destroy
177
+
178
+ requires :id
179
+
180
+ service.delete_monitoring_policy(id)
181
+
182
+ true
183
+
184
+ end
185
+
186
+
187
+ def ready?
188
+
189
+ state == 'ACTIVE'
190
+
191
+ end
192
+
193
+ end # MonitoringPolicy
194
+ end # OneAndOne
195
+ end # Compute
196
+ end # Fog