def ValidateAndParseDiskRefs(self, args, compute_holder): if args.replica_zones is None and args.region is not None: raise exceptions.RequiredArgumentException( '--replica-zones', '--replica-zones is required for regional disk creation') if args.replica_zones is not None: if len(args.replica_zones) != 2: raise exceptions.InvalidArgumentException( '--replica-zones', 'Exactly two zones are required.') return create.ParseRegionDisksResources( compute_holder.resources, args.DISK_NAME, args.replica_zones, args.project, args.region) disk_refs = Create.disks_arg.ResolveAsResource( args, compute_holder.resources, scope_lister=flags.GetDefaultScopeLister(compute_holder.client)) # --replica-zones is required for regional disks always - also when region # is selected in prompt. for disk_ref in disk_refs: if disk_ref.Collection() == 'compute.regionDisks': raise exceptions.RequiredArgumentException( '--replica-zones', '--replica-zones is required for regional disk creation [{}]'. format(disk_ref.SelfLink())) return disk_refs
def ValidateAndParse(self, args, compute_holder): if args.replica_zones is None and args.region is not None: raise exceptions.RequiredArgumentException( '--replica-zones', '--replica-zones is required for regional disk creation') if args.replica_zones is not None: if len(args.replica_zones) != 2: raise exceptions.InvalidArgumentException( '--replica-zones', 'Exactly two zones are required.') return create.ParseRegionDisksResources(compute_holder.resources, args.DISK_NAME, args.replica_zones, args.project, args.region) return Create.disks_arg.ResolveAsResource( args, compute_holder.resources, scope_lister=flags.GetDefaultScopeLister(compute_holder.client))
def _ValidateAndParseDiskRefsRegionalReplica(args, compute_holder): """Validate flags and parse disks references. Subclasses may override it to customize parsing. Args: args: The argument namespace compute_holder: base_classes.ComputeApiHolder instance Returns: List of compute.regionDisks resources. """ if not args.IsSpecified('replica_zones') and args.IsSpecified('region'): raise exceptions.RequiredArgumentException( '--replica-zones', '--replica-zones is required for regional disk creation') if args.replica_zones is not None: return create.ParseRegionDisksResources(compute_holder.resources, args.DISK_NAME, args.replica_zones, args.project, args.region) disk_refs = Create.disks_arg.ResolveAsResource( args, compute_holder.resources, scope_lister=flags.GetDefaultScopeLister(compute_holder.client)) # --replica-zones is required for regional disks always - also when region # is selected in prompt. for disk_ref in disk_refs: if disk_ref.Collection() == 'compute.regionDisks': raise exceptions.RequiredArgumentException( '--replica-zones', '--replica-zones is required for regional disk creation [{}]'. format(disk_ref.SelfLink())) return disk_refs