Esempio n. 1
0
def _GetRecommendationChangeType(recommendation_change_type):
    """Get RecommendationChangeType enum value.

  Converts recommendation_change_type argument value to
  RecommendationChangeType enum value.

  Args:
    recommendation_change_type: recommendation_change_type flag value

  Returns:
    RecommendationChangeType enum value
  """
    if not recommendation_change_type:
        return None

    messages = recommender_service.RecommenderMessages()

    if recommendation_change_type.lower() == 'leave_unchanged':
        return messages.GoogleCloudRecommenderV1alpha2MarkInsightDismissedRequest.RecommendationChangeTypeValueValuesEnum(
            'LEAVE_RECOMMENDATIONS_UNCHANGED')
    elif recommendation_change_type.lower() == 'dismiss':
        return messages.GoogleCloudRecommenderV1alpha2MarkInsightDismissedRequest.RecommendationChangeTypeValueValuesEnum(
            'DISMISS_RECOMMENDATIONS')
    else:
        return None
Esempio n. 2
0
def GetDescribeRequestFromArgs(args, parent_resource, is_insight_api,
                               api_version):
    """Returns the describe request from the user-specified arguments.

  Args:
    args: argparse.Namespace, An object that contains the values for the
      arguments specified in the Args method.
    parent_resource: resource url string, the flags are already defined in
      argparse namespace, including project, billing-account, folder,
      organization, etc.
    is_insight_api: boolean value specifying whether this is a insight api,
      otherwise treat as a recommender service api and return related list
      request message.
    api_version: API version string.
  """

    messages = recommender_service.RecommenderMessages(api_version)
    if is_insight_api:
        if args.project:
            request = messages.RecommenderProjectsLocationsInsightTypesInsightsGetRequest(
                name=parent_resource)
        elif args.billing_account:
            request = messages.RecommenderBillingAccountsLocationsInsightTypesInsightsGetRequest(
                name=parent_resource)
        elif args.organization:
            request = messages.RecommenderOrganizationsLocationsInsightTypesInsightsGetRequest(
                name=parent_resource)
        elif args.folder:
            request = messages.RecommenderFoldersLocationsInsightTypesInsightsGetRequest(
                name=parent_resource)
    else:
        if args.project:
            request = messages.RecommenderProjectsLocationsRecommendersRecommendationsGetRequest(
                name=parent_resource)
        elif args.billing_account:
            request = messages.RecommenderBillingAccountsLocationsRecommendersRecommendationsGetRequest(
                name=parent_resource)
        elif args.organization:
            request = messages.RecommenderOrganizationsLocationsRecommendersRecommendationsGetRequest(
                name=parent_resource)
        elif args.folder:
            request = messages.RecommenderFoldersLocationsRecommendersRecommendationsGetRequest(
                name=parent_resource)

    return request
Esempio n. 3
0
def GetMarkAcceptedRequestFromArgs(args, parent_resource, is_insight_api):
    """Returns the mark accepted request.

  Args:
    args: argparse.Namespace, An object that contains the values for the
      arguments specified in the Args method.
    parent_resource: resource url string, the flags are already defined in
      argparse namespace, including project, billing-account, folder,
      organization, etc.
    is_insight_api: boolean value specifying whether this is a insight api,
      otherwise treat as a recommender service api and return related list
      request message.
  """

    messages = recommender_service.RecommenderMessages()
    if is_insight_api:
        message_request_field = messages.GoogleCloudRecommenderV1alpha2MarkInsightAcceptedRequest
        mark_insight_accepted_message = messages.GoogleCloudRecommenderV1alpha2MarkInsightAcceptedRequest(
            etag=args.etag,
            stateMetadata=ParseStateMetadata(args.state_metadata,
                                             message_request_field))
        if args.project:
            request = messages.RecommenderProjectsLocationsInsightTypesInsightsMarkAcceptedRequest(
                googleCloudRecommenderV1alpha2MarkInsightAcceptedRequest=
                mark_insight_accepted_message,
                name=parent_resource)
        elif args.billing_account:
            request = messages.RecommenderBillingAccountsLocationsInsightTypesInsightsMarkAcceptedRequest(
                googleCloudRecommenderV1alpha2MarkInsightAcceptedRequest=
                mark_insight_accepted_message,
                name=parent_resource)
        elif args.organization:
            request = messages.RecommenderOrganizationsLocationsInsightTypesInsightsMarkAcceptedRequest(
                googleCloudRecommenderV1alpha2MarkInsightAcceptedRequest=
                mark_insight_accepted_message,
                name=parent_resource)
        elif args.folder:
            request = messages.RecommenderFoldersLocationsInsightTypesInsightsMarkAcceptedRequest(
                googleCloudRecommenderV1alpha2MarkInsightAcceptedRequest=
                mark_insight_accepted_message,
                name=parent_resource)

    return request
