Esempio n. 1
0
    def Run(self, args):
        holder = base_classes.ComputeApiHolder(self.ReleaseTrack())

        ref = self.PACKET_MIRRORING_ARG.ResolveAsResource(
            args, holder.resources)
        packet_mirroring = client.PacketMirroring(ref,
                                                  compute_client=holder.client)
        return packet_mirroring.Describe()
Esempio n. 2
0
    def Run(self, args):
        holder = base_classes.ComputeApiHolder(self.ReleaseTrack())
        messages = holder.client.messages

        pm_ref = self.PACKET_MIRRORING_ARG.ResolveAsResource(
            args, holder.resources)

        def _MakeInstanceInfo(instance):
            return messages.PacketMirroringMirroredResourceInfoInstanceInfo(
                url=utils.ResolveInstanceURI(pm_ref.project, instance,
                                             holder.resources))

        def _MakeMirroredSubnetInfo(subnet):
            return messages.PacketMirroringMirroredResourceInfoSubnetInfo(
                url=utils.ResolveSubnetURI(pm_ref.project, pm_ref.region,
                                           subnet, holder.resources))

        mirrored_instance_infos = [
            _MakeInstanceInfo(instance) for instance in args.mirrored_instances
        ] if args.mirrored_instances else []

        mirrored_subnet_infos = [
            _MakeMirroredSubnetInfo(subnet) for subnet in args.mirrored_subnets
        ] if args.mirrored_subnets else []

        pm_filter = messages.PacketMirroringFilter()
        if args.filter_cidr_ranges or args.filter_protocols:
            if args.filter_cidr_ranges:
                pm_filter.cidrRanges.extend(args.filter_cidr_ranges)
            if args.filter_protocols:
                pm_filter.IPProtocols.extend(args.filter_protocols)

        mirrored_resources_info = messages.PacketMirroringMirroredResourceInfo(
            subnetworks=mirrored_subnet_infos,
            instances=mirrored_instance_infos,
            tags=args.mirrored_tags or [])
        template = messages.PacketMirroring(
            name=pm_ref.Name(),
            description=args.description,
            network=messages.PacketMirroringNetworkInfo(
                url=utils.ResolveNetworkURI(pm_ref.project, args.network,
                                            holder.resources)),
            collectorIlb=messages.PacketMirroringForwardingRuleInfo(
                url=utils.ResolveForwardingRuleURI(
                    pm_ref.project, pm_ref.region, args.collector_ilb,
                    holder.resources)),
            mirroredResources=mirrored_resources_info,
            priority=args.priority,
            filter=pm_filter,
            enable=messages.PacketMirroring.EnableValueValuesEnum.TRUE
            if args.enable else
            messages.PacketMirroring.EnableValueValuesEnum.FALSE)

        packet_mirroring = client.PacketMirroring(pm_ref,
                                                  compute_client=holder.client,
                                                  registry=holder.resources)

        return packet_mirroring.Create(template, is_async=args.async_ or False)
Esempio n. 3
0
    def Run(self, args):
        holder = base_classes.ComputeApiHolder(self.ReleaseTrack())

        refs = self.PACKET_MIRRORING_ARG.ResolveAsResource(
            args, holder.resources)
        utils.PromptForDeletion(refs)

        requests = []
        for ref in refs:
            packet_mirroring = client.PacketMirroring(
                ref, compute_client=holder.client)
            requests.append(packet_mirroring.MakeDeleteRequestTuple())
        return holder.client.MakeRequests(requests)
Esempio n. 4
0
    def Run(self, args):
        holder = base_classes.ComputeApiHolder(self.ReleaseTrack())
        messages = holder.client.messages

        pm_ref = self.PACKET_MIRRORING_ARG.ResolveAsResource(
            args, holder.resources)

        packet_mirroring = client.PacketMirroring(pm_ref,
                                                  compute_client=holder.client,
                                                  registry=holder.resources)

        resource = packet_mirroring.Describe()[0]
        self._UpdateResource(pm_ref, resource, holder, args, messages)

        packet_mirroring.Update(resource, is_async=args. async or False)