def testPowerPhysicalSuccess(self, mock_ucs, mock_request): # setup UCS mocks mock_ucs.return_value.login.return_value = True mock_ucs.return_value.logout.return_value = True mockBlade = self.mockBlade("LsServer", "ls-Chassis3Blade3", "sys/chassis-3/blade-3") mockMo = self.mockManagedObject("org-root/ls-ps1", "LsServer") mock_ucs.return_value.query_dn.side_effect = [mockBlade, mockMo, ""] mock_request.headers = MOCK_HEADER # call powerMgmt controler.powerMgmt("ls-Chassis3Blade3", "off", True) # verify UCS Mocks were called mock_ucs.assert_called_with(HOST, USER, PASS, secure=False) mock_ucs.return_value.login.assert_called_once() mock_ucs.return_value.logout.assert_called_once() self.assertEqual(mock_ucs.return_value.query_dn.call_count, 2) calls = [ mock.call("ls-Chassis3Blade3"), mock.call("sys/chassis-3/blade-3") ] mock_ucs.return_value.query_dn.assert_has_calls(calls) calls = [mock.call(mockMo)] mock_ucs.return_value.set_mo.assert_has_calls(calls) self.assertEqual(mockMo.admin_power, "admin-down") mock_ucs.return_value.commit.assert_called_once()
def testPowerInternalServerError_1(self, mock_ucs, mock_request): """Invoke a 500 http error by sending an invalid power operation 'off3'""" mock_ucs.return_value.login.return_value = True mock_ucs.return_value.logout.return_value = True mock_ucs.return_value.query_dn.side_effect = \ [self.mockBlade("Non_LsServer", "sys/chassis-3/blade-3", "org-root/ls-ps1"), self.mockServiceProfile("org-root/ls-ps1", "LsServer"), ""] mock_request.headers = MOCK_HEADER # call powerMgmt result = controler.powerMgmt("sys/chassis-3/blade-3", "off3") # verify UCS Mocks were called mock_ucs.assert_called_with(HOST, USER, PASS, secure=False) mock_ucs.return_value.login.assert_called_once() mock_ucs.return_value.logout.assert_called_once() assert mock_ucs.return_value.query_dn.call_count == 2 di = ({ 'status': 500, 'message': 'Internal Server Error', 'stack': "action 'off3' is not valid. Choose one of the following: " "'on', 'off', 'cycle-wait','cycle-immediate', 'bmc-reset-immediate', " "'ipmi-reset', 'hard-reset-immediate', 'soft-shut-down' " }, 500) self.assertEqual(di, result, "Unexpected exception Data")
def testPowerSuccess(self, mock_ucs, mock_request, mock_LsPower_Consts, mock_LsPower, mock_current_app): # setup UCS mocks mock_LsPower_Consts.return_value.STATE_DOWN.return_value = True mock_LsPower.return_value.return_value = True mock_ucs.return_value.query_dn.side_effect = \ [self.mockBlade("Non_LsServer", "sys/chassis-3/blade-3", "org-root/ls-ps1"), self.mockServiceProfile("org-root/ls-ps1", "LsServer"), ""] mock_request.headers = MOCK_HEADER mock_current_app.config.get.return_value = self.mockCurrentApp("Anything").config # call powerMgmt controler.powerMgmt("sys/chassis-3/blade-3", "off") # verify UCS Mocks were called headers = {'ucs-user': USER, 'ucs-host': HOST, 'ucs-password': PASS} mock_ucs.assert_called_with(headers, mock_current_app.config.get("handlers")) assert mock_ucs.return_value.query_dn.call_count == 2 # assert that the appropriate service profile constant has been set assert mock_LsPower_Consts.STATE_DOWN is not None
def testPowerSuccess(self, mock_ucs, mock_request, mock_LsPower_Consts, mock_LsPower): # setup UCS mocks mock_LsPower_Consts.return_value.STATE_DOWN.return_value = True mock_LsPower.return_value.return_value = True mock_ucs.return_value.login.return_value = True mock_ucs.return_value.logout.return_value = True mock_ucs.return_value.query_dn.side_effect = \ [self.mockBlade("Non_LsServer", "sys/chassis-3/blade-3", "org-root/ls-ps1"), self.mockServiceProfile("org-root/ls-ps1", "LsServer"), ""] mock_request.headers = MOCK_HEADER # call powerMgmt controler.powerMgmt("sys/chassis-3/blade-3", "off") # verify UCS Mocks were called mock_ucs.assert_called_with(HOST, USER, PASS, secure=False) mock_ucs.return_value.login.assert_called_once() mock_ucs.return_value.logout.assert_called_once() assert mock_ucs.return_value.query_dn.call_count == 2 # assert that the appropriate service profile constant has been set assert mock_LsPower_Consts.STATE_DOWN is not None
def testPowerPhysicalSuccess2(self, mock_ucs, mock_request, mock_current_app): # setup UCS mocks mockMo = self.mockManagedObject("sys/chassis-3/blade-3", "compuetBlade") mock_ucs.return_value.query_dn.side_effect = [mockMo, ""] mock_request.headers = MOCK_HEADER mock_current_app.config.get.return_value = self.mockCurrentApp("Anything").config # call powerMgmt controler.powerMgmt("sys/chassis-3/blade-3", "off", True) # verify UCS Mocks were called headers = {'ucs-user': USER, 'ucs-host': HOST, 'ucs-password': PASS} mock_ucs.assert_called_with(headers, mock_current_app.config.get("handlers")) self.assertEqual(mock_ucs.return_value.query_dn.call_count, 1) calls = [mock.call("sys/chassis-3/blade-3")] mock_ucs.return_value.query_dn.assert_has_calls(calls) calls = [mock.call(mockMo)] mock_ucs.return_value.set_mo.assert_has_calls(calls) self.assertEqual(mockMo.admin_power, "admin-down") mock_ucs.return_value.commit.assert_called_once()
def testPowerMgmtForbiden(self, mock_ucs, mock_request, mock_current_app): """Invoke a 403 http error""" # setup UCS mocks mock_ucs.return_value = None mock_request.headers = MOCK_HEADER mock_current_app.config.get.return_value = self.mockCurrentApp("Anything").config # call powerMgmt result = controler.powerMgmt(identifier=MOCK_ID) # verify UCS Mocks were not called headers = {'ucs-user': USER, 'ucs-host': HOST, 'ucs-password': PASS} mock_ucs.assert_called_with(headers, mock_current_app.config.get("handlers")) self.assertEqual(result, ({'status': 403, 'message': 'Forbidden', 'stack': ''}, 403))
def testPowerMgmtForbiden(self, mock_ucs, mock_request): """Invoke a 403 http error""" # setup UCS mocks mock_ucs.return_value.login.return_value = False mock_request.headers = MOCK_HEADER # call powerMgmt result = controler.powerMgmt(identifier=MOCK_ID) # verify UCS Mocks were not called mock_ucs.assert_called_with(HOST, USER, PASS, secure=False) mock_ucs.return_value.login.assert_called_once() mock_ucs.return_value.query_dn.assert_not_called() self.assertEqual(result, ({'status': 403, 'message': 'Forbidden', 'stack': ''}, 403))
def testPowerInternalServerError_2(self, mock_ucs, mock_request, mock_current_app): """Invoke a 500 http error by sending an invalid dn""" mock_ucs.return_value.logout.return_value = True mock_ucs.return_value.query_dn.side_effect = \ [None, "", ""] mock_request.headers = MOCK_HEADER mock_current_app.config.get.return_value = self.mockCurrentApp("Anything").config # call powerMgmt result = controler.powerMgmt("sys/chassis-3/blade-3", "off") # verify UCS Mocks were called headers = {'ucs-user': USER, 'ucs-host': HOST, 'ucs-password': PASS} mock_ucs.assert_called_with(headers, mock_current_app.config.get("handlers")) mock_ucs.return_value.logout.assert_called_once() assert mock_ucs.return_value.query_dn.call_count == 1 di = ({'status': 500, 'message': 'Internal Server Error', 'stack': 'sever sys/chassis-3/blade-3 does not exist'}, 500) self.assertEqual(di, result, "Unexpected exception Data")
def testPowerInternalServerError_2(self, mock_ucs, mock_request): """Invoke a 500 http error by sending an invalid dn""" mock_ucs.return_value.login.return_value = True mock_ucs.return_value.logout.return_value = True mock_ucs.return_value.query_dn.side_effect = \ [None, "", ""] mock_request.headers = MOCK_HEADER # call powerMgmt result = controler.powerMgmt("sys/chassis-3/blade-3", "off") # verify UCS Mocks were called mock_ucs.assert_called_with(HOST, USER, PASS, secure=False) mock_ucs.return_value.login.assert_called_once() mock_ucs.return_value.logout.assert_called_once() assert mock_ucs.return_value.query_dn.call_count == 1 di = ({'status': 500, 'message': 'Internal Server Error', 'stack': 'sever sys/chassis-3/blade-3 does not exist'}, 500) self.assertEqual(di, result, "Unexpected exception Data")
def testPowerInternalServerError_3(self, mock_ucs, mock_request, mock_current_app): """Invoke a 500 http error by not associating a server to a service profile""" mock_ucs.return_value.logout.return_value = True mock_ucs.return_value.query_dn.side_effect = \ [self.mockBlade("Non_LsServer", "sys/chassis-3/blade-3", ""), self.mockServiceProfile("org-root/ls-ps1", "LsServer"), ""] mock_request.headers = MOCK_HEADER mock_current_app.config.get.return_value = self.mockCurrentApp("Anything").config # call powerMgmt result = controler.powerMgmt("sys/chassis-3/blade-3", "off") # verify UCS Mocks were called headers = {'ucs-user': USER, 'ucs-host': HOST, 'ucs-password': PASS} mock_ucs.assert_called_with(headers, mock_current_app.config.get("handlers")) mock_ucs.return_value.logout.assert_called_once() # assert mock_ucs.return_value.query_dn.call_count == 2 di = ({'status': 500, 'message': 'Internal Server Error', 'stack': 'sever sys/chassis-3/blade-3 is not associated to a service profile'}, 500) self.assertEqual(di, result, "Unexpected exception Data")
def testPowerInternalServerError_3(self, mock_ucs, mock_request): """Invoke a 500 http error by not associating a server to a service profile""" mock_ucs.return_value.login.return_value = True mock_ucs.return_value.logout.return_value = True mock_ucs.return_value.query_dn.side_effect = \ [self.mockBlade("Non_LsServer", "sys/chassis-3/blade-3", ""), self.mockServiceProfile("org-root/ls-ps1", "LsServer"), ""] mock_request.headers = MOCK_HEADER # call powerMgmt result = controler.powerMgmt("sys/chassis-3/blade-3", "off") # verify UCS Mocks were called mock_ucs.assert_called_with(HOST, USER, PASS, secure=False) mock_ucs.return_value.login.assert_called_once() mock_ucs.return_value.logout.assert_called_once() # assert mock_ucs.return_value.query_dn.call_count == 2 di = ({'status': 500, 'message': 'Internal Server Error', 'stack': 'sever sys/chassis-3/blade-3 is not associated to a service profile'}, 500) self.assertEqual(di, result, "Unexpected exception Data")
def testPowerPhysicalFailuure(self, mock_ucs, mock_request): # setup UCS mocks mock_ucs.return_value.login.return_value = True mock_ucs.return_value.logout.return_value = True mockMo = self.mockManagedObject("sys/chassis-3/blade-3", "compuetBlade") mock_ucs.return_value.query_dn.side_effect = [mockMo, ""] mock_request.headers = MOCK_HEADER # call powerMgmt result = controler.powerMgmt("sys/chassis-3/blade-3", "foo", True) # verify UCS Mocks were called mock_ucs.assert_called_with(HOST, USER, PASS, secure=False) mock_ucs.return_value.login.assert_called_once() mock_ucs.return_value.logout.assert_called_once() self.assertEqual(mock_ucs.return_value.query_dn.call_count, 1) calls = [mock.call("sys/chassis-3/blade-3")] mock_ucs.return_value.query_dn.assert_has_calls(calls) self.assertEqual(result[0]['status'], 500, "expected status 500")
def testPowerPhysicalFailure(self, mock_ucs, mock_request, mock_current_app): # setup UCS mocks mock_ucs.return_value.login.return_value = True mock_ucs.return_value.logout.return_value = True mockMo = self.mockManagedObject("sys/chassis-3/blade-3", "compuetBlade") mock_ucs.return_value.query_dn.side_effect = [mockMo, ""] mock_request.headers = MOCK_HEADER mock_current_app.config.get.return_value = self.mockCurrentApp("Anything").config # call powerMgmt result = controler.powerMgmt("sys/chassis-3/blade-3", "foo", True) # verify UCS Mocks were called headers = {'ucs-user': USER, 'ucs-host': HOST, 'ucs-password': PASS} mock_ucs.assert_called_with(headers, mock_current_app.config.get("handlers")) mock_ucs.return_value.logout.assert_called_once() self.assertEqual(mock_ucs.return_value.query_dn.call_count, 1) calls = [mock.call("sys/chassis-3/blade-3")] mock_ucs.return_value.query_dn.assert_has_calls(calls) self.assertEqual(result[0]['status'], 500, "expected status 500")