def GetDescribeConfigRequestFromArgs(parent_resource, is_insight_api,
                                     api_version):
    """Returns the describe request from the user-specified arguments.

  Args:
    parent_resource: resource url string, the flags are already defined in
      argparse namespace.
    is_insight_api: boolean value specifying whether this is a insight api,
      otherwise treat as a recommender service api and return related describe
      request message.
    api_version: API version string.
  """

    messages = recommender_service.RecommenderMessages(api_version)
    if is_insight_api:
        request = messages.RecommenderProjectsLocationsInsightTypesGetConfigRequest(
            name=parent_resource)
    else:
        request = messages.RecommenderProjectsLocationsRecommendersGetConfigRequest(
            name=parent_resource)
    return request
Esempio n. 5
0
def GetMarkSucceededRequestFromArgs(args, parent_resource):
    """Returns the mark_succeeded_request from the user-specified arguments.

  Args:
    args: argparse.Namespace, An object that contains the values for the
      arguments specified in the Args method.
    parent_resource: resource location such as `organizations/123`
  """

    messages = recommender_service.RecommenderMessages()
    message_request_field = messages.GoogleCloudRecommenderV1alpha2MarkRecommendationSucceededRequest
    mark_recommendation_succeeded_request = messages.GoogleCloudRecommenderV1alpha2MarkRecommendationSucceededRequest(
        etag=args.etag,
        stateMetadata=ParseStateMetadata(args.state_metadata,
                                         message_request_field))
    if args.project:
        mark_request = messages.RecommenderProjectsLocationsRecommendersRecommendationsMarkSucceededRequest(
            googleCloudRecommenderV1alpha2MarkRecommendationSucceededRequest=
            mark_recommendation_succeeded_request,
            name=parent_resource)
    elif args.billing_account:
        mark_request = messages.RecommenderBillingAccountsLocationsRecommendersRecommendationsMarkSucceededRequest(
            googleCloudRecommenderV1alpha2MarkRecommendationSucceededRequest=
            mark_recommendation_succeeded_request,
            name=parent_resource)
    elif args.organization:
        mark_request = messages.RecommenderOrganizationsLocationsRecommendersRecommendationsMarkSucceededRequest(
            googleCloudRecommenderV1alpha2MarkRecommendationSucceededRequest=
            mark_recommendation_succeeded_request,
            name=parent_resource)
    elif args.folder:
        mark_request = messages.RecommenderFoldersLocationsRecommendersRecommendationsMarkSucceededRequest(
            googleCloudRecommenderV1alpha2MarkRecommendationSucceededRequest=
            mark_recommendation_succeeded_request,
            name=parent_resource)

    return mark_request
# See the License for the specific language governing permissions and
# limitations under the License.
"""Tests for Recommender API Flags Module."""

from __future__ import absolute_import
from __future__ import division
from __future__ import unicode_literals

from googlecloudsdk.api_lib.recommender import flag_utils
from googlecloudsdk.api_lib.recommender import service as recommender_service
from googlecloudsdk.command_lib.recommender import flags
from tests.lib import cli_test_base
from tests.lib import test_case
from tests.lib.calliope import util as calliope_util

MESSAGES = recommender_service.RecommenderMessages()
LOCATION = 'my-location'
RECOMMENDER = 'my-recommender'
INSIGHT_TYPE = 'my-insight-type'
RECOMMENDATION = 'my-recommendation'
INSIGHT = 'my-insight'

ORGANIZATION = 'my-organization'
ORGANIZATION_PARENT_RESOURCE = '/organizations/my-organization/locations/my-location/recommenders/my-recommender/recommendations'
ORGANIZATION_LIST_RECOMMENDATION_REQUEST = MESSAGES.RecommenderOrganizationsLocationsRecommendersRecommendationsListRequest(
    parent=ORGANIZATION_PARENT_RESOURCE)
