• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java DumbSlave类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中hudson.slaves.DumbSlave的典型用法代码示例。如果您正苦于以下问题:Java DumbSlave类的具体用法?Java DumbSlave怎么用?Java DumbSlave使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



DumbSlave类属于hudson.slaves包,在下文中一共展示了DumbSlave类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: testCopyToSlave

import hudson.slaves.DumbSlave; //导入依赖的package包/类
@Test
public void testCopyToSlave() throws Exception {
    DumbSlave node = rule.createSlave();
    SlaveComputer c = node.getComputer();
    c.connect(false).get(); // wait until it's connected
    if(c.isOffline())
        fail("Slave failed to go online: " + c.getLog());
    FreeStyleProject other = createArtifactProject(),
                     p = createProject(other.getName(), null, "", "", false, false, false, true);
    rule.assertBuildStatusSuccess(other.scheduleBuild2(0, new UserCause()).get());
    p.setAssignedLabel(node.getSelfLabel());
    FreeStyleBuild b = p.scheduleBuild2(0, new UserCause()).get();
    rule.assertBuildStatusSuccess(b);
    assertSame(node, b.getBuiltOn());
    assertFile(true, "foo.txt", b);
    assertFile(true, "subdir/subfoo.txt", b);
    assertFile(true, "deepfoo/a/b/c.log", b);
}
 
开发者ID:jenkinsci,项目名称:run-selector-plugin,代码行数:19,代码来源:CopyArtifactTest.java


示例2: shouldGenerateLivingDocumentatationOnSlaveNode

import hudson.slaves.DumbSlave; //导入依赖的package包/类
@Test
public void shouldGenerateLivingDocumentatationOnSlaveNode() throws Exception{
	DumbSlave slave = jenkins.createOnlineSlave();
	FreeStyleProject project = jenkins.createFreeStyleProject("test");
	project.setAssignedNode(slave);
	
	SingleFileSCM scm = new SingleFileSCM("asciidoctor.json",
			CucumberLivingDocumentationIT.class.getResource("/json-output/asciidoctor/asciidoctor.json").toURI().toURL());
	
	project.setScm(scm);
	CukedoctorPublisher publisher = new CukedoctorPublisher(null, FormatType.HTML, TocType.RIGHT, true, true, "Living Documentation",false,false,false,false,false);
	project.getPublishersList().add(publisher);
	project.save();

	FreeStyleBuild build = jenkins.buildAndAssertSuccess(project);
	jenkins.assertLogContains("Format: html" + NEW_LINE + "Toc: right"+NEW_LINE +
			"Title: Living Documentation"+NEW_LINE+"Numbered: true"+NEW_LINE +
			"Section anchors: true", build);
	jenkins.assertLogContains("Found 4 feature(s)...",build);
	jenkins.assertLogContains("Documentation generated successfully!",build);
	Assert.assertTrue("It should run on slave",build.getBuiltOn().equals(slave));
	
}
 
开发者ID:jenkinsci,项目名称:cucumber-living-documentation-plugin,代码行数:24,代码来源:CucumberLivingDocumentationIT.java


示例3: downloadDocker

import hudson.slaves.DumbSlave; //导入依赖的package包/类
private FilePath downloadDocker(DumbSlave slave, FilePath toolDir, String version) throws IOException, InterruptedException {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    TeeOutputStream tee = new TeeOutputStream(baos, new PlainTextConsoleOutputStream(System.err));
    TaskListener l = new StreamTaskListener(tee);

    FilePath exe = toolDir.child(version+"/bin/docker");
    // Download for first time:
    assertEquals(exe.getRemote(), DockerTool.getExecutable(version, slave, l, null));
    assertTrue(exe.exists());
    assertThat(baos.toString(), containsString(Messages.DockerToolInstaller_downloading_docker_client_(version)));
    // Next time we do not need to download:
    baos.reset();
    assertEquals(exe.getRemote(), DockerTool.getExecutable(version, slave, l, null));
    assertTrue(exe.exists());
    assertThat(baos.toString(), not(containsString(Messages.DockerToolInstaller_downloading_docker_client_(version))));
    // Version check:
    baos.reset();
    assertEquals(0, slave.createLauncher(l).launch().cmds(exe.getRemote(), "version", "--format", "{{.Client.Version}}").quiet(true).stdout(tee).stderr(System.err).join());
    if (!version.equals("latest")) {
        assertEquals(version, baos.toString().trim());
    }
    return exe;
}
 
