Skip to content

Commit 2ed455f

Browse files
committed
add aksk input
1 parent 738f429 commit 2ed455f

File tree

10 files changed

+90
-171
lines changed

10 files changed

+90
-171
lines changed

package.json

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,19 +66,19 @@
6666
"tc-terraform-resources": [
6767
{
6868
"id": "tcTerraform.loginExplorer",
69-
"name": "%TcTerraform.view.login.explorer%",
69+
"name": "%TcTerraform.view.login%",
7070
"contextualTitle": "Session Explorer",
7171
"visibility": "collapsed"
7272
},
7373
{
7474
"id": "tcTerraform.resourcesExplorer.cvm",
75-
"name": "%TcTerraform.view.resource.explorer.cvm%",
75+
"name": "%TcTerraform.view.resource.cvm%",
7676
"contextualTitle": "Resources Explorer",
7777
"visibility": "collapsed"
7878
},
7979
{
8080
"id": "tcTerraform.helpExplorer",
81-
"name": "%TcTerraform.view.help.explorer%",
81+
"name": "%TcTerraform.view.help%",
8282
"visibility": "collapsed"
8383
}
8484
]
@@ -87,6 +87,10 @@
8787
{
8888
"view": "tcTerraform.loginExplorer",
8989
"contents": "%TcTerraform.view.login.welcome%"
90+
},
91+
{
92+
"view": "tcTerraform.resourcesExplorer.cvm",
93+
"contents": "%TcTerraform.view.login.welcome%"
9094
}
9195
],
9296
"languages": [
@@ -174,6 +178,16 @@
174178
"configuration": {
175179
"title": "TencentCloud Terraform",
176180
"properties": {
181+
"tcTerraform.properties.secretId": {
182+
"type": "string",
183+
"default": "",
184+
"description": "Tencent Cloud Secret ID"
185+
},
186+
"tcTerraform.properties.secretKey": {
187+
"type": "string",
188+
"default": "",
189+
"description": "Tencent Cloud Secret Key"
190+
},
177191
"tcTerraform.terminal": {
178192
"type": "string",
179193
"default": "integrated",

package.nls.json

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
{
2-
"TcTerraform.title": "TencentCloud Terraform",
3-
"TcTerraform.view.login.explorer": "Login TencentCloud",
4-
"TcTerraform.view.login.welcome": "Please login the TencentCloud. If you don't have a account, please [Sign up](https://cloud.tencent.com/register) first.\n[Login TencentCloud](command:tcTerraform.login)",
5-
"TcTerraform.view.welcome": "Welcome to use TencentCloud Terraform extension, please wait for the page loading...",
6-
"TcTerraform.view.login": "登录腾讯云",
7-
"TcTerraform.view.template.explorer": "Tempaltes Management",
8-
"TcTerraform.view.resource.explorer": "Resources Explorer",
9-
"TcTerraform.view.resource.explorer.cvm": "Import Resouce: CVM",
10-
"TcTerraform.view.resource.explorer.tke": "Import Resouce: TKE",
11-
"TcTerraform.view.help.explorer": "Help",
12-
"TcTerraform.view.help.explorer.provider": "TencentCloud Terraform Provider",
13-
"TcTerraform.view.help.explorer.doc": "Documentation",
14-
"TcTerraform.view.help.explorer.repo": "GitHub Repository",
15-
"TcTerraform.AKSK.title": "API AKSK Login",
16-
"TcTerraform.QR.title": "Scan code Login",
17-
"TcTerraform.AKSK.title.placeholder": "请输入腾讯云 API 密钥 {0}",
18-
"TcTerraform.AKSK.title.verify.empty": "{0}不能为空",
19-
"TcTerraform.productName": "TcTerraform Toolkit"
2+
"TcTerraform.title": "Tencent Cloud Terraform",
3+
"TcTerraform.view.login": "Login Tencent Cloud",
4+
"TcTerraform.view.login.welcome": "Please login the Tencent Cloud. [Sign up](https://cloud.tencent.com/register) for a Tencent Cloud account if you do not have one.\n[Sign in Tencent Cloud](command:tcTerraform.login)",
5+
"TcTerraform.view.codesnippet": "Code Snippets and Examples",
6+
"TcTerraform.view.resource": "Resources Explorer",
7+
"TcTerraform.view.resource.cvm": "Import Resouce: CVM",
8+
"TcTerraform.view.resource.tke": "Import Resouce: TKE",
9+
"TcTerraform.view.help": "Help",
10+
"TcTerraform.view.help.provider": "Tencent Cloud Terraform Provider",
11+
"TcTerraform.view.help.doc": "Documentation",
12+
"TcTerraform.view.help.repo": "GitHub Repository",
13+
"TcTerraform.pickup.aksk": "Sign in with [Secret Id/Secret Key]",
14+
"TcTerraform.pickup.oauth": "Sign in with [Tencent Cloud authoritication] (Coming Soon...)",
15+
"TcTerraform.pickup.aksk.placeholder": "Please input your API {0}",
16+
"TcTerraform.pickup.aksk.verify.empty": "{0} can not be empty",
17+
"TcTerraform.welcome": "Welcome to use Tencent Cloud Terraform extension, please wait for the page loading...",
18+
"TcTerraform.logout": "Logout Tencent Cloud ({0})",
19+
"TcTerraform.login": "Login Tencent Cloud..."
2020
}

src/commons/index.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
import * as customerCmd from "./customCmdRegister";
2-
import { registerTencent } from "./tencent";
2+
import { regTencentCommands } from "./tencent";
33
export { tencent } from "./tencent";
44
export * from "./container";
55
export * from "./context";
66
export { cmds } from "./customCmdRegister";
77

8-
export function registerCommon() {
9-
registerTencent();
8+
export function registerExternelCommands() {
9+
regTencentCommands();
1010
customerCmd.regHelpCommands();
1111
customerCmd.regResourceRelatedCommands();
12-
1312
}

src/commons/tencent/commands.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { commands } from "vscode";
22
import user from "./user";
33

4-
export function registerCommands() {
4+
export function registerLoginCmds() {
55
commands.registerCommand(command.TENCENT_LOGIN, user.login);
66

77
// commands.registerCommand(command.TENCENT_LOGINOUT, user.loginOut);

src/commons/tencent/index.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
11
import { commands } from "vscode";
2-
import { registerCommands, command as _command } from "./commands";
2+
import { registerLoginCmds, command as _command } from "./commands";
33

44
import _user from "./user";
55
import _tree from "./treeDataProvider";
66

7-
export async function registerTencent() {
8-
registerCommands();
9-
7+
export async function regTencentCommands() {
8+
registerLoginCmds();
109
await initialization();
1110
}
1211

1312
async function initialization() {
1413
commands.executeCommand(
1514
"setContext",
16-
"tencent.login",
15+
"TcTerraform.login",
1716
!!(await _user.getInfo())
1817
);
1918
}

src/commons/tencent/user/auth/qr.ts

Lines changed: 0 additions & 125 deletions
This file was deleted.

src/commons/tencent/user/index.ts

Lines changed: 33 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { localize } from "vscode-nls-i18n";
2-
import { ExtensionContext, ProgressLocation, window } from "vscode";
2+
import { ExtensionContext, workspace, ConfigurationTarget, window } from "vscode";
3+
import { terraformShellManager } from "../../../client/terminal/terraformShellManager";
34
import { AbstractClient } from "tencentcloud-sdk-nodejs/tencentcloud/common/abstract_client";
45
import { Credential } from "tencentcloud-sdk-nodejs/tencentcloud/common/interface";
56

@@ -16,19 +17,43 @@ export namespace user {
1617
uin: string;
1718
}
1819

19-
export const AKSK_TITLE = "TcTerraform.AKSK.title";
20-
export const AKSK_PLACEHOLD = "TcTerraform.AKSK.title.placeholder";
21-
export const AKSK_EMPTY = "TcTerraform.AKSK.title.verify.empty";
20+
export const AKSK_TITLE = "TcTerraform.pickup.aksk";
21+
export const OAUTH_TITLE = "TcTerraform.pickup.oauth";
22+
export const AKSK_PLACEHOLD = "TcTerraform.pickup.aksk.placeholder";
23+
export const AKSK_EMPTY = "TcTerraform.pickup.aksk.verify.empty";
2224

2325
const USER_INFO = "USER_INFO";
2426

2527
export async function login() {
26-
const api = localize(AKSK_TITLE);
27-
const pick = await window.showQuickPick(["xxxxxxx", api]);
28+
const aksk = localize(AKSK_TITLE);
29+
const oauth = localize(OAUTH_TITLE);
30+
const pick = await window.showQuickPick([aksk, oauth]);
2831

29-
if (pick) {
32+
if (aksk === pick) {
3033
const credential = await getCredentailByInput();
31-
// api === pick ? await getCredentailByInput() : await getCredentailByQr();
34+
const accessKey = credential.secretId;
35+
const secretKey = credential.secretKey;
36+
37+
// 获取当前的配置对象
38+
const config = workspace.getConfiguration();
39+
40+
// 将 const 值设置到指定的环境变量中
41+
config.update('tcTerraform.properties.secretId', accessKey, ConfigurationTarget.Global)
42+
.then(() => {
43+
window.showInformationMessage('设置secretId成功');
44+
}, (error) => {
45+
window.showErrorMessage('设置secretId失败: ' + error);
46+
});
47+
config.update('tcTerraform.properties.secretKey', secretKey, ConfigurationTarget.Global)
48+
.then(() => {
49+
window.showInformationMessage('设置secretKey成功');
50+
}, (error) => {
51+
window.showErrorMessage('设置secretKey失败: ' + error);
52+
});
53+
54+
// terraformShellManager.getShell().runNormalCmd("export TENCENTCLOUD_SECRET_ID=" + accessKey);
55+
// terraformShellManager.getShell().runNormalCmd("export TENCENTCLOUD_SECRET_KEY=" + secretKey);
56+
// aksk === pick ? await getCredentailByInput() : await getCredentailByOAuth();
3257
}
3358
}
3459

src/connectivity/client.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,15 @@ export async function getTkeClient(): Promise<TkeClient> {
3535
}
3636

3737
export async function getCvmClient(region?: string): Promise<CvmClient> {
38-
const secretId = process.env.TENCENTCLOUD_SECRET_ID;
39-
const secretKey = process.env.TENCENTCLOUD_SECRET_KEY;
38+
const config = vscode.workspace.getConfiguration();
39+
const secretId = String(config.get('tcTerraform.properties.secretId'));
40+
const secretKey = String(config.get('tcTerraform.properties.secretKey'));
41+
42+
vscode.window.showInformationMessage('Get Secret ID: ' + secretId);
43+
vscode.window.showInformationMessage('Get Secret KEY: ' + secretKey);
44+
45+
// const secretId = process.env.TENCENTCLOUD_SECRET_ID;
46+
// const secretKey = process.env.TENCENTCLOUD_SECRET_KEY;
4047

4148
if (secretId === undefined || secretKey === undefined || secretId === null || secretKey === null) {
4249
vscode.window.showErrorMessage("Cannot find TENCENTCLOUD_SECRET_ID and TENCENTCLOUD_SECRET_KEY, please set them first!");

src/extension.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { terraformShellManager } from "./client/terminal/terraformShellManager";
88
import { DialogOption } from "./utils/uiUtils";
99
import { TerraformCompletionProvider } from './autocomplete/TerraformCompletionProvider';
1010
import { TerraformDefinitionProvider } from './autocomplete/TerraformDefinitionProvider';
11-
import { registerCommon } from './commons';
11+
import { registerExternelCommands } from './commons';
1212
import { registerView } from './views';
1313
import { TerraformRunner } from './client/runner/terraformRunner';
1414
import { TerraformerRunner } from './client/runner/terraformerRunner';
@@ -121,7 +121,7 @@ export async function activate(context: vscode.ExtensionContext) {
121121
// import-resource
122122
console.log('activate the import feature');
123123
init(context.extensionPath);
124-
registerCommon();
124+
registerExternelCommands();
125125
registerView();
126126
}
127127

src/views/help/helpExplorer.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,23 @@ export class HelpProvider extends TreeDataProvider {
1212
async getChildren(element?: tencent.tree.TreeItem | undefined): Promise<tencent.tree.TreeItem[]> {
1313
if (!element) {
1414
const elements = [
15-
new TreeItem(localize("TcTerraform.view.help.explorer.provider"), {
15+
new TreeItem(localize("TcTerraform.view.help.provider"), {
1616
// iconPath: Icons.getIcon("tools"),
1717
command: {
1818
command: cmds.openURL,
1919
title: "",
2020
arguments: ["https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/latest"],
2121
},
2222
}),
23-
new TreeItem(localize("TcTerraform.view.help.explorer.doc"), {
23+
new TreeItem(localize("TcTerraform.view.help.doc"), {
2424
// iconPath: Icons.getIcon("book"),
2525
command: {
2626
command: cmds.openURL,
2727
title: "",
2828
arguments: ["https://cloud.tencent.com/product/tiat"],
2929
},
3030
}),
31-
new TreeItem(localize("TcTerraform.view.help.explorer.repo"), {
31+
new TreeItem(localize("TcTerraform.view.help.repo"), {
3232
// iconPath: Icons.getIcon("github"),
3333
command: {
3434
command: cmds.openURL,

0 commit comments

Comments
 (0)