+ #=======================datacenter_sdn_port_mapping_xxx section=======================
+ #datacenter_sdn_port_mapping_set
+ datacenter_sdn_port_mapping_set_parser = subparsers.add_parser('datacenter-sdn-port-mapping-set',
+ parents=[parent_parser],
+ help="Load a file with the mapping of physical ports "
+ "and the ports of the dataplaneswitch controlled "
+ "by a datacenter")
+ datacenter_sdn_port_mapping_set_parser.add_argument("name", action="store", help="specifies the datacenter")
+ datacenter_sdn_port_mapping_set_parser.add_argument("file",
+ help="json/yaml text or file with the port mapping").completer = FilesCompleter
+ datacenter_sdn_port_mapping_set_parser.add_argument("-f", "--force", action="store_true",
+ help="forces overwriting without asking")
+ datacenter_sdn_port_mapping_set_parser.set_defaults(func=datacenter_sdn_port_mapping_set)
+
+ #datacenter_sdn_port_mapping_list
+ datacenter_sdn_port_mapping_list_parser = subparsers.add_parser('datacenter-sdn-port-mapping-list',
+ parents=[parent_parser],
+ help="Show the SDN port mapping in a datacenter")
+ datacenter_sdn_port_mapping_list_parser.add_argument("name", action="store", help="specifies the datacenter")
+ datacenter_sdn_port_mapping_list_parser.set_defaults(func=datacenter_sdn_port_mapping_list)
+
+ # datacenter_sdn_port_mapping_clear
+ datacenter_sdn_port_mapping_clear_parser = subparsers.add_parser('datacenter-sdn-port-mapping-clear',
+ parents=[parent_parser],
+ help="Clean the the SDN port mapping in a datacenter")
+ datacenter_sdn_port_mapping_clear_parser.add_argument("name", action="store",
+ help="specifies the datacenter")
+ datacenter_sdn_port_mapping_clear_parser.add_argument("-f", "--force", action="store_true",
+ help="forces clearing without asking")
+ datacenter_sdn_port_mapping_clear_parser.set_defaults(func=datacenter_sdn_port_mapping_clear)
+ # =======================
+
+ # =======================sdn_controller_xxx section=======================
+ # sdn_controller_create
+ sdn_controller_create_parser = subparsers.add_parser('sdn-controller-create', parents=[parent_parser],
+ help="Creates an SDN controller entity within RO")
+ sdn_controller_create_parser.add_argument("name", help="name of the SDN controller")
+ sdn_controller_create_parser.add_argument("--description", action="store", help="description of the SDN controller")
+ sdn_controller_create_parser.add_argument("--ip", action="store", help="IP of the SDN controller")
+ sdn_controller_create_parser.add_argument("--port", action="store", help="Port of the SDN controller")
+ sdn_controller_create_parser.add_argument("--dpid", action="store",
+ help="DPID of the dataplane switch controlled by this SDN controller")
+ sdn_controller_create_parser.add_argument("--type", action="store",
+ help="Specify the SDN controller type. Valid types are 'opendaylight' and 'floodlight'")
+ sdn_controller_create_parser.add_argument("--user", action="store", help="user credentials for the SDN controller")
+ sdn_controller_create_parser.add_argument("--passwd", action="store", dest='password',
+ help="password credentials for the SDN controller")
+ sdn_controller_create_parser.set_defaults(func=sdn_controller_create)
+
+ # sdn_controller_edit
+ sdn_controller_edit_parser = subparsers.add_parser('sdn-controller-edit', parents=[parent_parser],
+ help="Update one or more options of a SDN controller")
+ sdn_controller_edit_parser.add_argument("name", help="name or uuid of the SDN controller", )
+ sdn_controller_edit_parser.add_argument("--name", action="store", help="Update the name of the SDN controller",
+ dest='new_name')
+ sdn_controller_edit_parser.add_argument("--description", action="store", help="description of the SDN controller")
+ sdn_controller_edit_parser.add_argument("--ip", action="store", help="IP of the SDN controller")
+ sdn_controller_edit_parser.add_argument("--port", action="store", help="Port of the SDN controller")
+ sdn_controller_edit_parser.add_argument("--dpid", action="store",
+ help="DPID of the dataplane switch controlled by this SDN controller")
+ sdn_controller_edit_parser.add_argument("--type", action="store",
+ help="Specify the SDN controller type. Valid types are 'opendaylight' and 'floodlight'")
+ sdn_controller_edit_parser.add_argument("--user", action="store", help="user credentials for the SDN controller")
+ sdn_controller_edit_parser.add_argument("--password", action="store",
+ help="password credentials for the SDN controller", dest='password')
+ sdn_controller_edit_parser.add_argument("-f", "--force", action="store_true", help="do not prompt for confirmation")
+ #TODO: include option --file
+ sdn_controller_edit_parser.set_defaults(func=sdn_controller_edit)
+
+ #sdn_controller_list
+ sdn_controller_list_parser = subparsers.add_parser('sdn-controller-list',
+ parents=[parent_parser],
+ help="List the SDN controllers")
+ sdn_controller_list_parser.add_argument("name", nargs='?', help="name or uuid of the SDN controller")
+ sdn_controller_list_parser.set_defaults(func=sdn_controller_list)
+
+ # sdn_controller_delete
+ sdn_controller_delete_parser = subparsers.add_parser('sdn-controller-delete',
+ parents=[parent_parser],
+ help="Delete the the SDN controller")
+ sdn_controller_delete_parser.add_argument("name", help="name or uuid of the SDN controller")
+ sdn_controller_delete_parser.add_argument("-f", "--force", action="store_true", help="forces deletion without asking")
+ sdn_controller_delete_parser.set_defaults(func=sdn_controller_delete)
+ # =======================
+
+ # WIM ======================= WIM section==================
+
+ # WIM create
+ wim_create_parser = subparsers.add_parser('wim-create',
+ parents=[parent_parser], help="creates a new wim")
+ wim_create_parser.add_argument("name", action="store",
+ help="name for the wim")
+ wim_create_parser.add_argument("url", action="store",
+ help="url for the wim")
+ wim_create_parser.add_argument("--type", action="store",
+ help="wim type: tapi, onos, dynpac or odl (default)")
+ wim_create_parser.add_argument("--config", action="store",
+ help="additional configuration in json/yaml format")
+ wim_create_parser.add_argument("--description", action="store",
+ help="description of the wim")
+ wim_create_parser.set_defaults(func=wim_create)
+
+ # WIM delete
+ wim_delete_parser = subparsers.add_parser('wim-delete',
+ parents=[parent_parser], help="deletes a wim from the catalogue")
+ wim_delete_parser.add_argument("name", action="store",
+ help="name or uuid of the wim to be deleted")
+ wim_delete_parser.add_argument("-f", "--force", action="store_true",
+ help="forces deletion without asking")
+ wim_delete_parser.set_defaults(func=wim_delete)
+
+ # WIM edit
+ wim_edit_parser = subparsers.add_parser('wim-edit',
+ parents=[parent_parser], help="edits a wim")
+ wim_edit_parser.add_argument("name", help="name or uuid of the wim")
+ wim_edit_parser.add_argument("--file",
+ help="json/yaml text or file with the changes")\
+ .completer = FilesCompleter
+ wim_edit_parser.add_argument("-f", "--force", action="store_true",
+ help="do not prompt for confirmation")
+ wim_edit_parser.set_defaults(func=wim_edit)
+
+ # WIM list
+ wim_list_parser = subparsers.add_parser('wim-list',
+ parents=[parent_parser],
+ help="lists information about registered wims")
+ wim_list_parser.add_argument("name", nargs='?',
+ help="name or uuid of the wim")
+ wim_list_parser.add_argument("-a", "--all", action="store_true",
+ help="shows all wims, not only wims attached to tenant")
+ wim_list_parser.set_defaults(func=wim_list)
+
+ # WIM account create
+ wim_attach_parser = subparsers.add_parser('wim-account-create', parents=
+ [parent_parser], help="associates a wim account to the operating tenant")
+ wim_attach_parser.add_argument("name", help="name or uuid of the wim")
+ wim_attach_parser.add_argument('--account-name', action='store',
+ help="specify a name for the wim account.")
+ wim_attach_parser.add_argument("--user", action="store",
+ help="user credentials for the wim account")
+ wim_attach_parser.add_argument("--password", action="store",
+ help="password credentials for the wim account")
+ wim_attach_parser.add_argument("--config", action="store",
+ help="additional configuration in json/yaml format")
+ wim_attach_parser.set_defaults(func=wim_account_create)
+
+ # WIM account delete
+ wim_detach_parser = subparsers.add_parser('wim-account-delete',
+ parents=[parent_parser],
+ help="removes the association "
+ "between a wim account and the operating tenant")
+ wim_detach_parser.add_argument("name", help="name or uuid of the wim")
+ wim_detach_parser.add_argument("-a", "--all", action="store_true",
+ help="removes all associations from this wim")
+ wim_detach_parser.add_argument("-f", "--force", action="store_true",
+ help="forces delete without asking")
+ wim_detach_parser.set_defaults(func=wim_account_delete)
+
+ # WIM account edit
+ wim_attach_edit_parser = subparsers.add_parser('wim-account-edit', parents=
+ [parent_parser], help="modifies the association of a wim account to the operating tenant")
+ wim_attach_edit_parser.add_argument("name", help="name or uuid of the wim")
+ wim_attach_edit_parser.add_argument('--account-name', action='store',
+ help="specify a name for the wim account.")
+ wim_attach_edit_parser.add_argument("--user", action="store",
+ help="user credentials for the wim account")
+ wim_attach_edit_parser.add_argument("--password", action="store",
+ help="password credentials for the wim account")
+ wim_attach_edit_parser.add_argument("--config", action="store",
+ help="additional configuration in json/yaml format")
+ wim_attach_edit_parser.set_defaults(func=wim_account_edit)
+
+ # WIM port mapping set
+ wim_port_mapping_set_parser = subparsers.add_parser('wim-port-mapping-set',
+ parents=[parent_parser],
+ help="Load a file with the mappings "
+ "of ports of a WAN switch that is "
+ "connected to a PoP and the ports "
+ "of the switch controlled by the PoP")
+ wim_port_mapping_set_parser.add_argument("name", action="store",
+ help="specifies the wim")
+ wim_port_mapping_set_parser.add_argument("file",
+ help="json/yaml text or file with the wim port mapping")\
+ .completer = FilesCompleter
+ wim_port_mapping_set_parser.add_argument("-f", "--force",
+ action="store_true", help="forces overwriting without asking")
+ wim_port_mapping_set_parser.set_defaults(func=wim_port_mapping_set)
+
+ # WIM port mapping list
+ wim_port_mapping_list_parser = subparsers.add_parser('wim-port-mapping-list',
+ parents=[parent_parser], help="Show the port mappings for a wim")
+ wim_port_mapping_list_parser.add_argument("name", action="store",
+ help="specifies the wim")
+ wim_port_mapping_list_parser.set_defaults(func=wim_port_mapping_list)
+
+ # WIM port mapping clear
+ wim_port_mapping_clear_parser = subparsers.add_parser('wim-port-mapping-clear',
+ parents=[parent_parser], help="Clean the port mapping in a wim")
+ wim_port_mapping_clear_parser.add_argument("name", action="store",
+ help="specifies the wim")
+ wim_port_mapping_clear_parser.add_argument("-f", "--force",
+ action="store_true",
+ help="forces clearing without asking")
+ wim_port_mapping_clear_parser.set_defaults(func=wim_port_mapping_clear)
+
+ # =======================================================