API/Dreamhost ps commands

= DreamHost PS commands = The dreamhost_ps API module allows you to manage Virtual Private Servers on your account.

NOTE: Like many api commands, these commands are all subject to rate limiting to ensure that single users don't flood the system and cause instability. The current rate limit for the dreamhost_ps module is 2500 commands per user per day (500 per hour). If you are running into this limit, you should revise how you're using the api, and perhaps cache results from commands like list_ps and list_usage so that you don't make repeated unnecessary calls to the api. (Also note that this is the limit overall for the module. Other per-command limits may apply as well)

dreamhost_ps-add_ps
Schedule the creation of a new DreamHost PS to your account (currently may take a day or more to actually complete). This will reserve a name for your new PS and return it in the Data section. A Service token will also be returned (see Service Control Commands).

Values:

account_id : what account you'd like to add this PS to (optional) type : either web or mysql movedata : if type is web, you must specify yes or no for whether you'd like to copy all your existing users to this new PS.

Result:

success ps_name	token ps12345	gcnaBcD12eFgH34iJkL

Possible Errors:

no_type type_must_be_mysql_or_web no_movedata movedata_must_be_yes_or_no no_such_account_id account_not_approved you_cant_add_to_account account_has_no_hosting account_has_frontpage account_has_over_14_ips (may have specifics after a tab) already_has_mysql (may have specifics after a tab) already_has_pending_mysql (may have specifics after a tab)

dreamhost_ps-remove_ps
Schedule the destruction of a DreamHost PS on your account (currently may take a day or more to actually complete). A Service token will also be returned (see Service Control Commands).

Values:

ps : the machine name of the ps you'd like to destroy.

Result:

success removed	token web	gcnaBcD12eFgH34iJkL

Possible Errors:

no_ps no_such_ps cannot_remove_ps (contact support to find out why!)

dreamhost_ps-list_pending_ps
List all DreamHost PSes scheduled to be created on this account.

Values: (none)

Result:

success account_id	ip	type	stamp 1234	10.5.3.2	web	2009-03-12 06:43:30 1234	10.5.3.2	web	2009-03-12 06:43:36 1234	10.5.3.2	mysql	2009-03-12 06:43:48

Possible Errors:

(none)

dreamhost_ps-remove_pending_ps
Removes all DreamHost PSes scheduled to be created on this account.

Values: (none)

Result: success account_id	ip	type	stamp 1234	10.5.3.2	web	2009-03-12 06:43:30 1234	10.5.3.2	web	2009-03-12 06:43:36 1234	10.5.3.2	mysql	2009-03-12 06:43:48

Possible Errors:

(none)

dreamhost_ps-list_ps
Lists all active DreamHost PSes on this account.

Values: (none)

Result: success account_id	ps	description	status	type	memory_mb	start_date	ip 1234	ps11111	My PS	up	web	2300	2010-01-01	173.236.246.100 1234	ps11112		down	web	2300	2010-01-01	173.236.167.63 1234	psmysql11113		up	mysql	2300	2010-01-01	67.205.46.236

Possible Errors:

(none)

dreamhost_ps-list_settings
Lists all the current settings for a DreamHost PS.

Values: ps : the name of the ps (get it from list_ps)

Result: success setting	value apache2_enabled	1 comment	My first PS! courier_enabled	0 jabber_transports_enabled	0 lighttpd_enabled	0 machine	ps2322 modphp_4_selected	1 php_cache_xcache	0 proftpd_enabled	1

Possible Errors:

no_ps no_such_ps

dreamhost_ps-set_settings
Set all the settings for a DreamHost PS. Anything you don't pass in will remain untouched. Descriptions of the various settings are at https://panel.dreamhost.com/?tree=vserver.settings

