void PrlNetworkShapingTest::AddNetworkClassesConfig()
{
	SdkHandleWrap hClassesList;
	SdkHandleWrap hJob, hResult;
	SdkHandleWrap hClass0;
	SdkHandleWrap hClass1;
	SdkHandleWrap hClass2;

	// preserve original list of classes
	CHECK_ASYNC_OP_FAILED(PrlSrv_GetNetworkClassesList(m_hServer, 0), 0);
	hJob.reset(PrlSrv_GetNetworkClassesList(m_hServer, 0));
	CHECK_JOB_RET_CODE(hJob);
	CHECK_RET_CODE_EXP(PrlJob_GetResult(hJob, hResult.GetHandlePtr()));
	CHECK_RET_CODE_EXP(PrlResult_GetParam(hResult, m_hClassesListOrig.GetHandlePtr()));

	CreateNetworkClass(hClass0, 0);
	CreateNetworkClass(hClass1, 1);
	CreateNetworkClass(hClass2, 2);

	CHECK_RET_CODE_EXP(PrlApi_CreateHandlesList(hClassesList.GetHandlePtr()));
	CHECK_RET_CODE_EXP(PrlHndlList_AddItem(hClassesList, hClass0));
	CHECK_RET_CODE_EXP(PrlHndlList_AddItem(hClassesList, hClass1));
	CHECK_RET_CODE_EXP(PrlHndlList_AddItem(hClassesList, hClass2));

	CHECK_ASYNC_OP_FAILED(PrlSrv_UpdateNetworkClassesList(m_hServer, hClassesList, 0), 0);

	// check validity of result
	CHECK_ASYNC_OP_FAILED(PrlSrv_GetNetworkClassesList(m_hServer, 0), 0);
	hJob.reset(PrlSrv_GetNetworkClassesList(m_hServer, 0));
	CHECK_JOB_RET_CODE(hJob);
	CHECK_RET_CODE_EXP(PrlJob_GetResult(hJob, hResult.GetHandlePtr()));
	CHECK_RET_CODE_EXP(PrlResult_GetParam(hResult, hClassesList.GetHandlePtr()));

	PRL_UINT32 nItemsCount = 0;
	CHECK_RET_CODE_EXP(PrlHndlList_GetItemsCount(hClassesList, &nItemsCount))
	QVERIFY(nItemsCount == 3);

	SdkHandleWrap hClass;
	CHECK_RET_CODE_EXP(PrlHndlList_GetItem(hClassesList, 0, hClass.GetHandlePtr()));
	CHECK_HANDLE_TYPE(hClass, PHT_NETWORK_CLASS);
	COMPARE_NETWORK_CLASSES(hClass, hClass0);

	CHECK_RET_CODE_EXP(PrlHndlList_GetItem(hClassesList, 1, hClass.GetHandlePtr()));
	CHECK_HANDLE_TYPE(hClass, PHT_NETWORK_CLASS);
	COMPARE_NETWORK_CLASSES(hClass, hClass1);

	CHECK_RET_CODE_EXP(PrlHndlList_GetItem(hClassesList, 2, hClass.GetHandlePtr()));
	CHECK_HANDLE_TYPE(hClass, PHT_NETWORK_CLASS);
	COMPARE_NETWORK_CLASSES(hClass, hClass2);
}
Example #2
0
void PrlApiTest::testLoginOnNonServerHandle()
{
	PrlHandleBase *pHandle = new PrlHandleServerJob(PrlHandleServerPtr(0), Uuid::createUuid(), PJOC_UNKNOWN);
	m_Handle.reset(pHandle->GetHandle());
	CHECK_ASYNC_OP_FAILED(PrlSrv_Login(m_Handle, TestConfig::getRemoteHostName(),
					TestConfig::getUserLogin(), TestConfig::getUserPassword(), NULL, 0, 0, PSL_HIGH_SECURITY), PRL_ERR_INVALID_ARG);
}
void PrlNetworkShapingTest::RestoreNetworkClassesConfig()
{
	if (m_hClassesListOrig == PRL_INVALID_HANDLE)
		return;

	CHECK_ASYNC_OP_FAILED(PrlSrv_UpdateNetworkClassesList(m_hServer, m_hClassesListOrig, 0), 0);
	m_hClassesListOrig.reset();
}
void PrlNetworkShapingTest::testUpdateNetworkShapingConfig()
{
	SdkHandleWrap hJob, hResult, hShaping, hShapingOrig ;
	SdkHandleWrap hShapingList, hShapingListOrig, hBandList;
	SdkHandleWrap hEntry0;
	SdkHandleWrap hEntry1;
	QString sDev = "eth0";

	testLoginLocal();

	AddNetworkClassesConfig();

	hJob.reset(PrlSrv_GetNetworkShapingConfig(m_hServer, 0));
	CHECK_JOB_RET_CODE(hJob);
	CHECK_RET_CODE_EXP(PrlJob_GetResult(hJob, hResult.GetHandlePtr()));
	CHECK_RET_CODE_EXP(PrlResult_GetParam(hResult, hShaping.GetHandlePtr()));

	hJob.reset(PrlSrv_GetNetworkShapingConfig(m_hServer, 0));
	CHECK_JOB_RET_CODE(hJob);
	CHECK_RET_CODE_EXP(PrlJob_GetResult(hJob, hResult.GetHandlePtr()));
	CHECK_RET_CODE_EXP(PrlResult_GetParam(hResult, hShapingOrig.GetHandlePtr()));

	PRL_BOOL bEnabled = PRL_FALSE;
	CHECK_RET_CODE_EXP(PrlNetworkShapingConfig_IsEnabled(hShaping, &bEnabled));

	// BANDWIDTH

	CHECK_RET_CODE_EXP(PrlApi_CreateHandlesList(hBandList.GetHandlePtr()));
	PrlNet::EthAdaptersList ethList;
	PrlNet::makeBindableAdapterList( ethList, true );

	for (PrlNet::EthAdaptersList::Iterator it = ethList.begin();
			it != ethList.end();
			++it )
	{
		SdkHandleWrap hEntry;
		if (!it->_systemName.startsWith("eth"))
			continue;

		sDev = it->_systemName;
		CHECK_RET_CODE_EXP(PrlNetworkShapingBandwidthEntry_Create(
				QSTR2UTF8(it->_systemName), 100000, hEntry.GetHandlePtr()));
		CHECK_RET_CODE_EXP(PrlHndlList_AddItem(hBandList, hEntry));
	}
	CHECK_RET_CODE_EXP(PrlNetworkShapingConfig_SetNetworkDeviceBandwidthList(hShaping, hBandList))


	// TOTALRATE
	CreateNetworkShapingEntry(hEntry0, 1, sDev);
	CreateNetworkShapingEntry(hEntry1, 2, sDev);

	CHECK_RET_CODE_EXP(PrlApi_CreateHandlesList(hShapingList.GetHandlePtr()));
	CHECK_RET_CODE_EXP(PrlHndlList_AddItem(hShapingList, hEntry0));
	CHECK_RET_CODE_EXP(PrlHndlList_AddItem(hShapingList, hEntry1));

	// check setter
	CHECK_RET_CODE_EXP(PrlNetworkShapingConfig_SetNetworkShapingList(hShaping, hShapingList));
	bEnabled = !bEnabled;
	CHECK_RET_CODE_EXP(PrlNetworkShapingConfig_SetEnabled(hShaping, bEnabled));
	CHECK_ASYNC_OP_FAILED(PrlSrv_UpdateNetworkShapingConfig(m_hServer, hShaping, 0), 0);

	// verify result with getter
	hJob.reset(PrlSrv_GetNetworkShapingConfig(m_hServer, 0));
	CHECK_JOB_RET_CODE(hJob);
	CHECK_RET_CODE_EXP(PrlJob_GetResult(hJob, hResult.GetHandlePtr()));
	CHECK_RET_CODE_EXP(PrlResult_GetParam(hResult, hShaping.GetHandlePtr()));

	PRL_BOOL bNewEnabled = PRL_FALSE;
	CHECK_RET_CODE_EXP(PrlNetworkShapingConfig_IsEnabled(hShaping, &bNewEnabled));
	QVERIFY(bNewEnabled == bEnabled);

	CHECK_RET_CODE_EXP(PrlNetworkShapingConfig_GetNetworkShapingList(hShaping,
				hShapingList.GetHandlePtr()));
	CHECK_HANDLE_TYPE(hShapingList, PHT_HANDLES_LIST);

	PRL_UINT32 nItemsCount = 0;
	CHECK_RET_CODE_EXP(PrlHndlList_GetItemsCount(hShapingList, &nItemsCount))
	QVERIFY(nItemsCount == 2);

	SdkHandleWrap hEntry;
	CHECK_RET_CODE_EXP(PrlHndlList_GetItem(hShapingList, 0, hEntry.GetHandlePtr()));
	CHECK_HANDLE_TYPE(hEntry, PHT_NETWORK_SHAPING);
	COMPARE_SHAPING_ENTRIES(hEntry, hEntry0);

	CHECK_RET_CODE_EXP(PrlHndlList_GetItem(hShapingList, 1, hEntry.GetHandlePtr()));
	CHECK_HANDLE_TYPE(hEntry, PHT_NETWORK_SHAPING);
	COMPARE_SHAPING_ENTRIES(hEntry, hEntry1);

	// restore original values
	CHECK_ASYNC_OP_FAILED(PrlSrv_UpdateNetworkShapingConfig(m_hServer, hShapingOrig, 0), 0);
}
Example #5
0
void PrlApiTest::testLogoffOnNonServerHandle() {
	PrlHandleBase *pHandle = new PrlHandleServerJob(PrlHandleServerPtr(0), Uuid::createUuid(), PJOC_UNKNOWN);
	m_Handle.reset(pHandle->GetHandle());
	CHECK_ASYNC_OP_FAILED(PrlSrv_Logoff(m_Handle), PRL_ERR_INVALID_ARG);
}