PROJECT = 'my-project'
PROJECT_PARENT_RESOURCE = '/projects/my-project/locations/my-location/recommenders/my-recommender/recommendations'
PROJECT_LIST_RECOMMENDATION_REQUEST = MESSAGES.RecommenderProjectsLocationsRecommendersRecommendationsListRequest(
    parent=PROJECT_PARENT_RESOURCE)
PROJECT_LIST_RECOMMENDATION_PARENT_RESOURCE = 'projects/my-project/locations/my-location/recommenders/my-recommender'
Esempio n. 7
0
def GetMarkDismissedRequestFromArgs(args, parent_resource, is_insight_api):
    """Returns the mark dismissed request from the user-specified arguments.

  Args:
    args: argparse.Namespace, An object that contains the values for the
      arguments specified in the Args method.
    parent_resource: resource url string, the flags are already defined in
      argparse namespace, including project, billing-account, folder,
      organization, etc.
    is_insight_api: boolean value specifying whether this is a insight api,
      otherwise treat as a recommender service api and return related list
      request message.
  """

    messages = recommender_service.RecommenderMessages()
    if is_insight_api:
        mark_insight_dismissed_message = messages.GoogleCloudRecommenderV1alpha2MarkInsightDismissedRequest(
            etag=args.etag,
            recommendationChangeType=_GetRecommendationChangeType(
                args.recommendation_change_type))
        if args.project:
            request = messages.RecommenderProjectsLocationsInsightTypesInsightsMarkDismissedRequest(
                googleCloudRecommenderV1alpha2MarkInsightDismissedRequest=
                mark_insight_dismissed_message,
                name=parent_resource)
        elif args.billing_account:
            request = messages.RecommenderBillingAccountsLocationsInsightTypesInsightsMarkDismissedRequest(
                googleCloudRecommenderV1alpha2MarkInsightDismissedRequest=
                mark_insight_dismissed_message,
                name=parent_resource)
        elif args.organization:
            request = messages.RecommenderOrganizationsLocationsInsightTypesInsightsMarkDismissedRequest(
                googleCloudRecommenderV1alpha2MarkInsightDismissedRequest=
                mark_insight_dismissed_message,
                name=parent_resource)
        elif args.folder:
            request = messages.RecommenderFoldersLocationsInsightTypesInsightsMarkDismissedRequest(
                googleCloudRecommenderV1alpha2MarkInsightDismissedRequest=
                mark_insight_dismissed_message,
                name=parent_resource)
    else:
        mark_recommendation_dismissed_message = messages.GoogleCloudRecommenderV1alpha2MarkRecommendationDismissedRequest(
            etag=args.etag)
        if args.project:
            request = messages.RecommenderProjectsLocationsRecommendersRecommendationsMarkDismissedRequest(
                googleCloudRecommenderV1alpha2MarkRecommendationDismissedRequest
                =mark_recommendation_dismissed_message,
                name=parent_resource)
        elif args.billing_account:
            request = messages.RecommenderBillingAccountsLocationsRecommendersRecommendationsMarkDismissedRequest(
                googleCloudRecommenderV1alpha2MarkRecommendationDismissedRequest
                =mark_recommendation_dismissed_message,
                name=parent_resource)
        elif args.organization:
            request = messages.RecommenderOrganizationsLocationsRecommendersRecommendationsMarkDismissedRequest(
                googleCloudRecommenderV1alpha2MarkRecommendationDismissedRequest
                =mark_recommendation_dismissed_message,
                name=parent_resource)
        elif args.folder:
            request = messages.RecommenderFoldersLocationsRecommendersRecommendationsMarkDismissedRequest(
                googleCloudRecommenderV1alpha2MarkRecommendationDismissedRequest
                =mark_recommendation_dismissed_message,
                name=parent_resource)

    return request
