예제 #1
0
파일: adccore.py 프로젝트: jonozzz/nosest
    def setup(self):
        super(RefreshAdcCurrentConfig, self).setup()
        LOG.info("refresh current config on {0}".format(
            str(self.device.get_discover_address())))
        machine_id = get_machine_id(self.device)

        existing_discovery_task = filter_search_for_item(
            base_uri=DeviceDiscovery.URI,
            search_key='deviceReference/link',
            search_value='*' + machine_id)

        module_list = [{'module': CM_GLOBAL_ADC_NAME}]
        payload = DeviceDiscovery(moduleList=module_list, status='STARTED')
        self.set_uri(existing_discovery_task)
        self.api.patch(self.uri, payload=payload)
        resp = wait_args(
            self.api.get,
            func_args=[self.uri],
            condition=lambda x: x.status in DeviceDiscovery.FINAL_STATUSES,
            interval=10,
            timeout=self.timeout,
            timeout_message='Re-discovery did not complete in {0} seconds')
        if resp.status == DeviceDiscovery.FAIL_STATE:
            raise TaskError(
                "Re-discovery failed for {0} for ADC service".format(
                    self.device.get_discover_address()))
예제 #2
0
    def setup(self):
        # make sure we will not import services for sure, only discover them
        self.import_config = False
        super(DiscoverAccess, self).setup()
        # at this point the discovery has been completed
        # we need to import only adc_core configuration
        # if adc_core imported on a device, then do not re-import
        for device in self.devices:
            uuid = get_machine_id(device)
            resp = self.api.get(MachineIdResolver.ITEM_URI % uuid)
            # assuming adc_core and access already discovered by setup already (in parent class)
            assert resp[PROPERTIES][
                DEFAULT_CM_ADC_DEVICE_GROUP] is not None, "adc_core services missed"
            assert resp[PROPERTIES][DEFAULT_CM_ADC_DEVICE_GROUP][
                "discovered"] is True, "adc_core is not discovered"
            assert resp[PROPERTIES][
                DEFAULT_CM_ACCESS_DEVICE_GROUP] is not None, "Accesss services missed"
            assert resp[PROPERTIES][DEFAULT_CM_ACCESS_DEVICE_GROUP][
                "discovered"] is True, "Access is not discovered"

            is_adc_core_imported = resp[PROPERTIES][
                DEFAULT_CM_ADC_DEVICE_GROUP]["imported"]
            # if adc_core already is not imported, then need to import
            if not is_adc_core_imported:
                resp = import_service_config(device, CM_GLOBAL_ADC_NAME,
                                             self.cluster, self.use_bigiq_sync,
                                             self.snapshot_working_config)
                self.completed(device)

        return self.post_discovery_steps()
예제 #3
0
    def setup(self):
        for device in self.devices:
            LOG.info('Checking device "%s" availability...' % device)
            machineid = get_machine_id(device)
            if machineid is not None:
                resp = self.api.get(MachineIdResolver.ITEM_URI % machineid)

                self.wait_for_availability(resp)
            else:
                raise ValueError("Unable to locate uui for '%s' device" %
                                 device)
            LOG.info('Device "%s" is available...' % device)
예제 #4
0
파일: adccore.py 프로젝트: jonozzz/nosest
 def setup(self):
     super(RefreshAdcWorkingConfig, self).setup()
     LOG.debug('RefreshAdcWorkingConfig.setup()')
     machine_id = get_machine_id(self.device)
     LOG.info('Finding existing import task...')
     old_task = filter_search_for_item(
         base_uri=AdcDeclareMgmtAuthorityTask.URI,
         search_key='deviceReference/link',
         search_value='*' + machine_id)
     LOG.info('Deleting existing import task...')
     # Hopefully we won't need to wait for this, but the response contains a job status,
     # so it might be possible that the delete won't finish quickly.
     delete_resp = self.api.delete(
         AdcDeclareMgmtAuthorityTask.URI_ITEM.format(old_task.id))
     LOG.info('Re-importing ADC...')
     import_service_config(self.device, CM_GLOBAL_ADC_NAME)