def test_exclusive(self): s = ExclusiveSet() assert_that(len(s), is_(0)) assert_that('1' in s, is_(False)) assert_that('2' in s, is_(False)) s.add('1') assert_that(len(s), is_(1)) assert_that('1' in s, is_(True)) assert_that('2' in s, is_(False)) self.assertRaises(DuplicatedValue, s.add, '1') s.remove('1') assert_that(len(s), is_(0))
def _register_services(self): common.services.register(ServiceName.AGENT_CONFIG, self._config) common.services.register(ServiceName.LOCKED_VMS, ExclusiveSet()) threadpool = RequestIdExecutor( ThreadPoolExecutor(self._config.workers)) common.services.register(ThreadPoolExecutor, threadpool) self._registrant = ChairmanRegistrant(self._config.chairman_list) self._config.on_config_change(self._config.CHAIRMAN, self._registrant.update_chairman_list) common.services.register(ServiceName.REGISTRANT, self._registrant) state_json_file = os.path.join( self._config.options.config_path, self._config.DEFAULT_STATE_FILE) state = State(state_json_file) mode = Mode(state) mode.on_change(self._registrant.trigger_chairman_update) common.services.register(ServiceName.MODE, mode) ds_tags = DatastoreTags(state) ds_tags.on_change(self._registrant.trigger_chairman_update) common.services.register(ServiceName.DATASTORE_TAGS, ds_tags)
def get_occupied_vnc_ports(self): vms = self.vim_client.get_vms() ports = ExclusiveSet() for vm in vms: if vm.config and vm.config.extraConfig: enabled = False port = None for option in vm.config.extraConfig: if option.key == self.EXTRA_CONFIG_VNC_ENABLED: enabled = option.value.upper() == 'TRUE' elif option.key == self.EXTRA_CONFIG_VNC_PORT: port = int(option.value) if enabled: try: ports.add(port) except DuplicatedValue: self._logger.warning("port %d already occupied" % port) return ports
def _register_services(self): common.services.register(ServiceName.AGENT_CONFIG, self._config) common.services.register(ServiceName.LOCKED_VMS, ExclusiveSet()) state_json_file = os.path.join(self._config.options.config_path, self._config.DEFAULT_STATE_FILE) state = State(state_json_file) mode = Mode(state) common.services.register(ServiceName.MODE, mode)
def get_occupied_vnc_ports(self): vms = self.vim_client.get_vms() ports = ExclusiveSet() for vm in vms: if vm.config and vm.config.extraConfig: enabled = False port = None for option in vm.config.extraConfig: if option.key == self.EXTRA_CONFIG_VNC_ENABLED: enabled = option.value.upper() == 'TRUE' elif option.key == self.EXTRA_CONFIG_VNC_PORT: port = int(option.value) if enabled: try: ports.add(port) except DuplicatedValue: self._logger.warning("port %d already occupied" % port) return ports
def _register_services(self): common.services.register(ServiceName.AGENT_CONFIG, self._config) common.services.register(ServiceName.LOCKED_VMS, ExclusiveSet()) threadpool = RequestIdExecutor(ThreadPoolExecutor( self._config.workers)) common.services.register(ThreadPoolExecutor, threadpool) state_json_file = os.path.join(self._config.options.config_path, self._config.DEFAULT_STATE_FILE) state = State(state_json_file) mode = Mode(state) common.services.register(ServiceName.MODE, mode)
def test_exclusive(self): s = ExclusiveSet() assert_that(len(s), is_(0)) assert_that('1' in s, is_(False)) assert_that('2' in s, is_(False)) s.add('1') assert_that(len(s), is_(1)) assert_that('1' in s, is_(True)) assert_that('2' in s, is_(False)) self.assertRaises(DuplicatedValue, s.add, '1') s.remove('1') assert_that(len(s), is_(0))
def setUp(self): self._threadpool = ThreadPoolExecutor(16) self.state_file = tempfile.mktemp() self.state = CommonState(self.state_file) common.services.register(ThreadPoolExecutor, self._threadpool) common.services.register(ServiceName.REQUEST_ID, threading.local()) common.services.register(ServiceName.LOCKED_VMS, ExclusiveSet()) common.services.register(ServiceName.MODE, Mode(self.state)) self.agent_conf_dir = mkdtemp(delete=True) self.hostname = "localhost" self._config = MagicMock() self._config.hypervisor = "fake" self._config.agent_id = stable_uuid("agent_id") self._config.hostname = "localhost" self._config.host_port = 1234 self._config.host_version = "X.X.X" self._config.reboot_required = False self._config.image_datastores = [] common.services.register(ServiceName.AGENT_CONFIG, self._config)