ansible_spec 0.0.1.4 → 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.
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,11 @@
1
+ require 'specinfra'
2
+ require 'rspec/mocks/standalone'
3
+ require 'specinfra/helper/set'
4
+ require 'simplecov'
5
+ include Specinfra::Helper::Set
6
+
7
+ # Test Coverage
8
+ SimpleCov.start
1
9
  # This file was generated by the `rspec --init` command. Conventionally, all
2
10
  # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
11
  # The generated `.rspec` file contains `--require spec_helper` which will cause this
data/spec/ssh_spec.rb ADDED
@@ -0,0 +1,161 @@
1
+ require 'spec_helper'
2
+ require 'ansible_spec'
3
+ require 'yaml'
4
+
5
+ set :backend, :ssh
6
+
7
+ describe 'ssh' do
8
+ context 'with root user' do
9
+ before do
10
+ create_normality
11
+ properties = AnsibleSpec.get_properties
12
+ @h = Hash.new
13
+ n = 0
14
+ properties.each do |property|
15
+ property["hosts"].each do |host|
16
+ #ENV['TARGET_PRIVATE_KEY'] = '~/.ssh/id_rsa'
17
+ #t.pattern = 'roles/{' + property["roles"].join(',') + '}/spec/*_spec.rb'
18
+ @ssh = double(:ssh)
19
+ if host.instance_of?(Hash)
20
+ set :host, host["uri"]
21
+ unless host["user"].nil?
22
+ user = host["user"]
23
+ else
24
+ user = property["user"]
25
+ end
26
+ set :ssh_options, :user => user, :port => host["port"], :keys => host["private_key"]
27
+ allow(@ssh).to receive(:port).and_return(Specinfra.configuration.ssh_options[:port])
28
+ allow(@ssh).to receive(:keys).and_return(Specinfra.configuration.ssh_options[:keys])
29
+ else
30
+ set :host, host
31
+ set :ssh_options, :user => property["user"]
32
+ end
33
+ allow(@ssh).to receive(:host).and_return(Specinfra.configuration.host)
34
+ allow(@ssh).to receive(:user).and_return(Specinfra.configuration.ssh_options[:user])
35
+ @h["task_#{n}"] = @ssh
36
+ n += 1
37
+ end
38
+ end
39
+ end
40
+
41
+ it '192.168.0.1' do
42
+ v = @h["task_0"]
43
+ expect(v.user).to eq 'root'
44
+ expect(v.host).to eq '192.168.0.1'
45
+ end
46
+ it '192.168.0.2:22' do
47
+ v = @h["task_1"]
48
+ expect(v.user).to eq 'root'
49
+ expect(v.host).to eq '192.168.0.2'
50
+ expect(v.port).to eq 22
51
+ end
52
+ it '192.168.0.3 ansible_ssh_port=22' do
53
+ v = @h["task_2"]
54
+ expect(v.user).to eq 'root'
55
+ expect(v.host).to eq '192.168.0.3'
56
+ expect(v.port).to eq 5309
57
+ end
58
+ it '192.168.0.4 ansible_ssh_private_key_file=~/.ssh/id_rsa' do
59
+ v = @h["task_3"]
60
+ expect(v.user).to eq 'root'
61
+ expect(v.host).to eq '192.168.0.4'
62
+ expect(v.port).to eq 22
63
+ expect(v.keys).to eq '~/.ssh/id_rsa'
64
+ end
65
+
66
+ it '192.168.0.5 ansible_ssh_user=git' do
67
+ v = @h["task_4"]
68
+ expect(v.user).to eq 'git'
69
+ expect(v.host).to eq '192.168.0.5'
70
+ expect(v.port).to eq 22
71
+ end
72
+
73
+ it 'jumper ansible_ssh_port=5555 ansible_ssh_host=192.168.1.50' do
74
+ v = @h["task_5"]
75
+ expect(v.user).to eq 'root'
76
+ expect(v.host).to eq '192.168.1.50'
77
+ expect(v.port).to eq 5555
78
+ end
79
+
80
+ it 'www[01:02].example.com' do
81
+ v = @h["task_6"]
82
+ expect(v.user).to eq 'root'
83
+ expect(v.host).to eq 'www01.example.com'
84
+ end
85
+
86
+ it 'www[01:02].example.com' do
87
+ v = @h["task_7"]
88
+ expect(v.user).to eq 'root'
89
+ expect(v.host).to eq 'www02.example.com'
90
+ end
91
+
92
+ it 'db-[a:b].example.com' do
93
+ v = @h["task_8"]
94
+ expect(v.user).to eq 'root'
95
+ expect(v.host).to eq 'db-a.example.com'
96
+ end
97
+
98
+ it 'db-[a:b].example.com' do
99
+ v = @h["task_9"]
100
+ expect(v.user).to eq 'root'
101
+ expect(v.host).to eq 'db-b.example.com'
102
+ end
103
+
104
+ after do
105
+ delete_normality
106
+ end
107
+ end
108
+ end
109
+
110
+ def create_normality
111
+ tmp_ansiblespec = '.ansiblespec'
112
+ tmp_playbook = 'site.yml'
113
+ tmp_hosts = 'hosts'
114
+
115
+ content = <<'EOF'
116
+ ---
117
+ -
118
+ playbook: site.yml
119
+ inventory: hosts
120
+ EOF
121
+
122
+ content_p = <<'EOF'
123
+ - name: Ansible-Sample-TDD
124
+ hosts: normal
125
+ user: root
126
+ roles:
127
+ - nginx
128
+ - mariadb
129
+ EOF
130
+
131
+ content_h = <<'EOF'
132
+ [normal]
133
+ 192.168.0.1
134
+ 192.168.0.2 ansible_ssh_port=22
135
+ 192.168.0.3:5309
136
+ 192.168.0.4 ansible_ssh_private_key_file=~/.ssh/id_rsa
137
+ 192.168.0.5 ansible_ssh_user=git
138
+ jumper ansible_ssh_port=5555 ansible_ssh_host=192.168.1.50
139
+ www[01:02].example.com
140
+ db-[a:b].example.com
141
+ EOF
142
+
143
+ File.open(tmp_ansiblespec, 'w') do |f|
144
+ f.puts content
145
+ end
146
+ File.open(tmp_playbook, 'w') do |f|
147
+ f.puts content_p
148
+ end
149
+ File.open(tmp_hosts, 'w') do |f|
150
+ f.puts content_h
151
+ end
152
+ end
153
+
154
+ def delete_normality
155
+ tmp_ansiblespec = '.ansiblespec'
156
+ tmp_playbook = 'site.yml'
157
+ tmp_hosts = 'hosts'
158
+ File.delete(tmp_ansiblespec)
159
+ File.delete(tmp_playbook)
160
+ File.delete(tmp_hosts)
161
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ansible_spec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1.4
4
+ version: '0.1'
5
5
  platform: ruby