开发者ID:jenkinsci,项目名称:docker-commons-plugin,代码行数:24,代码来源:DockerToolInstallerTest.java


示例4: configurePretestedIntegrationPlugin

import hudson.slaves.DumbSlave; //导入依赖的package包/类
public static FreeStyleProject configurePretestedIntegrationPlugin(JenkinsRule rule, STRATEGY_TYPE type, List<UserRemoteConfig> repoList, String repoName, boolean runOnSlave, String integrationBranch) throws Exception {
    FreeStyleProject project = rule.createFreeStyleProject();
    if (runOnSlave) {
        DumbSlave onlineSlave = rule.createOnlineSlave();
        project.setAssignedNode(onlineSlave);
    }


    List<GitSCMExtension> gitSCMExtensions = new ArrayList<>();
    gitSCMExtensions.add(new PretestedIntegrationAsGitPluginExt(type == STRATEGY_TYPE.SQUASH ? new SquashCommitStrategy() : new AccumulatedCommitStrategy(), integrationBranch, repoName));
    gitSCMExtensions.add(new PruneStaleBranch());
    gitSCMExtensions.add(new CleanCheckout());

    project.getPublishersList().add(new PretestedIntegrationPostCheckout());

    GitSCM gitSCM = new GitSCM(repoList,
            Collections.singletonList(new BranchSpec("*/ready/**")),
            false, Collections.<SubmoduleConfig>emptyList(),
            null, null, gitSCMExtensions);


    project.setScm(gitSCM);
    project.save();

    return project;
}
 
开发者ID:Praqma,项目名称:pretested-integration-plugin,代码行数:27,代码来源:TestUtilsFactory.java


示例5: testLargeExportTableTruncated

import hudson.slaves.DumbSlave; //导入依赖的package包/类
@Test
public void testLargeExportTableTruncated() throws Exception {
  // Given
  DumbSlave onlineSlave = j.createOnlineSlave();
  VirtualChannel channel = onlineSlave.getChannel();
  // This will generate an export table with 2MB of content.
  for (int i = 0; i < 35000; i++) {
    channel.export(MockSerializable.class, new MockSerializable() {
    });
  }

  // When
  String dumpTableString = SupportTestUtils.invokeComponentToString(new DumpExportTable());

  // Then
  assertThat(dumpTableString.length(), lessThanOrEqualTo(FileListCapComponent.MAX_FILE_SIZE));
}
 
开发者ID:jenkinsci,项目名称:support-core-plugin,代码行数:18,代码来源:DumpExportTableTest.java


示例6: testNodePreference

import hudson.slaves.DumbSlave; //导入依赖的package包/类
@Test
public void testNodePreference() throws Exception
{
    setScoringRule(new NodePreferenceScoringRule(4, -1));
    
    j.jenkins.getNodeProperties().add(new BuildPreferenceNodeProperty(10));
    DumbSlave node1 = j.createOnlineSlave();
    node1.getNodeProperties().add(new BuildPreferenceNodeProperty(-3));
    DumbSlave node2 = j.createOnlineSlave();
    
    FreeStyleProject p = j.createFreeStyleProject();
    p.scheduleBuild2(0).get(BUILD_TIMEOUT, TimeUnit.SECONDS);
    
    assertEquals(1, testScoringRule.nodesScoreList.size());
    assertEquals(40, testScoringRule.nodesScoreList.get(0).getScore(j.jenkins));
    assertEquals(-12, testScoringRule.nodesScoreList.get(0).getScore(node1));
    assertEquals(0, testScoringRule.nodesScoreList.get(0).getScore(node2));
}
 
开发者ID:ikedam,项目名称:scoring-load-balancer,代码行数:19,代码来源:NodePreferenceScoringRuleJenkinsTest.java


示例7: testProjectPreference

