#!/usr/bin/env php gen(0); zenData('action')->gen(0); zenData('user')->gen(5); su('admin'); $zanodeTest = new zanodeModelTest(); // 测试步骤1:正常创建执行节点 $normalData = new stdclass(); $normalData->name = 'test-node-1'; $normalData->type = 'node'; $normalData->status = 'running'; r($zanodeTest->createTest($normalData)) && p('name,type,status') && e('test-node-1,node,running'); // 测试步骤2:创建具有最小必填字段的节点 $minimalData = new stdclass(); $minimalData->name = 'minimal-node'; $minimalData->type = 'node'; $minimalData->status = 'created'; r($zanodeTest->createTest($minimalData)) && p('name,type,status') && e('minimal-node,node,created'); // 测试步骤3:创建包含完整字段的节点 $completeData = new stdclass(); $completeData->hostType = 'physics'; $completeData->parent = 0; $completeData->name = 'complete-node'; $completeData->extranet = '192.168.1.100'; $completeData->image = 2; $completeData->cpuCores = 8; $completeData->memory = 16; $completeData->diskSize = 100; $completeData->osName = 'CentOS 7'; $completeData->desc = '包含完整字段的测试节点'; $completeData->type = 'node'; $completeData->status = 'ready'; r($zanodeTest->createTest($completeData)) && p('name,hostType,cpuCores,memory') && e('complete-node,physics,8,16'); // 测试步骤4:创建包含过滤字段的节点(osNamePhysics和osNamePre应被过滤) $filteredData = new stdclass(); $filteredData->name = 'filtered-node'; $filteredData->type = 'node'; $filteredData->status = 'running'; $filteredData->osNamePhysics = 'should-be-filtered'; $filteredData->osNamePre = 'should-be-filtered'; $filteredData->osName = 'Ubuntu 22.04'; r($zanodeTest->createTest($filteredData)) && p('name,osName') && e('filtered-node,Ubuntu 22.04'); // 测试步骤5:验证创建节点时自动生成Action记录 $actionData = new stdclass(); $actionData->name = 'action-test-node'; $actionData->type = 'node'; $actionData->status = 'launch'; r($zanodeTest->createTestWithAction($actionData)) && p('hasAction') && e('1');