6
6
  authors:
7
7
  - volanja
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-18 00:00:00.000000000 Z
11
+ date: 2015-01-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -38,22 +38,78 @@ dependencies:
38
38
  - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: diff-lcs
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
+ - !ruby/object:Gem::Dependency
56
+ name: simplecov
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
41
69
  - !ruby/object:Gem::Dependency
42
70
  name: serverspec
43
71
  requirement: !ruby/object:Gem::Requirement
44
72
  requirements:
45
73
  - - '>='
46
74
  - !ruby/object:Gem::Version
47
- version: 0.13.5
75
+ version: 2.0.0
48
76
  type: :runtime
49
77
  prerelease: false
50
78
  version_requirements: !ruby/object:Gem::Requirement
51
79
  requirements:
52
80
  - - '>='
53
81
  - !ruby/object:Gem::Version
54
- version: 0.13.5
55
- description: This is Severspec template for Run test Multi Role and Multi Host with
56
- Ansible
82
+ version: 2.0.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: hostlist_expression
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: oj
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: Ansible Config Parser for Serverspec. Run test Multi Role and Multi Host
112
+ by Ansible Configuration
57
113
  email:
58
114
  - volaaanja@gmail.com
59
115
  executables:
@@ -71,10 +127,18 @@ files:
71
127
  - ansible_spec.gemspec
72
128
  - bin/ansiblespec-init
73
129
  - lib/ansible_spec.rb
130
+ - lib/ansible_spec/load_ansible.rb
74
131
  - lib/ansible_spec/version.rb
132
+ - lib/src/.ansiblespec
133
+ - lib/src/Rakefile
134
+ - lib/src/spec/spec_helper.rb
75
135
  - spec/commands_spec.rb
136
+ - spec/dynamic_inventory_spec.rb
137
+ - spec/inventory_parameters_spec.rb
138
+ - spec/load_ansible_spec.rb
76
139
  - spec/spec_helper.rb
77
- homepage: https://github.com/volanja
140
+ - spec/ssh_spec.rb
141
+ homepage: https://github.com/volanja/ansible_spec
78
142
  licenses:
79
143
  - MIT
80
144
  metadata: {}
@@ -97,7 +161,12 @@ rubyforge_project:
97
161
  rubygems_version: 2.1.11
98
162
  signing_key:
99
163
  specification_version: 4
100
- summary: This is Severspec template for Run test Multi Role and Multi Host with Ansbile
164
+ summary: Ansible Config Parser for Serverspec. Run test Multi Role and Multi Host
165
+ by Ansible Configuration
101
166
  test_files:
102
167
  - spec/commands_spec.rb
168
+ - spec/dynamic_inventory_spec.rb
169
+ - spec/inventory_parameters_spec.rb
170
+ - spec/load_ansible_spec.rb
103
171
  - spec/spec_helper.rb
172
+ - spec/ssh_spec.rb