def server_delete(server_id, force): ''' 指定したサーバーを削除する。 Paramters --------- server_id: str 対象サーバーのID force: bool 削除ロックが設定してあった場合でも削除を強行するか Returns ------- None ''' if force: print_json(compute.delete_server(server_id)) else: is_delete_locked = (compute.describe_server(server_id) .get('server', {}) .get('metadata', {}) .get('IsDeleteLocked', 'False')) if is_delete_locked == 'True': print('このサーバーは削除ロックされています。') else: print_json(compute.delete_server(server_id))
def image_search(keyword): print_json({ 'images': list( filter(lambda x: keyword in x.get('name', ''), compute.list_images().get('images', []))) })
def flavor_search(keyword): print_json({ 'flavors': list( filter(lambda x: keyword in x.get('name', ''), compute.list_flavors().get('flavors', []))) })
def network_list(local_only): if local_only: # local で始まる network のみを表示する print_json({ 'networks': list( filter(lambda x: x.get('name', '').startswith('local'), network.list_networks().get('networks', []))) }) else: print_json(network.list_networks())
def secutiry_group_create_rule(direction, ether_type, security_group_id, port_range_min=None, port_range_max=None, protocol=None, remote_group_id=None, remote_ip_prefix=None): print_json( network.create_security_group_rule(direction, ether_type, security_group_id, port_range_min, port_range_max, protocol, remote_group_id, remote_ip_prefix))
def server_describe(server_id): ''' 指定したサーバーの情報を JSON 形式で標準出力する。 Paramters --------- server_id: str 対象サーバーのID Returns ------- None ''' print_json(compute.describe_server(server_id))
def server_start(server_id): ''' 指定したサーバーを起動する。 Paramters --------- server_id: str 対象サーバーのID Returns ------- None ''' print_json(compute.start_server(server_id))
def server_stop(server_id, force): ''' 指定したサーバーを停止起動する。 Paramters --------- server_id: str 対象サーバーのID force: bool 強制停止するか Returns ------- None ''' print_json(compute.stop_server(server_id, force))
def server_list(detail): ''' サーバーの一覧を JSON 形式で標準出力する。 Paramters --------- detail: bool 詳細を表示するか Returns ------- None ''' if detail: print_json(compute.list_servers_detail()) else: print_json(compute.list_servers())
def server_create(image_ref, flavor_ref, admin_pass=None, key_name=None, security_groups=None, instance_name_tag=None, volume_id=None, vnc_keymap=None, user_data=None): ''' サーバーを新規に作成する。 作成したサーバーの情報を JSON 形式で標準出力する。 Paramters --------- image_ref: str 【必須項目】使用するイメージの UUID flavor_ref: str 【必須項目】VM プランの UUID admin_pass: str VM の root パスワード 指定しなかったら * パブリックイメージの場合ランダムなパスワード * プライベートイメージの場合元のパスワード が設定される key_name: str SSH キーの名前 security_groups: list of str アタッチするセキュリティグループのリスト 多分デフォルトで作成されるポートに適用されるやつ instance_name_tag: str VM に設定するネームタグ volume_id: str アタッチする Volume の ID vnc_keymap: str キーマップ(en-us, ja のいずれか) user_data: str スタートアップスクリプト ※ ファイル名指定でもよいかも Returns ------- None ''' print_json(compute.create_server(image_ref, flavor_ref, admin_pass, key_name, security_groups, instance_name_tag, volume_id, vnc_keymap, user_data))
def server_search(keyword): ''' ネームタグをキーワード検索してヒットしたサーバーの詳細を表示する。 Paramters --------- keyword: str 検索キーワード Returns ------- None ''' print_json({ 'servers': list(filter( lambda x: keyword in x.get('metadata', {}).get('instance_name_tag', ''), compute.list_servers_detail().get('servers', []) )) })
def port_update(port_id, security_group_ids): print_json(network.update_port(port_id, security_group_ids))
def security_group_describe(security_group_id): print_json(network.describe_security_group(security_group_id))
def server_detach_port(server_id, port_id): print_json(compute.detach_port(server_id, port_id))
def server_list_ports(server_id): print_json(compute.list_ports(server_id))
def security_group_list_rules(): print_json(network.list_security_group_rules())
def security_group_delete(security_group_id): print_json(network.delete_security_group(security_group_id))
def port_delete(port_id): print_json(network.delete_port(port_id))
def port_describe(port_id): print_json(network.describe_port(port_id))
def security_group_describe_rule(rule_id): print_json(network.describe_security_group_rule(rule_id))
def network_describe(network_id): print_json(network.describe_network(network_id))
def network_delete(network_id): print_json(network.delete_network(network_id))
def network_create(): print_json(network.create_network())
def security_group_create(name, description=None): print_json(network.create_security_group(name, description))
def port_list(): print_json(network.list_ports())
def subnet_describe(subnet_id): print_json(network.describe_subnet(subnet_id))
def port_create(network_id, ip_address, subnet_id, security_group_ids=None): print_json( network.create_port(network_id, ip_address, subnet_id, security_group_ids))
def server_attach_port(server_id, port_id): print_json(compute.attach_port(server_id, port_id))
def flavor_list(): print_json(compute.list_flavors())
def subnet_create(network_id, cidr): print_json(network.create_subnet(network_id, cidr))