import hudson.slaves.DumbSlave; //导入依赖的package包/类
@Test
public void testProjectPreference() throws Exception
{
    setScoringRule(new NodePreferenceScoringRule(4, -1));
    
    DumbSlave node1 = j.createOnlineSlave(LabelExpression.parseExpression("nodelabel"));
    DumbSlave node2 = j.createOnlineSlave(LabelExpression.parseExpression("nodelabel"));
    
    FreeStyleProject p = j.createFreeStyleProject();
    p.addProperty(new BuildPreferenceJobProperty(Arrays.asList(
            new BuildPreference("master", 1),
            new BuildPreference("nodelabel", 2),
            new BuildPreference(String.format("%s && nodelabel", node1.getNodeName()), 4)
    )));
    
    p.scheduleBuild2(0).get(BUILD_TIMEOUT, TimeUnit.SECONDS);
    
    assertEquals(1, testScoringRule.nodesScoreList.size());
    assertEquals(-1, testScoringRule.nodesScoreList.get(0).getScore(j.jenkins));
    assertEquals(-6, testScoringRule.nodesScoreList.get(0).getScore(node1));
    assertEquals(-2, testScoringRule.nodesScoreList.get(0).getScore(node2));
}
 
开发者ID:ikedam,项目名称:scoring-load-balancer,代码行数:23,代码来源:NodePreferenceScoringRuleJenkinsTest.java


示例8: testProjectPreferenceNull

import hudson.slaves.DumbSlave; //导入依赖的package包/类
@Test
public void testProjectPreferenceNull() throws Exception
{
    setScoringRule(new NodePreferenceScoringRule(1, -1));
    
    DumbSlave node1 = j.createOnlineSlave(LabelExpression.parseExpression("nodelabel"));
    DumbSlave node2 = j.createOnlineSlave(LabelExpression.parseExpression("nodelabel"));
    
    FreeStyleProject p = j.createFreeStyleProject();
    p.addProperty(new BuildPreferenceJobProperty(null));
    
    p.scheduleBuild2(0).get(BUILD_TIMEOUT, TimeUnit.SECONDS);
    
    assertEquals(1, testScoringRule.nodesScoreList.size());
    assertEquals(0, testScoringRule.nodesScoreList.get(0).getScore(j.jenkins));
    assertEquals(0, testScoringRule.nodesScoreList.get(0).getScore(node1));
    assertEquals(0, testScoringRule.nodesScoreList.get(0).getScore(node2));
}
 
开发者ID:ikedam,项目名称:scoring-load-balancer,代码行数:19,代码来源:NodePreferenceScoringRuleJenkinsTest.java


示例9: testProjectPreferenceEmpty

import hudson.slaves.DumbSlave; //导入依赖的package包/类
@Test
public void testProjectPreferenceEmpty() throws Exception
{
    setScoringRule(new NodePreferenceScoringRule(1, -1));
    
    DumbSlave node1 = j.createOnlineSlave(LabelExpression.parseExpression("nodelabel"));
    DumbSlave node2 = j.createOnlineSlave(LabelExpression.parseExpression("nodelabel"));
    
    FreeStyleProject p = j.createFreeStyleProject();
    p.addProperty(new BuildPreferenceJobProperty(Collections.<BuildPreference>emptyList()));
    
    p.scheduleBuild2(0).get(BUILD_TIMEOUT, TimeUnit.SECONDS);
    
    assertEquals(1, testScoringRule.nodesScoreList.size());
    assertEquals(0, testScoringRule.nodesScoreList.get(0).getScore(j.jenkins));
    assertEquals(0, testScoringRule.nodesScoreList.get(0).getScore(node1));
    assertEquals(0, testScoringRule.nodesScoreList.get(0).getScore(node2));
}
 
开发者ID:ikedam,项目名称:scoring-load-balancer,代码行数:19,代码来源:NodePreferenceScoringRuleJenkinsTest.java


示例10: testRegisterJobs_ProjectNoLabel_Exclusive

