87 lines
2.9 KiB
PHP
87 lines
2.9 KiB
PHP
|
|
#!/usr/bin/env php
|
|||
|
|
<?php
|
|||
|
|
declare(strict_types=1);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
|
|||
|
|
title=测试 zanodeModel::create();
|
|||
|
|
timeout=0
|
|||
|
|
cid=19821
|
|||
|
|
|
|||
|
|
- 执行zanodeTest模块的createTest方法,参数是$normalData
|
|||
|
|
- 属性name @test-node-1
|
|||
|
|
- 属性type @node
|
|||
|
|
- 属性status @running
|
|||
|
|
- 执行zanodeTest模块的createTest方法,参数是$minimalData
|
|||
|
|
- 属性name @minimal-node
|
|||
|
|
- 属性type @node
|
|||
|
|
- 属性status @created
|
|||
|
|
- 执行zanodeTest模块的createTest方法,参数是$completeData
|
|||
|
|
- 属性name @complete-node
|
|||
|
|
- 属性hostType @physics
|
|||
|
|
- 属性cpuCores @8
|
|||
|
|
- 属性memory @16
|
|||
|
|
- 执行zanodeTest模块的createTest方法,参数是$filteredData
|
|||
|
|
- 属性name @filtered-node
|
|||
|
|
- 属性osName @Ubuntu 22.04
|
|||
|
|
- 执行zanodeTest模块的createTestWithAction方法,参数是$actionData 属性hasAction @1
|
|||
|
|
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
|||
|
|
include dirname(__FILE__, 2) . '/lib/model.class.php';
|
|||
|
|
|
|||
|
|
// 准备测试数据 - 直接使用简化的host表结构
|
|||
|
|
zenData('host')->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');
|