Esempio n. 8
0
def GetMarkFailedRequestFromArgs(args, parent_resource, api_version):
    """Returns the mark_failed_request from the user-specified arguments.

  Args:
    args: argparse.Namespace, An object that contains the values for the
      arguments specified in the Args method.
    parent_resource: resource location such as `organizations/123`
    api_version: API version string.
  """

    messages = recommender_service.RecommenderMessages(api_version)
    if api_version == RECOMMENDER_API_ALPHA_VERSION:
        message_request_field = messages.GoogleCloudRecommenderV1alpha2MarkRecommendationFailedRequest
        mark_recommendation_failed_request = messages.GoogleCloudRecommenderV1alpha2MarkRecommendationFailedRequest(
            etag=args.etag,
            stateMetadata=ParseStateMetadata(args.state_metadata,
                                             message_request_field))
        if args.project:
            mark_request = messages.RecommenderProjectsLocationsRecommendersRecommendationsMarkFailedRequest(
                googleCloudRecommenderV1alpha2MarkRecommendationFailedRequest=
                mark_recommendation_failed_request,
                name=parent_resource)
        elif args.billing_account:
            mark_request = messages.RecommenderBillingAccountsLocationsRecommendersRecommendationsMarkFailedRequest(
                googleCloudRecommenderV1alpha2MarkRecommendationFailedRequest=
                mark_recommendation_failed_request,
                name=parent_resource)
        elif args.organization:
            mark_request = messages.RecommenderOrganizationsLocationsRecommendersRecommendationsMarkFailedRequest(
                googleCloudRecommenderV1alpha2MarkRecommendationFailedRequest=
                mark_recommendation_failed_request,
                name=parent_resource)
        elif args.folder:
            mark_request = messages.RecommenderFoldersLocationsRecommendersRecommendationsMarkFailedRequest(
                googleCloudRecommenderV1alpha2MarkRecommendationFailedRequest=
                mark_recommendation_failed_request,
                name=parent_resource)
    elif api_version == RECOMMENDER_API_BETA_VERSION:
        message_request_field = messages.GoogleCloudRecommenderV1beta1MarkRecommendationFailedRequest
        mark_recommendation_failed_request = messages.GoogleCloudRecommenderV1beta1MarkRecommendationFailedRequest(
            etag=args.etag,
            stateMetadata=ParseStateMetadata(args.state_metadata,
                                             message_request_field))
        if args.project:
            mark_request = messages.RecommenderProjectsLocationsRecommendersRecommendationsMarkFailedRequest(
                googleCloudRecommenderV1beta1MarkRecommendationFailedRequest=
                mark_recommendation_failed_request,
                name=parent_resource)
        elif args.billing_account:
            mark_request = messages.RecommenderBillingAccountsLocationsRecommendersRecommendationsMarkFailedRequest(
                googleCloudRecommenderV1beta1MarkRecommendationFailedRequest=
                mark_recommendation_failed_request,
                name=parent_resource)
        elif args.organization:
            mark_request = messages.RecommenderOrganizationsLocationsRecommendersRecommendationsMarkFailedRequest(
                googleCloudRecommenderV1beta1MarkRecommendationFailedRequest=
                mark_recommendation_failed_request,
                name=parent_resource)
        elif args.folder:
            mark_request = messages.RecommenderFoldersLocationsRecommendersRecommendationsMarkFailedRequest(
                googleCloudRecommenderV1beta1MarkRecommendationFailedRequest=
                mark_recommendation_failed_request,
                name=parent_resource)
    elif api_version == RECOMMENDER_API_GA_VERSION:
        message_request_field = messages.GoogleCloudRecommenderV1MarkRecommendationFailedRequest
        mark_recommendation_failed_request = messages.GoogleCloudRecommenderV1MarkRecommendationFailedRequest(
            etag=args.etag,
            stateMetadata=ParseStateMetadata(args.state_metadata,
                                             message_request_field))
        if args.project:
            mark_request = messages.RecommenderProjectsLocationsRecommendersRecommendationsMarkFailedRequest(
                googleCloudRecommenderV1MarkRecommendationFailedRequest=
                mark_recommendation_failed_request,
                name=parent_resource)
        elif args.billing_account:
            mark_request = messages.RecommenderBillingAccountsLocationsRecommendersRecommendationsMarkFailedRequest(
                googleCloudRecommenderV1MarkRecommendationFailedRequest=
                mark_recommendation_failed_request,
                name=parent_resource)
        elif args.organization:
            mark_request = messages.RecommenderOrganizationsLocationsRecommendersRecommendationsMarkFailedRequest(
                googleCloudRecommenderV1MarkRecommendationFailedRequest=
                mark_recommendation_failed_request,
                name=parent_resource)
        elif args.folder:
            mark_request = messages.RecommenderFoldersLocationsRecommendersRecommendationsMarkFailedRequest(
                googleCloudRecommenderV1MarkRecommendationFailedRequest=
                mark_recommendation_failed_request,
                name=parent_resource)

    return mark_request