import hudson.slaves.DumbSlave; //导入依赖的package包/类
@Test
public void testRegisterJobs_ProjectNoLabel_Exclusive() throws Exception {

    Project<?, ?> lemon = createFreeStyleProject("lemon");
    DumbSlave exclusive_slave = createOnlineSlave(new LabelAtom("foo"));
    exclusive_slave.setMode(Mode.EXCLUSIVE);

    AbstractWorkerThread oneiric = new ExecutorWorkerThread(
                                        "GearmanServer",
                                        4730,
                                        "MyWorker",
                                        exclusive_slave.toComputer(),
                                        "master",
                                        new NoopAvailabilityMonitor());
    oneiric.testInitWorker();
    oneiric.registerJobs();
    Set<String> functions = oneiric.worker.getRegisteredFunctions();

    assertEquals(0, functions.size());
}
 
开发者ID:openstack-infra,项目名称:gearman-plugin,代码行数:21,代码来源:ExecutorWorkerThreadTest.java


示例11: testRegisterJobs_SlaveOffline

import hudson.slaves.DumbSlave; //导入依赖的package包/类
@Test
public void testRegisterJobs_SlaveOffline() throws Exception {

    DumbSlave offlineSlave = createSlave(new LabelAtom("oneiric-10"));
    offlineSlave.setLabelString("ubuntu gcc python-2.4 linux");

    Project<?, ?> lemon = createFreeStyleProject("lemon");
    lemon.setAssignedLabel(new LabelAtom("linux"));

    AbstractWorkerThread oneiric = new ExecutorWorkerThread("GearmanServer", 4730, "MyWorker", offlineSlave.toComputer(), "master", new NoopAvailabilityMonitor());
    oneiric.testInitWorker();
    oneiric.registerJobs();
    Set<String> functions = oneiric.worker.getRegisteredFunctions();

    assertEquals(0, functions.size());

}
 
开发者ID:openstack-infra,项目名称:gearman-plugin,代码行数:18,代码来源:ExecutorWorkerThreadTest.java


示例12: setup

import hudson.slaves.DumbSlave; //导入依赖的package包/类
@Before
public void setup() throws Exception {
    super.setup();

    JavaGitContainer slaveContainer = slaveRule.get();

    DumbSlave agent = new DumbSlave("remote", "", "/home/test/slave", "1", Node.Mode.NORMAL, "",
            new SSHLauncher(slaveContainer.ipBound(22), slaveContainer.port(22), "test", "test", "", ""),
            RetentionStrategy.INSTANCE, Collections.<NodeProperty<?>>emptyList());
    jenkinsRule.jenkins.addNode(agent);
}
 
开发者ID:jenkinsci,项目名称:pipeline-maven-plugin,代码行数:12,代码来源:WithMavenStepTest.java


示例13: getExecutable

import hudson.slaves.DumbSlave; //导入依赖的package包/类
@Test public void getExecutable() throws Exception {
    assertEquals(DockerTool.COMMAND, DockerTool.getExecutable(null, null, null, null));
    DockerTool.DescriptorImpl descriptor = r.jenkins.getDescriptorByType(DockerTool.DescriptorImpl.class);
    String name = "docker15";
    descriptor.setInstallations(new DockerTool(name, "/usr/local/docker15", Collections.<ToolProperty<?>>emptyList()));
    // TODO r.jenkins.restart() does not reproduce need for get/setInstallations; use RestartableJenkinsRule in 1.567+
    assertEquals("/usr/local/docker15/bin/docker", DockerTool.getExecutable(name, null, null, null));
    DumbSlave slave = r.createOnlineSlave();
    slave.getNodeProperties().add(new ToolLocationNodeProperty(new ToolLocationNodeProperty.ToolLocation(descriptor, name, "/opt/docker")));
    assertEquals("/usr/local/docker15/bin/docker", DockerTool.getExecutable(name, null, null, null));
    assertEquals("/opt/docker/bin/docker", DockerTool.getExecutable(name, slave, StreamTaskListener.fromStderr(), null));
}
 
开发者ID:jenkinsci,项目名称:docker-commons-plugin,代码行数:13,代码来源:DockerToolTest.java


示例14: smokes

