raw update_node procedure
Change-Id: If0ebaf3ad2fb3fdb985d3a78d2a79037e48a2979
This commit is contained in:
parent
41bfe34311
commit
ac70869ee9
|
@ -163,6 +163,27 @@ class NodesController(rest.RestController):
|
||||||
pecan.request.rpcapi.destroy_node(pecan.request.context,
|
pecan.request.rpcapi.destroy_node(pecan.request.context,
|
||||||
rpc_node.uuid)
|
rpc_node.uuid)
|
||||||
|
|
||||||
|
@expose.expose(Node, types.uuid_or_name, body=Node, status_code=200)
|
||||||
|
def patch(self, node_ident, val_Node):
|
||||||
|
"""Update a node.
|
||||||
|
|
||||||
|
:param node_ident: UUID or logical name of a node.
|
||||||
|
:param Node: values to be changed
|
||||||
|
:return updated_node: updated_node
|
||||||
|
"""
|
||||||
|
|
||||||
|
node = api_utils.get_rpc_node(node_ident)
|
||||||
|
val_Node = val_Node.as_dict()
|
||||||
|
for key in val_Node:
|
||||||
|
try:
|
||||||
|
node[key] = val_Node[key]
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
|
||||||
|
updated_node = pecan.request.rpcapi.update_node(pecan.request.context,
|
||||||
|
node)
|
||||||
|
return Node.convert_with_locates(updated_node)
|
||||||
|
|
||||||
@expose.expose(Node, body=Node, status_code=201)
|
@expose.expose(Node, body=Node, status_code=201)
|
||||||
def post(self, Node):
|
def post(self, Node):
|
||||||
"""Create a new Node.
|
"""Create a new Node.
|
||||||
|
|
|
@ -24,10 +24,8 @@ from iotronic.common.i18n import _
|
||||||
from iotronic.common import utils
|
from iotronic.common import utils
|
||||||
from iotronic import objects
|
from iotronic import objects
|
||||||
|
|
||||||
|
|
||||||
CONF = cfg.CONF
|
CONF = cfg.CONF
|
||||||
|
|
||||||
|
|
||||||
JSONPATCH_EXCEPTIONS = (jsonpatch.JsonPatchException,
|
JSONPATCH_EXCEPTIONS = (jsonpatch.JsonPatchException,
|
||||||
jsonpatch.JsonPointerException,
|
jsonpatch.JsonPointerException,
|
||||||
KeyError)
|
KeyError)
|
||||||
|
@ -87,9 +85,11 @@ def get_rpc_node(node_ident):
|
||||||
return objects.Node.get_by_uuid(pecan.request.context, node_ident)
|
return objects.Node.get_by_uuid(pecan.request.context, node_ident)
|
||||||
|
|
||||||
# We can refer to nodes by their name, if the client supports it
|
# We can refer to nodes by their name, if the client supports it
|
||||||
if allow_node_logical_names():
|
# if allow_node_logical_names():
|
||||||
if utils.is_hostname_safe(node_ident):
|
# if utils.is_hostname_safe(node_ident):
|
||||||
|
else:
|
||||||
return objects.Node.get_by_name(pecan.request.context, node_ident)
|
return objects.Node.get_by_name(pecan.request.context, node_ident)
|
||||||
|
|
||||||
raise exception.InvalidUuidOrName(name=node_ident)
|
raise exception.InvalidUuidOrName(name=node_ident)
|
||||||
|
|
||||||
# Ensure we raise the same exception as we did for the Juno release
|
# Ensure we raise the same exception as we did for the Juno release
|
||||||
|
|
|
@ -126,6 +126,12 @@ class ConductorEndpoint(object):
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
def update_node(self, ctx, node_obj):
|
||||||
|
node = serializer.deserialize_entity(ctx, node_obj)
|
||||||
|
LOG.debug('Updating node %s', node.name)
|
||||||
|
node.save()
|
||||||
|
return serializer.serialize_entity(ctx, node)
|
||||||
|
|
||||||
def create_node(self, ctx, node_obj, location_obj):
|
def create_node(self, ctx, node_obj, location_obj):
|
||||||
new_node = serializer.deserialize_entity(ctx, node_obj)
|
new_node = serializer.deserialize_entity(ctx, node_obj)
|
||||||
LOG.debug('Creating node %s',
|
LOG.debug('Creating node %s',
|
||||||
|
|
|
@ -132,59 +132,11 @@ ENGINE = InnoDB
|
||||||
AUTO_INCREMENT = 10
|
AUTO_INCREMENT = 10
|
||||||
DEFAULT CHARACTER SET = utf8;
|
DEFAULT CHARACTER SET = utf8;
|
||||||
|
|
||||||
|
|
||||||
-- -----------------------------------------------------
|
|
||||||
-- Table `iotronic`.`plugins`
|
|
||||||
-- -----------------------------------------------------
|
|
||||||
DROP TABLE IF EXISTS `iotronic`.`plugins` ;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `iotronic`.`plugins` (
|
|
||||||
`created_at` DATETIME NULL DEFAULT NULL,
|
|
||||||
`updated_at` DATETIME NULL DEFAULT NULL,
|
|
||||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
|
||||||
`name` VARCHAR(20) NOT NULL,
|
|
||||||
`category` VARCHAR(20) NOT NULL,
|
|
||||||
`jsonschema` LONGTEXT NOT NULL,
|
|
||||||
`code` LONGTEXT NOT NULL,
|
|
||||||
PRIMARY KEY (`id`))
|
|
||||||
ENGINE = InnoDB
|
|
||||||
AUTO_INCREMENT = 10
|
|
||||||
DEFAULT CHARACTER SET = utf8;
|
|
||||||
|
|
||||||
|
|
||||||
-- -----------------------------------------------------
|
|
||||||
-- Table `iotronic`.`plugins_injected`
|
|
||||||
-- -----------------------------------------------------
|
|
||||||
DROP TABLE IF EXISTS `iotronic`.`plugins_injected` ;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `iotronic`.`plugins_injected` (
|
|
||||||
`created_at` DATETIME NULL DEFAULT NULL,
|
|
||||||
`updated_at` DATETIME NULL DEFAULT NULL,
|
|
||||||
`node_id` INT(11) NOT NULL,
|
|
||||||
`plugin_id` INT(11) NOT NULL,
|
|
||||||
`state` VARCHAR(20) NOT NULL)
|
|
||||||
ENGINE = InnoDB
|
|
||||||
DEFAULT CHARACTER SET = utf8;
|
|
||||||
|
|
||||||
|
|
||||||
-- -----------------------------------------------------
|
|
||||||
-- Table `iotronic`.`sensors`
|
|
||||||
-- -----------------------------------------------------
|
|
||||||
DROP TABLE IF EXISTS `iotronic`.`sensors` ;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `iotronic`.`sensors` (
|
|
||||||
`created_at` DATETIME NULL DEFAULT NULL,
|
|
||||||
`updated_at` DATETIME NULL DEFAULT NULL,
|
|
||||||
`id` INT NOT NULL,
|
|
||||||
`type` VARCHAR(45) NOT NULL,
|
|
||||||
`unit` VARCHAR(45) NOT NULL,
|
|
||||||
`fabric_name` VARCHAR(45) NULL DEFAULT NULL,
|
|
||||||
`model` VARCHAR(45) NULL DEFAULT NULL,
|
|
||||||
PRIMARY KEY (`id`))
|
|
||||||
ENGINE = InnoDB
|
|
||||||
DEFAULT CHARACTER SET = utf8;
|
|
||||||
|
|
||||||
|
|
||||||
SET SQL_MODE=@OLD_SQL_MODE;
|
SET SQL_MODE=@OLD_SQL_MODE;
|
||||||
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
|
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
|
||||||
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
|
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
|
||||||
|
|
||||||
|
|
||||||
|
-- insert testing nodes
|
||||||
|
INSERT INTO `nodes` VALUES ('2017-02-20 10:38:26',NULL,132,'f3961f7a-c937-4359-8848-fb64aa8eeaaa','12345','registered','node','server',NULL,NULL,0,'{}','{}'),('2017-02-20 10:38:45',NULL,133,'ba1efce9-cad9-4ae1-a5d1-d90a8d203d3b','yunyun','registered','yun22','yun',NULL,NULL,0,'{}','{}'),('2017-02-20 10:39:08',NULL,134,'65f9db36-9786-4803-b66f-51dcdb60066e','test','registered','test','server',NULL,NULL,0,'{}','{}');
|
||||||
|
INSERT INTO `locations` VALUES ('2017-02-20 10:38:26',NULL,6,'2','1','3',132),('2017-02-20 10:38:45',NULL,7,'2','1','3',133),('2017-02-20 10:39:08',NULL,8,'2','1','3',134)
|
Loading…
Reference in New Issue