forked from ManageIQ/manageiq-content
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Moving RedHat Automate domain content for Namespace "Integration" to …
…ManageIQ. Namespace "Integration" which includes ServiceNow and VMware components NOT found currently in ManageIQ domain.
- Loading branch information
1 parent
0c84a7f
commit 4498156
Showing
32 changed files
with
864 additions
and
0 deletions.
There are no files selected for viewing
133 changes: 133 additions & 0 deletions
133
content/automate/ManageIQ/Integration/ServiceNow/CMDB.class/__class__.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,133 @@ | ||
--- | ||
object_type: class | ||
version: 1.0 | ||
object: | ||
attributes: | ||
description: | ||
display_name: | ||
name: CMDB | ||
type: | ||
inherits: | ||
visibility: | ||
owner: | ||
schema: | ||
- field: | ||
aetype: attribute | ||
name: snow_server | ||
display_name: | ||
datatype: string | ||
priority: 1 | ||
owner: | ||
default_value: | ||
substitute: true | ||
message: create | ||
visibility: | ||
collect: | ||
scope: | ||
description: | ||
condition: | ||
on_entry: | ||
on_exit: | ||
on_error: | ||
max_retries: | ||
max_time: | ||
- field: | ||
aetype: attribute | ||
name: snow_user | ||
display_name: | ||
datatype: string | ||
priority: 2 | ||
owner: | ||
default_value: | ||
substitute: true | ||
message: create | ||
visibility: | ||
collect: | ||
scope: | ||
description: | ||
condition: | ||
on_entry: | ||
on_exit: | ||
on_error: | ||
max_retries: | ||
max_time: | ||
- field: | ||
aetype: attribute | ||
name: snow_password | ||
display_name: | ||
datatype: password | ||
priority: 3 | ||
owner: | ||
default_value: | ||
substitute: true | ||
message: create | ||
visibility: | ||
collect: | ||
scope: | ||
description: | ||
condition: | ||
on_entry: | ||
on_exit: | ||
on_error: | ||
max_retries: | ||
max_time: | ||
- field: | ||
aetype: attribute | ||
name: sys_id | ||
display_name: | ||
datatype: string | ||
priority: 4 | ||
owner: | ||
default_value: | ||
substitute: true | ||
message: create | ||
visibility: | ||
collect: | ||
scope: | ||
description: | ||
condition: | ||
on_entry: | ||
on_exit: | ||
on_error: | ||
max_retries: | ||
max_time: | ||
- field: | ||
aetype: attribute | ||
name: table_name | ||
display_name: | ||
datatype: string | ||
priority: 5 | ||
owner: | ||
default_value: cmdb_ci_server | ||
substitute: true | ||
message: create | ||
visibility: | ||
collect: | ||
scope: | ||
description: | ||
condition: | ||
on_entry: | ||
on_exit: | ||
on_error: | ||
max_retries: | ||
max_time: | ||
- field: | ||
aetype: method | ||
name: execute | ||
display_name: | ||
datatype: string | ||
priority: 6 | ||
owner: | ||
default_value: | ||
substitute: true | ||
message: create | ||
visibility: | ||
collect: | ||
scope: | ||
description: | ||
condition: | ||
on_entry: | ||
on_exit: | ||
on_error: | ||
max_retries: | ||
max_time: |
86 changes: 86 additions & 0 deletions
86
content/automate/ManageIQ/Integration/ServiceNow/CMDB.class/__methods__/create.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
# | ||
# Description: Create ServiceNow CMDB Record | ||
# | ||
|
||
require 'rest-client' | ||
require 'json' | ||
require 'base64' | ||
|
||
def log(level, message) | ||
method = '----- Create ServiceNow CMDB Record -----' | ||
$evm.log(level, "#{method} - #{message}") | ||
end | ||
|
||
def get_virtual_column_value(vm, virtual_column_name) | ||
virtual_column_value = vm.send(virtual_column_name) | ||
return virtual_column_value unless virtual_column_value.nil? | ||
nil | ||
end | ||
|
||
def hostname(vm) | ||
vm.hostnames.first.presence || vm.name | ||
end | ||
|
||
snow_server = $evm.object['snow_server'] | ||
snow_user = $evm.object['snow_user'] | ||
snow_password = $evm.object.decrypt('snow_password') | ||
table_name = $evm.object['table_name'] | ||
uri = "https://#{snow_server}/api/now/table/#{table_name}" | ||
|
||
headers = { | ||
:content_type => 'application/json', | ||
:accept => 'application/json', | ||
:authorization => "Basic #{Base64.strict_encode64("#{snow_user}:#{snow_password}")}" | ||
} | ||
|
||
# Grab the VM object | ||
log(:info, "vmdb_object_type => <#{$evm.root['vmdb_object_type']}>") | ||
case $evm.root['vmdb_object_type'] | ||
when 'miq_provision' | ||
prov = $evm.root['miq_provision'] | ||
vm = prov.vm unless prov.nil? | ||
when 'service_template_provision_task' | ||
# Added for generic catalogue item scenario | ||
vm_host_name = $evm.root['service_template_provision_task'].options[:dialog][:dialog_option_0_vm_host_name] | ||
vm = $evm.vmdb('vm').find_by_name(vm_host_name) | ||
else | ||
vm = $evm.root['vm'] | ||
end | ||
log(:warn, 'VM object is empty') if vm.nil? | ||
|
||
# Extend payload attributes as required | ||
virtual = $evm.object['virtual'] || true | ||
name = $evm.object['name'] || vm.name | ||
description = $evm.object['description'] || "CloudForms GUID <#{vm.guid}>" | ||
host_name = $evm.object['host_name'] || hostname(vm) | ||
cpu_count = $evm.object['cpu_count'] || get_virtual_column_value(vm, :num_cpu) | ||
memory = $evm.object['memory'] || get_virtual_column_value(vm, :mem_cpu) | ||
vendor = $evm.object['vendor'] || vm.vendor | ||
|
||
payload = { | ||
:virtual => virtual, | ||
:name => name, | ||
:short_description => description, | ||
:host_name => host_name, | ||
:cpu_count => cpu_count, | ||
:ram => memory, | ||
:vendor => vendor | ||
} | ||
log(:info, "uri => #{uri}") | ||
log(:info, "payload => #{payload}") | ||
|
||
request = RestClient::Request.new( | ||
:method => :post, | ||
:url => uri, | ||
:headers => headers, | ||
:payload => payload.to_json | ||
) | ||
rest_result = request.execute | ||
log(:info, "Return code <#{rest_result.code}>") | ||
|
||
json_parse = JSON.parse(rest_result) | ||
result = json_parse['result'] | ||
log(:info, "sys_id => <#{result['sys_id']}>") | ||
|
||
# Add sys_id to VM object | ||
vm.custom_set(:servicenow_sys_id, result['sys_id']) |
12 changes: 12 additions & 0 deletions
12
content/automate/ManageIQ/Integration/ServiceNow/CMDB.class/__methods__/create.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
--- | ||
object_type: method | ||
version: 1.0 | ||
object: | ||
attributes: | ||
name: create | ||
display_name: | ||
description: | ||
scope: instance | ||
language: ruby | ||
location: inline | ||
inputs: [] |
48 changes: 48 additions & 0 deletions
48
content/automate/ManageIQ/Integration/ServiceNow/CMDB.class/__methods__/delete.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
# | ||
# Description: Delete ServiceNow CMDB Record | ||
# | ||
|
||
require 'rest-client' | ||
require 'base64' | ||
|
||
def log(level, message) | ||
method = '----- Delete ServiceNow CMDB Record -----' | ||
$evm.log(level, "#{method} - #{message}") | ||
end | ||
|
||
snow_server = $evm.object['snow_server'] | ||
snow_user = $evm.object['snow_user'] | ||
snow_password = $evm.object.decrypt('snow_password') | ||
table_name = $evm.object['table_name'] | ||
uri = "https://#{snow_server}/api/now/table/#{table_name}" | ||
|
||
headers = { | ||
:content_type => 'application/json', | ||
:accept => 'application/json', | ||
:authorization => "Basic #{Base64.strict_encode64("#{snow_user}:#{snow_password}")}" | ||
} | ||
|
||
# Grab the VM object | ||
log(:info, "vmdb_object_type => <#{$evm.root['vmdb_object_type']}>") | ||
case $evm.root['vmdb_object_type'] | ||
when 'miq_provision' | ||
prov = $evm.root['miq_provision'] | ||
vm = prov.vm unless prov.nil? | ||
else | ||
vm = $evm.root['vm'] | ||
end | ||
log(:warn, 'VM object is empty') if vm.nil? | ||
|
||
sys_id = $evm.object['sys_id'] || vm.custom_get(:servicenow_sys_id) | ||
raise 'ServiceNow sys_id is empty' if sys_id.nil? | ||
|
||
uri = "#{uri}/#{sys_id}" | ||
log(:info, "uri => #{uri}") | ||
|
||
request = RestClient::Request.new( | ||
:method => :delete, | ||
:url => uri, | ||
:headers => headers, | ||
) | ||
rest_result = request.execute | ||
log(:info, "Return code <#{rest_result.code}>") |
12 changes: 12 additions & 0 deletions
12
content/automate/ManageIQ/Integration/ServiceNow/CMDB.class/__methods__/delete.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
--- | ||
object_type: method | ||
version: 1.0 | ||
object: | ||
attributes: | ||
name: delete | ||
display_name: | ||
description: | ||
scope: instance | ||
language: ruby | ||
location: inline | ||
inputs: [] |
56 changes: 56 additions & 0 deletions
56
content/automate/ManageIQ/Integration/ServiceNow/CMDB.class/__methods__/get.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
# | ||
# Description: Get ServiceNow CMDB Record | ||
# | ||
|
||
require 'rest-client' | ||
require 'json' | ||
require 'base64' | ||
|
||
def log(level, message) | ||
method = '----- Get ServiceNow CMDB Record -----' | ||
$evm.log(level, "#{method} - #{message}") | ||
end | ||
|
||
snow_server = $evm.object['snow_server'] | ||
snow_user = $evm.object['snow_user'] | ||
snow_password = $evm.object.decrypt('snow_password') | ||
table_name = $evm.object['table_name'] | ||
uri = "https://#{snow_server}/api/now/table/#{table_name}" | ||
|
||
headers = { | ||
:content_type => 'application/json', | ||
:accept => 'application/json', | ||
:authorization => "Basic #{Base64.strict_encode64("#{snow_user}:#{snow_password}")}" | ||
} | ||
|
||
# Grab the VM object | ||
log(:info, "vmdb_object_type => <#{$evm.root['vmdb_object_type']}>") | ||
case $evm.root['vmdb_object_type'] | ||
when 'miq_provision' | ||
prov = $evm.root['miq_provision'] | ||
vm = prov.vm unless prov.nil? | ||
else | ||
vm = $evm.root['vm'] | ||
end | ||
log(:warn, 'VM object is empty') if vm.nil? | ||
|
||
sys_id = $evm.object['sys_id'] || vm.custom_get(:servicenow_sys_id) | ||
raise 'ServiceNow sys_id is empty' if sys_id.nil? | ||
|
||
uri = "#{uri}/#{sys_id}" | ||
log(:info, "uri => #{uri}") | ||
|
||
request = RestClient::Request.new( | ||
:method => :get, | ||
:url => uri, | ||
:headers => headers | ||
) | ||
rest_result = request.execute | ||
log(:info, "Return code <#{rest_result.code}>") | ||
|
||
json_parse = JSON.parse(rest_result) | ||
result = json_parse['result'] | ||
log(:info, "Item <#{result['name']}> attributes:") | ||
result.sort.each do | k, v | | ||
log(:info, " #{k} => <#{v}>") | ||
end |
12 changes: 12 additions & 0 deletions
12
content/automate/ManageIQ/Integration/ServiceNow/CMDB.class/__methods__/get.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
--- | ||
object_type: method | ||
version: 1.0 | ||
object: | ||
attributes: | ||
name: get | ||
display_name: | ||
description: | ||
scope: instance | ||
language: ruby | ||
location: inline | ||
inputs: [] |
Oops, something went wrong.