@ -369,9 +369,19 @@ class GalaxyCLI(CLI):
display . vvv ( ' Installing role %s ' % role . name )
display . vvv ( ' Installing role %s ' % role . name )
# query the galaxy API for the role data
# query the galaxy API for the role data
if role . install_info is not None and not force :
if role . install_info is not None :
display . display ( ' - %s is already installed, skipping. ' % role . name )
if role . install_info [ ' version ' ] != role . version :
continue
if force :
display . display ( ' - changing role %s from %s to %s ' %
( role . name , role . install_info [ ' version ' ] , role . version or " unspecified " ) )
role . remove ( )
else :
display . warning ( ' - %s ( %s ) is already installed - use --force to change version to %s ' %
( role . name , role . install_info [ ' version ' ] , role . version or " unspecified " ) )
continue
else :
display . display ( ' - %s is already installed, skipping. ' % str ( role ) )
continue
try :
try :
installed = role . install ( )
installed = role . install ( )
@ -392,14 +402,18 @@ class GalaxyCLI(CLI):
# we know we can skip this, as it's not going to
# we know we can skip this, as it's not going to
# be found on galaxy.ansible.com
# be found on galaxy.ansible.com
continue
continue
if dep_role . install_info is None or force :
if dep_role . install_info is None :
if dep_role not in roles_left :
if dep_role not in roles_left :
display . display ( ' - adding dependency: %s ' % dep_role . name )
display . display ( ' - adding dependency: %s ' % str ( dep_role ) )
roles_left . append ( dep_role )
roles_left . append ( dep_role )
else :
else :
display . display ( ' - dependency %s already pending installation. ' % dep_role . name )
display . display ( ' - dependency %s already pending installation. ' % dep_role . name )
else :
else :
display . display ( ' - dependency %s is already installed, skipping. ' % dep_role . name )
if dep_role . install_info [ ' version ' ] != dep_role . version :
display . warning ( ' - dependency %s from role %s differs from already installed version ( %s ), skipping ' %
( str ( dep_role ) , role . name , dep_role . install_info [ ' version ' ] ) )
else :
display . display ( ' - dependency %s is already installed, skipping. ' % dep_role . name )
if not installed :
if not installed :
display . warning ( " - %s was NOT installed successfully. " % role . name )
display . warning ( " - %s was NOT installed successfully. " % role . name )