Values: ps : the name of the ps (get it from list_ps) apache2_enabled : 0 or 1 (optional) comment : Any string you'd like to describe this ps. (optional) courier_enabled : 0 or 1 (optional) jabber_transports_enabled : 0 or 1 (optional) lighttpd_enabled : 0 or 1 (optional) modphp_4_selected : 0 or 1 (optional) php_cache_xcache : 0 or 1 (optional) proftpd_enabled : 0 or 1 (optional)

Result: success setting	value apache2_enabled	1 comment	My first PS! courier_enabled	0 jabber_transports_enabled	0 lighttpd_enabled	0 machine	ps2322 modphp_4_selected	1 php_cache_xcache	1 proftpd_enabled	1

Possible Errors:

no_ps no_such_ps internal_error_setting_settings

dreamhost_ps-list_size_history
Shows a full list of all resizes and associated charges for a DreamHost PS.

Values: ps : the name of the ps (get it from list_ps)

Result: success stamp	period_seconds	memory_mb	monthly_cost	period_cost 2007-07-30 08:46:19	431313	150	15.00	2.4960 2007-08-04 08:34:52	71	193	21.40	0.0006 2007-08-04 08:36:03	574662	408	40.80	9.0456 2007-08-11 00:13:45	525551	150	15.00	3.0414 2007-08-17 02:12:56	215679	279	30.00	2.4963 2007-08-19 14:07:35	29726670	580	60.10	689.2642 2008-07-28 15:32:05	19582503	1182	120.30	908.8639

Possible Errors:

no_ps no_such_ps

Example Script:

[someuser@ps11111 ~]$ sed s/^/\ / bin/dreamhost_ps-list_size_history.sh #### #### ALL=false if [ "$1" = "-a" ]; then ALL=true shift fi PS=$1 KEY=YOUR-KEY-HERE UUID=`uuidgen` CMD=dreamhost_ps-list_size_history if [ "$1" = "-h" ] || [ "$1" = "--help" ] ; then echo "usage: `basename $0` [-a] [hostname]" exit 1; fi if [ "$PS" = "" ]; then PS=`hostname | cut -f1 -d.` fi LINK="https://api.dreamhost.com/?key=$KEY&unique_id=$UUID&cmd=$CMD&ps=$PS" OUT=`wget -O- -q "$LINK"` if $ALL; then echo -e "$OUT" else echo stamp	period_seconds	memory_mb	monthly_cost	period_cost echo -e "$OUT" | tail -3 fi
 * 1) !/bin/sh
 * 1) USE ARE YOUR OWN RISK

dreamhost_ps-set_size
Resize the memory of a DreamHost PS. You are limited to 30 resizes per day per VPS -- use them wisely! A Service token will also be returned (see Service Control Commands).

Values: ps : the name of the ps (get it from list_ps) size : the new size you'd like for your PS, in MB between 300 and 4000

Result: success memory_mb	token 300	gcnaBcD12eFgH34iJkL

Possible Errors:

no_ps no_such_ps no_size size_under_300 size_over_4000 cant_modify_billing exceeded_30_resizes_today resize_pending internal_error_setting_size

Example Script: [someuser@ps11111 ~]$ cat bin/dreamhost_ps-set_size.sh #### #### MEM_MAX=1024 MEM=$1 PS=$2 KEY=YOUR-KEY-HERE UUID=`uuidgen` CMD=dreamhost_ps-set_size if [ $# -lt 1 ]; then echo "usage: `basename $0` memory [hostname]" exit 1 fi if [ "$PS" = "" ]; then PS=`hostname | cut -f1 -d.` fi if [ "$MEM" -gt "$MEM_MAX" ]; then echo "$MEM exceeds maximum memory allowed: $MEM_MAX"; exit 1 fi LINK="https://api.dreamhost.com/?key=$KEY&unique_id=$UUID&cmd=$CMD&ps=$PS&size=$MEM" RESPONSE=`wget -O- -q "$LINK"` echo "$LINK" echo "$RESPONSE" if ! (echo $RESPONSE | grep -q 'success'); then exit 1 fi COUNTER=900 CURMEM=$(echo `free -m | grep Mem:` | cut -f2 -d' ') PREVMEM="$CURMEM" echo "`date`: curmem=$CURMEM" while [ "$CURMEM" -ne "$MEM" ] && [ "$COUNTER" -gt 0 ]; do 	CURMEM=$(echo `free -m | grep Mem: ` | cut -f2 -d' ') if [ "$CURMEM" -ne "$PREVMEM " ]; then echo "`date`: curmem=$CURMEM" fi COUNTER=`expr $COUNTER - 1` sleep 1 PREVMEM="$CURMEM" done if [ "$COUNTER" = "0" ]; then exit 1 else exit 0 fi
 * 1) !/bin/sh
 * 1) USE THIS SCRIPT AT YOUR OWN RISK.

