def Run(self, args): """See base class.""" release_track = self.ReleaseTrack() project = properties.VALUES.core.project.GetOrFail() guest_policy_uri_path = osconfig_command_utils.GetGuestPolicyUriPath( 'projects', project, args.POLICY_ID) client = osconfig_api_utils.GetClientInstance( release_track, api_version_override='v1beta') service = client.projects_guestPolicies messages = osconfig_api_utils.GetClientMessages( release_track, api_version_override='v1beta') get_request = messages.OsconfigProjectsGuestPoliciesGetRequest( name=guest_policy_uri_path) try: get_response = service.Get(get_request) except apitools_exceptions.HttpNotFoundError: raise ops_agents_exceptions.PolicyNotFoundError( policy_id=args.POLICY_ID) if not guest_policy_validator.IsOpsAgentPolicy(get_response): raise ops_agents_exceptions.PolicyNotFoundError( policy_id=args.POLICY_ID) try: ops_agents_policy = to_ops_agents.ConvertGuestPolicyToOpsAgentPolicy( get_response) except calliope_exceptions.BadArgumentException: raise ops_agents_exceptions.PolicyMalformedError( policy_id=args.POLICY_ID) return ops_agents_policy
def Run(self, args): """See base class.""" release_track = self.ReleaseTrack() client = osconfig_api_utils.GetClientInstance( release_track, api_version_override='v1beta') messages = osconfig_api_utils.GetClientMessages( release_track, api_version_override='v1beta') project = properties.VALUES.core.project.GetOrFail() guest_policy_uri_path = osconfig_command_utils.GetGuestPolicyUriPath( 'projects', project, args.POLICY_ID) service = client.projects_guestPolicies get_request = messages.OsconfigProjectsGuestPoliciesGetRequest( name=guest_policy_uri_path) try: get_response = service.Get(get_request) except apitools_exceptions.HttpNotFoundError: raise ops_agents_exceptions.PolicyNotFoundError( policy_id=args.POLICY_ID) if not guest_policy_validator.IsOpsAgentPolicy(get_response): raise ops_agents_exceptions.PolicyNotFoundError( policy_id=args.POLICY_ID) delete_request = messages.OsconfigProjectsGuestPoliciesDeleteRequest( name=guest_policy_uri_path) delete_response = service.Delete(delete_request) log.DeletedResource(args.POLICY_ID) return delete_response
def testGuestPolicyWithoutTypeInDescriptionReturnsFalse(self): no_type_json_description = json.dumps({ 'agents': [], }) guest_policy = self._LoadMessage( _GUEST_POLICY_YAML_TEMPLATE.format(desc=no_type_json_description), self.messages.GuestPolicy) self.assertFalse(validator.IsOpsAgentPolicy(guest_policy))
def testOpsAgentPolicyReturnsTrue(self): ops_agent_guest_policy_description = json.dumps({ 'type': 'ops-agents', 'description': 'desc', 'agents': [{ 'enableAutoupgrade': True, 'packageState': 'installed', 'type': 'logging', 'version': '1.6.35-1' }] }) guest_policy = self._LoadMessage( _GUEST_POLICY_YAML_TEMPLATE.format( desc=ops_agent_guest_policy_description), self.messages.GuestPolicy) self.assertTrue(validator.IsOpsAgentPolicy(guest_policy))
def testGuestPolicyWithoutDescriptionReturnsFalse(self): guest_policy = self._LoadMessage( _GUEST_POLICY_WITHOUT_DESCRIPTION, self.messages.GuestPolicy) self.assertFalse(validator.IsOpsAgentPolicy(guest_policy))
def testGuestPolicyWithBrokenJsonInDescriptionReturnsFalse(self): guest_policy = self._LoadMessage( _GUEST_POLICY_YAML_TEMPLATE.format(desc='{"ops-agents":}'), self.messages.GuestPolicy) self.assertFalse(validator.IsOpsAgentPolicy(guest_policy))
def testGuestPolicyWithTypeStringInDescriptionReturnsFalse(self): guest_policy = self._LoadMessage( _GUEST_POLICY_YAML_TEMPLATE.format(desc='type'), self.messages.GuestPolicy) self.assertFalse(validator.IsOpsAgentPolicy(guest_policy))
def testGuestPolicyWithJsonArrayInDescriptionReturnsFalse(self): json_array_description = json.dumps([]) guest_policy = self._LoadMessage( _GUEST_POLICY_YAML_TEMPLATE.format(desc=json_array_description), self.messages.GuestPolicy) self.assertFalse(validator.IsOpsAgentPolicy(guest_policy))