def _CreatePolicy(self, args):
        """Create the policy on the service if needed.

    Args:
      args: argparse.Namespace, An object that contains the values for the
        arguments specified in the Args method.

    Returns:
      The created policy.
    """
        name = utils.GetPolicyNameFromArgs(args)
        constraint = utils.GetConstraintFromArgs(args)
        parent = utils.GetResourceFromArgs(args)

        empty_policy = self.org_policy_messages.GoogleCloudOrgpolicyV2alpha1Policy(
            name=name,
            spec=self.org_policy_messages.
            GoogleCloudOrgpolicyV2alpha1PolicySpec())
        new_policy = self.UpdatePolicy(empty_policy, args)

        if not new_policy.spec.rules and not new_policy.spec.inheritFromParent and not new_policy.spec.reset:
            # Return the response received after a successful DeletePolicy.
            return self.org_policy_messages.GoogleProtobufEmpty()

        create_request = self.org_policy_messages.OrgpolicyPoliciesCreateRequest(
            constraint=constraint,
            parent=parent,
            googleCloudOrgpolicyV2alpha1Policy=new_policy)
        create_response = self.policy_service.Create(create_request)
        log.CreatedResource(name, 'policy')
        return create_response
Exemple #2
0
    def testGetConstraintFromArgs_ConstraintPrefixPresent_SkipsAddingPrefix(
            self):
        args = self.parser.parse_args([
            self.CONSTRAINT_WITH_PREFIX, self.RESOURCE_FLAG, self.RESOURCE_ID
        ])

        constraint_name = utils.GetConstraintFromArgs(args)

        self.assertEqual(constraint_name, self.CONSTRAINT_WITH_PREFIX)
Exemple #3
0
    def testGetConstraintFromArgs_ConstraintPrefixNotPresent_AddsPrefix(self):
        args = self.parser.parse_args([
            self.CONSTRAINT_WITHOUT_PREFIX, self.RESOURCE_FLAG,
            self.RESOURCE_ID
        ])

        constraint = utils.GetConstraintFromArgs(args)

        self.assertEqual(constraint, self.CONSTRAINT_WITH_PREFIX)