import hudson.slaves.DumbSlave; //导入依赖的package包/类
@Test
public void smokes() throws Exception {
    DumbSlave slave = j.createOnlineSlave();
    VirtualChannel channel = slave.getChannel();
    FreeStyleProject item = j.createFreeStyleProject();
    CredentialsStore store = CredentialsProvider.lookupStores(j.getInstance()).iterator().next();
    assertThat(store, instanceOf(SystemCredentialsProvider.StoreImpl.class));
    Domain domain = new Domain("docker", "A domain for docker credentials",
            Collections.<DomainSpecification>singletonList(new DockerServerDomainSpecification()));
    DockerServerCredentials credentials = new DockerServerCredentials(CredentialsScope.GLOBAL, "foo", "desc", "a", "b", "c");
    store.addDomain(domain, credentials);
    DockerServerEndpoint endpoint = new DockerServerEndpoint("tcp://localhost:2736", credentials.getId());
    FilePath dotDocker = DockerServerEndpoint.dotDocker(channel);
    List<FilePath> dotDockerKids = dotDocker.list();
    int initialSize = dotDockerKids == null ? 0 : dotDockerKids.size();
    KeyMaterialFactory factory = endpoint.newKeyMaterialFactory(item, channel);
    KeyMaterial keyMaterial = factory.materialize();
    FilePath path = null;
    try {
        assertThat(keyMaterial.env().get("DOCKER_HOST", "missing"), is("tcp://localhost:2736"));
        assertThat(keyMaterial.env().get("DOCKER_TLS_VERIFY", "missing"), is("1"));
        assertThat(keyMaterial.env().get("DOCKER_CERT_PATH", "missing"), not("missing"));
        path = new FilePath(channel, keyMaterial.env().get("DOCKER_CERT_PATH", "missing"));
        if (!Functions.isWindows()) {
            assertThat(path.mode() & 0777, is(0700));
        }
        assertThat(path.child("key.pem").readToString(), is("a"));
        assertThat(path.child("cert.pem").readToString(), is("b"));
        assertThat(path.child("ca.pem").readToString(), is("c"));
    } finally {
        keyMaterial.close();
    }
    assertThat(path.child("key.pem").exists(), is(false));
    assertThat(path.child("cert.pem").exists(), is(false));
    assertThat(path.child("ca.pem").exists(), is(false));
    assertThat(dotDocker.list().size(), is(initialSize));
}
 
开发者ID:jenkinsci,项目名称:docker-commons-plugin,代码行数:38,代码来源:DockerServerEndpointTest.java


示例15: createSlave

import hudson.slaves.DumbSlave; //导入依赖的package包/类
protected DumbSlave createSlave(String labels) throws Exception {
    synchronized (jenkins) {
        DumbSlave slave = new DumbSlave("slave-" + jenkins.getInstance().getNodes().size(), "dummy",
				Files.createTempDirectory("jenkin-slave").toString(), "1", null /* Mode.NORMAL */, labels==null?"":labels, 
				createComputerLauncher(null), RetentionStrategy.NOOP, Collections.<NodeProperty<?>>emptyList());
		jenkins.getInstance().addNode(slave);
		return slave;
	}
}
 
开发者ID:jenkinsci,项目名称:openshift-deployer-plugin,代码行数:10,代码来源:BaseJenkinsTest.java


示例16: deployBinaryOnSlave

import hudson.slaves.DumbSlave; //导入依赖的package包/类
@Test
public void deployBinaryOnSlave() throws Exception {
	DumbSlave slave = createSlave("binary");
	String deployment = ClassLoader.getSystemResource(BINARY_DEPLOYMENT).getFile();
	
	FreeStyleProject project = jenkins.createFreeStyleProject();
	project.setAssignedLabel(LabelExpression.parseExpression(slave.getLabelString()));
	DeployApplication deployBuildStep = newDeployAppBuildStep(APP_NAME, deployment, DeploymentType.BINARY);
	project.getBuildersList().add(deployBuildStep);
	FreeStyleBuild build = project.scheduleBuild2(0).get();
	
	assertDeploySucceeded(build);
	
	removeApp(APP_NAME);
}
 
