Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-15-SP1:GA
fence-agents.12648
0001-Update-fence_aliyun.py-279.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0001-Update-fence_aliyun.py-279.patch of Package fence-agents.12648
From b6fe4dc4c742dc1d9375db9a1b1527cd418b6ebd Mon Sep 17 00:00:00 2001 From: chen dong <51401223+dongchen126@users.noreply.github.com> Date: Wed, 24 Jul 2019 18:04:12 +0800 Subject: [PATCH 1/1] Update fence_aliyun.py (#279) fence_aliyun: add ram role support - Add ram role for security - Add region provider for private zone functionality --- agents/aliyun/fence_aliyun.py | 28 +++++++++++++++++++++------- tests/data/metadata/fence_aliyun.xml | 5 +++++ 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/agents/aliyun/fence_aliyun.py b/agents/aliyun/fence_aliyun.py index d780e2ab..3bc825fe 100644 --- a/agents/aliyun/fence_aliyun.py +++ b/agents/aliyun/fence_aliyun.py @@ -15,6 +15,7 @@ try: 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": ":", + "longopt": "ram-role", + "help": "--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) diff --git a/tests/data/metadata/fence_aliyun.xml b/tests/data/metadata/fence_aliyun.xml index b41d82bf..2de3a8aa 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="--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" /> -- 2.16.4
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor