Remove old deploy method 'deploy'. Do not use since 6.1.

Also remove old tests and some garbage of old provision method.

Change-Id: Idb340f7d917592c0c764f7bc25bb124fd2f014c2
This commit is contained in:
Vladimir Sharshov (warpc) 2016-08-12 19:37:56 +03:00
parent fa254cf7ca
commit 74f27bef35
9 changed files with 46 additions and 474 deletions

View File

@ -33,7 +33,6 @@ require 'astute/deployment_engine'
require 'astute/network'
require 'astute/puppetd'
require 'astute/provision'
require 'astute/deployment_engine/nailyfact'
require 'astute/deployment_engine/granular_deployment'
require 'astute/cobbler'
require 'astute/cobbler_manager'

View File

@ -1,82 +0,0 @@
# Copyright 2013 Mirantis, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
class Astute::DeploymentEngine::NailyFact < Astute::DeploymentEngine
def deploy_piece(nodes, retries=1)
return false unless validate_nodes(nodes)
@ctx.reporter.report(nodes_status(nodes, 'deploying', {'progress' => 0}))
begin
@ctx.deploy_log_parser.prepare(nodes)
rescue => e
Astute.logger.warn "Some error occurred when prepare LogParser: #{e.message}, trace: #{e.format_backtrace}"
end
Astute.logger.info "#{@ctx.task_id}: Starting deployment"
Astute::PuppetdDeployer.deploy(
@ctx,
nodes,
retries,
puppet_manifest=nil,
puppet_modules=nil,
cwd=nil,
puppet_debug=nodes.first.fetch('puppet_debug', true)
)
nodes_roles = nodes.map { |n| {n['uid'] => n['role']} }
Astute.logger.info "#{@ctx.task_id}: Finished deployment of nodes => roles:\n#{nodes_roles.pretty_inspect}"
end
def pre_deployment_actions(deployment_info, pre_deployment)
Astute::PreDeploymentActions.new(deployment_info, @ctx).process
Astute::NailgunHooks.new(pre_deployment, @ctx).process
end
def pre_node_actions(part)
@action ||= Astute::PreNodeActions.new(@ctx)
@action.process(part)
end
def pre_deploy_actions(part)
Astute::PreDeployActions.new(part, @ctx).process
end
def post_deploy_actions(part)
Astute::PostDeployActions.new(part, @ctx).process
end
def post_deployment_actions(deployment_info, post_deployment)
begin
Astute::NailgunHooks.new(post_deployment, @ctx).process
rescue => e
# We should fail all nodes in case of post deployment
# process. In other case they will not sending back
# for redeploy
nodes = deployment_info.uniq {|n| n['uid']}.map do |node|
{ 'uid' => node['uid'],
'status' => 'error',
'role' => 'hook',
'error_type' => 'deploy',
}
end
@ctx.report_and_update_status('nodes' => nodes)
raise e
end
Astute::PostDeploymentActions.new(deployment_info, @ctx).process
end
end

View File

