spyglass-plugin-xls/doc/source/index.rst
Ryan Schroder a4c09b699f Allow excel plugin to take csv files as an input
Checks if file is csv and coverts csv data to a new workbook

Change-Id: I69f53268870f9293172ac3c50ab9553db0061352
2019-12-16 17:17:49 +00:00

5.6 KiB

Spyglass XLS Plugin

What is the Spyglass XLS Plugin?

The Spyglass XLS plugin is used to generate airship-seaworthy site manifest files from an excel based engineering spec. The plugin is configured with an Excel sheet or a CSV file and its corresponding excel specification as inputs. Spyglass uses this plugin to construct an intermediary yaml which is processed further using Jinja2 templates to generate site manifests.

Excel Specification

Excel Spec is like an index to the Excel sheet to look for the data to be collected by the tool. Excel Spec Sample specifies all the details that need to be filled by the Deployment Engineer.

Below is the definition for each key in the Excel spec

  • ipmi_sheet_name - name of the sheet from where IPMI and host profile information is to be read (File name, excluding the file extension, when using a CSV file)
  • start_row - row number from where the IPMI and host profile information starts
  • end_row - row number from where the IPMI and host profile information ends
  • hostname_col - column number where the hostnames are to be read from
  • ipmi_address_col - column number from where the ipmi addresses are to be read
  • host_profile_col - column number from where the host profiles are to be read
  • ipmi_gateway_col - column number from where the ipmi gateways are to be read
  • private_ip_sheet - name of the sheet which has the private IP information
  • net_type_col - column number from where the network type is to be read
  • vlan_col - column number from where the network vlan is to be read
  • vlan_start_row - row number from where the vlan information starts
  • vlan_end_row - row number from where the vlan information ends
  • net_start_row - row number from where the network information starts
  • net_end_row - row number from where the network information ends
  • net_col - column number where the IP ranges for network is to be read
  • net_vlan_col - column number where the vlan information is present in the pod wise network section
  • public_ip_sheet - name of the sheet which has the public IP information
  • oam_vlan_col - column number from where the OAM vlan information is to be read from
  • oam_ip_row - row number from where the OAM network information is to be read from
  • oam_ip_col - column number from where the OAM network information is to be read from
  • oob_net_row - row number which has the OOB network subnet ranges
  • oob_net_start_col - column number from where the OOB network ranges start
  • oob_net_end_col - column number from where the OOB network ranges end
  • ingress_ip_row - row number from where the Ingress network information is to be read from
  • dns_ntp_ldap_sheet - name of the sheet which has the DNS, NTP and LDAP information
  • login_domain_row - row number which has the ldap login domain
  • ldap_col - column number which has the all ldap related information
  • global_group - row number which has the ldap group information
  • ldap_search_url_row - row number which has the ldap url
  • ntp_row - row number which has the ntp information
  • ntp_col - column number which has the ntp information
  • dns_row - row number which has the dns information
  • dns_col - column number which has the dns information
  • domain_row - row number which has the domain information
  • domain_col - column number which has the domain information
  • location_sheet - name of the sheet which has the location information
  • column - column number which has all the information
  • corridor_row - row number which has the corridor information
  • site_name_row - row number which has the site name
  • state_name_row - row number which has the state name
  • country_name_row - row number which has the country name
  • clli_name_row - row number which has CLLI information

Example: Spyglass XLS Plugin Usage

1. Required Input (Refer to 'spyglass_plugin_xls/examples' folder to get these inputs)

  1. Excel File: SiteDesignSpec_v0.1.xlsx
  2. Excel Spec: excel_spec_upstream.yaml
  3. Site Config: site_config.yaml
  4. Template_dir: 'spyglass/examples/templates'
  5. Site name: airship-seaworthy
  1. Spyglass CLI Command using an Excel File:
spyglass excel documents -i \
    -x ../spyglass-plugin-xls/spyglass_plugin_xls/examples/SiteDesignSpec_v0.1.xlsx \
    -e ../spyglass-plugin-xls/spyglass_plugin_xls/examples/excel_spec.yaml \
    -c ../spyglass-plugin-xls/spyglass_plugin_xls/examples/site_config.yaml \
    -s airship-seaworthy -t spyglass/examples/templates/
  1. Spyglass CLI Command using a CSV File:
spyglass excel documents -i \
    -x ../spyglass-plugin-xls/spyglass_plugin_xls/examples/Site-Information.csv \
    -e ../spyglass-plugin-xls/spyglass_plugin_xls/examples/excel_spec.yaml \
    -c ../spyglass-plugin-xls/spyglass_plugin_xls/examples/site_config.yaml \
    -s airship-seaworthy -t spyglass/examples/templates/