コード例 #1
0
 def _ExpectListPerInstanceConfigs(self):
     request = (
         self.messages.
         ComputeRegionInstanceGroupManagersListPerInstanceConfigsRequest)(
             filter='name eq foo'.format(project_uri=self.project_uri),
             instanceGroupManager='group-1',
             maxResults=1,
             project='fake-project',
             region='us-central2',
         )
     preserved_state_disks = [
         config_utils.MakePreservedStateDiskMapEntry(
             self.messages, 'foo',
             (self.project_uri + '/zones/us-central2-a/disks/foo'),
             'READ_WRITE'),
         config_utils.MakePreservedStateDiskMapEntry(
             self.messages, 'baz',
             (self.project_uri + '/zones/us-central2-a/disks/baz'),
             'READ_ONLY'),
     ]
     items = [
         config_utils.MakePerInstanceConfig(self.messages, 'foo',
                                            preserved_state_disks,
                                            self.preserved_state_metadata),
     ]
     response = self.messages.RegionInstanceGroupManagersListInstanceConfigsResp(
         items=items)
     self.client.regionInstanceGroupManagers.ListPerInstanceConfigs.Expect(
         request,
         response=response,
     )
コード例 #2
0
    def testSimpleCase(self):
        disk_source = self.project_uri + '/zones/us-central2-a/disks/foo-2'
        preserved_state_disks = [
            config_utils.MakePreservedStateDiskMapEntry(
                self.messages, 'foo', disk_source, 'READ_ONLY',
                'on-permanent-instance-deletion'),
        ]
        preserved_state_metadata = [
            config_utils.MakePreservedStateMetadataMapEntry(self.messages,
                                                            key='key-BAR',
                                                            value='new value'),
        ]
        self._ExpectListManagedInstances()
        self._ExpectListPerInstanceConfigs()
        self._ExpectUpdatePerInstanceConfigs(
            preserved_state_disks=preserved_state_disks,
            preserved_state_metadata=preserved_state_metadata)
        self._ExpectPollingOperation()
        self._ExpectGetInstanceGroupManager()
        self._ExpectApplyUpdatesToInstances('restart')
        self._ExpectPollingOperation('apply')
        self._ExpectGetInstanceGroupManager()

        self.Run("""
        compute instance-groups managed instance-configs update group-1
          --region us-central2
          --instance foo
          --stateful-disk device-name=foo,source={project_uri}/zones/us-central2-a/disks/foo-2,mode=ro,auto-delete=on-permanent-instance-deletion
          --remove-stateful-disks baz
          --stateful-metadata "key-BAR=new value"
          --remove-stateful-metadata key-foo
          --instance-update-minimal-action restart
        """.format(project_uri=self.project_uri))
コード例 #3
0
    def testUpdateAddDiskOverrideUsingOnlyDeviceName(self):
        preserved_state_disks = [
            self._preserved_state_disk_1, self._preserved_state_disk_2,
            config_utils.MakePreservedStateDiskMapEntry(
                self.messages, 'bar',
                (self.project_uri + '/zones/us-central2-a/disks/bar'),
                'READ_WRITE')
        ]
        self._ExpectListPerInstanceConfigs()
        self.ExpectGetInstance()
        self._ExpectUpdatePerInstanceConfigs(
            preserved_state_disks=preserved_state_disks,
            preserved_state_metadata=self.preserved_state_metadata)
        self._ExpectPollingOperation()
        self._ExpectGetInstanceGroupManager()
        self._ExpectApplyUpdatesToInstances()
        self._ExpectPollingOperation('apply')
        self._ExpectGetInstanceGroupManager()

        self.Run("""
        compute instance-groups managed instance-configs update group-1
          --zone us-central2-a
          --instance foo
          --stateful-disk device-name=bar
        """)
コード例 #4
0
    def SetUp(self):
        managed_instances = test_resources.MakeInstancesInManagedInstanceGroup(
            self.messages, self.API_VERSION)

        # Add stateful policy to all 4 managed instances
        for i in range(len(managed_instances)):
            managed_instances[i].preservedStateFromPolicy = (
                policy_utils.MakePreservedState(self.messages, [
                    policy_utils.MakePreservedStateDisksMapEntry(
                        self.messages, {
                            'device_name': 'disk-a',
                            'auto_delete': 'never'
                        }),
                ]))

        # Add PICs to the last two managed instances
        source = self.project_uri + '/zones/us-central2-a/disks/baz'
        for managed_instance in managed_instances[2:]:
            managed_instance.preservedStateFromConfig = (
                config_utils.MakePreservedState(self.messages, [
                    config_utils.MakePreservedStateDiskMapEntry(
                        self.messages, 'disk-a', source, 'ro'),
                ]))

        self.make_requests.side_effect = iter([
            managed_instances,
        ])
コード例 #5
0
    def SetUp(self):
        self.SelectApi(self.API_VERSION)
        self.endpoint_uri = (
            'https://compute.googleapis.com/compute/{api_version}/'.format(
                api_version=self.API_VERSION))
        self.project_uri = '{endpoint_uri}projects/fake-project'.format(
            endpoint_uri=self.endpoint_uri)

        managed_instances = test_resources.MakeInstancesInManagedInstanceGroup(
            self.messages, self.API_VERSION)

        # Add stateful policy to all 4 managed instances
        for i in range(len(managed_instances)):
            managed_instances[i].preservedStateFromPolicy = (
                policy_utils.MakePreservedState(self.messages, [
                    policy_utils.MakePreservedStateDisksMapEntry(
                        self.messages, {
                            'device_name': 'disk-a',
                            'auto_delete': 'never'
                        }),
                ]))

        # Add PICs to the last two managed instances
        source = self.project_uri + '/zones/central2-a/disks/baz'
        for managed_instance in managed_instances[2:]:
            managed_instance.preservedStateFromConfig = (
                config_utils.MakePreservedState(self.messages, [
                    config_utils.MakePreservedStateDiskMapEntry(
                        self.messages, 'disk-a', source, 'ro'),
                ]))

        self.make_requests.side_effect = iter([
            managed_instances,
        ])
