1*800a58d9SAndroid Build Coastguard Worker#!/usr/bin/env python 2*800a58d9SAndroid Build Coastguard Worker# 3*800a58d9SAndroid Build Coastguard Worker# Copyright 2018 - The Android Open Source Project 4*800a58d9SAndroid Build Coastguard Worker# 5*800a58d9SAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); 6*800a58d9SAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 7*800a58d9SAndroid Build Coastguard Worker# You may obtain a copy of the License at 8*800a58d9SAndroid Build Coastguard Worker# 9*800a58d9SAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 10*800a58d9SAndroid Build Coastguard Worker# 11*800a58d9SAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 12*800a58d9SAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, 13*800a58d9SAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*800a58d9SAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 15*800a58d9SAndroid Build Coastguard Worker# limitations under the License. 16*800a58d9SAndroid Build Coastguard Workerr"""Delete args. 17*800a58d9SAndroid Build Coastguard Worker 18*800a58d9SAndroid Build Coastguard WorkerDefines the delete arg parser that holds delete specific args. 19*800a58d9SAndroid Build Coastguard Worker""" 20*800a58d9SAndroid Build Coastguard Workerimport argparse 21*800a58d9SAndroid Build Coastguard Worker 22*800a58d9SAndroid Build Coastguard Workerfrom acloud.internal import constants 23*800a58d9SAndroid Build Coastguard Worker 24*800a58d9SAndroid Build Coastguard Worker 25*800a58d9SAndroid Build Coastguard WorkerCMD_DELETE = "delete" 26*800a58d9SAndroid Build Coastguard Worker 27*800a58d9SAndroid Build Coastguard Worker 28*800a58d9SAndroid Build Coastguard Workerdef GetDeleteArgParser(subparser): 29*800a58d9SAndroid Build Coastguard Worker """Return the delete arg parser. 30*800a58d9SAndroid Build Coastguard Worker 31*800a58d9SAndroid Build Coastguard Worker Args: 32*800a58d9SAndroid Build Coastguard Worker subparser: argparse.ArgumentParser that is attached to main acloud cmd. 33*800a58d9SAndroid Build Coastguard Worker 34*800a58d9SAndroid Build Coastguard Worker Returns: 35*800a58d9SAndroid Build Coastguard Worker argparse.ArgumentParser with delete options defined. 36*800a58d9SAndroid Build Coastguard Worker """ 37*800a58d9SAndroid Build Coastguard Worker delete_parser = subparser.add_parser(CMD_DELETE) 38*800a58d9SAndroid Build Coastguard Worker delete_parser.required = False 39*800a58d9SAndroid Build Coastguard Worker delete_parser.set_defaults(which=CMD_DELETE) 40*800a58d9SAndroid Build Coastguard Worker delete_group = delete_parser.add_mutually_exclusive_group() 41*800a58d9SAndroid Build Coastguard Worker delete_group.add_argument( 42*800a58d9SAndroid Build Coastguard Worker "--instance-names", 43*800a58d9SAndroid Build Coastguard Worker dest="instance_names", 44*800a58d9SAndroid Build Coastguard Worker nargs="+", 45*800a58d9SAndroid Build Coastguard Worker required=False, 46*800a58d9SAndroid Build Coastguard Worker help="The names of the instances that need to delete, separated by " 47*800a58d9SAndroid Build Coastguard Worker "spaces, e.g. --instance-names instance-1 local-instance-1") 48*800a58d9SAndroid Build Coastguard Worker delete_group.add_argument( 49*800a58d9SAndroid Build Coastguard Worker "--all", 50*800a58d9SAndroid Build Coastguard Worker action="store_true", 51*800a58d9SAndroid Build Coastguard Worker dest="all", 52*800a58d9SAndroid Build Coastguard Worker required=False, 53*800a58d9SAndroid Build Coastguard Worker help="If more than 1 AVD instance is found, delete them all.") 54*800a58d9SAndroid Build Coastguard Worker delete_group.add_argument( 55*800a58d9SAndroid Build Coastguard Worker "--adb-port", "-p", 56*800a58d9SAndroid Build Coastguard Worker type=int, 57*800a58d9SAndroid Build Coastguard Worker dest="adb_port", 58*800a58d9SAndroid Build Coastguard Worker required=False, 59*800a58d9SAndroid Build Coastguard Worker help="Delete instance with specified adb-port.") 60*800a58d9SAndroid Build Coastguard Worker delete_parser.add_argument( 61*800a58d9SAndroid Build Coastguard Worker "--local-only", 62*800a58d9SAndroid Build Coastguard Worker action="store_true", 63*800a58d9SAndroid Build Coastguard Worker dest="local_only", 64*800a58d9SAndroid Build Coastguard Worker required=False, 65*800a58d9SAndroid Build Coastguard Worker help="Do not authenticate and query remote instances.") 66*800a58d9SAndroid Build Coastguard Worker delete_parser.add_argument( 67*800a58d9SAndroid Build Coastguard Worker "--host", 68*800a58d9SAndroid Build Coastguard Worker type=str, 69*800a58d9SAndroid Build Coastguard Worker dest="remote_host", 70*800a58d9SAndroid Build Coastguard Worker default=None, 71*800a58d9SAndroid Build Coastguard Worker help="'cuttlefish only' Provide host name to clean up the remote host. " 72*800a58d9SAndroid Build Coastguard Worker "For example: '--host 1.1.1.1'") 73*800a58d9SAndroid Build Coastguard Worker delete_parser.add_argument( 74*800a58d9SAndroid Build Coastguard Worker "--host-user", 75*800a58d9SAndroid Build Coastguard Worker type=str, 76*800a58d9SAndroid Build Coastguard Worker dest="host_user", 77*800a58d9SAndroid Build Coastguard Worker default=constants.GCE_USER, 78*800a58d9SAndroid Build Coastguard Worker help="'remote host only' Provide host user for logging in to the host. " 79*800a58d9SAndroid Build Coastguard Worker "The default value is vsoc-01. For example: '--host 1.1.1.1 --host-user " 80*800a58d9SAndroid Build Coastguard Worker "vsoc-02'") 81*800a58d9SAndroid Build Coastguard Worker delete_parser.add_argument( 82*800a58d9SAndroid Build Coastguard Worker "--host-ssh-private-key-path", 83*800a58d9SAndroid Build Coastguard Worker type=str, 84*800a58d9SAndroid Build Coastguard Worker dest="host_ssh_private_key_path", 85*800a58d9SAndroid Build Coastguard Worker default=None, 86*800a58d9SAndroid Build Coastguard Worker help="'remote host only' Provide host ssh private key path for logging " 87*800a58d9SAndroid Build Coastguard Worker "in to the host. For exmaple: '--host-ssh-private-key-path " 88*800a58d9SAndroid Build Coastguard Worker "~/.ssh/acloud_rsa'") 89*800a58d9SAndroid Build Coastguard Worker delete_parser.add_argument( 90*800a58d9SAndroid Build Coastguard Worker "--oxygen", 91*800a58d9SAndroid Build Coastguard Worker action="store_true", 92*800a58d9SAndroid Build Coastguard Worker dest="oxygen", 93*800a58d9SAndroid Build Coastguard Worker required=False, 94*800a58d9SAndroid Build Coastguard Worker help=argparse.SUPPRESS) 95*800a58d9SAndroid Build Coastguard Worker # The ip means server_url in Oxygen proxy api. 96*800a58d9SAndroid Build Coastguard Worker delete_parser.add_argument( 97*800a58d9SAndroid Build Coastguard Worker "--ip", 98*800a58d9SAndroid Build Coastguard Worker type=str, 99*800a58d9SAndroid Build Coastguard Worker dest="ip", 100*800a58d9SAndroid Build Coastguard Worker required=False, 101*800a58d9SAndroid Build Coastguard Worker help=argparse.SUPPRESS) 102*800a58d9SAndroid Build Coastguard Worker 103*800a58d9SAndroid Build Coastguard Worker # TODO(b/118439885): Old arg formats to support transition, delete when 104*800a58d9SAndroid Build Coastguard Worker # transistion is done. 105*800a58d9SAndroid Build Coastguard Worker delete_group.add_argument( 106*800a58d9SAndroid Build Coastguard Worker "--instance_names", 107*800a58d9SAndroid Build Coastguard Worker dest="instance_names", 108*800a58d9SAndroid Build Coastguard Worker nargs="+", 109*800a58d9SAndroid Build Coastguard Worker required=False, 110*800a58d9SAndroid Build Coastguard Worker help=argparse.SUPPRESS) 111*800a58d9SAndroid Build Coastguard Worker 112*800a58d9SAndroid Build Coastguard Worker return delete_parser 113