@ -30,22 +30,8 @@ module Astute
report_result({}, up_reporter)
end
# Deprecated deploy method. Use monolitic site.pp. Do not use from 7.1.
# Report progress based on puppet logs
def deploy(up_reporter, task_id, deployment_info, pre_deployment=[], post_deployment=[])
deploy_cluster(
up_reporter,
task_id,
deployment_info,
Astute::DeploymentEngine::NailyFact,
pre_deployment,
post_deployment
)
end
# Deploy method which use small tasks, but run block of tasks for role
# instead of run it using full graph. Use from 7.1 to 8.0. Report progress
# instead of run it using full graph. Use from 6.1 to 8.0. Report progress
# based on puppet logs
def granular_deploy(up_reporter, task_id, deployment_info, pre_deployment=[], post_deployment=[])
time_start = Time.now.to_i
@ -81,7 +67,7 @@ module Astute
"#{time_summary(time_start)}"
end
def provision(up_reporter, task_id, provisioning_info, provision_method)
def provision(up_reporter, task_id, provisioning_info)
time_start = Time.now.to_i
proxy_reporter = ProxyReporter::ProvisiningProxyReporter.new(
up_reporter,
@ -124,8 +110,7 @@ module Astute
provisioner.provision(
proxy_reporter,
task_id,
provisioning_info,
provision_method
provisioning_info
)
ensure
Astute.logger.info "Provision summary: time was spent " \

View File

@ -37,7 +37,7 @@ module Astute
end
end
def provision(reporter, task_id, provisioning_info, provision_method)
def provision(reporter, task_id, provisioning_info)
engine_attrs = provisioning_info['engine']
nodes = provisioning_info['nodes']
@ -53,7 +53,6 @@ module Astute
task_id,
Array.new(nodes),
engine_attrs,
provision_method,
fault_tolerance)
rescue => e
Astute.logger.error("Error occured while provisioning:\n#{e.pretty_inspect}")
@ -102,7 +101,6 @@ module Astute
task_id,
nodes_to_provision,
engine_attrs,
provision_method,
fault_tolerance)
raise "Nodes to provision are not provided!" if nodes_to_provision.empty?
@ -125,7 +123,7 @@ module Astute
new_nodes = nodes_to_provision.shift(max_nodes - nodes_not_booted.count)
Astute.logger.debug("Provisioning nodes: #{new_nodes}")
failed_uids += provision_piece(reporter, task_id, engine_attrs, new_nodes, provision_method)
failed_uids += provision_piece(reporter, task_id, engine_attrs, new_nodes)
Astute.logger.info "Nodes failed to reboot: #{failed_uids} "
nodes_not_booted += new_nodes.map{ |n| n['uid'] }
@ -215,7 +213,7 @@ module Astute
result
end
def provision_piece(reporter, task_id, engine_attrs, nodes, provision_method)
def provision_piece(reporter, task_id, engine_attrs, nodes)
cobbler = CobblerManager.new(engine_attrs, reporter)
failed_uids = []
# TODO(kozhukalov): do not forget about execute_shell_command timeout which is 3600

View File

@ -34,15 +34,10 @@ module Astute
#
def image_provision(data)
provision(data, 'image')
provision(data)
end
def native_provision(data)
provision(data, 'native')
end
def provision(data, provision_method)
def provision(data)
Astute.logger.debug("'provision' method called with data:\n"\
"#{data.pretty_inspect}")
@ -51,8 +46,7 @@ module Astute
result = @orchestrator.provision(
reporter,
data['args']['task_uuid'],
data['args']['provisioning_info'],
provision_method
data['args']['provisioning_info']
)
rescue => e
Astute.logger.error("Error running provisioning: #{e.message}, "\
@ -62,27 +56,6 @@ module Astute
raise StopIteration if result && result['status'] == 'error'
end
def deploy(data)
Astute.logger.debug("'deploy' method called with data:\n"\
"#{data.pretty_inspect}")
reporter = create_reporter(data)
begin
@orchestrator.deploy(
reporter,
data['args']['task_uuid'],
data['args']['deployment_info'],
data['args']['pre_deployment'] || [],
data['args']['post_deployment'] || []
)
reporter.report('status' => 'ready', 'progress' => 100)
rescue Timeout::Error
msg = "Timeout of deployment is exceeded."
Astute.logger.error(msg)
reporter.report('status' => 'error', 'error' => msg)
end
end
def granular_deploy(data)
Astute.logger.debug("'granular_deploy' method called with data:\n"\
"#{data.pretty_inspect}")

View File

@ -684,7 +684,7 @@ describe Astute::NailgunHooks do
expect {
hooks.process
}.not_to raise_error(Astute::DeploymentEngineError)
}.not_to raise_error
end
it 'should fail if it still raise error after retries' do

View File

