Skip to content
This repository has been archived by the owner on Nov 8, 2022. It is now read-only.

Commit

Permalink
Merge pull request #5 from katarzyna-z/pluginsync
Browse files Browse the repository at this point in the history
Update from Intelsdi-x pluginsync 0.1.12
  • Loading branch information
katarzyna-z authored Jan 23, 2017
2 parents 950a8bf + 0f167d9 commit 1de4912
Show file tree
Hide file tree
Showing 10 changed files with 392 additions and 10 deletions.
6 changes: 5 additions & 1 deletion .pluginsync.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# File managed by pluginsync
pluginsync_config: '0.1.9'
pluginsync_config: '0.1.12'
managed_files:
- .github
- .github/ISSUE_TEMPLATE.md
Expand All @@ -14,5 +14,9 @@ managed_files:
- scripts/build.sh
- scripts/common.sh
- scripts/deps.sh
- scripts/large.sh
- scripts/pre_deploy.sh
- scripts/test
- scripts/test/large_spec.rb
- scripts/test/spec_helper.rb
- scripts/test.sh
14 changes: 14 additions & 0 deletions .sync.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
:global:
build:
matrix:
- GOOS: linux
GOARCH: amd64
.travis.yml:
sudo: true
deploy:
access_key_id: AKIAINMB43VSSPFZISAA
secret_access_key:
secure: nU3Ca+UUtUEbEGHFsiPId72dA14mWhQxewhyGJsoIbb9oYevMTUcHFK0Bv2cBL0WcLhWW8UgDtFQWUXVibSAfFztyR+KO0ACrNUAxRN1k37K4lpaw3kkiWsTPT9b8XYG0EmnlnbMSyF6Y+faG7uEXmdXIT65f65CRmNYdgZH3RJgjXBQq0Jlh2Ax96Z7kZim2JQAOplyRC+UxGNLuKYf+hNTJhdNvkFYoW0suTSHfkaXmQm4YrBUY95HeEW4gDQ3ZbqCBeDFHK/qqE97WelAKLZVm7Lux2T6lRHcFILLHalG9F70wobN1B9my4xEHxkM5gqvjvp6KWWGzEW56Eu+THHX0Bi8XjPDhuxckfrgcITfhXoeHeJvE67FOOOlhCFbqwoM0+/X2LTrA9Lycm2Q4kI4C+vadPdaNmK4MJQLzkVDorb6yAQJeIg7mw7NowvaNP9mspi8J+X0XrLtJxNsHKzP8GtX1d/9AP1JJYgjJg7Vf0LsW3nAwPQ5wvjzW0R5WS06hl/B0yYHMkGTUfSoJQ48M6RlndQeanrocfIU5dGjJsmB6Sazq/L+kVZM7L5cLpzm8BkLl3O+fHkuAM4Yds7Xm7eJCe/uXqwAHZtNf7Pu96DqPCKtp7buEdRrEPoWKgGFLy0J6XuUwFRPhrsfyOmmDzapN5Xdl08NvqT4QIM=
api_key:
secure: IIj+xJxifiTcXAwyKgdoIyZad0LmB2S9dpZ38PPstzPhCQ9mF8vO4sCbm0shbzo+MBARYgrvKHelaVxRRJRDO4v2AnExFsFBWAVUOJ6leUy0ncWJU71M1uhWX3CYUwm4AluOFCwCbhayheXlDhNSbHVRcNidlg85NdnatP9zlot8IqlDouTipErnOI6fG3RosVxqhvWYmcZY4PuCxp/PkFw6NNjzEWGz4qbF3P4RmOAFjrIPTUrcVlMe9gehhtuZCiZUi6wo5mf73CaDh2wN0Dr+u0wvUilsVF3pHWf6lagF51pciEN1Q+hEUCm+8YN+HhBaUlqrx+Kz9EjUXQUDSVn2JFv40pnFrX1PMoL8F4eyIGZSeuZ9FxAGaM3batsvKr3VNaQb4dBHiRPFciCCi0UsgPW4Uu/yhZTPgNf8BH93RHV6E0yOVy3EztgcjtcqCxoveqOkR7qTWmQXbN6mWCU+Vvwjcme6fN10n7CpTsITtx/IfLPd9vZmX7glhW3hY3a6wQA9bqv3RsD5lFKbmXTVpjdrzdbagYTCdw+NaFCvs/kG8sMm0oeUwXqe7WRvLSCG3/yQGfNR34+n2zGh1U7nb3sv181s9vPhkh5WL/LhXH316gX7X224uvnaI74ePCIbrTRSuNL7JM4Pg4zi4cE51/2VRtEWrnw9uyG3Ezs=

