def main(): """メイン関数""" # Clientクラスをインスタンス化 c = k5c.Client() # トークンを取得 token = c.getToken() # tokenオブジェクトをダンプ表示 print(json.dumps(token, indent=2)) return 0
def access_api(data=None): """REST APIにアクセスします""" # 接続先URL url = k5c.EP_NETWORK + "/v2.0/fw/firewall_rules" # Clientクラスをインスタンス化 c = k5c.Client() # POSTメソッドで作成して、結果のオブジェクトを得る r = c.post(url=url, data=data) return r
def access_api(router_id="", data=None): """REST APIにアクセスします""" # 接続先 url = k5c.EP_NETWORK + "/v2.0/routers/" + router_id + "/add_router_interface" # Clientクラスをインスタンス化 c = k5c.Client() # PUTメソッドを発行して、結果のオブジェクトを得る r = c.put(url=url, data=data) return r
def access_api(): """REST APIにアクセスします""" # 接続先 url = k5c.EP_IDENTITY + "/v3/users?domain_id=" + k5c.DOMAIN_ID # Clientクラスをインスタンス化 c = k5c.Client() # GETメソッドで取得して、結果のオブジェクトを得る r = c.get(url=url) return r
def access_api(floatingip_id="", data=None): """REST APIにアクセスします""" # 接続先URL url = k5c.EP_NETWORK + "/v2.0/floatingips/" + floatingip_id # Clientクラスをインスタンス化 c = k5c.Client() # PUTメソッド r = c.put(url=url, data=data) return r
def access_api(ncep_id="", data=None): """REST APIにアクセスします""" # 接続先 url = k5c.EP_NETWORK + "/v2.0/network_connector_endpoints/" + ncep_id + "/disconnect" # Clientクラスをインスタンス化 c = k5c.Client() # PUTメソッドを発行して、結果のオブジェクトを得る r = c.put(url=url, data=data) return r
def access_api(ipsecpolicy_id=""): """REST APIにアクセスします""" # 接続先 url = k5c.EP_NETWORK + "/v2.0/vpn/ipsecpolicies/" + ipsecpolicy_id # Clientクラスをインスタンス化 c = k5c.Client() # GETメソッドで取得して、結果のオブジェクトを得る r = c.get(url=url) return r
def access_api(): """REST APIにアクセスします""" # 接続先 url = k5c.EP_NETWORK + "/v2.0/vpn/ipsec-site-connections" # Clientクラスをインスタンス化 c = k5c.Client() # GETメソッドで取得して、結果のオブジェクトを得る r = c.get(url=url) return r
def access_api(rule_id="", data=None): """REST APIにアクセスします""" # 接続先URL url = k5c.EP_NETWORK + "/v2.0/fw/firewall_rules/" + rule_id # Clientクラスをインスタンス化 c = k5c.Client() # PUTメソッドで更新 r = c.put(url=url, data=data) return r
def access_api(firewall_id="", data=None): """REST APIにアクセスします""" # 接続先 url = k5c.EP_NETWORK + "/v2.0/fw/firewalls/" + firewall_id + "/reset_connections" # Clientクラスをインスタンス化 c = k5c.Client() # PUTメソッドで更新して、結果のオブジェクトを得る r = c.put(url=url, data=data) return r
def access_api(data=None): """REST APIにアクセスします""" # 接続先 url = k5c.EP_NETWORK + "/v2.0/network_connector_endpoints" # Clientクラスをインスタンス化 c = k5c.Client() # POSTメソッドで作成して、結果のオブジェクトを得る r = c.post(url=url, data=data) return r
def access_api(port_id=""): """REST APIにアクセスします""" # 接続先 url = k5c.EP_NETWORK + "/v2.0/ports/" + port_id # Clientクラスをインスタンス化 c = k5c.Client() # GETメソッドで取得して、結果のオブジェクトを得る r = c.get(url=url) return r
def access_api(policy_id="", data=None): """REST APIにアクセスします""" # 接続先 url = k5c.EP_NETWORK + "/v2.0/vpn/ikepolicies/" + policy_id # Clientクラスをインスタンス化 c = k5c.Client() # PUTメソッドで作成して、結果のオブジェクトを得る r = c.put(url=url, data=data) return r
def access_api(rule_id=""): """REST APIにアクセスします""" # 接続先 url = k5c.EP_NETWORK + "/v2.0/fw/firewall_rules/" + rule_id # Clientクラスをインスタンス化 c = k5c.Client() # GETメソッドで取得して、結果のオブジェクトを得る r = c.get(url=url) return r
def access_api(): """REST APIにアクセスします""" # 接続先 url = k5c.EP_CEILOMETER + "/v2/meters" # Clientクラスをインスタンス化 c = k5c.Client() # GETメソッドで取得して、結果のオブジェクトを得る r = c.get(url=url) return r
def access_api(connection_id=""): """REST APIにアクセスします""" # 接続先 url = k5c.EP_NETWORK + "/v2.0/vpn/ipsec-site-connections/" + connection_id # Clientクラスをインスタンス化 c = k5c.Client() # DELETEメソッドで削除して、結果のオブジェクトを得る r = c.delete(url=url) return r
def access_api(ncep_id=""): """REST APIにアクセスします""" # 接続先 url = k5c.EP_NETWORK + "/v2.0/network_connector_endpoints/" + ncep_id # Clientクラスをインスタンス化 c = k5c.Client() # GETメソッドで取得して、結果のオブジェクトを得る r = c.get(url=url) return r
def access_api(policy_id=""): """REST APIにアクセスします""" # 接続先 url = k5c.EP_NETWORK + "/v2.0/fw/firewall_policies/" + policy_id # Clientクラスをインスタンス化 c = k5c.Client() # DELETEメソッドで削除して、結果のオブジェクトを得る r = c.delete(url=url) return r
def access_api(network_id=""): """REST APIにアクセスします""" # 接続先 url = k5c.EP_NETWORK + "/v2.0/networks/" + network_id # Clientクラスをインスタンス化 c = k5c.Client() # DELETEメソッドで削除して、結果のオブジェクトを得る r = c.delete(url=url) return r
def access_api(): """REST APIにアクセスします""" # 接続先 url = k5c.EP_NETWORK + "/v2.0/networks" # Clientクラスをインスタンス化 c = k5c.Client() # GETメソッドで取得して、結果のオブジェクトを得る r = c.get(url=url) return r
def access_api(data=None): """REST APIにアクセスします""" # 接続先 url = k5c.EP_NETWORK + "/v2.0/vpn/ipsecpolicies" # Clientクラスをインスタンス化 c = k5c.Client() # POSTメソッドで作成して、結果のオブジェクトを得る r = c.post(url=url, data=data) return r
def create_cache(): """k5-list-xxxとk5-show-xxxを実行して結果をキャッシュします。""" try: from k5c import k5c except ImportError: logging.error("k5cモジュールのインポートに失敗しました") sys.exit(1) # k5cクライアント c = k5c.Client() # これだけのためにデコレータを定義するのはさすがに面倒なので # c.get()にラッパー関数をかぶせます def get(url=""): """c.get()のラッパー""" print(url, end="", flush=True) r = c.get(url=url) print(" ...done", flush=True) # ステータスコードは'status_code'キーに格納 status_code = r.get('status_code', -1) if status_code < 200 or status_code >= 300: return None # データは'data'キーに格納 data = r.get('data', None) if not data: return None # dbに格納 db.insert(data) return data # # List Network Connector Pools # #"data": { # "network_connector_pools": [ url = k5c.EP_NETWORK + "/v2.0/network_connector_pools" data = get(url=url) # # List Network Connectors # #"data": { # "network_connectors": [ url = k5c.EP_NETWORK + "/v2.0/network_connectors" data = get(url=url) if not data: logging.error("GET failed.") return 1 item_list = data.get('network_connectors', []) for item in item_list: item_id = item.get('id', None) if item_id: # # Show Network Connector # #"data": { # "network_connector": { url = k5c.EP_NETWORK + "/v2.0/network_connectors/" + item_id get(url=url) # # List Network Connector Endpoints # # "data": { # "network_connector_endpoints": [ url = k5c.EP_NETWORK + "/v2.0/network_connector_endpoints" data = get(url=url) if not data: logging.error("GET failed.") return 1 item_list = data.get('network_connector_endpoints', []) for item in item_list: item_id = item.get('id', None) if item_id: # # Show Network Connector Endpoint # #"data": { # "network_connector_endpoint": { url = k5c.EP_NETWORK + "/v2.0/network_connector_endpoints/" + item_id get(url=url) # # List Connected Interfaces of Network Connector Endpoint # #"data": { # "network_connector_endpoint": { # "interfaces": [ url = k5c.EP_NETWORK + "/v2.0/network_connector_endpoints/" + item_id + "/interfaces" # ここだけは特別な処理が必要 # get(url=url) print(url, end="", flush=True) r = c.get(url=url) print(" ...done", flush=True) # ステータスコードは'status_code'キーに格納 status_code = r.get('status_code', -1) if status_code < 200 or status_code >= 300: continue # データは'data'キーに格納 data = r.get('data', None) if not data: continue # dbに格納 db.update(data, q['network_connector_endpoint'].id == item_id) # # List networks # # "data": { # "networks": [ url = k5c.EP_NETWORK + "/v2.0/networks" data = get(url=url) if not data: logging.error("GET failed.") return 1 item_list = data.get('networks', []) for item in item_list: item_id = item.get('id', None) if item_id: # # Show network # # "data": { # "network": { url = k5c.EP_NETWORK + "/v2.0/networks/" + item_id get(url=url) # # List subnets # # "data": { # "subnets": [ url = k5c.EP_NETWORK + "/v2.0/subnets" data = get(url=url) if not data: logging.error("GET failed.") return 1 item_list = data.get('subnets', []) for item in item_list: item_id = item.get('id', None) if item_id: # # Show subnet # #"data": { # "subnet": { url = k5c.EP_NETWORK + "/v2.0/subnets/" + item_id get(url=url) # # List ports # #"data": { # "ports": [ url = k5c.EP_NETWORK + "/v2.0/ports" data = get(url=url) if not data: logging.error("GET failed.") return 1 item_list = data.get('ports', []) for item in item_list: item_id = item.get('id', None) if item_id: # # Show port # #"data": { # "port": { url = k5c.EP_NETWORK + "/v2.0/ports/" + item_id get(url=url) # # List routers # #"data": { # "routers": [ url = k5c.EP_NETWORK + "/v2.0/routers" data = get(url=url) if not data: logging.error("GET failed.") return 1 item_list = data.get('routers', []) for item in item_list: item_id = item.get('id', None) if item_id: # # Show router # #"data": { # "router": { url = k5c.EP_NETWORK + "/v2.0/routers/" + item_id get(url=url) # # List floating IPs # # "data": { # "floatingips": [ url = k5c.EP_NETWORK + "/v2.0/floatingips" data = get(url=url) if not data: logging.error("GET failed.") return 1 item_list = data.get('floatingips', []) for item in item_list: item_id = item.get('id', None) if item_id: # # Show floating IP details # # "data": { # "floatingip": { url = k5c.EP_NETWORK + "/v2.0/floatingips/" + item_id get(url=url) return 0