@ -1,260 +0,0 @@
# Copyright 2013 Mirantis, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
require File.join(File.dirname(__FILE__), '../spec_helper')
describe "NailyFact DeploymentEngine" do
include SpecHelpers
context "When deploy is called, " do
let(:ctx) do
ctx = mock
ctx.stubs(:task_id)
ctx.stubs(:deploy_log_parser).returns(Astute::LogParser::NoParsing.new)
ctx.stubs(:status).returns({})
reporter = mock
reporter.stubs(:report)
up_reporter = Astute::ProxyReporter::DeploymentProxyReporter.new(reporter, deploy_data)
ctx.stubs(:reporter).returns(up_reporter)
ctx
end
let(:deploy_engine) do
Astute::DeploymentEngine::NailyFact.new(ctx)
end
let(:controller_nodes) do
nodes_with_role(deploy_data, 'controller')
end
let(:compute_nodes) do
nodes_with_role(deploy_data, 'compute')
end
let(:cinder_nodes) do
nodes_with_role(deploy_data, 'cinder')
end
before(:each) do
uniq_nodes_uid = deploy_data.map {|n| n['uid'] }.uniq
Astute::PreDeploymentActions.any_instance.stubs(:process).returns(nil)
Astute::PostDeploymentActions.any_instance.stubs(:process).returns(nil)
Astute::PreDeployActions.any_instance.stubs(:process).returns(nil)
Astute::PreNodeActions.any_instance.stubs(:process).returns(nil)
Astute::PreDeployActions.any_instance.stubs(:process).returns(nil)
end
context 'log parsing' do
let(:deploy_data) do
[{
'uid' => 1,
'role' => 'controller',
'deployment_mode' => 'unknown',
'deployment_id' => '123',
'puppet_debug' => true
}]
end
it "it should not raise an exception if deployment mode is unknown" do
Astute::PuppetdDeployer.stubs(:deploy).with(
ctx,
deploy_data,
instance_of(Fixnum),
nil,
nil,
nil,
true
).once
deploy_engine.stubs(:remove_failed_nodes).returns([deploy_data, [], []])
expect {deploy_engine.deploy(deploy_data)}.to_not raise_exception
end
end
context 'multinode deploy ' do
let(:deploy_data) do
Fixtures.multi_deploy
end
it "should not raise any exception" do
# we got two calls, one for controller (high priority), and another for all computes (same low priority)
Astute::PuppetdDeployer.expects(:deploy).with(
ctx,
controller_nodes,
instance_of(Fixnum),
nil,
nil,
nil,
true
).once
Astute::PuppetdDeployer.expects(:deploy).with(
ctx,
compute_nodes,
instance_of(Fixnum),
nil,
nil,
nil,
true
).once
deploy_engine.stubs(:remove_failed_nodes).returns([deploy_data, [], []])
expect {deploy_engine.deploy(deploy_data)}.to_not raise_exception
end
end
context 'multiroles support' do
let(:deploy_data) do
data = Fixtures.multi_deploy
compute_node = deep_copy(data.last)
cinder_node = deep_copy(data.last)
cinder_node['role'] = 'cinder'
[compute_node, cinder_node]
end
let(:node_amount) { deploy_data.size }
it "should prepare log parsing for every deploy call because node may be deployed several times" do
ctx.deploy_log_parser.expects(:prepare).with(compute_nodes).once
ctx.deploy_log_parser.expects(:prepare).with(cinder_nodes).once
deploy_engine.stubs(:remove_failed_nodes).returns([deploy_data, [], []])
Astute::PuppetdDeployer.expects(:deploy).times(2)
deploy_engine.deploy(deploy_data)
end
it "should generate and publish facts for every deploy call because node may be deployed several times" do
ctx.deploy_log_parser.expects(:prepare).with(compute_nodes).once
ctx.deploy_log_parser.expects(:prepare).with(cinder_nodes).once
deploy_engine.stubs(:remove_failed_nodes).returns([deploy_data, [], []])
Astute::PuppetdDeployer.expects(:deploy).times(2)
deploy_engine.deploy(deploy_data)
end
end
context 'ha deploy' do
let(:deploy_data) do
Fixtures.ha_deploy
end
it "ha deploy should not raise any exception" do
primary_controller = deploy_data.find { |n| n['role'] == 'primary-controller' }
Astute::PuppetdDeployer.expects(:deploy).with(
ctx,
[primary_controller],
1,
nil,
nil,
nil,
true
).once
controller_nodes.each do |n|
Astute::PuppetdDeployer.expects(:deploy).with(
ctx,
[n],
1,
nil,
nil,
nil,
true
).once
end
Astute::PuppetdDeployer.expects(:deploy).with(
ctx,
compute_nodes,
instance_of(Fixnum),
nil,
nil,
nil,
true
).once
deploy_engine.stubs(:remove_failed_nodes).returns([deploy_data, [], []])
deploy_engine.deploy(deploy_data)
end
context 'exception case' do
let(:deploy_data) do
[Fixtures.ha_deploy.find { |n| n['role'] == 'controller' }]
end
it "ha deploy should not raise any exception if there are only one controller" do
Astute::PuppetdDeployer.expects(:deploy).once
deploy_engine.stubs(:remove_failed_nodes).returns([deploy_data, [], []])
deploy_engine.deploy(deploy_data)
end
end
end # 'ha deploy'
context 'puppet debug' do
let(:deploy_data) do
[{
'uid' => 1,
'role' => 'controller',
'deployment_mode' => 'unknown',
'deployment_id' => '123',
'puppet_debug' => true
}]
end
it 'should run puppet with puppet debug settings' do
deploy_data.first['puppet_debug'] = false
Astute::PuppetdDeployer.expects(:deploy).with(
ctx,
deploy_data,
instance_of(Fixnum),
nil,
nil,
nil,
false
).once
deploy_engine.stubs(:remove_failed_nodes).returns([deploy_data, [], []])
deploy_engine.deploy(deploy_data)
end
it 'should run puppet with default puppet debug settings if missing' do
deploy_data.first.delete('puppet_debug')
Astute::PuppetdDeployer.expects(:deploy).with(
ctx,
deploy_data,
instance_of(Fixnum),
nil,
nil,
nil,
true
).once
deploy_engine.stubs(:remove_failed_nodes).returns([deploy_data, [], []])
deploy_engine.deploy(deploy_data)
end
end # puppet debug
end
end

