opsviewconfig 0.0.1

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 (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/opsviewconfig.rb +50 -0
  3. metadata +44 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 51b8d3c6b9a1dccc2f1afa1487da05047161b3a1
4
+ data.tar.gz: baf8ba1bef60a158207e02b89f1f4a1b30f4f69a
5
+ SHA512:
6
+ metadata.gz: 27fb4a21cf837bc272673f2891c68ae556bba25b44d51fee31099eaf73a7ba99feac4a3886ffa88fd5afddd13078e114f0dcebbf8d202e3b4093357d6356f567
7
+ data.tar.gz: af71352f53cff766ce9b5fd31bb7df94eb6c1d23e9b6ec3ef96197740affa711e6061d71034f055cebb2a7f57878cb195171cd67e8954245ca2321894fed0089
@@ -0,0 +1,50 @@
1
+ require 'json'
2
+ require 'opsview_rest'
3
+
4
+ class Opsviewconfig
5
+ def initialize(config)
6
+ # Connect to opsview and return handler
7
+ @connection = OpsviewRest.new("http://" + config['opsviewhost'] + "/", :username => config['opsviewuser'], :password => config['opsviewpassword'])
8
+ end
9
+
10
+ def connection
11
+ return @connecton
12
+ end
13
+
14
+ def export(resource,folder)
15
+ res = @connection.list(:type => resource)
16
+ # Need to parse out junk we don't need to export
17
+ res = export_parse(res)
18
+ res.each do |resource|
19
+ filename = resource['name']
20
+ filename.gsub!(/[^0-9A-Za-z.\-]/, '_')
21
+ #puts "Exporting #{resource['name']} to #{filename}"
22
+ Dir.mkdir(folder) unless Dir.exist?(folder)
23
+ File.write("#{folder}/#{filename}.json",JSON.pretty_generate(resource))
24
+ end
25
+ return true
26
+ end
27
+
28
+ # Function to clean up the exported object
29
+ def export_parse(export)
30
+ cleanexport = Array.new()
31
+ export.each do |resource|
32
+ resource.delete("id")
33
+ cleanexport << resource
34
+ end
35
+ return cleanexport
36
+ end
37
+
38
+ def import(type,filename=nil,folder=nil)
39
+ resourceconfig = JSON.parse(File.read(filename))
40
+ resourceconfig[:type] = :"#{type}"
41
+ resourceconfig[:replace] = true
42
+ res = @connection.create(resourceconfig)
43
+ return true
44
+ end
45
+
46
+ def reload()
47
+ @connection.initiate_reload()
48
+ return true
49
+ end
50
+ end
metadata ADDED
@@ -0,0 +1,44 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: opsviewconfig
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Dmitriy M
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-09-17 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: A simple class to import and export OpsView config
14
+ email: dmitriy.mar@gmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/opsviewconfig.rb
20
+ homepage: https://github.com/kainam00/opsviewconfig
21
+ licenses:
22
+ - MIT
23
+ metadata: {}
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ requirements: []
39
+ rubyforge_project:
40
+ rubygems_version: 2.0.14
41
+ signing_key:
42
+ specification_version: 4
43
+ summary: OpsView configuration import and export class
44
+ test_files: []