Skip to content

Commit

Permalink
Merge pull request #56 from r0h4n/master
Browse files Browse the repository at this point in the history
Adds List views
  • Loading branch information
r0h4n committed Nov 15, 2016
2 parents c538241 + 922744f commit 2a66ef5
Show file tree
Hide file tree
Showing 12 changed files with 71 additions and 49 deletions.
2 changes: 1 addition & 1 deletion tendrl/node_agent/flows/flow.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ def __init__(self, flow_name, job, atoms, pre_run, post_run, uuid):
'host': config.get("common", "etcd_connection")}

self.etcd_client = etcd.Client(**etcd_kwargs)
self.node_id = manager_utils.get_tendrl_uuid()
self.node_id = manager_utils.get_node_context()

def run(self):
post_atom = None
Expand Down
3 changes: 3 additions & 0 deletions tendrl/node_agent/gluster_integration/flows/import_cluster.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,7 @@ def run(self):
self.parameters['Package.name'] = gluster
self.parameters['Node.cmd_str'] = "tendrl-gluster-integration " \
"--cluster-id %s" % cluster_id
tendrl_context = "nodes/%s/Tendrl_context/cluster_id" % \
self.node_id
self.etcd_client.write(tendrl_context, cluster_id)
return super(ImportCluster, self).run()
38 changes: 22 additions & 16 deletions tendrl/node_agent/manager/manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ def __init__(self, node_id, machine_id):
self._user_request_thread = EtcdThread(self)
self._discovery_thread = TopLevelEvents(self)
self.persister = Persister()
self.register_node(node_id, machine_id)
self.register_node(machine_id)

def stop(self):
LOG.info("%s stopping" % self.__class__.__name__)
Expand All @@ -116,25 +116,32 @@ def join(self):
self._discovery_thread.join()
self.persister.join()

def register_node(self, node_id, machine_id):
def register_node(self, machine_id):
self.persister.update_node_context(
NodeContext(
updated=str(time.time()),
machine_id=machine_id,
node_id=node_id,
node_id=utils.set_node_context(),
fqdn=socket.getfqdn(),
)
)
tendrl_context = pull_hardware_inventory.getTendrlContext()
self.persister.update_tendrl_context(
TendrlContext(
updated=str(time.time()),
sds_version="",
node_id=node_id,
sds_name="",
cluster_id=""
sds_version=tendrl_context['sds_version'],
node_id=utils.get_node_context(),
sds_name=tendrl_context['sds_name'],
)
)

self.persister.update_node(
Node(
node_id=utils.get_node_context(),
fqdn=socket.getfqdn(),
status="UP"
)
)
self.persister.update_tendrl_definitions(TendrlDefinitions(
updated=str(time.time()), data=def_data))

Expand All @@ -151,8 +158,9 @@ def on_pull(self, raw_data):
LOG.info("on_pull, Updating node data")
self.persister.update_node(
Node(
node_uuid=raw_data["node_uuid"],
node_id=raw_data["node_id"],
fqdn=raw_data["os"]["FQDN"],
status="UP"
)
)
if "tendrl_context" in raw_data:
Expand All @@ -163,8 +171,7 @@ def on_pull(self, raw_data):
updated=str(time.time()),
sds_name=tc["sds_name"],
sds_version=tc["sds_version"],
node_uuid=raw_data["node_uuid"],
cluster_id="",
node_id=raw_data["node_id"],
)
)
LOG.info("on_pull, Updated tendrl context data successfully")
Expand All @@ -179,7 +186,7 @@ def on_pull(self, raw_data):
os_version=node["OSVersion"],
kernel_version=node["KernelVersion"],
selinux_mode=node["SELinuxMode"],
node_uuid=raw_data["node_uuid"],
node_id=raw_data["node_id"],
)
)
if "memory" in raw_data:
Expand All @@ -190,7 +197,7 @@ def on_pull(self, raw_data):
updated=str(time.time()),
total_size=memory["TotalSize"],
total_swap=memory["SwapTotal"],
node_uuid=raw_data["node_uuid"],
node_id=raw_data["node_id"],
)
)
if "cpu" in raw_data:
Expand All @@ -207,7 +214,7 @@ def on_pull(self, raw_data):
cpu_op_mode=cpu["CpuOpMode"],
cpu_family=cpu["CPUFamily"],
cpu_count=cpu["CPUs"],
node_uuid=raw_data["node_uuid"],
node_id=raw_data["node_id"],
)
)

