/** * Copyright 2016, Xiaomi. * All rights reserved. * Author: yongxing@xiaomi.com */ package com.xiaomi.infra.codelab.talos; import java.util.Properties; import libthrift091.TException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.xiaomi.infra.galaxy.rpc.thrift.Credential; import com.xiaomi.infra.galaxy.rpc.thrift.UserType; import com.xiaomi.infra.galaxy.talos.admin.TalosAdmin; import com.xiaomi.infra.galaxy.talos.client.TalosClientConfig; import com.xiaomi.infra.galaxy.talos.thrift.AddSubResourceNameRequest; import com.xiaomi.infra.galaxy.talos.thrift.DescribeTopicRequest; import com.xiaomi.infra.galaxy.talos.thrift.Topic; import com.xiaomi.infra.galaxy.talos.thrift.TopicTalosResourceName; public class AddSubResourceNameDemo { private static final Logger LOG = LoggerFactory.getLogger(AddSubResourceNameDemo.class); // authenticate for developer private static final String accessKey = "$your_accountKey"; private static final String accessSecret = "$your_accountSecret"; // your OrgId and TeamId to grant private static final String topicName = "$your_topicName"; private static final String orgId = "$your_org_id"; private static final String teamId = "$your_team_id"; private TopicTalosResourceName resourceName; private Credential credential; private TalosAdmin talosAdmin; public AddSubResourceNameDemo() throws TException { Properties properties = new Properties(); properties.setProperty("galaxy.talos.service.endpoint", "$serviceURI"); TalosClientConfig clientConfig = new TalosClientConfig(properties); // credential credential = new Credential(); credential.setSecretKeyId(accessKey) .setSecretKey(accessSecret) .setType(UserType.DEV_XIAOMI); // init admin talosAdmin = new TalosAdmin(clientConfig, credential); getTopicTalosResourceName(); } public void migrate() throws TException { AddSubResourceNameRequest subRequest = new AddSubResourceNameRequest( resourceName, orgId, teamId); talosAdmin.addSubResourceName(subRequest); } // get topicTalosResourceName by topicName private void getTopicTalosResourceName() throws TException { Topic topic = talosAdmin.describeTopic(new DescribeTopicRequest(topicName)); resourceName = topic.getTopicInfo().getTopicTalosResourceName(); LOG.info("Topic resourceName is: " + resourceName); } public static void main(String[] args) { try { AddSubResourceNameDemo addSubDemo = new AddSubResourceNameDemo(); addSubDemo.migrate(); } catch (TException e) { LOG.error("add sub name error: ", e); } } }