umbreo_cli 1.0.141

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