コード例 #6
0
    def SetUp(self):
        self._preserved_state_disk_1 = config_utils.MakePreservedStateDiskMapEntry(
            self.messages, 'foo',
            (self.project_uri + '/zones/us-central2-a/disks/foo'),
            'READ_WRITE')
        self._preserved_state_disk_2 = config_utils.MakePreservedStateDiskMapEntry(
            self.messages, 'baz',
            (self.project_uri + '/zones/us-central2-a/disks/baz'), 'READ_ONLY')

        self.preserved_state_metadata = [
            config_utils.MakePreservedStateMetadataMapEntry(self.messages,
                                                            key='key-BAR',
                                                            value='value BAR'),
            config_utils.MakePreservedStateMetadataMapEntry(self.messages,
                                                            key='key-foo',
                                                            value='value foo'),
        ]
コード例 #7
0
    def testUpdateWithoutInstanceUpdate(self):
        disk_source = self.project_uri + '/zones/us-central2-a/disks/foo'
        preserved_state_disks = [
            config_utils.MakePreservedStateDiskMapEntry(
                self.messages, 'foo', disk_source, 'READ_WRITE'),
        ]
        self._ExpectListPerInstanceConfigs()
        self._ExpectUpdatePerInstanceConfigs(
            preserved_state_disks=preserved_state_disks,
            preserved_state_metadata=self.preserved_state_metadata)
        self._ExpectPollingOperation()
        self._ExpectGetInstanceGroupManager()

        self.Run("""
        compute instance-groups managed instance-configs update group-1
          --zone us-central2-a
          --instance foo
          --remove-stateful-disks baz
          --no-update-instance
        """)
コード例 #8
0
    def testUpdatePatchModeWithoutSource(self):
        update_preserved_state_disks = [
            self._preserved_state_disk_1,
            config_utils.MakePreservedStateDiskMapEntry(
                self.messages, 'baz',
                (self.project_uri + '/zones/us-central2-a/disks/baz'),
                'READ_WRITE')
        ]
        self._ExpectListPerInstanceConfigs()
        self._ExpectUpdatePerInstanceConfigs(
            preserved_state_disks=update_preserved_state_disks,
            preserved_state_metadata=self.preserved_state_metadata)
        self._ExpectPollingOperation()
        self._ExpectGetInstanceGroupManager()
        self._ExpectApplyUpdatesToInstances()
        self._ExpectPollingOperation('apply')
        self._ExpectGetInstanceGroupManager()

        self.Run("""
        compute instance-groups managed instance-configs update group-1
          --zone us-central2-a
          --instance foo
          --stateful-disk device-name=baz,mode=rw
        """)
コード例 #9
0
    def testUpdateAddNonExistingDisk(self):
        preserved_state_disks = [
            self._preserved_state_disk_1, self._preserved_state_disk_2,
            config_utils.MakePreservedStateDiskMapEntry(
                self.messages, 'qwerty',
                (self.project_uri + '/zones/us-central2-a/disks/abc123'),
                'READ_WRITE', 'on-permanent-instance-deletion')
        ]
        self._ExpectListPerInstanceConfigs()
        self._ExpectUpdatePerInstanceConfigs(
            preserved_state_disks=preserved_state_disks,
            preserved_state_metadata=self.preserved_state_metadata)
        self._ExpectPollingOperation()
        self._ExpectGetInstanceGroupManager()
        self._ExpectApplyUpdatesToInstances()
        self._ExpectPollingOperation('apply')
        self._ExpectGetInstanceGroupManager()

        self.Run("""
        compute instance-groups managed instance-configs update group-1
          --zone us-central2-a
          --instance foo
          --stateful-disk device-name=qwerty,source={project_uri}/zones/us-central2-a/disks/abc123,mode=rw,auto-delete=on-permanent-instance-deletion
        """.format(project_uri=self.project_uri))
コード例 #10
0
  def SetUp(self):
    self.SelectApi(self.API_VERSION)
    self.track = calliope_base.ReleaseTrack.ALPHA
    self.endpoint_uri = 'https://compute.googleapis.com/compute/alpha/'
    self.project_uri = '{endpoint_uri}projects/my-project'.format(
        endpoint_uri=self.endpoint_uri)

    managed_instances = test_resources.MakeInstancesInManagedInstanceGroup(
        self.messages, self.API_VERSION)

    # Add stateful policy to all 4 managed instances
    for i in range(len(managed_instances)):
      managed_instances[i].preservedStateFromPolicy = (
          policy_utils.MakePreservedState(self.messages, [
              policy_utils.MakePreservedStateDisksMapEntry(
                  self.messages, {
                      'device_name': 'disk-a',
                      'auto_delete': 'never'
                  }),
          ]))

    # Add PICs to the last two managed instances
    source = self.project_uri + '/zones/us-central2-a/disks/baz'
    for managed_instance in managed_instances[2:]:
      managed_instance.preservedStateFromConfig = (
          config_utils.MakePreservedState(self.messages, [
              config_utils.MakePreservedStateDiskMapEntry(
                  self.messages, 'disk-a', source, 'ro'),
          ]))

    self.make_requests.side_effect = iter([
        [
            self.messages.InstanceGroupManagersListManagedInstancesResponse(
                managedInstances=managed_instances),
        ],
    ])