brpm_module_servicenow 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.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ MmZjYTI1ZGY4M2QzOTVjZDc3ZjU4MDdhZWUzNGFjNmI4MjcxZjFhOQ==
5
+ data.tar.gz: !binary |-
6
+ NDI2MTU4ZDQzNjQ4YzUzNDI0ZTFmMDFlMDI0ZGNiOGRlY2E3MGU3Mw==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ MTljMDAxMDYwZmYwMDU1MDdkMzQwOGQzZjIwZjdjNmEzY2ZkNDRjZTlhMjM5
10
+ ZjUwYTYwZDIzNDFhNjUyMmFkY2Y3ZWIxYTE1OWIxMGYxMWVmZDVmMzE0ODkx
11
+ YTEyYWJkYmE4MWVmNzg3YTI3YmViOTMyZDZjN2UxMGFjYmZhN2Y=
12
+ data.tar.gz: !binary |-
13
+ M2VhODUyZjZhMWZkNTUzY2FiNDliOTk0ZDZjOWNlZDhmOTEwNjNhMTljYzMz
14
+ NzE3NWJlNWRmNjcwODc4MjMzZDYyMWRjZGVhZDRiZjE2MDJhNTUxMWY5ZmQx
15
+ Yjc0NjBkNjNkMTA2M2JkOGY1NmJjNjdhMDk0YzFlYzVhOGNmMWI=
data/.gitignore ADDED
@@ -0,0 +1,37 @@
1
+ *.gem
2
+ *.rbc
3
+ /.config
4
+ /coverage/
5
+ /InstalledFiles
6
+ /pkg/
7
+ /spec/reports/
8
+ /test/tmp/
9
+ /test/version_tmp/
10
+ /tmp/
11
+
12
+ ## Specific to RubyMotion:
13
+ .dat*
14
+ .repl_history
15
+ build/
16
+
17
+ ## Documentation cache and generated files:
18
+ /.yardoc/
19
+ /_yardoc/
20
+ /doc/
21
+ /rdoc/
22
+
23
+ ## Environment normalisation:
24
+ /.bundle/
25
+ /lib/bundler/man/
26
+
27
+ # for a library or gem, you might want to ignore these files since the code is
28
+ # intended to run in multiple environments; otherwise, check them in:
29
+ Gemfile.lock
30
+ .ruby-gemset
31
+
32
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
33
+ .rvmrc
34
+
35
+ .DS_Store
36
+
37
+ .idea
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 1.9.3-p392
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
data/Rakefile ADDED
@@ -0,0 +1,23 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+ require 'rspec/core/rake_task'
4
+
5
+ # Immediately sync all stdout so that tools like buildbot can
6
+ # immediately load in the output.
7
+ $stdout.sync = true
8
+ $stderr.sync = true
9
+
10
+ # Change to the directory of this file.
11
+ Dir.chdir(File.expand_path("../", __FILE__))
12
+
13
+ # This installs the tasks that help with gem creation and
14
+ # publishing.
15
+ Bundler::GemHelper.install_tasks
16
+
17
+ # Install the `spec` task so that we can run tests.
18
+ RSpec::Core::RakeTask.new do |task|
19
+ task.pattern = "tests/**/*_spec.rb"
20
+ end
21
+
22
+ # Default task is to run the unit tests
23
+ task :default => "spec"
@@ -0,0 +1,11 @@
1
+ params:
2
+ change_request_id:
3
+ name: Change request id
4
+ target_change_request_status:
5
+ name: Change request status
6
+ type: in-list-single
7
+ list_pairs: 1,Pending|2,Open|3,Work in Progress|4,Closed Complete|5,Closed Incomplete|6,Closed Skipped
8
+
9
+
10
+ integration_server_type: ServiceNow
11
+
@@ -0,0 +1,2 @@
1
+ snow_rest_client = SnowRestClient.new
2
+ snow_rest_client.update_record("change_request", BrpmAuto.all_params["change_request_id"], { "state" => snow_rest_client.get_state_id_from_state_label(BrpmAuto.all_params["target_change_request_status"])})
data/config.yml ADDED
@@ -0,0 +1,8 @@
1
+ version: 0.0.1
2
+
3
+ author: Niek Bartholomeus
4
+ email: niek.bartholomeus@gmail.com
5
+ homepage: https://github.com/BMC-RLM/brpm_module_servicenow
6
+ license: MIT
7
+ summary: ServiceNow automation scripts and libraries to run on top of the BRPM Content framework
8
+ description: ServiceNow automation scripts and libraries to run on top of the BRPM Content framework. See https://github.com/BMC-RLM/brpm_content_framework for more information about the BRPM Content framework
@@ -0,0 +1,31 @@
1
+ require 'json'
2
+ require 'uri'
3
+
4
+ class SnowRestClient
5
+ def initialize(integration_settings = BrpmAuto.integration_settings)
6
+ @url = integration_settings.dns
7
+ @username = integration_settings.username
8
+ @password = integration_settings.password
9
+
10
+ @api_url = "#{@url}/api/now/table"
11
+ end
12
+
13
+ def get_state_id_from_state_label(label)
14
+ case label
15
+ when "Pending"; -5
16
+ when "Open"; 1
17
+ when "Work in Progress"; 2
18
+ when "Closed Complete"; 3
19
+ when "Closed Incomplete"; 4
20
+ when "Closed Skipped"; 7
21
+ else
22
+ raise "Unsupported state label: #{label}"
23
+ end
24
+ end
25
+
26
+ def update_record(table, id, fields)
27
+ url = "#{@api_url}/#{table}/#{id}"
28
+
29
+ Rest.put(url, fields, { :username => @username, :password => @password })["response"]
30
+ end
31
+ end
data/module.gemspec ADDED
@@ -0,0 +1,38 @@
1
+ require "yaml"
2
+
3
+ config = YAML.load_file(File.join(File.dirname(__FILE__), "config.yml"))
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = File.basename(File.expand_path(File.dirname(__FILE__))).sub("-#{config["version"]}", "")
7
+ spec.version = config["version"]
8
+ spec.platform = Gem::Platform::RUBY
9
+ spec.license = config["license"]
10
+ spec.authors = [config["author"]]
11
+ spec.email = config["email"]
12
+ spec.homepage = config["homepage"]
13
+ spec.summary = config["summary"]
14
+ spec.description = config["description"]
15
+
16
+ spec.add_runtime_dependency "brpm_content_framework", ">=0.2.11"
17
+
18
+ if config["dependencies"]
19
+ config["dependencies"].each do |dependency|
20
+ if dependency.is_a?(Hash)
21
+ modul = dependency.keys[0]
22
+ options = dependency.values[0]
23
+ else
24
+ modul = dependency
25
+ options = {}
26
+ end
27
+ spec.add_runtime_dependency modul, options["version"]
28
+ end
29
+ end
30
+
31
+ unless ENV["BRPM_CONTENT_FRAMEWORK_DEPLOYMENT"]
32
+ spec.add_development_dependency "rake"
33
+ spec.add_development_dependency "rspec"
34
+ end
35
+
36
+ spec.files = `git ls-files`.split("\n")
37
+ spec.executables = spec.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
38
+ end
@@ -0,0 +1,33 @@
1
+ require 'fileutils'
2
+ require "brpm_script_executor"
3
+
4
+ def setup_brpm_auto
5
+ FileUtils.mkdir_p "/tmp/brpm_content"
6
+
7
+ BrpmAuto.setup( get_default_params.merge!(get_integration_params_for_servicenow) )
8
+
9
+ BrpmAuto.require_module "brpm_module_servicenow"
10
+
11
+ @snow_rest_client = SnowRestClient.new
12
+ end
13
+
14
+ def get_default_params
15
+ params = {}
16
+ params['also_log_to_console'] = 'true'
17
+
18
+ params['brpm_url'] = 'http://brpm-content.pulsar-it.be:8088/brpm'
19
+ params['brpm_api_token'] = ENV["BRPM_API_TOKEN"]
20
+
21
+ params['output_dir'] = "/tmp/brpm_content"
22
+
23
+ params
24
+ end
25
+
26
+ def get_integration_params_for_servicenow
27
+ params = {}
28
+ params["SS_integration_dns"] = 'https://dev14275.service-now.com'
29
+ params["SS_integration_username"] = 'admin'
30
+ params["SS_integration_password"] = ENV["SERVICENOW_PASSWORD"]
31
+
32
+ params
33
+ end
@@ -0,0 +1,29 @@
1
+ require_relative "spec_helper"
2
+
3
+ describe 'transition issue' do
4
+ before(:all) do
5
+ setup_brpm_auto
6
+ end
7
+
8
+ describe '' do
9
+ it 'transition a change request in ServiceNow' do
10
+ params = get_default_params
11
+ params = params.merge(get_integration_params_for_servicenow)
12
+
13
+ params["change_request_id"] = "2f31ef3b0fbb42000d3f758ce1050edd"
14
+
15
+ params["target_change_request_status"] = "Pending"
16
+ BrpmScriptExecutor.execute_automation_script("brpm_module_servicenow", "transition_change_request", params)
17
+
18
+ params["target_change_request_status"] = "Open"
19
+ BrpmScriptExecutor.execute_automation_script("brpm_module_servicenow", "transition_change_request", params)
20
+
21
+ params["target_change_request_status"] = "Work in Progress"
22
+ BrpmScriptExecutor.execute_automation_script("brpm_module_servicenow", "transition_change_request", params)
23
+
24
+ params["target_change_request_status"] = "Closed Complete"
25
+ BrpmScriptExecutor.execute_automation_script("brpm_module_servicenow", "transition_change_request", params)
26
+ end
27
+ end
28
+ end
29
+
metadata ADDED
@@ -0,0 +1,99 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: brpm_module_servicenow
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Niek Bartholomeus
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-11-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: brpm_content_framework
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ! '>='
18
+ - !ruby/object:Gem::Version
19
+ version: 0.2.11
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ! '>='
25
+ - !ruby/object:Gem::Version
26
+ version: 0.2.11
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: ServiceNow automation scripts and libraries to run on top of the BRPM
56
+ Content framework. See https://github.com/BMC-RLM/brpm_content_framework for more
57
+ information about the BRPM Content framework
58
+ email: niek.bartholomeus@gmail.com
59
+ executables: []
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - .gitignore
64
+ - .ruby-version
65
+ - Gemfile
66
+ - Rakefile
67
+ - automations/transition_change_request.meta
68
+ - automations/transition_change_request.rb
69
+ - config.yml
70
+ - lib/snow_rest_client.rb
71
+ - module.gemspec
72
+ - tests/spec_helper.rb
73
+ - tests/transition_change_request_spec.rb
74
+ homepage: https://github.com/BMC-RLM/brpm_module_servicenow
75
+ licenses:
76
+ - MIT
77
+ metadata: {}
78
+ post_install_message:
79
+ rdoc_options: []
80
+ require_paths:
81
+ - lib
82
+ required_ruby_version: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ required_rubygems_version: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ! '>='
90
+ - !ruby/object:Gem::Version
91
+ version: '0'
92
+ requirements: []
93
+ rubyforge_project:
94
+ rubygems_version: 2.1.9
95
+ signing_key:
96
+ specification_version: 4
97
+ summary: ServiceNow automation scripts and libraries to run on top of the BRPM Content
98
+ framework
99
+ test_files: []