umbreo_cli 1.0.141

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 (38) hide show
  1. checksums.yaml +7 -0
  2. data/.env +2 -0
  3. data/Gemfile +23 -0
  4. data/Gemfile.lock +106 -0
  5. data/README.md +1625 -0
  6. data/Rakefile +44 -0
  7. data/bin/manifests/init.pp +20 -0
  8. data/bin/umbreo +1684 -0
  9. data/bin/umbreo.json +34 -0
  10. data/lib/umbreo.rb +49 -0
  11. data/lib/umbreo/helpers/alert_message.rb +58 -0
  12. data/lib/umbreo/helpers/error_exception.rb +15 -0
  13. data/lib/umbreo/helpers/file_generator.rb +13 -0
  14. data/lib/umbreo/helpers/json_base_convert.rb +30 -0
  15. data/lib/umbreo/helpers/table.rb +45 -0
  16. data/lib/umbreo/models/amazon_web_service_provider.rb +260 -0
  17. data/lib/umbreo/models/authentication.rb +99 -0
  18. data/lib/umbreo/models/blueprint.rb +241 -0
  19. data/lib/umbreo/models/cloud_provider.rb +143 -0
  20. data/lib/umbreo/models/configuration.rb +98 -0
  21. data/lib/umbreo/models/digital_ocean_provider.rb +204 -0
  22. data/lib/umbreo/models/google_compute_engine_provider.rb +232 -0
  23. data/lib/umbreo/models/instance.rb +170 -0
  24. data/lib/umbreo/models/module.rb +61 -0
  25. data/lib/umbreo/models/openstack_provider.rb +260 -0
  26. data/lib/umbreo/models/profile.rb +61 -0
  27. data/lib/umbreo/models/provider.rb +164 -0
  28. data/lib/umbreo/models/service.rb +244 -0
  29. data/lib/umbreo/models/service_provider.rb +185 -0
  30. data/lib/umbreo/models/stack.rb +181 -0
  31. data/lib/umbreo/models/system.rb +43 -0
  32. data/lib/umbreo/models/umbreo_stack_template.rb +163 -0
  33. data/lib/umbreo/models/xenserver_provider.rb +200 -0
  34. data/lib/umbreo/version.rb +3 -0
  35. data/manifests/init.pp +20 -0
  36. data/manifests1/init.pp +9 -0
  37. data/umbreo.gemspec +28 -0
  38. metadata +241 -0