dreamhost_ps-list_reboot_history
List the full history of reboots to a DreamHost PS from most recent to oldest.

Values: ps : the name of the ps (get it from list_ps)

Result: success stamp 2009-02-06 19:53:37 2009-02-03 11:42:18 2008-10-09 17:13:26 2008-10-03 22:57:20 2008-09-12 23:44:56

Possible Errors:

no_ps no_such_ps

dreamhost_ps-reboot
Schedule a reboot to a DreamHost PS now.

Values: ps : the name of the ps (get it from list_ps)

Result: success reboot_scheduled

Possible Errors:

no_ps no_such_ps cannot_reboot_ps_mysql internal_error_rebooting

dreamhost_ps-list_usage
List the last 30ish days of our memory usage and cpu load readings for a DreamHost PS (the 00:00:00 timestamp values are daily averages).

Values: ps : the name of the ps (get it from list_ps)

Result: success stamp	memory_mb	load 2009-03-12 06:17:40	454	0.18 2009-03-12 00:47:48	311	0.00 2009-03-11 22:48:36	346	0.02 2009-03-11 20:01:30	356	0.03 2009-03-11 17:35:35	338	0.14 2009-03-11 11:24:34	359	0.17 2009-03-11 09:13:02	346	0.20 2009-03-11 05:48:54	327	0.09 2009-03-11 01:45:55	324	0.14 2009-03-10 00:00:00	294	0.16 2009-03-09 00:00:00	209	0.06 2009-03-08 00:00:00	156	0.08 2009-03-07 00:00:00	161	0.07 2009-03-06 00:00:00	166	0.06 2009-03-05 00:00:00	153	0.06 2009-03-04 00:00:00	144	0.02 2009-03-04 00:00:00	150	0.07 2009-03-03 00:00:00	188	0.04 2009-03-02 00:00:00	159	0.05 2009-03-01 00:00:00	171	0.02 2009-02-28 00:00:00	166	0.08 2009-02-27 00:00:00	166	0.04 2009-02-26 00:00:00	170	0.02 2009-02-25 00:00:00	169	0.03 2009-02-24 00:00:00	169	0.08 2009-02-23 00:00:00	177	0.02 2009-02-22 00:00:00	171	0.14 2009-02-21 00:00:00	148	0.01 2009-02-20 00:00:00	146	0.05 2009-02-19 00:00:00	163	0.03 2009-02-18 00:00:00	155	0.03 2009-02-17 00:00:00	154	0.04 2009-02-16 00:00:00	158	0.05 2009-02-15 00:00:00	157	0.04 2009-02-14 00:00:00	159	0.02 2009-02-14 00:00:00	174	0.00 2009-02-13 00:00:00	158	0.01 2009-02-12 00:00:00	168	0.03

Possible Errors:

no_ps no_such_ps

dreamhost_ps-list_images
List all the images available for DreamHost Private Servers. The image name can be used for the "type" value for dreamhost_ps-add_ps.

Values: (none)

Result: success image	description web	Private web server mysql	Private MySQL server

Possible Errors: (none)