Beispiel #1
0
    def testUpdateOpsAgentsPolicyWithUpdatingAgents(self):
        metrics = agent_policy.OpsAgentPolicy.AgentRule.Type.METRICS
        installed = agent_policy.OpsAgentPolicy.AgentRule.PackageState.INSTALLED
        expected_ops_agents_policy = agent_policy.OpsAgentPolicy(
            assignment=AGENT_ASSIGNMENT,
            agent_rules=[
                agent_policy.OpsAgentPolicy.AgentRule(agent_type=metrics,
                                                      version='6.*.*',
                                                      package_state=installed,
                                                      enable_autoupgrade=False)
            ],
            description=OPS_AGENT_DESCRIPTION,
            etag=ETAG,
            name=NAME,
            update_time=None,
            create_time=CREATE_TIME)

        actual_ops_agents_policy = agent_policy.UpdateOpsAgentsPolicy(
            ops_agents_policy=OPS_AGENT_POLICY,
            description=OPS_AGENT_DESCRIPTION,
            etag=None,
            agent_rules=[{
                'type': 'metrics',
                'version': '6.*.*',
                'package-state': 'installed',
                'enable-autoupgrade': False,
            }],
            os_types=None,
            group_labels=None,
            zones=None,
            instances=None)
        self.assertEqual(repr(expected_ops_agents_policy),
                         repr(actual_ops_agents_policy))
Beispiel #2
0
    def testUpdateOpsAgentsPolicyWithClearMatcher(self):
        expected_ops_agents_policy = agent_policy.OpsAgentPolicy(
            assignment=agent_policy.OpsAgentPolicy.Assignment(
                group_labels=[],
                zones=['us-central1-c'],
                instances=[],
                os_types=[AGENT_OS_TYPE]),
            agent_rules=OPS_AGENT_POLICY_AGENT_RULES,
            description=OPS_AGENT_DESCRIPTION,
            etag=ETAG,
            name=NAME,
            update_time=None,
            create_time=CREATE_TIME)

        actual_ops_agents_policy = agent_policy.UpdateOpsAgentsPolicy(
            ops_agents_policy=OPS_AGENT_POLICY,
            description=OPS_AGENT_DESCRIPTION,
            etag=None,
            agent_rules=None,
            os_types=None,
            group_labels=[],
            zones=['us-central1-c'],
            instances=[])
        self.assertEqual(repr(expected_ops_agents_policy),
                         repr(actual_ops_agents_policy))
Beispiel #3
0
    def testUpdateOpsAgentsPolicyWithNoneMatcher(self):
        expected_ops_agents_policy = agent_policy.OpsAgentPolicy(
            assignment=AGENT_ASSIGNMENT,
            agent_rules=OPS_AGENT_POLICY_AGENT_RULES,
            description=OPS_AGENT_DESCRIPTION,
            etag=ETAG,
            name=NAME,
            update_time=None,
            create_time=CREATE_TIME)

        actual_ops_agents_policy = agent_policy.UpdateOpsAgentsPolicy(
            ops_agents_policy=OPS_AGENT_POLICY,
            description=None,
            etag=None,
            agent_rules=None,
            os_types=None,
            group_labels=None,
            zones=None,
            instances=None)
        self.assertEqual(repr(expected_ops_agents_policy),
                         repr(actual_ops_agents_policy))
Beispiel #4
0
    def testUpdateOpsAgentsPolicyWithUpdatingEtag(self):
        new_etag = '38dd4394-1550-48fd-8d70-c0e31142fadd'
        self.assertNotEqual(new_etag, ETAG)

        expected_ops_agents_policy = agent_policy.OpsAgentPolicy(
            assignment=AGENT_ASSIGNMENT,
            agent_rules=OPS_AGENT_POLICY_AGENT_RULES,
            description=OPS_AGENT_DESCRIPTION,
            etag=new_etag,
            name=NAME,
            update_time=None,
            create_time=CREATE_TIME)

        actual_ops_agents_policy = agent_policy.UpdateOpsAgentsPolicy(
            ops_agents_policy=OPS_AGENT_POLICY,
            description=None,
            etag=new_etag,
            agent_rules=None,
            os_types=None,
            group_labels=None,
            zones=None,
            instances=None)
        self.assertEqual(repr(expected_ops_agents_policy),
                         repr(actual_ops_agents_policy))
Beispiel #5
0
    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()
        request = messages.OsconfigProjectsGuestPoliciesGetRequest(
            name=osconfig_command_utils.GetGuestPolicyUriPath(
                'projects', project, args.POLICY_ID))
        service = client.projects_guestPolicies
        current_guest_policy = service.Get(request)
        current_ops_agents_policy = guest_policy_to_ops_agents_policy_converter.ConvertGuestPolicyToOpsAgentPolicy(
            current_guest_policy)
        updated_ops_agents_policy = ops_agents_policy.UpdateOpsAgentsPolicy(
            current_ops_agents_policy, args.description, args.etag,
            args.agent_rules, args.os_types,
            [] if args.clear_group_labels else args.group_labels,
            [] if args.clear_zones else args.zones,
            [] if args.clear_instances else args.instances)
        ops_agents_policy_validator.ValidateOpsAgentsPolicy(
            updated_ops_agents_policy)
        updated_os_config_policy = ops_agents_policy_to_guest_policy_converter.ConvertOpsAgentPolicyToGuestPolicy(
            messages, updated_ops_agents_policy, current_guest_policy.recipes)
        request = messages.OsconfigProjectsGuestPoliciesPatchRequest(
            guestPolicy=updated_os_config_policy,
            name=osconfig_command_utils.GetGuestPolicyUriPath(
                'projects', project, args.POLICY_ID),
            updateMask=None,
        )
        complete_os_config_policy = service.Patch(request)
        complete_ops_agent_policy = guest_policy_to_ops_agents_policy_converter.ConvertGuestPolicyToOpsAgentPolicy(
            complete_os_config_policy)
        return complete_ops_agent_policy