egon 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.
data/rubygem-egon.spec ADDED
@@ -0,0 +1,112 @@
1
+ %{?scl:%scl_package rubygem-%{gem_name}}
2
+ %{!?scl:%global pkg_name %{name}}
3
+
4
+ %global gem_name egon
5
+
6
+ %global foreman_dir /usr/share/foreman
7
+ %global foreman_bundlerd_dir %{foreman_dir}/bundler.d
8
+ %global foreman_pluginconf_dir %{foreman_dir}/config/settings.plugins.d
9
+
10
+ %if !("%{?scl}" == "ruby193" || 0%{?rhel} > 6 || 0%{?fedora} > 16)
11
+ %global gem_dir /usr/lib/ruby/gems/1.8
12
+ %global gem_instdir %{gem_dir}/gems/%{gem_name}-%{version}
13
+ %global gem_libdir %{gem_instdir}/lib
14
+ %global gem_cache %{gem_dir}/cache/%{gem_name}-%{version}.gem
15
+ %global gem_spec %{gem_dir}/specifications/%{gem_name}-%{version}.gemspec
16
+ %global gem_docdir %{gem_dir}/doc/%{gem_name}-%{version}
17
+ %endif
18
+
19
+ %if "%{?scl}" == "ruby193"
20
+ %global scl_ruby /usr/bin/ruby193-ruby
21
+ %global scl_rake /usr/bin/ruby193-rake
22
+ ### TODO temp disabled for SCL
23
+ %global nodoc 1
24
+ %else
25
+ %global scl_ruby /usr/bin/ruby
26
+ %global scl_rake /usr/bin/rake
27
+ %endif
28
+
29
+ Summary: Egon Plugin
30
+ Name: %{?scl_prefix}rubygem-%{gem_name}
31
+
32
+ Version: 0.0.1
33
+ Release: 19%{dist}
34
+ Group: Development/Ruby
35
+ License: Distributable
36
+ URL: https://github.com/fusor/egon
37
+ Source0: http://rubygems.org/downloads/%{gem_name}-%{version}.gem
38
+
39
+ %if "%{?scl}" == "ruby193"
40
+ Requires: %{?scl_prefix}ruby-wrapper
41
+ BuildRequires: %{?scl_prefix}ruby-wrapper
42
+ %endif
43
+ %if "%{?scl}" == "ruby193" || 0%{?rhel} > 6 || 0%{?fedora} > 16
44
+ BuildRequires: %{?scl_prefix}rubygems-devel
45
+ %endif
46
+
47
+ %if 0%{?fedora} > 19
48
+ Requires: %{?scl_prefix}ruby(release) = 2.0.0
49
+ BuildRequires: %{?scl_prefix}ruby(release) = 2.0.0
50
+ %else
51
+ %if "%{?scl}" == "ruby193" || 0%{?rhel} > 6 || 0%{?fedora} > 16
52
+ Requires: %{?scl_prefix}ruby(abi) = 1.9.1
53
+ BuildRequires: %{?scl_prefix}ruby(abi) = 1.9.1
54
+ %else
55
+ Requires: ruby(abi) = 1.8
56
+ BuildRequires: ruby(abi) = 1.8
57
+ %endif
58
+ %endif
59
+
60
+ BuildArch: noarch
61
+ Provides: %{?scl_prefix}rubygem(egon) = %{version}
62
+
63
+ %description
64
+ Egon Plugin
65
+
66
+ %package doc
67
+ BuildArch: noarch
68
+ Requires: %{?scl_prefix}%{pkg_name} = %{version}-%{release}
69
+ Summary: Documentation for rubygem-%{gem_name}
70
+
71
+ %description doc
72
+ This package contains documentation for rubygem-%{gem_name}.
73
+
74
+ %prep
75
+ %setup -n %{pkg_name}-%{version} -q -c -T
76
+ mkdir -p .%{gem_dir}
77
+ %{?scl:scl enable %{scl} "}
78
+ gem install --local --install-dir .%{gem_dir} --force %{SOURCE0}
79
+ %{?scl:"}
80
+
81
+ %build
82
+
83
+ %install
84
+
85
+ mkdir -p %{buildroot}%{gem_dir}
86
+ cp -a .%{gem_dir}/* \
87
+ %{buildroot}%{gem_dir}/
88
+
89
+ mkdir -p %{buildroot}%{foreman_bundlerd_dir}
90
+ cat <<GEMFILE > %{buildroot}%{foreman_bundlerd_dir}/%{gem_name}.rb
91
+ gem '%{gem_name}'
92
+ GEMFILE
93
+
94
+ mkdir -p %{buildroot}%{foreman_pluginconf_dir}
95
+ # TODO: Do we need this guy?
96
+ #cp -a %{buildroot}/%{gem_instdir}/config/egon.yaml %{buildroot}%{foreman_pluginconf_dir}/
97
+
98
+ %clean
99
+ %{__rm} -rf %{buildroot}
100
+
101
+ %files
102
+ %defattr(-, root, root)
103
+ %{gem_instdir}/
104
+ %exclude %{gem_cache}
105
+ %{gem_spec}
106
+ %{foreman_bundlerd_dir}/%{gem_name}.rb
107
+ #%{foreman_pluginconf_dir}/egon.yaml
108
+
109
+ %files doc
110
+ %{gem_dir}/doc/%{gem_name}-%{version}
111
+
112
+ %changelog
@@ -0,0 +1,13 @@
1
+ require 'egon/undercloud/ssh-connection'
2
+ require 'stringio'
3
+
4
+ describe "SSHConnection" do
5
+
6
+ it "should timeout if host unreachable" do
7
+ connection = Egon::Undercloud::SSHConnection.new("194.0.0.0", "mock", "mock")
8
+ io = StringIO.new
9
+ message = connection.execute("ls", io)
10
+ expect(io.string.strip!).to eq("execution expired")
11
+ end
12
+
13
+ end
@@ -0,0 +1,45 @@
1
+ require 'egon/undercloud/installer'
2
+ require 'egon/undercloud/ssh-connection'
3
+ require 'egon/undercloud/commands'
4
+ require 'net/ssh'
5
+ require 'net/ssh/connection/session'
6
+
7
+ def run_and_assert_installer(installer, failure)
8
+ expect(installer.started?).to be false
9
+ expect(installer.completed?).to be false
10
+ expect(installer.failure?).to be false
11
+ sleep_count = 0
12
+ installer.install("ls")
13
+ # installer runs in the background if sleep_count > 0
14
+ while !installer.completed?
15
+ expect(installer.started?).to be true
16
+ sleep 1
17
+ end
18
+ expect(installer.started?).to be true
19
+ expect(installer.completed?).to be true
20
+ expect(installer.failure?).to be failure
21
+ end
22
+
23
+ describe "undercloud installer" do
24
+
25
+ before do
26
+ @connection = Egon::Undercloud::SSHConnection.new("194.0.0.0", "mock", "mock")
27
+ @installer = Egon::Undercloud::Installer.new(@connection)
28
+ end
29
+
30
+ it "installer should run in background and not fail" do
31
+ allow(@connection).to receive(:execute) { @connection.call_complete }
32
+ run_and_assert_installer(@installer, false)
33
+ end
34
+
35
+ it "exception raised by ssh should indicate failure" do
36
+ allow(Net::SSH).to receive(:start) { raise "Error in ssh" }
37
+ run_and_assert_installer(@installer, true)
38
+ end
39
+
40
+ it "connection should timeout and installer indicate failure" do
41
+ run_and_assert_installer(@installer, true)
42
+ end
43
+
44
+ end
45
+
metadata ADDED
@@ -0,0 +1,143 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: egon
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Egon and Fusor team
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-06-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.7'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.7'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: fog
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: 1.29.0
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 1.29.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: net-ssh
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 2.9.2
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: 2.9.2
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: 3.2.0
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: 3.2.0
83
+ description: ''
84
+ email:
85
+ - foreman-dev+egon@googlegroups.com
86
+ executables:
87
+ - undercloud-install-instack-virt.rb
88
+ - undercloud-install-satellite.rb
89
+ - undercloud-install-vanilla-rhel.rb
90
+ extensions: []
91
+ extra_rdoc_files: []
92
+ files:
93
+ - .gitignore
94
+ - .ruby-version
95
+ - Gemfile
96
+ - LICENSE
97
+ - README.md
98
+ - Rakefile
99
+ - bin/undercloud-install-instack-virt.rb
100
+ - bin/undercloud-install-satellite.rb
101
+ - bin/undercloud-install-vanilla-rhel.rb
102
+ - egon.gemspec
103
+ - lib/egon.rb
104
+ - lib/egon/overcloud/undercloud_handle.rb
105
+ - lib/egon/overcloud/undercloud_handle/deployment.rb
106
+ - lib/egon/overcloud/undercloud_handle/deployment_role.rb
107
+ - lib/egon/overcloud/undercloud_handle/flavor.rb
108
+ - lib/egon/overcloud/undercloud_handle/image.rb
109
+ - lib/egon/overcloud/undercloud_handle/node.rb
110
+ - lib/egon/undercloud/commands.rb
111
+ - lib/egon/undercloud/installer.rb
112
+ - lib/egon/undercloud/ssh-connection.rb
113
+ - lib/egon/version.rb
114
+ - rubygem-egon.spec
115
+ - test/test_ssh_connection.rb
116
+ - test/test_undercloud.rb
117
+ homepage: https://github.com/fusor/egon
118
+ licenses:
119
+ - GPL-3.0+
120
+ metadata: {}
121
+ post_install_message:
122
+ rdoc_options: []
123
+ require_paths:
124
+ - lib
125
+ required_ruby_version: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - ! '>='
128
+ - !ruby/object:Gem::Version
129
+ version: '0'
130
+ required_rubygems_version: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - ! '>='
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ requirements: []
136
+ rubyforge_project:
137
+ rubygems_version: 2.2.2
138
+ signing_key:
139
+ specification_version: 4
140
+ summary: A library on top of Fog that encapsulates TripleO deployment operations
141
+ test_files:
142
+ - test/test_ssh_connection.rb
143
+ - test/test_undercloud.rb