99from SoftLayer .CLI .vlan .detail import get_gateway_firewall
1010from SoftLayer import utils
1111
12- COLUMNS = ['id' ,
13- 'number' ,
14- 'name' ,
12+ COLUMNS = ['Id' ,
13+ 'Number' ,
14+ 'Fully qualified name' ,
15+ 'Name' ,
16+ 'Network' ,
17+ 'Data center' ,
18+ 'Pod' ,
1519 'Gateway/Firewall' ,
16- 'datacenter' ,
17- 'hardware' ,
18- 'virtual_servers' ,
19- 'public_ips' ,
20- 'premium' ,
21- 'tag' ]
20+ 'Hardware' ,
21+ 'Virtual servers' ,
22+ 'Public ips' ,
23+ 'Premium' ,
24+ 'Tags' ]
2225
2326
2427@click .command (cls = SoftLayer .CLI .command .SLCommand , )
3538 show_default = True )
3639@environment .pass_env
3740def cli (env , sortby , datacenter , number , name , limit ):
38- """List VLANs."""
41+ """List VLANs.
42+
43+ Note: A * Indicates a POD is closing soon. Ex:[red] Pod01* [/red]
44+ """
3945
4046 mgr = SoftLayer .NetworkManager (env .client )
4147
@@ -46,15 +52,23 @@ def cli(env, sortby, datacenter, number, name, limit):
4652 vlan_number = number ,
4753 name = name ,
4854 limit = limit )
55+
56+ mask = """mask[name, datacenterLongName, frontendRouterId, capabilities, datacenterId, backendRouterId,
57+ backendRouterName, frontendRouterName]"""
58+ pods = mgr .get_pods (mask = mask )
59+
4960 for vlan in vlans :
5061 billing = 'Yes' if vlan .get ('billingItem' ) else 'No'
5162
5263 table .add_row ([
5364 vlan .get ('id' ),
5465 vlan .get ('vlanNumber' ),
66+ vlan .get ('fullyQualifiedName' ),
5567 vlan .get ('name' ) or formatting .blank (),
56- get_gateway_firewall ( vlan ),
68+ vlan . get ( 'networkSpace' ). capitalize ( ),
5769 utils .lookup (vlan , 'primaryRouter' , 'datacenter' , 'name' ),
70+ get_pod_with_closed_announcement (vlan , pods ),
71+ get_gateway_firewall (vlan ),
5872 vlan .get ('hardwareCount' ),
5973 vlan .get ('virtualGuestCount' ),
6074 vlan .get ('totalPrimaryIpAddressCount' ),
@@ -63,3 +77,16 @@ def cli(env, sortby, datacenter, number, name, limit):
6377 ])
6478
6579 env .fout (table )
80+
81+
82+ def get_pod_with_closed_announcement (vlan , pods ):
83+ """Gets pods with announcement to close"""
84+ for pod in pods :
85+ if utils .lookup (pod , 'backendRouterId' ) == utils .lookup (vlan , 'primaryRouter' , 'id' ) \
86+ or utils .lookup (pod , 'frontendRouterId' ) == utils .lookup (vlan , 'primaryRouter' , 'id' ):
87+ if 'CLOSURE_ANNOUNCED' in utils .lookup (pod , 'capabilities' ):
88+ name_pod = utils .lookup (pod , 'name' ).split ('.' )[1 ] + '*'
89+ return "[red]" + name_pod .capitalize () + "[/red]"
90+ else :
91+ return utils .lookup (pod , 'name' ).split ('.' )[1 ].capitalize ()
92+ return ''
0 commit comments