@@ -0,0 +1,200 @@
1
+ module Umbreo
2
+ module Models
3
+ class XenserverProvider
4
+
5
+ #
6
+ # init params which required for create cloud provider
7
+ #
8
+ def initialize(credentials = {}, name_or_id = nil)
9
+ if credentials.present?
10
+ @email = credentials[:email]
11
+ @api_key = credentials[:api_key]
12
+ @endpoint = credentials[:end_point] || SERVER_END_POINT
13
+ end
14
+
15
+ @errors = []
16
+ @name_or_id = name_or_id
17
+ end
18
+
19
+ #
20
+ # get list storage of xenserver
21
+ #
22
+ def storage_list
23
+ @errors << "ID or Name provider is required." if @name_or_id.blank?
24
+
25
+ if valid?
26
+ Helpers::ErrorException.rescue do
27
+ data = Typhoeus.get(
28
+ "#{@endpoint}/api/v1/xenserver_services/storage_list",
29
+ body: {
30
+ authenticate_token: @api_key,
31
+ email: @email,
32
+ id: @name_or_id
33
+ }
34
+ )
35
+
36
+ data = JSON.parse data.response_body
37
+
38
+ if data['success']
39
+ Helpers::Table.table_callback_retrieve_data(data['storages'], "List Xenserver Storage")
40
+ else
41
+ Helpers::AlertMessage.show_error_message(data['message'])
42
+ end
43
+ end
44
+ else
45
+ Helpers::AlertMessage.show_error_message(error)
46
+ end
47
+ end
48
+
49
+ #
50
+ # get list vhd of xenserver
51
+ #
52
+ def vhd_list
53
+ @errors << "ID or Name provider is required." if @name_or_id.blank?
54
+
55
+ if valid?
56
+ Helpers::ErrorException.rescue do
57
+ data = Typhoeus.get(
58
+ "#{@endpoint}/api/v1/xenserver_services/vhd_list",
59
+ body: {
60
+ authenticate_token: @api_key,
61
+ email: @email,
62
+ id: @name_or_id
63
+ }
64
+ )
65
+
66
+ data = JSON.parse data.response_body
67
+
68
+ if data['success']
69
+ Helpers::Table.show_table(data['vhd_files'], "List VHD File", ['VHD ID', 'VHD File'])
70
+ else
71
+ Helpers::AlertMessage.show_error_message(data['message'])
72
+ end
73
+ end
74
+ else
75
+ Helpers::AlertMessage.show_error_message(error)
76
+ end
77
+ end
78
+
79
+ #
80
+ # get list net of xenserver
81
+ #
82
+ def net_list
83
+ @errors << "ID or Name provider is required." if @name_or_id.blank?
84
+
85
+ if valid?
86
+ Helpers::ErrorException.rescue do
87
+ data = Typhoeus.get(
88
+ "#{@endpoint}/api/v1/xenserver_services/net_list",
89
+ body: {
90
+ authenticate_token: @api_key,
91
+ email: @email,
92
+ id: @name_or_id
93
+ }
94
+ )
95
+
96
+ data = JSON.parse data.response_body
97
+
98
+ if data['success']
99
+ Helpers::Table.table_callback_retrieve_data(data['netlist'], "List Xenserver Net")
100
+ else
101
+ Helpers::AlertMessage.show_error_message(data['message'])
102
+ end
103
+ end
104
+ else
105
+ Helpers::AlertMessage.show_error_message(error)
106
+ end
107
+ end
108
+
109
+ #
110
+ # get json credential file
111
+ #
112
+ def export
113
+ @errors << "ID or Slug is required." if @name_or_id.blank?
114
+
115
+ if valid?
116
+ Helpers::ErrorException.rescue do
117
+ data = Typhoeus.get(
118
+ "#{@endpoint}/api/v1/xenserver_services/export",
119
+ body: {
120
+ authenticate_token: @api_key,
121
+ email: @email,
122
+ id: @name_or_id
123
+ }
124
+ )
125
+
126
+ data = JSON.parse data.response_body rescue nil
127
+ user_provider = data["user_provider"]
128
+
129
+ if user_provider.present?
130
+ name_file = "xenserver_provider"
131
+ Helpers::FileGenerator.create(name_file, user_provider)
132
+ Helpers::AlertMessage.show_success_message("Success export xenserver provider. Your file is saved on json file with name #{name_file}.json")
133
+ else
134
+ Helpers::AlertMessage.show_error_message(data["message"])
135
+ end
136
+ end
137
+ else
138
+ Helpers::AlertMessage.show_error_message(error)
139
+ end
140
+ end
141
+
142
+ #
143
+ # check valid json params
144
+ #
145
+ def validate(file_path)
146
+ @errors << "File directory is required." if file_path.blank?
147
+
148
+ begin
149
+ file = File.open(file_path, "r")
150
+ content = file.read
151
+ json = JSON.parse(content)
152
+ encode = Helpers::JsonBaseConvert.encode(json)
153
+ rescue
154
+ @errors << "Error on file. Please check again."
155
+ end
156
+
157
+ @errors << "Content of file is required." if content.blank?
158
+
159
+ if valid?
160
+ Helpers::ErrorException.rescue do
161
+
162
+ response = Typhoeus.get(
163
+ "#{@endpoint}/api/v1/openstack_services/validate",
164
+ body: {
165
+ authenticate_token: @api_key,
166
+ email: @email,
167
+ content: encode
168
+ }
169
+ )
170
+
171
+ @response = JSON.parse response.response_body
172
+
173
+ if @response["success"]
174
+ Helpers::AlertMessage.show_success_message(@response["message"])
175
+ else
176
+ Helpers::AlertMessage.show_error_message(@response["message"])
177
+ end
178
+ end
179
+ else
180
+ Helpers::AlertMessage.show_error_message(error)
181
+ end
182
+ end
183
+
184
+ #
185
+ # check no errors
186
+ #
187
+ def valid?
188
+ @errors.blank?
189
+ end
190
+
191
+ #
192
+ # call errors
193
+ #
194
+ def error
195
+ @errors.first
196
+ end
197
+
198
+ end
199
+ end
200
+ end
@@ -0,0 +1,3 @@
1
+ module Umbreo
2
+ VERSION = '1.0.141'
3
+ end
data/manifests/init.pp ADDED
@@ -0,0 +1,20 @@
1
+ class apache (
2
+ $version = 'latest',
3
+ $service_ensure = "running",
4
+ $service_enable = true,
5
+ ){
6
+ package {'apache2':
7
+ ensure => $version, # Using the class parameter from above
8
+ before => File['/etc/apache.conf'],
9
+ }
10
+ file {'/etc/apache2.conf':
11
+ ensure => file,
12
+ owner => 'apache',
13
+ content => template('apache/apache.conf.erb'), # Template from a module
14
+ }
15
+ service {'apache2':
16
+ ensure => running,
17
+ enable => true,
18
+ subscribe => File['/etc/apache.conf'],
19
+ }
20
+ }
@@ -0,0 +1,9 @@
1
+ class apache (
2
+ $service_ensure = "running",
3
+ $service_enable = true,
4
+ $my_name = $apache::params::my_name,
5
+ ) {
6
+
7
+
8
+
9
+ }
data/umbreo.gemspec ADDED
@@ -0,0 +1,28 @@
1
+ require File.join([File.dirname(__FILE__),'lib','umbreo','version.rb'])
2
+
3
+ spec = Gem::Specification.new do |s|
4
+ s.name = 'umbreo_cli'
5
+ s.version = Umbreo::VERSION
6
+ s.author = 'Umbreo'
7
+ s.email = 'muhamad.luay@gmail.com'
8
+ s.homepage = 'https://www.umbreo.com'
9
+ s.platform = Gem::Platform::RUBY
10
+ s.summary = 'Umbreo Command Line Interface'
11
+ s.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) || f.match(/(^umbreo_cli-)+([0-9])+(.)+([0-9])+(.)+([0-9])+(.gem)$/) }
12
+
13
+ s.require_paths << 'lib'
14
+
15
+ s.has_rdoc = true
16
+ s.rdoc_options << '--title' << 'umbreo' << '--main' << 'README.rdoc' << '-ri'
17
+ s.bindir = 'bin'
18
+ s.executables << 'umbreo'
19
+ s.add_runtime_dependency 'rake', '~> 11.1', '>= 11.1.2'
20
+ s.add_runtime_dependency 'typhoeus', '~> 1.0', '>= 1.0.2'
21
+ s.add_runtime_dependency 'terminal-table', '~> 1.5', '>= 1.5.2'
22
+ s.add_runtime_dependency('gli','2.13.4')
23
+ s.add_runtime_dependency('aruba','~> 0.14.1')
24
+ s.add_runtime_dependency 'rainbow', '~> 2.1', '>= 2.1.0'
25
+ s.add_runtime_dependency('contracts','~> 0.14.0')
26
+ s.add_runtime_dependency 'gherkin', '~> 4.0', '>= 4.0.0'
27
+ s.add_runtime_dependency 'activesupport', '5.0.0'
28
+ end
metadata ADDED
@@ -0,0 +1,241 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: umbreo_cli
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.141
5
+ platform: ruby
6
+ authors:
7
+ - Umbreo
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-09-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '11.1'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 11.1.2
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '11.1'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 11.1.2
33
+ - !ruby/object:Gem::Dependency
34
+ name: typhoeus
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '1.0'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 1.0.2
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '1.0'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 1.0.2
53
+ - !ruby/object:Gem::Dependency
54
+ name: terminal-table
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '1.5'
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 1.5.2
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '1.5'
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 1.5.2
73
+ - !ruby/object:Gem::Dependency
74
+ name: gli
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - '='
78
+ - !ruby/object:Gem::Version
79
+ version: 2.13.4
80
+ type: :runtime
81
+ prerelease: false
82
+ version_requirements: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - '='
85
+ - !ruby/object:Gem::Version
86
+ version: 2.13.4
87
+ - !ruby/object:Gem::Dependency
88
+ name: aruba
89
+ requirement: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - "~>"
92
+ - !ruby/object:Gem::Version
93
+ version: 0.14.1
94
+ type: :runtime
95
+ prerelease: false
96
+ version_requirements: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - "~>"
99
+ - !ruby/object:Gem::Version
100
+ version: 0.14.1
101
+ - !ruby/object:Gem::Dependency
102
+ name: rainbow
103
+ requirement: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - "~>"
106
+ - !ruby/object:Gem::Version
107
+ version: '2.1'
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: 2.1.0
111
+ type: :runtime
112
+ prerelease: false
113
+ version_requirements: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '2.1'
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ version: 2.1.0
121
+ - !ruby/object:Gem::Dependency
122
+ name: contracts
123
+ requirement: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - "~>"
126
+ - !ruby/object:Gem::Version
127
+ version: 0.14.0
128
+ type: :runtime
129
+ prerelease: false
130
+ version_requirements: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - "~>"
133
+ - !ruby/object:Gem::Version
134
+ version: 0.14.0
135
+ - !ruby/object:Gem::Dependency
136
+ name: gherkin
137
+ requirement: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - "~>"
140
+ - !ruby/object:Gem::Version
141
+ version: '4.0'
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: 4.0.0
145
+ type: :runtime
146
+ prerelease: false
147
+ version_requirements: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: '4.0'
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: 4.0.0
155
+ - !ruby/object:Gem::Dependency
156
+ name: activesupport
157
+ requirement: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - '='
160
+ - !ruby/object:Gem::Version
161
+ version: 5.0.0
162
+ type: :runtime
163
+ prerelease: false
164
+ version_requirements: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - '='
167
+ - !ruby/object:Gem::Version
168
+ version: 5.0.0
169
+ description:
170
+ email: muhamad.luay@gmail.com
171
+ executables:
172
+ - umbreo
173
+ extensions: []
174
+ extra_rdoc_files: []
175
+ files:
176
+ - ".env"
177
+ - Gemfile
178
+ - Gemfile.lock
179
+ - README.md
180
+ - Rakefile
181
+ - bin/manifests/init.pp
182
+ - bin/umbreo
183
+ - bin/umbreo.json
184
+ - lib/umbreo.rb
185
+ - lib/umbreo/helpers/alert_message.rb
186
+ - lib/umbreo/helpers/error_exception.rb
187
+ - lib/umbreo/helpers/file_generator.rb
188
+ - lib/umbreo/helpers/json_base_convert.rb
189
+ - lib/umbreo/helpers/table.rb
190
+ - lib/umbreo/models/amazon_web_service_provider.rb
191
+ - lib/umbreo/models/authentication.rb
192
+ - lib/umbreo/models/blueprint.rb
193
+ - lib/umbreo/models/cloud_provider.rb
194
+ - lib/umbreo/models/configuration.rb
195
+ - lib/umbreo/models/digital_ocean_provider.rb
196
+ - lib/umbreo/models/google_compute_engine_provider.rb
197
+ - lib/umbreo/models/instance.rb
198
+ - lib/umbreo/models/module.rb
199
+ - lib/umbreo/models/openstack_provider.rb
200
+ - lib/umbreo/models/profile.rb
201
+ - lib/umbreo/models/provider.rb
202
+ - lib/umbreo/models/service.rb
203
+ - lib/umbreo/models/service_provider.rb
204
+ - lib/umbreo/models/stack.rb
205
+ - lib/umbreo/models/system.rb
206
+ - lib/umbreo/models/umbreo_stack_template.rb
207
+ - lib/umbreo/models/xenserver_provider.rb
208
+ - lib/umbreo/version.rb
209
+ - manifests/init.pp
210
+ - manifests1/init.pp
211
+ - umbreo.gemspec
212
+ homepage: https://www.umbreo.com
213
+ licenses: []
214
+ metadata: {}
215
+ post_install_message:
216
+ rdoc_options:
217
+ - "--title"
218
+ - umbreo
219
+ - "--main"
220
+ - README.rdoc
221
+ - "-ri"
222
+ require_paths:
223
+ - lib
224
+ - lib
225
+ required_ruby_version: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ required_rubygems_version: !ruby/object:Gem::Requirement
231
+ requirements:
232
+ - - ">="
233
+ - !ruby/object:Gem::Version
234
+ version: '0'
235
+ requirements: []
236
+ rubyforge_project:
237
+ rubygems_version: 2.4.8
238
+ signing_key:
239
+ specification_version: 4
240
+ summary: Umbreo Command Line Interface
241
+ test_files: []