153 lines
5.2 KiB
Diff
153 lines
5.2 KiB
Diff
From 31548d184c977521dad5e6320c7a74ed732c19bb Mon Sep 17 00:00:00 2001
|
|
From: dongchen126 <51401223+dongchen126@users.noreply.github.com>
|
|
Date: Thu, 11 Jul 2019 14:05:58 +0800
|
|
Subject: [PATCH 1/4] Update fence_aliyun.py
|
|
|
|
1.Import region provider to enable Alibaba cloud private zone functionality which support API endpoint access from intranet
|
|
2.Add ram role functionality to improve security which disable AccessKey ID and Access Key Secret
|
|
---
|
|
agents/aliyun/fence_aliyun.py | 28 +++++++++++++++++++++-------
|
|
1 file changed, 21 insertions(+), 7 deletions(-)
|
|
|
|
diff --git a/agents/aliyun/fence_aliyun.py b/agents/aliyun/fence_aliyun.py
|
|
index d780e2ab..aea1ea8f 100644
|
|
--- a/agents/aliyun/fence_aliyun.py
|
|
+++ b/agents/aliyun/fence_aliyun.py
|
|
@@ -15,6 +15,7 @@
|
|
from aliyunsdkecs.request.v20140526.StartInstanceRequest import StartInstanceRequest
|
|
from aliyunsdkecs.request.v20140526.StopInstanceRequest import StopInstanceRequest
|
|
from aliyunsdkecs.request.v20140526.RebootInstanceRequest import RebootInstanceRequest
|
|
+ from aliyunsdkcore.profile import region_provider
|
|
except ImportError:
|
|
pass
|
|
|
|
@@ -121,12 +122,20 @@ def define_new_opts():
|
|
"required" : "0",
|
|
"order" : 4
|
|
}
|
|
+ all_opt["ram_role"] = {
|
|
+ "getopt": "m:",
|
|
+ "longopt": "ram-role",
|
|
+ "help": "-m, --ram-role=[name] Ram Role",
|
|
+ "shortdesc": "Ram Role.",
|
|
+ "required": "0",
|
|
+ "order": 5
|
|
+ }
|
|
|
|
# Main agent method
|
|
def main():
|
|
conn = None
|
|
|
|
- device_opt = ["port", "no_password", "region", "access_key", "secret_key"]
|
|
+ device_opt = ["port", "no_password", "region", "access_key", "secret_key", "ram_role"]
|
|
|
|
atexit.register(atexit_handler)
|
|
|
|
@@ -144,13 +153,18 @@ def main():
|
|
|
|
run_delay(options)
|
|
|
|
- if "--region" in options and "--access-key" in options and "--secret-key" in options:
|
|
+ if "--region" in options:
|
|
region = options["--region"]
|
|
- access_key = options["--access-key"]
|
|
- secret_key = options["--secret-key"]
|
|
- conn = client.AcsClient(access_key, secret_key, region)
|
|
-
|
|
-
|
|
+ if "--access-key" in options and "--secret-key" in options:
|
|
+ access_key = options["--access-key"]
|
|
+ secret_key = options["--secret-key"]
|
|
+ conn = client.AcsClient(access_key, secret_key, region)
|
|
+ elif "--ram-role" in options:
|
|
+ ram_role = options["--ram-role"]
|
|
+ role = EcsRamRoleCredential(ram_role)
|
|
+ conn = client.AcsClient(region_id=region, credential=role)
|
|
+ region_provider.modify_point('Ecs', region, 'ecs.%s.aliyuncs.com' % region)
|
|
+
|
|
# Operate the fencing device
|
|
result = fence_action(conn, options, set_power_status, get_power_status, get_nodes_list)
|
|
sys.exit(result)
|
|
|
|
From 285d29d398bbf8f87da7acfde3f89f83b32fa586 Mon Sep 17 00:00:00 2001
|
|
From: chen dong <51401223+dongchen126@users.noreply.github.com>
|
|
Date: Thu, 11 Jul 2019 15:30:10 +0800
|
|
Subject: [PATCH 2/4] Update fence_aliyun.xml
|
|
|
|
Add ram role for security
|
|
Add region provider for private zone functionality
|
|
---
|
|
tests/data/metadata/fence_aliyun.xml | 5 +++++
|
|
1 file changed, 5 insertions(+)
|
|
|
|
diff --git a/tests/data/metadata/fence_aliyun.xml b/tests/data/metadata/fence_aliyun.xml
|
|
index b41d82bf..eecd6f4e 100644
|
|
--- a/tests/data/metadata/fence_aliyun.xml
|
|
+++ b/tests/data/metadata/fence_aliyun.xml
|
|
@@ -33,6 +33,11 @@
|
|
<content type="string" />
|
|
<shortdesc lang="en">Secret Key.</shortdesc>
|
|
</parameter>
|
|
+ <parameter name="ram_role" unique="0" required="0">
|
|
+ <getopt mixed="-m, --ram-role=[name]" />
|
|
+ <content type="string" />
|
|
+ <shortdesc lang="en">Ram Role.</shortdesc>
|
|
+ </parameter>
|
|
<parameter name="quiet" unique="0" required="0">
|
|
<getopt mixed="-q, --quiet" />
|
|
<content type="boolean" />
|
|
|
|
From d4de57fdb94eeee483988584086c5690c8967f76 Mon Sep 17 00:00:00 2001
|
|
From: chen dong <51401223+dongchen126@users.noreply.github.com>
|
|
Date: Wed, 24 Jul 2019 17:23:48 +0800
|
|
Subject: [PATCH 3/4] Update fence_aliyun.py
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
delet paramater “m”
|
|
---
|
|
agents/aliyun/fence_aliyun.py | 4 ++--
|
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/agents/aliyun/fence_aliyun.py b/agents/aliyun/fence_aliyun.py
|
|
index aea1ea8f..3bc825fe 100644
|
|
--- a/agents/aliyun/fence_aliyun.py
|
|
+++ b/agents/aliyun/fence_aliyun.py
|
|
@@ -123,9 +123,9 @@ def define_new_opts():
|
|
"order" : 4
|
|
}
|
|
all_opt["ram_role"] = {
|
|
- "getopt": "m:",
|
|
+ "getopt": ":",
|
|
"longopt": "ram-role",
|
|
- "help": "-m, --ram-role=[name] Ram Role",
|
|
+ "help": "--ram-role=[name] Ram Role",
|
|
"shortdesc": "Ram Role.",
|
|
"required": "0",
|
|
"order": 5
|
|
|
|
From 367c17ef4f44b6cce2d10f0a220b55b02d0d631e Mon Sep 17 00:00:00 2001
|
|
From: chen dong <51401223+dongchen126@users.noreply.github.com>
|
|
Date: Wed, 24 Jul 2019 17:25:39 +0800
|
|
Subject: [PATCH 4/4] Update fence_aliyun.xml
|
|
|
|
delete "m" parameter
|
|
---
|
|
tests/data/metadata/fence_aliyun.xml | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/tests/data/metadata/fence_aliyun.xml b/tests/data/metadata/fence_aliyun.xml
|
|
index eecd6f4e..2de3a8aa 100644
|
|
--- a/tests/data/metadata/fence_aliyun.xml
|
|
+++ b/tests/data/metadata/fence_aliyun.xml
|
|
@@ -34,7 +34,7 @@
|
|
<shortdesc lang="en">Secret Key.</shortdesc>
|
|
</parameter>
|
|
<parameter name="ram_role" unique="0" required="0">
|
|
- <getopt mixed="-m, --ram-role=[name]" />
|
|
+ <getopt mixed="--ram-role=[name]" />
|
|
<content type="string" />
|
|
<shortdesc lang="en">Ram Role.</shortdesc>
|
|
</parameter>
|