mirror of
https://github.com/OpenNebula/one.git
synced 2025-02-04 17:47:00 +03:00
parent
682aa68fdc
commit
f182365c80
@ -161,7 +161,7 @@ class OneFlowTemplateHelper < OpenNebulaHelper::OneHelper
|
|||||||
# @return [Hash] Custom attributes values
|
# @return [Hash] Custom attributes values
|
||||||
def custom_attrs(custom_attrs)
|
def custom_attrs(custom_attrs)
|
||||||
# rubocop:disable Layout/LineLength
|
# rubocop:disable Layout/LineLength
|
||||||
return unless custom_attrs
|
return if custom_attrs.nil? || custom_attrs.empty?
|
||||||
|
|
||||||
ret = {}
|
ret = {}
|
||||||
ret['custom_attrs_values'] = OpenNebulaHelper.parse_user_inputs(custom_attrs)
|
ret['custom_attrs_values'] = OpenNebulaHelper.parse_user_inputs(custom_attrs)
|
||||||
|
@ -326,6 +326,11 @@ class ServiceLCM
|
|||||||
set_cardinality(role, cardinality, force)
|
set_cardinality(role, cardinality, force)
|
||||||
|
|
||||||
if cardinality_diff > 0
|
if cardinality_diff > 0
|
||||||
|
# change client to have right ownership
|
||||||
|
client = @cloud_auth.client("#{service.uname}:#{service.gid}")
|
||||||
|
|
||||||
|
service.replace_client(client)
|
||||||
|
|
||||||
role.scale_way('UP')
|
role.scale_way('UP')
|
||||||
|
|
||||||
rc = deploy_roles(client,
|
rc = deploy_roles(client,
|
||||||
@ -378,7 +383,13 @@ class ServiceLCM
|
|||||||
elsif service.can_recover_undeploy?
|
elsif service.can_recover_undeploy?
|
||||||
recover_undeploy(client, service)
|
recover_undeploy(client, service)
|
||||||
elsif service.can_recover_scale?
|
elsif service.can_recover_scale?
|
||||||
|
# change client to have right ownership
|
||||||
|
client = @cloud_auth.client("#{service.uname}:#{service.gid}")
|
||||||
|
|
||||||
|
service.replace_client(client)
|
||||||
recover_scale(client, service)
|
recover_scale(client, service)
|
||||||
|
elsif Service::STATE['COOLDOWN'] == service.state
|
||||||
|
service.set_state(Service::STATE['RUNNING'])
|
||||||
else
|
else
|
||||||
break OpenNebula::Error.new(
|
break OpenNebula::Error.new(
|
||||||
'Service cannot be recovered in state: ' \
|
'Service cannot be recovered in state: ' \
|
||||||
@ -679,7 +690,7 @@ class ServiceLCM
|
|||||||
def catch_up(client)
|
def catch_up(client)
|
||||||
Log.error LOG_COMP, 'Catching up...'
|
Log.error LOG_COMP, 'Catching up...'
|
||||||
|
|
||||||
@srv_pool.info
|
@srv_pool.info_all
|
||||||
|
|
||||||
@srv_pool.each do |service|
|
@srv_pool.each do |service|
|
||||||
recover_action(client, service.id) if service.transient_state?
|
recover_action(client, service.id) if service.transient_state?
|
||||||
|
@ -55,6 +55,7 @@ module OpenNebula
|
|||||||
DEPLOYING
|
DEPLOYING
|
||||||
UNDEPLOYING
|
UNDEPLOYING
|
||||||
SCALING
|
SCALING
|
||||||
|
COOLDOWN
|
||||||
]
|
]
|
||||||
|
|
||||||
FAILED_STATES = %w[
|
FAILED_STATES = %w[
|
||||||
@ -140,6 +141,20 @@ module OpenNebula
|
|||||||
@body['ready_status_gate']
|
@body['ready_status_gate']
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def uname
|
||||||
|
self['UNAME']
|
||||||
|
end
|
||||||
|
|
||||||
|
def gid
|
||||||
|
self['GID'].to_i
|
||||||
|
end
|
||||||
|
|
||||||
|
# Replaces this object's client with a new one
|
||||||
|
# @param [OpenNebula::Client] owner_client the new client
|
||||||
|
def replace_client(owner_client)
|
||||||
|
@client = owner_client
|
||||||
|
end
|
||||||
|
|
||||||
# Sets a new state
|
# Sets a new state
|
||||||
# @param [Integer] the new state
|
# @param [Integer] the new state
|
||||||
# @return [true, false] true if the value was changed
|
# @return [true, false] true if the value was changed
|
||||||
|
@ -72,6 +72,15 @@ module OpenNebula
|
|||||||
rc
|
rc
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def info_all
|
||||||
|
osp = OpenNebulaServicePool.new(client)
|
||||||
|
rc = osp.info_all
|
||||||
|
|
||||||
|
@one_pool = osp
|
||||||
|
|
||||||
|
rc
|
||||||
|
end
|
||||||
|
|
||||||
# rubocop:disable Lint/ToJSON
|
# rubocop:disable Lint/ToJSON
|
||||||
def to_json
|
def to_json
|
||||||
# rubocop:enable Lint/ToJSON
|
# rubocop:enable Lint/ToJSON
|
||||||
|
@ -491,14 +491,15 @@ post '/service_template/:id/action' do
|
|||||||
VALIDATION_EC)
|
VALIDATION_EC)
|
||||||
end
|
end
|
||||||
|
|
||||||
if custom_attrs && !custom_attrs_values
|
if custom_attrs && !custom_attrs.empty? && !custom_attrs_values
|
||||||
return internal_error('No custom_attrs_values found',
|
return internal_error('No custom_attrs_values found',
|
||||||
VALIDATION_EC)
|
VALIDATION_EC)
|
||||||
end
|
end
|
||||||
|
|
||||||
if custom_attrs &&
|
if custom_attrs &&
|
||||||
custom_attrs_values &&
|
!custom_attrs.empty?
|
||||||
!(custom_attrs.keys - custom_attrs_values.keys).empty?
|
custom_attrs_values &&
|
||||||
|
!(custom_attrs.keys - custom_attrs_values.keys).empty?
|
||||||
return internal_error('Every custom_attrs key must have its ' \
|
return internal_error('Every custom_attrs key must have its ' \
|
||||||
'value defined at custom_attrs_value',
|
'value defined at custom_attrs_value',
|
||||||
VALIDATION_EC)
|
VALIDATION_EC)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user