Skip to content

Commit f7267c5

Browse files
author
欧林宝
authored
publish jdcloud-cli 1.0.0 (#31)
1 parent b0d7ed5 commit f7267c5

33 files changed

Lines changed: 4551 additions & 1824 deletions

cement/ext/ext_argparse.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -776,6 +776,9 @@ def _process_commands(self, controller):
776776
LOG.debug("processing arguments for '%s' " % command['label'] +
777777
"command namespace")
778778
for arg, kw in command['arguments']:
779+
if '--input-json' in controller.app.argv:
780+
kw['required'] = False
781+
779782
LOG.debug('adding argument (args=%s, kwargs=%s)' %
780783
(arg, kw))
781784
command_parser.add_argument(*arg, **kw)

jdcloud_cli/client_factory.py

Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -18,37 +18,37 @@
1818

1919
from jdcloud_sdk.core.config import Config
2020
from jdcloud_sdk.core.credential import Credential
21-
from jdcloud_sdk.services.vm.client.VmClient import VmClient
21+
from jdcloud_sdk.services.rds.client.RdsClient import RdsClient
22+
from jdcloud_sdk.services.jke.client.JkeClient import JkeClient
23+
from jdcloud_sdk.services.ams.client.AmsClient import AmsClient
24+
from jdcloud_sdk.services.streamcomputer.client.StreamcomputerClient import StreamcomputerClient
25+
from jdcloud_sdk.services.ipanti.client.IpantiClient import IpantiClient
26+
from jdcloud_sdk.services.datastar.client.DatastarClient import DatastarClient
27+
from jdcloud_sdk.services.oss.client.OssClient import OssClient
28+
from jdcloud_sdk.services.redis.client.RedisClient import RedisClient
2229
from jdcloud_sdk.services.kms.client.KmsClient import KmsClient
2330
from jdcloud_sdk.services.iam.client.IamClient import IamClient
24-
from jdcloud_sdk.services.disk.client.DiskClient import DiskClient
25-
from jdcloud_sdk.services.mongodb.client.MongodbClient import MongodbClient
26-
from jdcloud_sdk.services.ias.client.IasClient import IasClient
27-
from jdcloud_sdk.services.jdfusion.client.JdfusionClient import JdfusionClient
31+
from jdcloud_sdk.services.sop.client.SopClient import SopClient
2832
from jdcloud_sdk.services.function.client.FunctionClient import FunctionClient
29-
from jdcloud_sdk.services.mps.client.MpsClient import MpsClient
30-
from jdcloud_sdk.services.streambus.client.StreambusClient import StreambusClient
33+
from jdcloud_sdk.services.iothub.client.IothubClient import IothubClient
3134
from jdcloud_sdk.services.baseanti.client.BaseantiClient import BaseantiClient
32-
from jdcloud_sdk.services.jke.client.JkeClient import JkeClient
35+
from jdcloud_sdk.services.ias.client.IasClient import IasClient
36+
from jdcloud_sdk.services.mongodb.client.MongodbClient import MongodbClient
3337
from jdcloud_sdk.services.live.client.LiveClient import LiveClient
34-
from jdcloud_sdk.services.ipanti.client.IpantiClient import IpantiClient
35-
from jdcloud_sdk.services.httpdns.client.HttpdnsClient import HttpdnsClient
36-
from jdcloud_sdk.services.rds.client.RdsClient import RdsClient
37-
from jdcloud_sdk.services.redis.client.RedisClient import RedisClient
38-
from jdcloud_sdk.services.monitor.client.MonitorClient import MonitorClient
38+
from jdcloud_sdk.services.jdfusion.client.JdfusionClient import JdfusionClient
39+
from jdcloud_sdk.services.clouddnsservice.client.ClouddnsserviceClient import ClouddnsserviceClient
3940
from jdcloud_sdk.services.cps.client.CpsClient import CpsClient
40-
from jdcloud_sdk.services.datastar.client.DatastarClient import DatastarClient
4141
from jdcloud_sdk.services.vpc.client.VpcClient import VpcClient
42-
from jdcloud_sdk.services.sop.client.SopClient import SopClient
43-
from jdcloud_sdk.services.iothub.client.IothubClient import IothubClient
42+
from jdcloud_sdk.services.monitor.client.MonitorClient import MonitorClient
4443
from jdcloud_sdk.services.xdata.client.XdataClient import XdataClient
44+
from jdcloud_sdk.services.cdn.client.CdnClient import CdnClient
4545
from jdcloud_sdk.services.cr.client.CrClient import CrClient
46+
from jdcloud_sdk.services.streambus.client.StreambusClient import StreambusClient
47+
from jdcloud_sdk.services.httpdns.client.HttpdnsClient import HttpdnsClient
48+
from jdcloud_sdk.services.mps.client.MpsClient import MpsClient
49+
from jdcloud_sdk.services.disk.client.DiskClient import DiskClient
4650
from jdcloud_sdk.services.nc.client.NcClient import NcClient
47-
from jdcloud_sdk.services.cdn.client.CdnClient import CdnClient
48-
from jdcloud_sdk.services.clouddnsservice.client.ClouddnsserviceClient import ClouddnsserviceClient
49-
from jdcloud_sdk.services.oss.client.OssClient import OssClient
50-
from jdcloud_sdk.services.streamcomputer.client.StreamcomputerClient import StreamcomputerClient
51-
from jdcloud_sdk.services.ams.client.AmsClient import AmsClient
51+
from jdcloud_sdk.services.vm.client.VmClient import VmClient
5252
from jdcloud_cli.config import ProfileManager
5353
from jdcloud_cli.logger import get_logger
5454

@@ -60,37 +60,37 @@ def __init__(self, service):
6060

6161
def get(self, app):
6262
client_map = {
63-
'vm': VmClient,
63+
'rds': RdsClient,
64+
'jke': JkeClient,
65+
'ams': AmsClient,
66+
'streamcomputer': StreamcomputerClient,
67+
'ipanti': IpantiClient,
68+
'datastar': DatastarClient,
69+
'oss': OssClient,
70+
'redis': RedisClient,
6471
'kms': KmsClient,
6572
'iam': IamClient,
66-
'disk': DiskClient,
67-
'mongodb': MongodbClient,
68-
'ias': IasClient,
69-
'jdfusion': JdfusionClient,
73+
'sop': SopClient,
7074
'function': FunctionClient,
71-
'mps': MpsClient,
72-
'streambus': StreambusClient,
75+
'iothub': IothubClient,
7376
'baseanti': BaseantiClient,
74-
'jke': JkeClient,
77+
'ias': IasClient,
78+
'mongodb': MongodbClient,
7579
'live': LiveClient,
76-
'ipanti': IpantiClient,
77-
'httpdns': HttpdnsClient,
78-
'rds': RdsClient,
79-
'redis': RedisClient,
80-
'monitor': MonitorClient,
80+
'jdfusion': JdfusionClient,
81+
'clouddnsservice': ClouddnsserviceClient,
8182
'cps': CpsClient,
82-
'datastar': DatastarClient,
8383
'vpc': VpcClient,
84-
'sop': SopClient,
85-
'iothub': IothubClient,
84+
'monitor': MonitorClient,
8685
'xdata': XdataClient,
86+
'cdn': CdnClient,
8787
'cr': CrClient,
88+
'streambus': StreambusClient,
89+
'httpdns': HttpdnsClient,
90+
'mps': MpsClient,
91+
'disk': DiskClient,
8892
'nc': NcClient,
89-
'cdn': CdnClient,
90-
'clouddnsservice': ClouddnsserviceClient,
91-
'oss': OssClient,
92-
'streamcomputer': StreamcomputerClient,
93-
'ams': AmsClient,
93+
'vm': VmClient,
9494
}
9595

9696
profile_manager = ProfileManager()

jdcloud_cli/config.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ def __init__(self):
5353

5454
def load_current_profile(self):
5555
if self.__current_profile_name not in self.__parser.sections():
56-
print 'Please use `jdc configure add` command to add cli configure first.'
56+
print('Please use `jdc configure add` command to add cli configure first.')
5757
return None
5858

5959
# notice that the type of config info which read from file is unicode
@@ -114,15 +114,15 @@ def set_current_profile(self, name):
114114
f.write(name)
115115
self.__current_profile_name = name
116116
except Exception as e:
117-
return False, e.message
117+
return False, e
118118
return True, ''
119119

120120
def __write_config_file(self):
121121
try:
122122
with open(self.__config_file, 'w+') as f:
123123
self.__parser.write(f)
124124
except Exception as e:
125-
return False, e.message
125+
return False, e
126126
return True, ''
127127

128128
def __make_config_dir(self):

jdcloud_cli/controllers/configure_controller.py

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
from cement.ext.ext_argparse import expose
2020
from jdcloud_cli.controllers.base_controller import BaseController
2121
from jdcloud_cli.config import Config, ProfileManager
22+
from jdcloud_cli.utils import cmd_input
2223

2324

2425
class ConfigureController(BaseController):
@@ -62,27 +63,27 @@ def add(self):
6263
profile = self.app.pargs.profile
6364

6465
if access_key is None:
65-
access_key = raw_input("Please input your access-key:")
66+
access_key = cmd_input("Please input your access-key:")
6667

6768
if access_key == '':
68-
print 'access-key is required.'
69+
print('access-key is required.')
6970
exit(1)
7071

7172
if secret_key is None:
7273
secret_key = getpass("Please input your secret-key:")
7374

7475
if secret_key == '':
75-
print 'secret-key is required.'
76+
print('secret-key is required.')
7677
exit(1)
7778

7879
profile_manager = ProfileManager()
7980
result, msg = profile_manager.add_profile(profile,
8081
Config(access_key, secret_key, region_id, endpoint, scheme, timeout))
8182
if result:
8283
profile_manager.set_current_profile(profile)
83-
print 'Configure successfully!'
84+
print('Configure successfully!')
8485
else:
85-
print msg
86+
print(msg)
8687

8788
@expose(
8889
arguments=[
@@ -99,9 +100,9 @@ def delete(self):
99100
profile_manager = ProfileManager()
100101
result, msg = profile_manager.delete_profile(self.app.pargs.profile)
101102
if result:
102-
print 'Configure successfully!'
103+
print('Configure successfully!')
103104
else:
104-
print msg
105+
print(msg)
105106

106107
@expose(
107108
arguments=[
@@ -118,9 +119,9 @@ def use(self):
118119
profile_manager = ProfileManager()
119120
result, msg = profile_manager.set_current_profile(self.app.pargs.profile)
120121
if result:
121-
print 'Configure successfully!'
122+
print('Configure successfully!')
122123
else:
123-
print msg
124+
print(msg)
124125

125126
@expose(
126127
formatter_class=RawTextHelpFormatter,
@@ -151,6 +152,6 @@ def show_all(self):
151152
def _print_profiles(self, profiles):
152153
for profile in profiles.keys():
153154
items = profiles[profile]
154-
print '================= %s ================' % profile
155+
print('================= %s ================' % profile)
155156
for item in items:
156-
print '%s: \t%s' % (item[0], item[1])
157+
print('%s: \t%s' % (item[0], item[1]))

jdcloud_cli/controllers/services/clouddnsservice.py

Lines changed: 1 addition & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -495,77 +495,6 @@ def batch_set_dns_resolve(self):
495495
except Exception as e:
496496
print(e.message)
497497

498-
@expose(
499-
arguments=[
500-
(['--region-id'], dict(help="""(string) 实例所属的地域ID """, dest='regionId', required=False)),
501-
(['--domain-id'], dict(help="""(string) 域名ID,请使用getDomains接口获取。 """, dest='domainId', required=True)),
502-
(['--id-weights'], dict(help="""(array: setlb) 要设置解析记录的权重参数列表 """, dest='idWeights', required=True)),
503-
(['--type'], dict(help="""(string) 这几条解析记录的类型。可以设置权重的类型有:A、AAAA、CNAME、JNAME """, dest='type', required=True)),
504-
(['--input-json'], dict(help='(json) 以json字符串或文件绝对路径形式作为输入参数。\n字符串方式举例:--input-json \'{"field":"value"}\';\n文件格式举例:--input-json file:///xxxx.json', dest='input_json', required=False)),
505-
(['--headers'], dict(help="""(json) 用户自定义Header,举例:'{"x-jdcloud-security-token":"abc","test":"123"}'""", dest='headers', required=False)),
506-
],
507-
formatter_class=RawTextHelpFormatter,
508-
help=''' 设置域名解析记录的负载均衡 ''',
509-
description='''
510-
设置域名解析记录的负载均衡。
511-
512-
示例: jdc clouddnsservice set-lb --domain-id xxx --id-weights [{"":""}] --type xxx
513-
''',
514-
)
515-
def set_lb(self):
516-
client_factory = ClientFactory('clouddnsservice')
517-
client = client_factory.get(self.app)
518-
if client is None:
519-
return
520-
521-
try:
522-
from jdcloud_sdk.services.clouddnsservice.apis.SetLBRequest import SetLBRequest
523-
params_dict = collect_user_args(self.app)
524-
headers = collect_user_headers(self.app)
525-
req = SetLBRequest(params_dict, headers)
526-
resp = client.send(req)
527-
Printer.print_result(resp)
528-
except ImportError:
529-
print('{"error":"This api is not supported, please use the newer version"}')
530-
except Exception as e:
531-
print(e.message)
532-
533-
@expose(
534-
arguments=[
535-
(['--region-id'], dict(help="""(string) 实例所属的地域ID """, dest='regionId', required=False)),
536-
(['--domain-id'], dict(help="""(string) 域名ID,请使用getDomains接口获取。 """, dest='domainId', required=True)),
537-
(['--type'], dict(help="""(string) 解析记录的类型。有权重的类型有:A、AAAA、CNAME、JNAME """, dest='type', required=True)),
538-
(['--page-number'], dict(help="""(int) 负载均衡记录分页展示的页数,默认为1 """, dest='pageNumber', type=int, required=True)),
539-
(['--page-size'], dict(help="""(int) 负载均衡记录分页展示时每页的记录数,默认为10 """, dest='pageSize', type=int, required=True)),
540-
(['--input-json'], dict(help='(json) 以json字符串或文件绝对路径形式作为输入参数。\n字符串方式举例:--input-json \'{"field":"value"}\';\n文件格式举例:--input-json file:///xxxx.json', dest='input_json', required=False)),
541-
(['--headers'], dict(help="""(json) 用户自定义Header,举例:'{"x-jdcloud-security-token":"abc","test":"123"}'""", dest='headers', required=False)),
542-
],
543-
formatter_class=RawTextHelpFormatter,
544-
help=''' 查看当前域名所有的有负载均衡的解析记录<br>; 这些解析记录分页展示的列表; ''',
545-
description='''
546-
查看当前域名所有的有负载均衡的解析记录<br>; 这些解析记录分页展示的列表; 。
547-
548-
示例: jdc clouddnsservice get-lb --domain-id xxx --type xxx --page-number 0 --page-size 0
549-
''',
550-
)
551-
def get_lb(self):
552-
client_factory = ClientFactory('clouddnsservice')
553-
client = client_factory.get(self.app)
554-
if client is None:
555-
return
556-
557-
try:
558-
from jdcloud_sdk.services.clouddnsservice.apis.GetLBRequest import GetLBRequest
559-
params_dict = collect_user_args(self.app)
560-
headers = collect_user_headers(self.app)
561-
req = GetLBRequest(params_dict, headers)
562-
resp = client.send(req)
563-
Printer.print_result(resp)
564-
except ImportError:
565-
print('{"error":"This api is not supported, please use the newer version"}')
566-
except Exception as e:
567-
print(e.message)
568-
569498
@expose(
570499
arguments=[
571500
(['--region-id'], dict(help="""(string) 地域ID """, dest='regionId', required=False)),
@@ -1019,7 +948,7 @@ def get_monitor_alarm_info(self):
1019948

1020949
@expose(
1021950
arguments=[
1022-
(['--api'], dict(help="""(string) api name """, choices=['get-action-log','get-domains','add-domain','del-domain','update-domain','get-domain-query-count','get-domain-query-traffic','search-rr','get-view-tree','add-rr','update-rr','operate-rr','batch-set-dns-resolve','set-lb','get-lb','add-user-view','del-user-view','get-user-view','add-user-view-ip','del-user-view-ip','get-user-view-ip','get-monitor','add-monitor','get-targets','add-monitor-target','operate-monitor','update-monitor','get-monitor-alarm-info',], required=True)),
951+
(['--api'], dict(help="""(string) api name """, choices=['get-action-log','get-domains','add-domain','del-domain','update-domain','get-domain-query-count','get-domain-query-traffic','search-rr','get-view-tree','add-rr','update-rr','operate-rr','batch-set-dns-resolve','add-user-view','del-user-view','get-user-view','add-user-view-ip','del-user-view-ip','get-user-view-ip','get-monitor','add-monitor','get-targets','add-monitor-target','operate-monitor','update-monitor','get-monitor-alarm-info',], required=True)),
1023952
],
1024953
formatter_class=RawTextHelpFormatter,
1025954
help=''' 生成单个API接口的json骨架空字符串 ''',

0 commit comments

Comments
 (0)