From 09bcf46e276662ef518aac5fb11bc2eb4e127d36 Mon Sep 17 00:00:00 2001 From: rgnv Date: Thu, 12 Apr 2018 15:22:50 -0700 Subject: Added Cisco Spark hook --- docs/Hooks.md | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'docs') diff --git a/docs/Hooks.md b/docs/Hooks.md index fb80a19..d1b6925 100644 --- a/docs/Hooks.md +++ b/docs/Hooks.md @@ -184,6 +184,43 @@ hooks: Note the channel name must be in quotes. +## Hook type: ciscosparkdiff + +The `ciscosparkdiff` hook posts config diffs to a [Cisco Spark](https://www.ciscospark.com/) space of your choice. It only triggers for `post_store` events. + +You will need to manually install the `cisco_spark` gem on your system (see [cisco_spark-ruby](https://github.com/NGMarmaduke/cisco_spark-ruby): + +```shell +gem install cisco_spark +``` + +### ciscosparkdiff hook configuration example + +```yaml +hooks: + ciscospark: + type: ciscosparkdiff + events: [post_store] + accesskey: [SPARK_BOT_API_OR_OAUTH_KEY](https://developer.ciscospark.com/apps.html) + space: [SPARK_SPACE_ID](https://developer.ciscospark.com/endpoint-rooms-get.html) + diff: true +``` + +Optionally you can disable snippets and post a formatted message, for instance linking to a commit in a git repo. Named parameters `%{node}`, `%{group}`, `%{model}` and `%{commitref}` are available. + +```yaml +hooks: + ciscospark: + type: ciscosparkdiff + events: [post_store] + accesskey: [SPARK_BOT_API_OR_OAUTH_KEY](https://developer.ciscospark.com/apps.html) + space: [SPARK_SPACE_ID](https://developer.ciscospark.com/endpoint-rooms-get.html) + diff: false + message: "%{node} %{group} %{model} updated https://git.intranet/network-changes/commit/%{commitref}" +``` + +Note the space and access tokens must be in quotes. + ## Hook type: xmppdiff The `xmppdiff` hook posts config diffs to a [XMPP](https://en.wikipedia.org/wiki/XMPP) chatroom of your choice. It only triggers for `post_store` events. -- cgit v1.2.3 From 93508ddee0226a271ab2b7db56443518e90ec50c Mon Sep 17 00:00:00 2001 From: rgnv Date: Thu, 12 Apr 2018 15:32:44 -0700 Subject: Fixed markdown for Spark hook --- docs/Hooks.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'docs') diff --git a/docs/Hooks.md b/docs/Hooks.md index d1b6925..92ba9ed 100644 --- a/docs/Hooks.md +++ b/docs/Hooks.md @@ -188,7 +188,7 @@ Note the channel name must be in quotes. The `ciscosparkdiff` hook posts config diffs to a [Cisco Spark](https://www.ciscospark.com/) space of your choice. It only triggers for `post_store` events. -You will need to manually install the `cisco_spark` gem on your system (see [cisco_spark-ruby](https://github.com/NGMarmaduke/cisco_spark-ruby): +You will need to manually install the `cisco_spark` gem on your system (see [cisco_spark-ruby](https://github.com/NGMarmaduke/cisco_spark-ruby) and generate either a [Bot or OAUTH access key](https://developer.ciscospark.com/apps.html), and retrieve the [Spark Space ID](https://developer.ciscospark.com/endpoint-rooms-get.html) ```shell gem install cisco_spark @@ -201,8 +201,8 @@ hooks: ciscospark: type: ciscosparkdiff events: [post_store] - accesskey: [SPARK_BOT_API_OR_OAUTH_KEY](https://developer.ciscospark.com/apps.html) - space: [SPARK_SPACE_ID](https://developer.ciscospark.com/endpoint-rooms-get.html) + accesskey: SPARK_BOT_API_OR_OAUTH_KEY + space: SPARK_SPACE_ID diff: true ``` -- cgit v1.2.3 From 48e50aca2229214fd5465d7faf1bd2908358c9ab Mon Sep 17 00:00:00 2001 From: rgnv Date: Thu, 12 Apr 2018 15:34:11 -0700 Subject: Fixed markdown for Spark hook --- docs/Hooks.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'docs') diff --git a/docs/Hooks.md b/docs/Hooks.md index 92ba9ed..b11570a 100644 --- a/docs/Hooks.md +++ b/docs/Hooks.md @@ -188,7 +188,7 @@ Note the channel name must be in quotes. The `ciscosparkdiff` hook posts config diffs to a [Cisco Spark](https://www.ciscospark.com/) space of your choice. It only triggers for `post_store` events. -You will need to manually install the `cisco_spark` gem on your system (see [cisco_spark-ruby](https://github.com/NGMarmaduke/cisco_spark-ruby) and generate either a [Bot or OAUTH access key](https://developer.ciscospark.com/apps.html), and retrieve the [Spark Space ID](https://developer.ciscospark.com/endpoint-rooms-get.html) +You will need to manually install the `cisco_spark` gem on your system (see [cisco_spark-ruby](https://github.com/NGMarmaduke/cisco_spark-ruby ) and generate either a [Bot or OAUTH access key](https://developer.ciscospark.com/apps.html), and retrieve the [Spark Space ID](https://developer.ciscospark.com/endpoint-rooms-get.html) ```shell gem install cisco_spark @@ -213,8 +213,8 @@ hooks: ciscospark: type: ciscosparkdiff events: [post_store] - accesskey: [SPARK_BOT_API_OR_OAUTH_KEY](https://developer.ciscospark.com/apps.html) - space: [SPARK_SPACE_ID](https://developer.ciscospark.com/endpoint-rooms-get.html) + accesskey: SPARK_BOT_API_OR_OAUTH_KEY + space: SPARK_SPACE_ID diff: false message: "%{node} %{group} %{model} updated https://git.intranet/network-changes/commit/%{commitref}" ``` -- cgit v1.2.3 From ec90b081f0fed05497ce6ae21e4b4ba4d44ecc01 Mon Sep 17 00:00:00 2001 From: rgnv Date: Thu, 12 Apr 2018 15:41:31 -0700 Subject: fix formatting to comply with Rubocop --- docs/Hooks.md | 2 +- lib/oxidized/hook/ciscosparkdiff.rb | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) (limited to 'docs') diff --git a/docs/Hooks.md b/docs/Hooks.md index b11570a..ee7b3ee 100644 --- a/docs/Hooks.md +++ b/docs/Hooks.md @@ -188,7 +188,7 @@ Note the channel name must be in quotes. The `ciscosparkdiff` hook posts config diffs to a [Cisco Spark](https://www.ciscospark.com/) space of your choice. It only triggers for `post_store` events. -You will need to manually install the `cisco_spark` gem on your system (see [cisco_spark-ruby](https://github.com/NGMarmaduke/cisco_spark-ruby ) and generate either a [Bot or OAUTH access key](https://developer.ciscospark.com/apps.html), and retrieve the [Spark Space ID](https://developer.ciscospark.com/endpoint-rooms-get.html) +You will need to manually install the `cisco_spark` gem on your system (see [cisco_spark-ruby](https://github.com/NGMarmaduke/cisco_spark-ruby)) and generate either a [Bot or OAUTH access key](https://developer.ciscospark.com/apps.html), and retrieve the [Spark Space ID](https://developer.ciscospark.com/endpoint-rooms-get.html) ```shell gem install cisco_spark diff --git a/lib/oxidized/hook/ciscosparkdiff.rb b/lib/oxidized/hook/ciscosparkdiff.rb index a1c9130..12094e6 100644 --- a/lib/oxidized/hook/ciscosparkdiff.rb +++ b/lib/oxidized/hook/ciscosparkdiff.rb @@ -22,7 +22,6 @@ class CiscoSparkDiff < Oxidized::Hook client = CiscoSpark::Room.new(id: space) client.fetch log "Connected" - # diff snippet - default diffenable = true if cfg.has_key?('diff') == true if cfg.diff == false @@ -34,12 +33,10 @@ class CiscoSparkDiff < Oxidized::Hook diff = gitoutput.get_diff ctx.node, ctx.node.group, ctx.commitref, nil title = "#{ctx.node.name.to_s}" log "Posting diff as snippet to #{cfg.space}" - message = CiscoSpark::Message.new(text: 'Device ' + title + ' modified:' + "\n" + diff[:patch].lines.to_a[4..-1].join - ) + message = CiscoSpark::Message.new(text: 'Device ' + title + ' modified:' + "\n" + diff[:patch].lines.to_a[4..-1].join) room = CiscoSpark::Room.new(id: space) room.send_message(message) end - # message custom formatted - optional if cfg.has_key?('message') == true log cfg.message msg = cfg.message % {:node => ctx.node.name.to_s, :group => ctx.node.group.to_s, :commitref => ctx.commitref, :model => ctx.node.model.class.name.to_s.downcase} -- cgit v1.2.3