MegaCorp example updated.

pull/7/head
Ferry Boender 10 years ago
parent 34c9cac1a7
commit c17bac5207
  1. 6
      examples/megacorp_acc/README.md
  2. 12
      examples/megacorp_acc/job_clean_database.sh
  3. 11
      examples/megacorp_acc/job_download_db.sh
  4. 15
      examples/megacorp_acc/job_enable_firewall.sh
  5. 11
      examples/megacorp_acc/job_import_employees.sh
  6. 8
      examples/megacorp_acc/job_list_employees.sh
  7. 127
      examples/megacorp_acc/megacorp_acc.json
  8. 3
      examples/megacorp_acc/megacorp_employees.csv
  9. 6
      examples/megacorp_acc/megacorp_empty.sql

@ -0,0 +1,6 @@
Extensive example of all kinds of jobs for the fictional Acceptance environment for Megacorp.
Usernames:
* username: admin
* password: password

@ -1,7 +1,9 @@
#!/bin/sh #!/bin/sh
MYSQL_DEFAULTS_FILE="my.cnf" if [ "$source_sql" = "empty" ]; then
MYSQL="mysql --defaults-file=$MYSQL_DEFAULTS_FILE" echo "Loading empty database"
rm megacorp.db
echo "echo 'DROP DATABASE scriptform_acc' | $MYSQL" sqlite3 megacorp.db < megacorp_empty.sql && echo "Succesfully loaded"
echo "$MYSQL < dbs/${sample_db}.sql" else
echo "Not Implemented"
fi

@ -0,0 +1,11 @@
#!/bin/sh
FILESIZE=$(stat -c "%s" megacorp.db)
cat << EOF
HTTP/1.0 200 Ok
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="megacorp.db"
Content-Length: $FILESIZE
EOF
cat megacorp.db

@ -0,0 +1,15 @@
#!/bin/sh
# FIXME: Validate ip address
if [ "$network" = "intra" ]; then
NETWORK="192.168.1.0/24"
elif [ "$network" = "machine" ]; then
NETWORK="192.168.1.12"
else
echo "Invalid network >&2"
exit 1
fi
echo "iptables -A INPUT -p tcp --source $ip_address --dest $NETWORK -j ACCEPT"
echo "echo \"iptables -A INPUT -p tcp --source $ip_address --dest $NETWORK -j ACCEPT\" | at now + $expire_days days"

@ -0,0 +1,11 @@
#!/bin/sh
{
echo ".separator ,"
echo ".import $csv_file employee"
} | sqlite3 megacorp.db
if [ $? -eq 0 ]; then
echo "Succesfully loaded employees"
else
echo "Failed to load employees. Maybe you should clean the database first?"
fi

@ -0,0 +1,8 @@
#!/bin/sh
echo "<table>"
{
echo ".mode html"
echo "SELECT * FROM employee;"
} | sqlite3 megacorp.db || exit 1
echo "</table>"

@ -1,56 +1,20 @@
{ {
"title": "MegaCorp acceptance jobs", "title": "MegaCorp acceptance jobs",
"forms": { "users": {
"enable_firewall": { "jjohnson": "5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8",
"title": "Enable firewall", "admin": "5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8"
"description": "Enable access to the acceptance environment from the entered IP",
"submit_title": "Enable access",
"script": "job_clean_database.sh",
"fields": [
{
"name": "ip_address",
"title": "IP Address",
"type": "string",
"required": true
},
{
"name": "expire_days",
"title": "Expire (days)",
"type": "integer",
"max": 31,
"min": 2
},
{
"name": "expire_date",
"title": "Expire (date)",
"type": "date",
"required": true
}, },
"forms": [
{ {
"name": "network", "name": "clean_database",
"title": "Which network",
"type": "radio",
"options": [
["intra", "Whole intranet"],
["machine", "Acceptance machine"]
]
},
{
"name": "comment",
"title": "Comment",
"type": "text"
}
]
},
"clean_database": {
"title": "Load clean database", "title": "Load clean database",
"description": "Recreate the acceptance database from scratch. This deletes all the information in the database", "description": "Recreate the acceptance database from scratch. This deletes all the information in the database",
"submit_title": "Run", "submit_title": "Run",
"script": "job_clean_database.sh", "script": "job_clean_database.sh",
"fields": [ "fields": [
{ {
"name": "sample_db", "name": "source_sql",
"title": "Sample database", "title": "Database type",
"type": "select", "type": "select",
"options": [ "options": [
["empty", "Empty database"], ["empty", "Empty database"],
@ -60,11 +24,12 @@
} }
] ]
}, },
"import_csv": { {
"title": "Import CSV data into database", "name": "import_employees",
"description": "Load a CSV with test data into the database", "title": "Import employee data from CSV",
"description": "Load a CSV with employee data into the database. The employee table MUST be empty.",
"submit_title": "Import CSV", "submit_title": "Import CSV",
"script": "job_restart_acc.sh", "script": "job_import_employees.sh",
"fields": [ "fields": [
{ {
"name": "csv_file", "name": "csv_file",
@ -73,18 +38,78 @@
} }
] ]
}, },
"restart_services": { {
"name": "list_employees",
"title": "List employees",
"description": "List the employees currently in the database",
"submit_title": "List",
"script": "job_list_employees.sh",
"output": "html",
"fields": [
]
},
{
"name": "download_db",
"title": "Download database",
"description": "Download the full binary database",
"submit_title": "Download",
"script": "job_download_db.sh",
"output": "raw",
"fields": [
]
},
{
"name": "restart_services",
"title": "Restart Acceptance services", "title": "Restart Acceptance services",
"description": "Restarts the acceptance services (web, db, cache). Consult with <a href='foo@example.com'>John Foo</a> first!", "description": "Restarts the acceptance services (web, db, cache). Consult with <a href='mailto:k.karlson@megacorp.com'>Karl Karlsön</a> first!",
"submit_title": "Restart", "submit_title": "Restart",
"script": "job_restart_acc.sh", "script": "job_restart_acc.sh",
"fields": [ "fields": [
{ {
"name": "passwd", "name": "passwd",
"title": "John Foo gave you a password. What is it?", "title": "Karl Karlsön gave you a password. What is it?",
"type": "password" "type": "password",
"required": true
} }
] ]
},
{
"name": "enable_firewall",
"allowed_users": ["admin"],
"title": "Enable firewall",
"description": "Enable access to the acceptance environment from the entered IP",
"submit_title": "Enable access",
"script": "job_enable_firewall.sh",
"fields": [
{
"name": "ip_address",
"title": "From IP Address",
"type": "string",
"required": true,
"min_length": 7
},
{
"name": "expire_days",
"title": "Expire (days)",
"type": "integer",
"max": 31,
"min": 2
},
{
"name": "network",
"title": "To which network",
"type": "radio",
"options": [
["intra", "Whole intranet"],
["machine", "Acceptance machine"]
]
},
{
"name": "comment",
"title": "Comment",
"type": "text"
} }
]
} }
]
} }

@ -0,0 +1,3 @@
1, JJO, John, Johnson
2, KKA, Karl, Karlsön
3, PPE, Pete, Peterson
unable to load file from base commit

@ -0,0 +1,6 @@
CREATE TABLE employee (
id INTEGER PRIMARY KEY AUTOINCREMENT,
code TEXT,
firstname TEXT,
lastname TEXT
);
Loading…
Cancel
Save