Expand All @@ -217,11 +224,10 @@ def main():
config.get('node_agent', 'log_cfg_path'),
config.get('node_agent', 'log_level')
)
node_id = utils.get_tendrl_uuid()
pull_hardware_inventory.update_node_id(node_id)

machine_id = get_machine_id()

m = Manager(node_id, machine_id)
m = Manager(machine_id)
m.start()

complete = gevent.event.Event()
Expand Down
19 changes: 11 additions & 8 deletions tendrl/node_agent/manager/pull_hardware_inventory.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
import platform
import socket

from tendrl.node_agent.manager import utils as mgr_utils

node_id = ""


Expand Down Expand Up @@ -102,11 +104,6 @@ def getNodeOs():
return osinfo


def update_node_id(nid):
global node_id
node_id = nid


def getTendrlContext():
tendrl_context = {"sds_name": "", "sds_version": ""}
cmd = Command({"_raw_params": "gluster --version"})
Expand All @@ -121,8 +118,14 @@ def getTendrlContext():
out, err = cmd.start()
if out["rc"] == 0:
nvr = out['stdout']
tendrl_context["sds_name"] = nvr.split()[0]
tendrl_context["sds_version"] = nvr.split()[2].split("-")[0]
tendrl_context["sds_name"] = "%s\n%s" %\
(tendrl_context['sds_name'],
nvr.split()[0]
)
tendrl_context["sds_version"] = "%s\n%s" %\
(tendrl_context['sds_version'],
nvr.split()[2].split("-")[0]
)

return tendrl_context

Expand All @@ -136,7 +139,7 @@ def get_node_inventory():

node_inventory["machine_id"] = out

node_inventory["node_id"] = node_id
node_inventory["node_id"] = mgr_utils.get_node_context()

node_inventory["os"] = getNodeOs()
node_inventory["cpu"] = getNodeCpu()
Expand Down
11 changes: 6 additions & 5 deletions tendrl/node_agent/manager/tendrl_definitions_node_agent.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,15 @@
vendor_id:
type: String
enabled: true
value: /nodes/$node.id/cpu
value: nodes/$Node_context.node_id/Cpu
Memory:
attrs:
total_size:
type: String
total_swap:
type: String
enabled: true
value: /nodes/$node.id/memory
value: nodes/$Node_context.node_id/Memory
Node:
atoms:
cmd:
Expand Down Expand Up @@ -60,7 +60,7 @@
status:
type: Boolean
enabled: true
value: /nodes/$node.id/node
value: nodes/$Node_context.node_id/Node
OS:
attrs:
kernel_version:
Expand All @@ -72,7 +72,7 @@
selinux_mode:
type: String
enabled: true
value: /nodes/$node.id/os
value: nodes/$Node_context.node_id/Os
Package:
atoms:
install:
Expand Down Expand Up @@ -166,6 +166,7 @@
node_id:
help: "Tendrl ID for the managed node"
type: String
value: nodes/$Node_context.node_id/Tendrl_context
Node_context:
attrs:
machine_id:
Expand All @@ -178,7 +179,7 @@
help: "Tendrl ID for the managed node"
type: String
enabled: true
value: /nodes/$node.id/node_context
value: nodes/$Node_context.node_id/Node_context
namespace.tendrl.node_agent.gluster_integration:
flows:
ImportCluster:
Expand Down
18 changes: 13 additions & 5 deletions tendrl/node_agent/manager/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,25 @@
NODE_CONTEXT = "/etc/tendrl/node_agent/node_context"


