# Event and data generator for IaaSInventory
# What is CndEventLogger ?
CndEventLogger is a python lib to help you to log IaaS event and inventory in a consul server. Later you can create a script or user CndEyes application to consolidate all data.
# How it's works
## Event logger
```
event = CndEvent(host, port, token, protocol)
```
### Deployment start and finish
When a deployment start
```
event.deployment_start(
deployment_id=deployment_id,
service=service,
deployment_name=deployment_name,
project=project,
source=source
)
```
When a deployment finish
```
event.deployment_end(
success=success,
deployment_id=deployment_id,
service=service,
deployment_name=deployment_name,
source=source,
project=project
)
```
---
### Host start and finish
When a host start to build
```
event.host_start(
host_id=host_id,
hostname=hostname,
tiers=tiers,
deployment_id=deployment_id,
source=source,
domain=domain
)
```
When a host finish to build
```
event.host_end(
success=success,
host_id=host_id,
hostname=hostname,
tiers=tiers,
deployment_id=deployment_id,
source=source,
domain=domain
)
```
---
### Workflow start and finish
When a workflow start to build
```
event.host_workflow_start(
workflow_id=workflow_id,
application=application,
name=name,
domain=domain,
hostname=hostname
)
```
When a workflow finish to build
```
event.host_workflow_end(
success=success,
workflow_id=workflow_id,
application=application,
name=name,
domain=domain,
hostname=hostname
)
```
---
## Inventory logger
```
inv = CndInventory(host, port, token, protocol)
```
### vRA vm
```
inv.vra(
uuid=host_uuid,
hostname=hostname,
domain=domain,
tiers=tiers,
datacenter=datacenter,
deployment_id=deployment_id,
source=source,
cloud_account=cloud_account,
cpu=cpu,
memory=memory,
os_type=os_type,
software_name=software_name,
power_state=power_state,
tags=tags,
item_updated_at=item_updated_at,
item_created_at=item_created_at
)
```
---
### Application
```
inv.app(
source=source,
uuid=uuid,
domain=domain,
hostname=hostname,
deleted=deleted
)
```
---
# Data from vra/vcenter like
## Vra
### Naming
```
iaas_inventory/hosts/<source>/<hostname>/
```
### Content
```
uuid: string
deleted: boolean
datacenter: string
cloud_account: string
cpu: integer
memory: integer
os_type: string
software_name: string
power_state: boolean
item_created_at: datetime
item_updated_at: datetime
tags: array
```
## Application
### Naming
```
iaas_inventory/app/<application-name>/<hostname>/
```
### Content
```
uuid: string
deleted: boolean
```
# Data from event
## Host
### To start event logging
path
```
iaas_inventory/events/host/<hostname>/start
```
content
```
start_at: datetime
tiers: string
deployment_id: string
```
### To finish event logging
path
```
iaas_inventory/events/host/<hostname>/end
```
content
```
end_at: datetime
tiers: string
deployment_id: string
```
## Deployments
### To start event logging
path
```
iaas_inventory/events/deployment/<deployment-id>/start
```
content
```
start_at: datetime
service: string
deployment_name: string
source: string
```
### To finish event logging
path
```
iaas_inventory/events/deployment/<deployment-id>/end
```
content
```
end_at: datetime
service: string
deployment_name: string
source: string
```
## Workflow
### To start event logging
path
```
iaas_inventory/events/workflow/<workflow-id>/start
```
content
```
workflow_name: string
application: string
start_at: datetime
deployment_id: string
```
### To finish event logging
path
```
iaas_inventory/events/workflow/<workflow-id>/end
```
content
```
workflow_name: string
application: string
end_at: datetime
deployment_id: string
```