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
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
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
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'
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
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