Add force disruptive option (#47694)
* Use expect module to copy files
* Add force option for disruptive upgrades
* Revert changes to copy_kick_system_images.yaml
(cherry picked from commit c53e3ca8e9
)
This commit is contained in:
parent
5f0d691716
commit
35eec7b1b0
4 changed files with 26 additions and 3 deletions
|
@ -345,12 +345,32 @@ def massage_install_data(data):
|
|||
|
||||
def build_install_cmd_set(issu, image, kick, type):
|
||||
commands = ['terminal dont-ask']
|
||||
|
||||
# Different NX-OS plaforms behave differently for
|
||||
# disruptive and non-disruptive upgrade paths.
|
||||
#
|
||||
# 1) Combined kickstart/system image:
|
||||
# * Use option 'non-disruptive' for issu.
|
||||
# * Omit option non-disruptive' for distruptive upgrades.
|
||||
# 2) Separate kickstart + system images.
|
||||
# * Omit hidden 'force' option for issu.
|
||||
# * Use hidden 'force' option for disruptive upgrades.
|
||||
if re.search(r'required|desired|yes', issu):
|
||||
if kick is None:
|
||||
issu_cmd = 'non-disruptive'
|
||||
else:
|
||||
issu_cmd = ''
|
||||
else:
|
||||
if kick is None:
|
||||
issu_cmd = ''
|
||||
else:
|
||||
issu_cmd = 'force'
|
||||
|
||||
if type == 'impact':
|
||||
rootcmd = 'show install all impact'
|
||||
# The force option is not available for the impact command.
|
||||
if kick:
|
||||
issu_cmd = ''
|
||||
else:
|
||||
rootcmd = 'install all'
|
||||
if kick is None:
|
||||
|
@ -358,7 +378,7 @@ def build_install_cmd_set(issu, image, kick, type):
|
|||
'%s nxos %s %s' % (rootcmd, image, issu_cmd))
|
||||
else:
|
||||
commands.append(
|
||||
'%s system %s kickstart %s' % (rootcmd, image, kick))
|
||||
'%s %s system %s kickstart %s' % (rootcmd, issu_cmd, image, kick))
|
||||
|
||||
return commands
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
when: delete_image_list is defined
|
||||
|
||||
- include: targets/nxos_install_os/tasks/upgrade/copy_kick_system_images.yaml
|
||||
when: copy_images is defined
|
||||
|
||||
- include: targets/nxos_install_os/tasks/upgrade/install_with_kick.yaml
|
||||
when: ki is defined and combined is undefined
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
when: delete_image_list is defined
|
||||
|
||||
- include: targets/nxos_install_os/tasks/upgrade/copy_kick_system_images.yaml
|
||||
when: copy_images is defined
|
||||
|
||||
- include: targets/nxos_install_os/tasks/upgrade/install_with_kick_provider.yaml
|
||||
when: ki is defined and combined is undefined
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
- set_fact: checkmode='no'
|
||||
- set_fact: issu='desired'
|
||||
- set_fact: copy_images='yes'
|
||||
|
||||
- set_fact: image_dir='/Users/mwiebe/Projects/nxos_ansible/images/'
|
||||
|
||||
|
|
Loading…
Reference in a new issue