View File

@ -133,29 +133,6 @@ describe Astute::Orchestrator do
end
end
describe '#deploy' do
it "calls with valid arguments without nailgun hooks" do
nodes = [{'uid' => 1, 'role' => 'controller'}]
Astute::DeploymentEngine::NailyFact.any_instance.expects(:deploy).
with(nodes, [], [])
@orchestrator.deploy(@reporter, 'task_uuid', nodes)
end
it "calls with valid arguments including nailgun hooks" do
nodes = [{'uid' => 1, 'role' => 'controller'}]
pre_deployment = [{'type' => 'upload_file', 'uids' =>['1', '2', '3' ]}]
post_deployment = [{'type' => 'sync', 'uids' =>['3', '2', '1' ]}]
Astute::DeploymentEngine::NailyFact.any_instance.expects(:deploy).
with(nodes, pre_deployment, post_deployment)
@orchestrator.deploy(@reporter, 'task_uuid', nodes, pre_deployment, post_deployment)
end
it "deploy method raises error if nodes list is empty" do
expect {@orchestrator.deploy(@reporter, 'task_uuid', [])}.
to raise_error(/Deployment info are not provided!/)
end
end
let(:data) do
{
"engine"=>{
@ -422,15 +399,14 @@ describe Astute::Orchestrator do
Astute::Provisioner.any_instance.expects(:provision).with(
instance_of(Astute::ProxyReporter::ProvisiningProxyReporter),
'task_id',
provisioning_info,
'image'
provisioning_info
)
@orchestrator.provision(
@reporter,
'task_id',
provisioning_info,
'image')
provisioning_info
)
end
it 'should pre provision if pre provision tasks present' do
@ -445,7 +421,7 @@ describe Astute::Orchestrator do
@reporter,
'task_id',
provisioning_info,
'image')
)
end
it 'should not pre provision if no pre provision tasks present' do
@ -461,7 +437,7 @@ describe Astute::Orchestrator do
@reporter,
'task_id',
provisioning_info,
'image')
)
end
it 'should raise informative error if pre provision tasks failed' do
@ -477,7 +453,7 @@ describe Astute::Orchestrator do
@reporter,
'task_id',
provisioning_info,
'image')}.to raise_error(Astute::DeploymentEngineError,
)}.to raise_error(Astute::DeploymentEngineError,
/Image build task failed/)
end

View File

