コード例 #1
0
ファイル: create.py プロジェクト: barber223/AudioApp
    def Run(self, args):
        """Creates and issues an instanceGroupManagers.Insert request.

    Args:
      args: the argparse arguments that this command was invoked with.

    Returns:
      List containing one dictionary: resource augmented with 'autoscaled'
      property
    """
        holder = base_classes.ComputeApiHolder(self.ReleaseTrack())
        client = holder.client

        group_ref = self.CreateGroupReference(args, client, holder.resources)
        template_ref = holder.resources.Parse(
            args.template,
            params={'project': properties.VALUES.core.project.GetOrFail},
            collection='compute.instanceTemplates')

        instance_group_manager = self._CreateInstanceGroupManager(
            args, group_ref, template_ref, client, holder)
        request = self.CreateResourceRequest(group_ref, instance_group_manager,
                                             client, holder.resources)
        service = self.GetServiceForGroup(group_ref, client.apitools_client)
        migs = client.MakeRequests([(service, 'Insert', request)])

        migs_as_dicts = [encoding.MessageToDict(m) for m in migs]
        _, augmented_migs = (
            managed_instance_groups_utils.AddAutoscaledPropertyToMigs(
                migs_as_dicts, client, holder.resources))
        return augmented_migs
コード例 #2
0
  def Run(self, args):
    holder = base_classes.ComputeApiHolder(self.ReleaseTrack())
    client = holder.client

    request_data = lister.ParseMultiScopeFlags(args, holder.resources)

    list_implementation = lister.MultiScopeLister(
        client,
        zonal_service=client.apitools_client.instanceGroupManagers,
        regional_service=client.apitools_client.regionInstanceGroupManagers,
        aggregation_service=client.apitools_client.instanceGroupManagers)

    migs = lister.Invoke(request_data, list_implementation)

    (self._had_errors,
     results) = managed_instance_groups_utils.AddAutoscaledPropertyToMigs(
         list(migs), client, holder.resources)

    return results
コード例 #3
0
ファイル: create.py プロジェクト: bopopescu/howdyasay
    def Run(self, args):
        """Creates and issues an instanceGroupManagers.Insert request.

    Args:
      args: the argparse arguments that this command was invoked with.

    Returns:
      List containing one dictionary: resource augmented with 'autoscaled'
      property
    """
        holder = base_classes.ComputeApiHolder(self.ReleaseTrack())
        client = holder.client

        group_ref = self.CreateGroupReference(args, client, holder.resources)
        template_ref = holder.resources.Parse(
            args.template,
            params={'project': properties.VALUES.core.project.GetOrFail},
            collection='compute.instanceTemplates')
        if args.target_pool:
            region = self.GetRegionForGroup(group_ref)
            pool_refs = [
                holder.resources.Parse(
                    pool,
                    params={
                        'project': properties.VALUES.core.project.GetOrFail,
                        'region': region
                    },
                    collection='compute.targetPools')
                for pool in args.target_pool
            ]
            pools = [pool_ref.SelfLink() for pool_ref in pool_refs]
        else:
            pools = []

        name = group_ref.Name()
        if args.base_instance_name:
            base_instance_name = args.base_instance_name
        else:
            base_instance_name = name[0:54]

        instance_group_manager = client.messages.InstanceGroupManager(
            name=name,
            description=args.description,
            instanceTemplate=template_ref.SelfLink(),
            baseInstanceName=base_instance_name,
            targetPools=pools,
            targetSize=int(args.size))
        auto_healing_policies = (
            managed_instance_groups_utils.CreateAutohealingPolicies(
                holder.resources, client.messages, args))
        if auto_healing_policies:
            instance_group_manager.autoHealingPolicies = auto_healing_policies

        request = self.CreateResourceRequest(group_ref, instance_group_manager,
                                             client, holder.resources)
        service = self.GetServiceForGroup(group_ref, client.apitools_client)
        migs = client.MakeRequests([(service, 'Insert', request)])

        migs_as_dicts = [encoding.MessageToDict(m) for m in migs]
        _, augmented_migs = (
            managed_instance_groups_utils.AddAutoscaledPropertyToMigs(
                migs_as_dicts, client, holder.resources))
        return augmented_migs