49 changes: 45 additions & 4 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# File managed by pluginsync
sudo: false
sudo: true
language: go
go:
- 1.6.3
- 1.7.3
- 1.6.x
- 1.7.x
env:
global:
- ORG_PATH=/home/travis/gopath/src/github.com/intelsdi-x
Expand All @@ -13,7 +13,7 @@ env:
- TEST_TYPE=build
matrix:
exclude:
- go: 1.6.3
- go: 1.6.x
env: TEST_TYPE=build
before_install:
- "[[ -d $SNAP_PLUGIN_SOURCE ]] || mkdir -p $ORG_PATH && ln -s $TRAVIS_BUILD_DIR $SNAP_PLUGIN_SOURCE"
Expand All @@ -26,3 +26,44 @@ notifications:
email: false
slack:
secure: VkbZLIc2RH8yf3PtIAxUNPdAu3rQQ7yQx0GcK124JhbEnZGaHyK615V0rbG7HcVmYKGPdB0cXqZiLBDKGqGKb2zR1NepOe1nF03jxGSpPq8jIFeEXSJGEYGL34ScDzZZGuG6qwbjFcXiW5lqn6t8igzp7v2+URYBaZo5ktCS2xY=
before_deploy:
- "./scripts/pre_deploy.sh"
deploy:
- provider: s3
access_key_id: AKIAINMB43VSSPFZISAA
secret_access_key:
secure: nU3Ca+UUtUEbEGHFsiPId72dA14mWhQxewhyGJsoIbb9oYevMTUcHFK0Bv2cBL0WcLhWW8UgDtFQWUXVibSAfFztyR+KO0ACrNUAxRN1k37K4lpaw3kkiWsTPT9b8XYG0EmnlnbMSyF6Y+faG7uEXmdXIT65f65CRmNYdgZH3RJgjXBQq0Jlh2Ax96Z7kZim2JQAOplyRC+UxGNLuKYf+hNTJhdNvkFYoW0suTSHfkaXmQm4YrBUY95HeEW4gDQ3ZbqCBeDFHK/qqE97WelAKLZVm7Lux2T6lRHcFILLHalG9F70wobN1B9my4xEHxkM5gqvjvp6KWWGzEW56Eu+THHX0Bi8XjPDhuxckfrgcITfhXoeHeJvE67FOOOlhCFbqwoM0+/X2LTrA9Lycm2Q4kI4C+vadPdaNmK4MJQLzkVDorb6yAQJeIg7mw7NowvaNP9mspi8J+X0XrLtJxNsHKzP8GtX1d/9AP1JJYgjJg7Vf0LsW3nAwPQ5wvjzW0R5WS06hl/B0yYHMkGTUfSoJQ48M6RlndQeanrocfIU5dGjJsmB6Sazq/L+kVZM7L5cLpzm8BkLl3O+fHkuAM4Yds7Xm7eJCe/uXqwAHZtNf7Pu96DqPCKtp7buEdRrEPoWKgGFLy0J6XuUwFRPhrsfyOmmDzapN5Xdl08NvqT4QIM=
bucket: snap.ci.snap-telemetry.io
region: us-west-2
skip_cleanup: true
local-dir: s3
upload-dir: plugins
acl: public_read
on:
repo: intelsdi-x/snap-plugin-publisher-elasticsearch
branch: master
condition: $TEST_TYPE = "build" && $TRAVIS_GO_VERSION =~ ^1\.7\.[0-9]+$
- provider: s3
access_key_id: AKIAINMB43VSSPFZISAA
secret_access_key:
secure: nU3Ca+UUtUEbEGHFsiPId72dA14mWhQxewhyGJsoIbb9oYevMTUcHFK0Bv2cBL0WcLhWW8UgDtFQWUXVibSAfFztyR+KO0ACrNUAxRN1k37K4lpaw3kkiWsTPT9b8XYG0EmnlnbMSyF6Y+faG7uEXmdXIT65f65CRmNYdgZH3RJgjXBQq0Jlh2Ax96Z7kZim2JQAOplyRC+UxGNLuKYf+hNTJhdNvkFYoW0suTSHfkaXmQm4YrBUY95HeEW4gDQ3ZbqCBeDFHK/qqE97WelAKLZVm7Lux2T6lRHcFILLHalG9F70wobN1B9my4xEHxkM5gqvjvp6KWWGzEW56Eu+THHX0Bi8XjPDhuxckfrgcITfhXoeHeJvE67FOOOlhCFbqwoM0+/X2LTrA9Lycm2Q4kI4C+vadPdaNmK4MJQLzkVDorb6yAQJeIg7mw7NowvaNP9mspi8J+X0XrLtJxNsHKzP8GtX1d/9AP1JJYgjJg7Vf0LsW3nAwPQ5wvjzW0R5WS06hl/B0yYHMkGTUfSoJQ48M6RlndQeanrocfIU5dGjJsmB6Sazq/L+kVZM7L5cLpzm8BkLl3O+fHkuAM4Yds7Xm7eJCe/uXqwAHZtNf7Pu96DqPCKtp7buEdRrEPoWKgGFLy0J6XuUwFRPhrsfyOmmDzapN5Xdl08NvqT4QIM=
bucket: snap.ci.snap-telemetry.io
region: us-west-2
skip_cleanup: true
local-dir: s3
upload-dir: plugins
acl: public_read
on:
repo: intelsdi-x/snap-plugin-publisher-elasticsearch
tags: true
condition: $TEST_TYPE = "build" && $TRAVIS_GO_VERSION =~ ^1\.7\.[0-9]+$
- provider: releases
api_key:
secure: IIj+xJxifiTcXAwyKgdoIyZad0LmB2S9dpZ38PPstzPhCQ9mF8vO4sCbm0shbzo+MBARYgrvKHelaVxRRJRDO4v2AnExFsFBWAVUOJ6leUy0ncWJU71M1uhWX3CYUwm4AluOFCwCbhayheXlDhNSbHVRcNidlg85NdnatP9zlot8IqlDouTipErnOI6fG3RosVxqhvWYmcZY4PuCxp/PkFw6NNjzEWGz4qbF3P4RmOAFjrIPTUrcVlMe9gehhtuZCiZUi6wo5mf73CaDh2wN0Dr+u0wvUilsVF3pHWf6lagF51pciEN1Q+hEUCm+8YN+HhBaUlqrx+Kz9EjUXQUDSVn2JFv40pnFrX1PMoL8F4eyIGZSeuZ9FxAGaM3batsvKr3VNaQb4dBHiRPFciCCi0UsgPW4Uu/yhZTPgNf8BH93RHV6E0yOVy3EztgcjtcqCxoveqOkR7qTWmQXbN6mWCU+Vvwjcme6fN10n7CpTsITtx/IfLPd9vZmX7glhW3hY3a6wQA9bqv3RsD5lFKbmXTVpjdrzdbagYTCdw+NaFCvs/kG8sMm0oeUwXqe7WRvLSCG3/yQGfNR34+n2zGh1U7nb3sv181s9vPhkh5WL/LhXH316gX7X224uvnaI74ePCIbrTRSuNL7JM4Pg4zi4cE51/2VRtEWrnw9uyG3Ezs=
file:
- release/snap-plugin-publisher-elasticsearch_linux_x86_64
skip_cleanup: true
on:
repo: intelsdi-x/snap-plugin-publisher-elasticsearch
tags: true
condition: $TEST_TYPE = "build" && $TRAVIS_GO_VERSION =~ ^1\.7\.[0-9]+$
3 changes: 2 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ $ git clone https://github.com/intelsdi-x/snap-plugin-publisher-elasticsearch.gi
```
$ git checkout -b some-topic-branch
```
* Make your changes and run the test suite if one is provided.
* Make your changes to the code and add tests to cover contributed code.
* Validate the changes and run the test suite if one is provided.
* Commit your changes and push them to your fork.
* Open a pull request for the appropriate project.
* Contributors will review your pull request, suggest changes, and merge it when it’s ready and/or offer feedback.
Expand Down
6 changes: 5 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,11 @@ test-medium:
bash -c "./scripts/test.sh medium"
test-large:
bash -c "./scripts/test.sh large"
test-all:
$(MAKE) test-small
$(MAKE) test-medium
$(MAKE) test-large
check:
$(MAKE) test
all:
bash -c "./scripts/build.sh $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))"
bash -c "./scripts/build.sh"
2 changes: 1 addition & 1 deletion scripts/common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ _go_get() {

_goimports() {
_go_get golang.org/x/tools/cmd/goimports
test -z "$(goimports -l -d $(find . -type f -name '*.go' -not -path "./vendor/*") | tee /dev/stderr)"
test -z "$(goimports -l -d $(find . -type f -name '*.go' -not -path "./vendor/*" -not -path "./.glide/*") | tee /dev/stderr)"
}

_golint() {
Expand Down
36 changes: 36 additions & 0 deletions scripts/large.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#!/bin/bash
# File managed by pluginsync

set -e
set -u
set -o pipefail

__dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
__proj_dir="$(dirname "$__dir")"
__proj_name="$(basename "$__proj_dir")"

# shellcheck source=scripts/common.sh
. "${__dir}/common.sh"

_verify_docker() {
type -p docker > /dev/null 2>&1 || _error "docker needs to be installed"
type -p docker-compose > /dev/null 2>&1 || _error "docker-compose needs to be installed"
docker version >/dev/null 2>&1 || _error "docker needs to be configured/running"
}

_verify_docker

[[ -f "${__proj_dir}/build/linux/x86_64/${__proj_name}" ]] || (cd "${__proj_dir}" && make)

SNAP_VERSION=${SNAP_VERSION:-"latest"}
OS=${OS:-"alpine"}
PLUGIN_PATH=${PLUGIN_PATH:-"${__proj_dir}"}

if [[ ${DEBUG:-} == "true" ]]; then
cmd="cd /plugin/scripts && rescue rspec ./test/*_spec.rb"
else
cmd="cd /plugin/scripts && rspec ./test/*_spec.rb"
fi

_info "running large test"
docker run -v /var/run/docker.sock:/var/run/docker.sock -v "${__proj_dir}":/plugin -e PLUGIN_PATH="${PLUGIN_PATH}" -e SNAP_VERSION="${SNAP_VERSION}" -e OS="${OS}" -ti intelsdi/serverspec:alpine /bin/sh -c "${cmd}"
5 changes: 3 additions & 2 deletions scripts/test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ _debug "project directory ${__proj_dir}"
[[ "$TEST_TYPE" =~ ^(small|medium|large|legacy|build)$ ]] || _error "invalid TEST_TYPE (value must be 'small', 'medium', 'large', 'legacy', or 'build' recieved:${TEST_TYPE}"

_gofmt() {
test -z "$(gofmt -l -d $(find . -type f -name '*.go' -not -path "./vendor/*") | tee /dev/stderr)"
test -z "$(gofmt -l -d $(find . -type f -name '*.go' -not -path "./vendor/*" -not -path "./.glide/*") | tee /dev/stderr)"
}

test_unit() {
Expand Down Expand Up @@ -70,6 +70,7 @@ test_unit() {
}

if [[ $TEST_TYPE == "legacy" ]]; then
UNIT_TEST="go_test go_cover"
echo "mode: count" > profile.cov
export TEST_TYPE="unit"
test_unit
Expand All @@ -94,7 +95,7 @@ elif [[ $TEST_TYPE == "large" ]]; then
elif [[ -f "${__dir}/large_compose.sh" ]]; then
. "${__dir}/large_compose.sh"
else
_info "No large tests."
. "${__dir}/large.sh"
fi
elif [[ $TEST_TYPE == "build" ]]; then
"${__dir}/build.sh"
Expand Down
113 changes: 113 additions & 0 deletions scripts/test/large_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
# File managed by pluginsync

require_relative './spec_helper'
require 'specinfra/backend/docker_compose'

compose_yml = File.expand_path(File.join(__FILE__, "../docker-compose.yml"))
raise(Exception, "Missing docker-compose file: #{compose_yml}") unless File.exists? compose_yml

set :docker_compose_container, :snap

describe docker_compose(compose_yml) do
its_container(:snap) do
describe 'docker-compose.yml run' do
TIMEOUT = 60

describe "download Snap" do
it {
expect(cmd_with_retry("/opt/snap/bin/snaptel --version", :timeout => TIMEOUT).exit_status).to eq 0
expect(cmd_with_retry("/opt/snap/sbin/snapteld --version", :timeout => TIMEOUT).exit_status).to eq 0
}
end

if os[:family] == 'alpine'
describe port(8181) do
it { should be_listening }
end
end

context "load Snap plugins" do
describe command("snaptel plugin list") do
it { load_all_plugins }
its(:exit_status) { should eq 0 }
its(:stdout) {
plugins.each do |p|
_ , name = p
should contain(/#{name}/)
end
}
end
end

describe file("/opt/snap/sbin/snapteld") do
it { should be_file }
it { should be_executable }
end

describe file("/opt/snap/bin/snaptel") do
it { should be_file }
it { should be_executable }
end

describe command("snapteld --version") do
its(:exit_status) { should eq 0 }
its(:stdout) { should contain(/#{ENV['SNAP_VERSION']}/) }
end if ENV['SNAP_VERSION'] =~ /^\d+.\d+.\d+$/

SnapUtils.tasks.each do |t|
context "Snap task #{t}" do
task_id = nil

describe command("snaptel task create -t /plugin/examples/tasks/#{t}") do
its(:exit_status) { should eq 0 }
its(:stdout) { should contain(/Task created/) }
it {
id = subject.stdout.split("\n").find{|l|l=~/^ID:/}
task_id = $1 if id.match(/^ID: (.*)$/)
expect(task_id).to_not be_nil
}
end

describe command("snaptel task list") do
its(:exit_status) { should eq 0 }
its(:stdout) { should contain(/Running/) }
end

describe "Metrics in running tasks" do
it {
data = curl_json_api("http://127.0.0.1:8181/v1/tasks")
task = data["body"]["ScheduledTasks"].find{|i| i['id'] == task_id}
expect(task['id']).to eq task_id
data = curl_json_api(task['href'])
collect_metrics = data["body"]["workflow"]["collect"]["metrics"].collect{|k,v| k}

config = load_yaml(SnapUtils.examples/"tasks/#{t}")
config_metrics = config['workflow']['collect']['metrics'].collect{|k,v| k}

config_metrics.each do |m|
expect(collect_metrics).to include(m)
end
}
end

# NOTE: can not use the normal describe command(...) since we need to access task_id
describe "Stop task" do
it {
c = command("snaptel task stop #{task_id}")
expect(c.exit_status).to eq 0
expect(c.stdout).to match(/Task stopped/)
}
end

describe "Remove task" do
it {
c = command("snaptel task remove #{task_id}")
expect(c.exit_status).to eq 0
expect(c.stdout).to match(/Task removed/)
}
end
end
end
end
end
end
Loading

0 comments on commit 1de4912

Please sign in to comment.