def get_tendrl_uuid():
def get_node_context():
# check if valid uuid is already present in node_context
# if not present generate one and update the file
if os.path.isfile(NODE_CONTEXT):
with open(NODE_CONTEXT) as f:
node_id = f.read()
LOG.info("Tendrl Node.id==%s found!" % node_id)
return node_id
if node_id:
LOG.info("Node_context.node_id==%s found!" % node_id)
return node_id
else:
return None


def set_node_context():
node_id = get_node_context()
if node_id is None:
with open(NODE_CONTEXT, 'wb+') as f:
node_id = str(uuid.uuid4())
f.write(node_id)
LOG.info("Tendrl Node.id==%s created!" % node_id)
return node_id
LOG.info("Node_context.node_id==%s created!" % node_id)

return node_id
6 changes: 3 additions & 3 deletions tendrl/node_agent/persistence/cpu.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ class Cpu(EtcdObj):
"""A table of the cpu, lazily updated
"""
__name__ = 'nodes/%s/cpu'
__name__ = 'nodes/%s/Cpu'

node_uuid = fields.StrField("node_uuid")
node_id = fields.StrField("node_id")
model = fields.StrField("model")
vendor_id = fields.StrField("vendor_id")
model_name = fields.StrField("model_name")
Expand All @@ -19,5 +19,5 @@ class Cpu(EtcdObj):
cpu_count = fields.StrField("cpu_count")

def render(self):
self.__name__ = self.__name__ % self.node_uuid
self.__name__ = self.__name__ % self.node_id
return super(Cpu, self).render()
6 changes: 3 additions & 3 deletions tendrl/node_agent/persistence/memory.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ class Memory(EtcdObj):
"""A table of the memory, lazily updated
"""
__name__ = 'nodes/%s/memory'
__name__ = 'nodes/%s/Memory'

node_uuid = fields.StrField("node_uuid")
node_id = fields.StrField("node_id")
total_size = fields.StrField("total_size")
total_swap = fields.StrField("total_swap")

def render(self):
self.__name__ = self.__name__ % self.node_uuid
self.__name__ = self.__name__ % self.node_id
return super(Memory, self).render()
7 changes: 4 additions & 3 deletions tendrl/node_agent/persistence/node.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,12 @@ class Node(EtcdObj):
"""A table of the Os, lazily updated
"""
__name__ = 'nodes/%s/node'
__name__ = 'nodes/%s/Node'

node_uuid = fields.StrField("node_uuid")
node_id = fields.StrField("node_id")
fqdn = fields.StrField("fqdn")
status = fields.StrField("status")

def render(self):
self.__name__ = self.__name__ % self.node_uuid
self.__name__ = self.__name__ % self.node_id
return super(Node, self).render()
2 changes: 1 addition & 1 deletion tendrl/node_agent/persistence/node_context.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ class NodeContext(EtcdObj):
"""A table of the node context, lazily updated
"""
__name__ = 'nodes/%s/node_context'
__name__ = 'nodes/%s/Node_context'

node_id = fields.StrField("node_id")
machine_id = fields.StrField("machine_id")
Expand Down
6 changes: 3 additions & 3 deletions tendrl/node_agent/persistence/os.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@ class Os(EtcdObj):
"""A table of the Os, lazily updated
"""
__name__ = 'nodes/%s/os'
__name__ = 'nodes/%s/Os/'

node_uuid = fields.StrField("node_uuid")
node_uuid = fields.StrField("node_id")
os = fields.StrField("os")
os_version = fields.StrField("os_version")
kernel_version = fields.StrField("kernel_version")
selinux_mode = fields.StrField("selinux_mode")

def render(self):
self.__name__ = self.__name__ % self.node_uuid
self.__name__ = self.__name__ % self.node_id
return super(Os, self).render()
2 changes: 1 addition & 1 deletion tendrl/node_agent/persistence/tendrl_context.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ class TendrlContext(EtcdObj):
"""A table of the tendrl context, lazily updated
"""
__name__ = 'nodes/%s/tendrl_context'
__name__ = 'nodes/%s/Tendrl_context/'

node_id = fields.StrField("node_id")
sds_version = fields.StrField("sds_version")
Expand Down

0 comments on commit 2a66ef5

Please sign in to comment.