@ -192,7 +192,7 @@ describe Astute::Provisioner do
@provisioner.stubs(:provision_and_watch_progress).returns([[],[]])
data['engine'] = {}
Astute::Rsyslogd.stubs(:send_sighup).once
expect {@provisioner.provision(@reporter, data['task_uuid'], data, 'image')}.
expect {@provisioner.provision(@reporter, data['task_uuid'], data)}.
to raise_error(/Settings for Cobbler must be set/)
end
@ -200,7 +200,7 @@ describe Astute::Provisioner do
@provisioner.stubs(:provision_and_watch_progress).returns([[],[]])
data['engine'] = {}
Astute::Rsyslogd.expects(:send_sighup).once
expect {@provisioner.provision(@reporter, data['task_uuid'], data, 'image')}.
expect {@provisioner.provision(@reporter, data['task_uuid'], data)}.
to raise_error(/Settings for Cobbler must be set/)
end
end
@ -226,14 +226,14 @@ describe Astute::Provisioner do
it "raises error if nodes list is empty" do
Astute::Rsyslogd.stubs(:send_sighup).once
data['nodes'] = []
expect {@provisioner.provision(@reporter, data['task_uuid'], data, 'image')}.
expect {@provisioner.provision(@reporter, data['task_uuid'], data)}.
to raise_error(/Nodes to provision are not provided!/)
end
it "raises error if nodes list is empty and send sighup for Rsyslogd" do
Astute::Rsyslogd.expects(:send_sighup).once
data['nodes'] = []
expect {@provisioner.provision(@reporter, data['task_uuid'], data, 'image')}.
expect {@provisioner.provision(@reporter, data['task_uuid'], data)}.
to raise_error(/Nodes to provision are not provided!/)
end
@ -249,7 +249,7 @@ describe Astute::Provisioner do
Astute::CobblerManager.any_instance.expects(:check_reboot_nodes).never
@provisioner.expects(:soft_reboot).returns()
@provisioner.provision_piece(@reporter, data['task_uuid'], data['engine'], data['nodes'], 'image')
@provisioner.provision_piece(@reporter, data['task_uuid'], data['engine'], data['nodes'])
end
it "does not reboot nodes which failed during provisioning" do
@ -259,7 +259,7 @@ describe Astute::Provisioner do
@provisioner.stubs(:image_provision).returns(['1'])
@provisioner.stubs(:soft_reboot).returns()
expect(@provisioner.provision_piece(@reporter, data['task_uuid'], data['engine'], data['nodes'], 'image')).to eql(['1'])
expect(@provisioner.provision_piece(@reporter, data['task_uuid'], data['engine'], data['nodes'])).to eql(['1'])
end
it "changes profile into bootstrap for all nodes in case of IBP" do
@ -275,7 +275,7 @@ describe Astute::Provisioner do
@provisioner.stubs(:image_provision).returns([])
@provisioner.stubs(:soft_reboot).returns()
@provisioner.provision_piece(@reporter, data['task_uuid'], data['engine'], data['nodes'], 'image')
@provisioner.provision_piece(@reporter, data['task_uuid'], data['engine'], data['nodes'])
end
it "does not change netboot setting for failed nodes in case of IBP" do
@ -288,7 +288,7 @@ describe Astute::Provisioner do
@provisioner.stubs(:soft_reboot).returns()
@provisioner.stubs(:image_provision).returns([1])
@provisioner.provision_piece(@reporter, data['task_uuid'], data['engine'], data['nodes'], 'image')
@provisioner.provision_piece(@reporter, data['task_uuid'], data['engine'], data['nodes'])
end
@ -304,7 +304,7 @@ describe Astute::Provisioner do
@provisioner.stubs(:soft_reboot).returns()
@provisioner.stubs(:image_provision).returns([])
@provisioner.provision_piece(@reporter, data['task_uuid'], data['engine'], data['nodes'], 'image')
@provisioner.provision_piece(@reporter, data['task_uuid'], data['engine'], data['nodes'])
end
it "should erase mbr for nodes" do
@ -329,31 +329,14 @@ describe Astute::Provisioner do
}
).returns([])
@provisioner.provision(@reporter, data['task_uuid'], data, 'image')
@provisioner.provision(@reporter, data['task_uuid'], data)
end
it 'should not try to unlock node discovery' do
@provisioner.stubs(:prepare_nodes)
@provisioner.stubs(:provision_and_watch_progress).returns([[], []])
@provisioner.expects(:unlock_nodes_discovery).never
@provisioner.provision(@reporter, data['task_uuid'], data, 'image')
end
end
context 'node reboot fail' do
before(:each) do
Astute::Provision::Cobbler.any_instance
.stubs(:event_status)
.returns([Time.now.to_f, 'controller-1', 'failed'])
@provisioner.stubs(:unlock_nodes_discovery)
end
it 'should not try to reboot nodes using ssh(insurance for cobbler)' do
@provisioner.expects(:control_reboot_using_ssh).never
begin
@provisioner.provision_piece(@reporter, data['task_uuid'], data['engine'], data['nodes'])
rescue
end
@provisioner.provision(@reporter, data['task_uuid'], data)
end
end
@ -370,7 +353,7 @@ describe Astute::Provisioner do
'progress' => 100}]}
@reporter.expects(:report).with(success_msg).once
@provisioner.provision(@reporter, data['task_uuid'], data, 'image')
@provisioner.provision(@reporter, data['task_uuid'], data)
end
it "fail if timeout of provisioning is exceeded" do
@ -394,7 +377,7 @@ describe Astute::Provisioner do
provision_info["fault_tolerance"] = [{'uids'=>['1'], 'percentage' => 0}]
@reporter.expects(:report).with(error_msg).once
@provisioner.provision(@reporter, data['task_uuid'], provision_info, 'image')
@provisioner.provision(@reporter, data['task_uuid'], provision_info)
end
it 'success report if all nodes report about success at least once' do
@ -410,7 +393,7 @@ describe Astute::Provisioner do
'progress' => 100
}
@reporter.expects(:report).with(success_msg).once
@provisioner.provision(@reporter, data['task_uuid'], data, 'image')
@provisioner.provision(@reporter, data['task_uuid'], data)
end
end
@ -438,7 +421,7 @@ describe Astute::Provisioner do
)
@provisioner.stubs(:provision_and_watch_progress).returns([[], []])
@provisioner.provision(@reporter, data['task_uuid'], data, 'image')
@provisioner.provision(@reporter, data['task_uuid'], data)
end
it 'should not reboot and boostrap new nodes' do
@ -459,7 +442,7 @@ describe Astute::Provisioner do
@provisioner.expects(:change_nodes_type).never
Astute::NailgunHooks.any_instance.expects(:process).never
@provisioner.provision(@reporter, data['task_uuid'], data, 'image')
@provisioner.provision(@reporter, data['task_uuid'], data)
end
end
@ -475,7 +458,7 @@ describe Astute::Provisioner do
end
it "raises error if nodes list is empty" do
expect {@provisioner.provision_and_watch_progress(@reporter, data['task_uuid'], {}, data['engine'], 'image', [])}.
expect {@provisioner.provision_and_watch_progress(@reporter, data['task_uuid'], {}, data['engine'], [])}.
to raise_error(/Nodes to provision are not provided!/)
end
@ -488,7 +471,7 @@ describe Astute::Provisioner do
'error' => '',
'progress' => 100,
}
@provisioner.provision_and_watch_progress(@reporter, data['task_uuid'], data['nodes'], data['engine'], 'image', [])
@provisioner.provision_and_watch_progress(@reporter, data['task_uuid'], data['nodes'], data['engine'], [])
@reporter.expects(:report).with(error_msg).once
end.to raise_error(Astute::AstuteError)
end
@ -507,7 +490,7 @@ describe Astute::Provisioner do
)
Astute::Rsyslogd.stubs(:send_sighup)
begin
@provisioner.provision(@reporter, data['task_uuid'], data, 'image')
@provisioner.provision(@reporter, data['task_uuid'], data)
rescue
end
end
@ -520,7 +503,7 @@ describe Astute::Provisioner do
@provisioner.stubs(:report_about_progress).returns()
@provisioner.stubs(:node_type).returns([{'uid' => '1', 'node_type' => 'target' }])
@provisioner.provision_and_watch_progress(@reporter, data['task_uuid'], data['nodes'], data['engine'], 'image', [])
@provisioner.provision_and_watch_progress(@reporter, data['task_uuid'], data['nodes'], data['engine'], [])
end
it "ignore problem with parsing provision log" do
@ -532,7 +515,7 @@ describe Astute::Provisioner do
@provisioner.stubs(:provision_piece).returns([])
@provisioner.stubs(:node_type).returns([{'uid' => '1', 'node_type' => 'target' }])
@provisioner.provision_and_watch_progress(@reporter, data['task_uuid'], data['nodes'], data['engine'], 'image', [])
@provisioner.provision_and_watch_progress(@reporter, data['task_uuid'], data['nodes'], data['engine'], [])
end
it 'provision nodes using mclient' do
@ -540,7 +523,7 @@ describe Astute::Provisioner do
@provisioner.stubs(:provision_piece).returns([])
@provisioner.expects(:node_type).returns([{'uid' => '1', 'node_type' => 'target' }])
@provisioner.provision_and_watch_progress(@reporter, data['task_uuid'], data['nodes'], data['engine'], 'image', [])
@provisioner.provision_and_watch_progress(@reporter, data['task_uuid'], data['nodes'], data['engine'], [])
end
it "unexpecting bootstrap nodes should be ereased and rebooted" do
@ -581,7 +564,7 @@ describe Astute::Provisioner do
'fault_tolerance' => []}
@reporter.expects(:report).with(success_msg).once
@provisioner.provision(@reporter, data['task_uuid'], provision_info, 'image')
@provisioner.provision(@reporter, data['task_uuid'], provision_info)
end
it 'should provision nodes in chunks' do
@ -598,7 +581,7 @@ describe Astute::Provisioner do
.then.returns([{'uid' => '3', 'node_type' => 'target' }])
@provisioner.expects(:provision_piece).returns([]).twice
@provisioner.provision_and_watch_progress(@reporter, data['task_uuid'], nodes, data['engine'], 'image', [])
@provisioner.provision_and_watch_progress(@reporter, data['task_uuid'], nodes, data['engine'], [])
end
it 'should success if only one node fails' do
@ -644,7 +627,7 @@ describe Astute::Provisioner do
'fault_tolerance' => [{'uids'=> ['2', '3'], 'percentage' => 50}]}
@reporter.expects(:report).with(success_msg).once
@provisioner.provision(@reporter, data['task_uuid'], provision_info, 'image')
@provisioner.provision(@reporter, data['task_uuid'], provision_info)
end
it 'should fail if node without fault tolerance rule fails' do
@ -691,7 +674,7 @@ describe Astute::Provisioner do
'fault_tolerance' => [{'uids'=> ['1', '2'], 'percentage' => 50}]}
@reporter.expects(:report).with(success_msg).once
@provisioner.provision(@reporter, data['task_uuid'], provision_info, 'image')
@provisioner.provision(@reporter, data['task_uuid'], provision_info)
end
it 'should fail if node has two roles and fails for one' do
@ -739,7 +722,7 @@ describe Astute::Provisioner do
{'uids'=> ['3'], 'percentage' => 0}]}
@reporter.expects(:report).with(success_msg).once
@provisioner.provision(@reporter, data['task_uuid'], provision_info, 'image')
@provisioner.provision(@reporter, data['task_uuid'], provision_info)
end
it 'should fail if one node fails' do
@ -786,7 +769,7 @@ describe Astute::Provisioner do
'fault_tolerance' => [{'uids'=> ['2', '3'], 'percentage' => 0}]}
@reporter.expects(:report).with(success_msg).once
@provisioner.provision(@reporter, data['task_uuid'], provision_info, 'image')
@provisioner.provision(@reporter, data['task_uuid'], provision_info)
end
it 'fail on any node if no faul_tolerance rules are provided' do
@ -833,7 +816,7 @@ describe Astute::Provisioner do
'fault_tolerance' => []}
@reporter.expects(:report).with(success_msg).once
@provisioner.provision(@reporter, data['task_uuid'], provision_info, 'image')
@provisioner.provision(@reporter, data['task_uuid'], provision_info)
end
end
@ -971,7 +954,7 @@ describe Astute::Provisioner do
@provisioner.stubs(:change_nodes_type)
@provisioner.stubs(:control_reboot_using_ssh)
Astute::ImageProvision.stubs(:provision).returns(['1'])
result = @provisioner.provision_piece(@reporter, 'task_uuid', engine_attrs, nodes, 'image')
result = @provisioner.provision_piece(@reporter, 'task_uuid', engine_attrs, nodes)
result.should eql(['1'])
end
end