@@ -775,43 +775,33 @@ public boolean savePassword(final Network network, final NicProfile nic, final V
775775 }
776776
777777 final VirtualMachineProfile uservm = vm ;
778-
779778 final DataCenterVO dcVO = _dcDao .findById (network .getDataCenterId ());
780779 final NetworkTopology networkTopology = networkTopologyContext .retrieveNetworkTopology (dcVO );
781780
782- // If any router is not running then save the password in DB
783- List <VirtualRouter > routerList = new ArrayList <VirtualRouter >();
784- //applied true implies we have applied the password successfully on at
785- //least one router. save true implies we have to save the password to send
786- //it to the remaining routers.
787- Boolean applied = true , save = false ;
788- for (final VirtualRouter router : routers ) {
789- if (router .getState () == State .Running ) {
790- routerList .add (router );
791- } else {
792- save = true ;
793- }
781+ if (!network .isRedundant ()) {
782+ return networkTopology .savePasswordToRouter (network , nic , uservm , routers .get (0 ));
794783 }
795- for (VirtualRouter router : routerList ) {
796- applied = networkTopology .savePasswordToRouter (network , nic , uservm , router );
797- if (!applied )
798- break ;
784+
785+ for (final VirtualRouter router : routers ) {
786+ if (router .getState () == State .Running && router .getRedundantState () == VirtualRouter .RedundantState .MASTER ) {
787+ return networkTopology .savePasswordToRouter (network , nic , uservm , router );
788+ }
799789 }
800- if (save && applied ) {
801- final String password = (String ) uservm .getParameter (VirtualMachineProfile .Param .VmPassword );
802- final String password_encrypted = DBEncryptionUtil .encrypt (password );
803- final UserVmVO userVmVO = _userVmDao .findById (vm .getId ());
790+ return savePassword (uservm );
791+ }
804792
805- _userVmDao .loadDetails (userVmVO );
806- userVmVO .setDetail ("password" , password_encrypted );
807- _userVmDao .saveDetails (userVmVO );
793+ private boolean savePassword (VirtualMachineProfile uservm ) {
794+ //save password
795+ final String password = (String ) uservm .getParameter (VirtualMachineProfile .Param .VmPassword );
796+ final String password_encrypted = DBEncryptionUtil .encrypt (password );
797+ final UserVmVO userVmVO = _userVmDao .findById (uservm .getId ());
808798
809- userVmVO . setUpdateParameters ( true );
810- _userVmDao . update ( userVmVO .getId (), userVmVO );
811- }
812- if (! applied ) {
813- return false ;
814- }
799+ _userVmDao . loadDetails ( userVmVO );
800+ userVmVO .setDetail ( "password" , password_encrypted );
801+ _userVmDao . saveDetails ( userVmVO );
802+
803+ userVmVO . setUpdateParameters ( true ) ;
804+ _userVmDao . update ( userVmVO . getId (), userVmVO );
815805 return true ;
816806 }
817807
0 commit comments