-
Notifications
You must be signed in to change notification settings - Fork 195
Expand file tree
/
Copy pathedit.py
More file actions
93 lines (82 loc) · 4.01 KB
/
edit.py
File metadata and controls
93 lines (82 loc) · 4.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
"""Edit a CDN Account."""
# :license: MIT, see LICENSE for more details.
import click
import SoftLayer
from SoftLayer.CLI import environment
from SoftLayer.CLI import formatting
from SoftLayer.CLI import helpers
@click.command(cls=SoftLayer.CLI.command.SLCommand, )
@click.argument('identifier')
@click.option('--header', '-H',
type=click.STRING,
help="Host header."
)
@click.option('--http-port', '-t',
type=click.INT,
help="HTTP port."
)
@click.option('--https-port', '-s',
type=click.INT,
help="HTTPS port."
)
@click.option('--origin', '-o',
type=click.STRING,
help="Origin server address."
)
@click.option('--respect-headers', '-r',
type=click.Choice(['1', '0']),
help="Respect headers. The value 1 is On and 0 is Off."
)
@click.option('--cache', '-c', type=str,
help="Cache key optimization. These are the valid options to choose: 'include-all', 'ignore-all', "
"'include-specified', 'ignore-specified'. If you select 'include-specified' or 'ignore-specified' "
"please add to option --cache-description.\n"
" e.g --cache=include-specified --cache-description=description."
)
@click.option('--cache-description', '-C', type=str,
help="In cache option, if you select 'include-specified' or 'ignore-specified', "
"please add a description too using this option.\n"
"e.g --cache include-specified --cache-description description."
)
@click.option('--performance-configuration', '-p',
type=click.Choice(['General web delivery', 'Large file optimization', 'Video on demand optimization']),
help="Optimize for, General web delivery', 'Large file optimization', 'Video on demand optimization', "
"the Dynamic content acceleration option is not added because this has a special configuration."
)
@environment.pass_env
def cli(env, identifier, header, http_port, https_port, origin, respect_headers, cache,
cache_description, performance_configuration):
"""Edit a CDN Account.
Note: You can use the hostname or uniqueId as IDENTIFIER.
"""
manager = SoftLayer.CDNManager(env.client)
cdn_id = helpers.resolve_id(manager.resolve_ids, identifier, 'CDN')
cache_result = {}
if cache or cache_description:
if len(cache) > 1:
cache_result['cacheKeyQueryRule'] = cache
else:
cache_result['cacheKeyQueryRule'] = cache[0]
cdn_result = manager.edit(cdn_id, header=header, http_port=http_port, https_port=https_port, origin=origin,
respect_headers=respect_headers, cache=cache_result, cache_description=cache_description,
performance_configuration=performance_configuration)
table = formatting.KeyValueTable(['name', 'value'])
table.align['name'] = 'r'
table.align['value'] = 'l'
for cdn in cdn_result:
table.add_row(['Create Date', cdn.get('createDate')])
table.add_row(['Header', cdn.get('header')])
if cdn.get('httpPort'):
table.add_row(['Http Port', cdn.get('httpPort')])
if cdn.get('httpsPort'):
table.add_row(['Https Port', cdn.get('httpsPort')])
table.add_row(['Origin Type', cdn.get('originType')])
table.add_row(['Performance Configuration', cdn.get('performanceConfiguration')])
table.add_row(['Protocol', cdn.get('protocol')])
table.add_row(['Respect Headers', cdn.get('respectHeaders')])
table.add_row(['Unique Id', cdn.get('uniqueId')])
table.add_row(['Vendor Name', cdn.get('vendorName')])
table.add_row(['Cache key optimization', cdn.get('cacheKeyQueryRule')])
table.add_row(['cname', cdn.get('cname')])
table.add_row(['Origin server address', cdn.get('originHost')])
env.fout(table)