开发者ID:jenkinsci,项目名称:openshift-deployer-plugin,代码行数:16,代码来源:DeployApplicationTest.java


示例17: testAddContents

import hudson.slaves.DumbSlave; //导入依赖的package包/类
@Test
public void testAddContents() throws Exception {
  // Given
  DumbSlave onlineSlave = j.createOnlineSlave();

  // When
  String dumpTableString = SupportTestUtils.invokeComponentToString(new DumpExportTable());

  // Then
  assertFalse("Should have dumped the export table.",
          dumpTableString.isEmpty());

  List<String> output = new ArrayList<String>(Arrays.asList(dumpTableString.split("\n")));
  assertThat(output, hasItems(containsString("hudson.remoting.ExportTable")));
}
 
开发者ID:jenkinsci,项目名称:support-core-plugin,代码行数:16,代码来源:DumpExportTableTest.java


示例18: testForNode

import hudson.slaves.DumbSlave; //导入依赖的package包/类
@Test
public void testForNode() throws Exception {
    DumbSlave slave = j.createSlave();
    slave.setMode(Node.Mode.EXCLUSIVE);
    TaskListener log = StreamTaskListener.fromStdout();
    GitTool newTool = gitTool.forNode(slave, log);
    assertEquals(gitTool.getGitExe(), newTool.getGitExe());
}
 
开发者ID:jenkinsci,项目名称:git-client-plugin,代码行数:9,代码来源:GitToolTest.java


示例19: testRemotability

import hudson.slaves.DumbSlave; //导入依赖的package包/类
/**
 * Makes sure {@link GitClient} is remotable.
 */
public void testRemotability() throws Exception {
    DumbSlave s = createSlave();

    File dir = createTmpDir();
    final GitClient jgit = new JGitAPIImpl(dir,StreamBuildListener.fromStdout());

    Computer c = s.toComputer();
    c.connect(false).get();
    VirtualChannel channel = c.getChannel();
    channel.call(new Work(jgit));
    channel.close();
}
 
开发者ID:jenkinsci,项目名称:git-client-plugin,代码行数:16,代码来源:RemotingTest.java


示例20: testProjectPreferenceForMatrix

import hudson.slaves.DumbSlave; //导入依赖的package包/类
@Test
public void testProjectPreferenceForMatrix() throws Exception
{
    setScoringRule(new NodePreferenceScoringRule(4, 2));
    
    DumbSlave node1 = j.createOnlineSlave(LabelExpression.parseExpression("nodelabel"));
    DumbSlave node2 = j.createOnlineSlave(LabelExpression.parseExpression("nodelabel"));
    
    MatrixProject p = j.createMatrixProject();
    p.setAxes(new AxisList(
            new TextAxis("axis1", "value1")
    ));
    p.addProperty(new BuildPreferenceJobProperty(Arrays.asList(
            new BuildPreference("master", 1),
            new BuildPreference("nodelabel", 2),
            new BuildPreference(String.format("%s && nodelabel", node1.getNodeName()), 4)
    )));
    p.save();
    
    p.scheduleBuild2(0).get(BUILD_TIMEOUT, TimeUnit.SECONDS);
    
    assertEquals(1, testScoringRule.calledWorkChunkList.size());
    assertEquals(
            p.getItem(new Combination(new AxisList(new TextAxis("axis1",  "")), "value1")),
            testScoringRule.calledWorkChunkList.get(0).get(0)
    );
    assertEquals(1, testScoringRule.nodesScoreList.size());
    assertEquals(2, testScoringRule.nodesScoreList.get(0).getScore(j.jenkins));
    assertEquals(12, testScoringRule.nodesScoreList.get(0).getScore(node1));
    assertEquals(4, testScoringRule.nodesScoreList.get(0).getScore(node2));
}
 
开发者ID:ikedam,项目名称:scoring-load-balancer,代码行数:32,代码来源:NodePreferenceScoringRuleJenkinsTest.java



注:本文中的hudson.slaves.DumbSlave类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java SpringListener类代码示例发布时间:2022-05-21
下一篇:
Java PropertyPlaceholderAutoConfiguration类代码示例发布时间:2022-05-21
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap