def setUp(self): super(Base, self).setUp() rules.delete_all() self.cli_fixture = self.useFixture( fixtures.MockPatchObject(ir_utils, 'get_client')) self.cli = self.cli_fixture.mock.return_value self.cli.node.get.return_value = self.node self.cli.node.update.return_value = self.node self.cli.node.list.return_value = [self.node] self.patch = [ {'op': 'add', 'path': '/properties/cpus', 'value': '4'}, {'path': '/properties/cpu_arch', 'value': 'x86_64', 'op': 'add'}, {'op': 'add', 'path': '/properties/memory_mb', 'value': '12288'}, {'path': '/properties/local_gb', 'value': '999', 'op': 'add'} ] self.patch_root_hints = [ {'op': 'add', 'path': '/properties/cpus', 'value': '4'}, {'path': '/properties/cpu_arch', 'value': 'x86_64', 'op': 'add'}, {'op': 'add', 'path': '/properties/memory_mb', 'value': '12288'}, {'path': '/properties/local_gb', 'value': '19', 'op': 'add'} ] self.node.power_state = 'power off' self.cfg = self.useFixture(config_fixture.Config()) conf_file = get_test_conf_file() self.cfg.set_config_files([conf_file])
def setUp(self): super(Base, self).setUp() rules.delete_all() self.cli_fixture = self.useFixture( fixtures.MockPatchObject(ir_utils, 'get_client')) self.cli = self.cli_fixture.mock.return_value self.cli.node.get.return_value = self.node self.cli.node.update.return_value = self.node self.cli.node.list.return_value = [self.node] self.patch = [{ 'op': 'add', 'path': '/properties/cpus', 'value': '4' }, { 'path': '/properties/cpu_arch', 'value': 'x86_64', 'op': 'add' }, { 'op': 'add', 'path': '/properties/memory_mb', 'value': '12288' }, { 'path': '/properties/local_gb', 'value': '999', 'op': 'add' }] self.patch_root_hints = [{ 'op': 'add', 'path': '/properties/cpus', 'value': '4' }, { 'path': '/properties/cpu_arch', 'value': 'x86_64', 'op': 'add' }, { 'op': 'add', 'path': '/properties/memory_mb', 'value': '12288' }, { 'path': '/properties/local_gb', 'value': '19', 'op': 'add' }] self.node.power_state = 'power off' self.cfg = self.useFixture(config_fixture.Config()) conf_file = get_test_conf_file() self.cfg.set_config_files([conf_file]) # FIXME(milan) FakeListener.poll calls time.sleep() which leads to # busy polling with no sleep at all, effectively blocking the whole # process by consuming all CPU cycles in a single thread. MonkeyPatch # with eventlet.sleep seems to help this. self.useFixture( fixtures.MonkeyPatch( 'oslo_messaging._drivers.impl_fake.time.sleep', eventlet.sleep))
def api_rules(): if flask.request.method == 'GET': res = [rule_repr(rule, short=True) for rule in rules.get_all()] return flask.jsonify(rules=res) elif flask.request.method == 'DELETE': rules.delete_all() return _generate_empty_response(204) else: body = flask.request.get_json(force=True) if body.get('uuid') and not uuidutils.is_uuid_like(body['uuid']): raise utils.Error(_('Invalid UUID value'), code=400) if body.get('scope') and len(body.get('scope')) > 255: raise utils.Error(_( "Invalid scope: the length of the scope should be within " "255 characters"), code=400) rule = rules.create(conditions_json=body.get('conditions', []), actions_json=body.get('actions', []), uuid=body.get('uuid'), description=body.get('description'), scope=body.get('scope')) response_code = (200 if _get_version() < (1, 6) else 201) return flask.make_response(flask.jsonify(rule_repr(rule, short=False)), response_code)
def api_rules(): utils.check_auth(flask.request) if flask.request.method == 'GET': res = [rule_repr(rule, short=True) for rule in rules.get_all()] return flask.jsonify(rules=res) elif flask.request.method == 'DELETE': rules.delete_all() return '', 204 else: body = flask.request.get_json(force=True) if body.get('uuid') and not uuidutils.is_uuid_like(body['uuid']): raise utils.Error(_('Invalid UUID value'), code=400) rule = rules.create(conditions_json=body.get('conditions', []), actions_json=body.get('actions', []), uuid=body.get('uuid'), description=body.get('description')) return flask.jsonify(rule_repr(rule, short=False))
def test_delete_all(self): rules.delete_all() self.assertFalse(db.model_query(db.Rule).all()) self.assertFalse(db.model_query(db.RuleCondition).all()) self.assertFalse(db.model_query(db.RuleAction).all())
def setUp(self): super(Base, self).setUp() rules.delete_all() self.cli = ir_utils.get_client() self.cli.reset_mock() self.cli.node.get.return_value = self.node self.cli.node.update.return_value = self.node self.cli.node.list.return_value = [self.node] # https://github.com/openstack/ironic-inspector/blob/master/HTTP-API.rst # noqa self.data = { 'boot_interface': '01-' + self.macs[0].replace(':', '-'), 'inventory': { 'interfaces': [ { 'name': 'eth1', 'mac_address': self.macs[0], 'ipv4_address': '1.2.1.2' }, { 'name': 'eth2', 'mac_address': '12:12:21:12:21:12' }, { 'name': 'eth3', 'mac_address': self.macs[1], 'ipv4_address': '1.2.1.1' }, ], 'disks': [ { 'name': '/dev/sda', 'model': 'Big Data Disk', 'size': 1000 * units.Gi }, { 'name': '/dev/sdb', 'model': 'Small OS Disk', 'size': 20 * units.Gi }, ], 'cpu': { 'count': 4, 'architecture': 'x86_64' }, 'memory': { 'physical_mb': 12288 }, 'bmc_address': self.bmc_address }, 'root_disk': { 'name': '/dev/sda', 'model': 'Big Data Disk', 'size': 1000 * units.Gi, 'wwn': None }, } self.data_old_ramdisk = { 'cpus': 4, 'cpu_arch': 'x86_64', 'memory_mb': 12288, 'local_gb': 464, 'interfaces': { 'eth1': { 'mac': self.macs[0], 'ip': '1.2.1.2' }, 'eth2': { 'mac': '12:12:21:12:21:12' }, 'eth3': { 'mac': self.macs[1], 'ip': '1.2.1.1' }, }, 'boot_interface': '01-' + self.macs[0].replace(':', '-'), 'ipmi_address': self.bmc_address, } self.patch = [{ 'op': 'add', 'path': '/properties/cpus', 'value': '4' }, { 'path': '/properties/cpu_arch', 'value': 'x86_64', 'op': 'add' }, { 'op': 'add', 'path': '/properties/memory_mb', 'value': '12288' }, { 'path': '/properties/local_gb', 'value': '999', 'op': 'add' }] self.patch_old_ramdisk = [{ 'op': 'add', 'path': '/properties/cpus', 'value': '4' }, { 'path': '/properties/cpu_arch', 'value': 'x86_64', 'op': 'add' }, { 'op': 'add', 'path': '/properties/memory_mb', 'value': '12288' }, { 'path': '/properties/local_gb', 'value': '464', 'op': 'add' }] self.patch_root_hints = [{ 'op': 'add', 'path': '/properties/cpus', 'value': '4' }, { 'path': '/properties/cpu_arch', 'value': 'x86_64', 'op': 'add' }, { 'op': 'add', 'path': '/properties/memory_mb', 'value': '12288' }, { 'path': '/properties/local_gb', 'value': '19', 'op': 'add' }] self.node.power_state = 'power off'
def setUp(self): super(Base, self).setUp() rules.delete_all() self.cli = ir_utils.get_client() self.cli.reset_mock() self.cli.node.get.return_value = self.node self.cli.node.update.return_value = self.node self.cli.node.list.return_value = [self.node] # https://github.com/openstack/ironic-inspector/blob/master/HTTP-API.rst # noqa self.data = { 'boot_interface': '01-' + self.macs[0].replace(':', '-'), 'inventory': { 'interfaces': [ {'name': 'eth1', 'mac_address': self.macs[0], 'ipv4_address': '1.2.1.2'}, {'name': 'eth2', 'mac_address': '12:12:21:12:21:12'}, {'name': 'eth3', 'mac_address': self.macs[1], 'ipv4_address': '1.2.1.1'}, ], 'disks': [ {'name': '/dev/sda', 'model': 'Big Data Disk', 'size': 1000 * units.Gi}, {'name': '/dev/sdb', 'model': 'Small OS Disk', 'size': 20 * units.Gi}, ], 'cpu': { 'count': 4, 'architecture': 'x86_64' }, 'memory': { 'physical_mb': 12288 }, 'bmc_address': self.bmc_address }, 'root_disk': {'name': '/dev/sda', 'model': 'Big Data Disk', 'size': 1000 * units.Gi, 'wwn': None}, } self.data_old_ramdisk = { 'cpus': 4, 'cpu_arch': 'x86_64', 'memory_mb': 12288, 'local_gb': 464, 'interfaces': { 'eth1': {'mac': self.macs[0], 'ip': '1.2.1.2'}, 'eth2': {'mac': '12:12:21:12:21:12'}, 'eth3': {'mac': self.macs[1], 'ip': '1.2.1.1'}, }, 'boot_interface': '01-' + self.macs[0].replace(':', '-'), 'ipmi_address': self.bmc_address, } self.patch = [ {'op': 'add', 'path': '/properties/cpus', 'value': '4'}, {'path': '/properties/cpu_arch', 'value': 'x86_64', 'op': 'add'}, {'op': 'add', 'path': '/properties/memory_mb', 'value': '12288'}, {'path': '/properties/local_gb', 'value': '999', 'op': 'add'} ] self.patch_old_ramdisk = [ {'op': 'add', 'path': '/properties/cpus', 'value': '4'}, {'path': '/properties/cpu_arch', 'value': 'x86_64', 'op': 'add'}, {'op': 'add', 'path': '/properties/memory_mb', 'value': '12288'}, {'path': '/properties/local_gb', 'value': '464', 'op': 'add'} ] self.patch_root_hints = [ {'op': 'add', 'path': '/properties/cpus', 'value': '4'}, {'path': '/properties/cpu_arch', 'value': 'x86_64', 'op': 'add'}, {'op': 'add', 'path': '/properties/memory_mb', 'value': '12288'}, {'path': '/properties/local_gb', 'value': '19', 'op': 'add'} ] self.node.power_state = 'power off'