API Methods: Upgrade Profiles
The methods defined here let you schedule automatic upgrades.
AssociateUpgradeProfile
Associate an upgrade profile to computers with the specified tags, or all computers.
Arguments:
-
name
: Name of the upgrade profile. -
tags.#
: A list of tag names to associate to the profile. -
all_computers
:true
if the profile should be associated to all computers. This parameter is optional and defaults tofalse
. Individual tags associated to the profile will remain, but they will only be effective if theall_computers
flag is later disabled.
tags.#
and all_computers=true
are mutually exclusive.
Example of a valid request:
?action=AssociateUpgradeProfile&name=test-1
&tags.1=server&tags.2=lucid
The following errors may be raised:
-
UnknownUpgradeProfile
: No profile with the specified name exists. -
InvalidParameterCombination
: The set of arguments are not compatible when specified together.
The method returns JSON serialized info of the profile status:
{
"name": "test-1",
"id": 178,
"upgrade_type": "all",
"schedule": "FREQ=WEEKLY",
"tags": [
"my-computers",
"lucid",
"server"
],
"all_computers": false
}
CreateUpgradeProfile
Create an upgrade profile.
Arguments:
-
title
: The human readable title for this upgrade profile. -
every
: The frequency at which you wish this upgrade to be executed. Valid choices arehour
andweek
. -
on_days
: A list of days of the week on which the upgrade profile will be run. The day names must be abbreviated to their first two letters, as:mo
,tu
,we
,th
,fr
,sa
,su
. Must be specified when the every parameter isweek
, but optional if the every parameter ishour
. -
at_hour
: The hour, in 24h format, at which the upgrade profile will be run. -
at_minute
: The minute of the hour (0-59
) at which the upgrade profile will be run. -
deliver_within
: An optional number of hours within which the upgrade task should be delivered to computers. The window will be from the time specified by this API call (on_days
,at_hour
,at_minute
) until the provided number of hours later. Defaults to 1 hour. -
deliver_delay_window
: Randomise delivery within the given timeframe specified in minutes. (optional) -
security_upgrade
: Optional, defaults to False. Whether this upgrade is a security upgrade or not. Deprecated, use upgrade_type instead. -
upgrade_type
: This profile should apply to all package upgrades or only security upgrades. Must be eithersecurity
orall
. -
autoremove
: Optional, defaults to False. Whether the upgrade profile should also perform an autoremove of old packages. -
access_group
: An optional name of the access group to create the profile into.
The following errors may be raised:
-
InvalidScheduleFormat
: The given schedule string is not valid. -
InvalidParameterCombination
: The set of arguments are not compatible when specified together. -
UnknownAccessGroup
: The given access group is not known. -
Unauthorised
: The person is not authorised to copy upgrade profiles in the given access group.
For example, the following request creates an upgrade profile schedule that updates all packages every Monday and Sunday at 1:30pm:
?action=CreateUpgradeProfile&name=test1&every=week&on_days.1=mo
&on_days.2=su&at_hour=13&at_minute=30
The method returns a JSON serialized representation of the newly created object:
[
{
"id": 1,
"title": "Test 1",
"name": "test-1",
"tags": [],
"all_computers": false,
"upgrade_type": "all",
"deliver_within": 1,
"deliver_delay_window": 0,
"every": "week",
"at_minute": 30,
"at_hour": 13,
"on_days": [
"mo",
"su"
]
}
]
DisassociateUpgradeProfile
Disassociate an upgrade profile from computers with the specified tags, or from all computers.
Arguments:
-
name
: Name of the upgrade profile. -
tags.#
: A list of tag names to disassociate from the profile. -
all_computers
: iftrue
, the profile will only remain enabled for computers with tags associated to the profile. This parameter is optional and defaults tofalse
.
tags.#
and all_computers=true
are mutually exclusive.
Example of a valid request:
?action=DisassociateUpgradeProfile&name=test-1
&tags.1=server&tags.2=lucid
The following errors may be raised:
-
UnknownUpgradeProfile
: No profile with the specified name exists. -
InvalidParameterCombination
: The set of arguments are not compatible when specified together.
The method returns JSON serialized info of the profile status:
{
"name": "test-1",
"id": 178,
"upgrade_type": "all",
"schedule": "FREQ=WEEKLY",
"tags": [
"my-computers"
],
"all_computers": false
}
EditUpgradeProfile
Edit an upgrade profile.
Arguments:
-
name
: The name for this upgrade profile. -
title
: Optional, the new title for this upgrade profile. -
every
: The frequency at which you wish this upgrade profile to be executed. Valid choices arehour
andweek
. -
on_days
: A list of days of the week on which the upgrade profile will be run. The day names must be abbreviated to their first two letters, as:mo
,tu
,we
,th
,fr
,sa
,su
. Only needed in case the every parameter isweek
and optional when the every parameter ishour
. -
at_hour
: The hour, in 24h format, at which the upgrade profile will be run. -
at_minute
: The minute of the hour (0-59
) at which the upgrade profile will be run. -
deliver_within
: An optional number of hours within which the upgrade task should be delivered to computers. The window will be from the time specified by this API call (on_days
,at_hour
,at_minute
) until the provided number of hours later. Defaults to 1 hour. -
deliver_delay_window
: Randomise delivery within the given timeframe specified in minutes. (optional) -
security_upgrade
: Optional, defaults to False. Whether this profile will target only security upgrades (instead of all upgrades). Deprecated, use upgrade_type instead. -
upgrade_type
: This profile should apply to all package upgrades or only security upgrades. Must be eithersecurity
orall
. -
autoremove
: Optional, defaults to False. Whether the upgrade profile should also perform an autoremove of old packages.
The following errors may be raised:
-
UnknownUpgradeProfile
: A profile with the specified name could not be found in the database. -
InvalidScheduleFormat
: The given schedule string is not valid. -
InvalidParameterCombination
: The set of arguments are not compatible when specified together.
For example, the following is a request to update the example created in CreateUpgradeProfile
with an upgrade schedule to update all packages on an hourly basis instead, at 35 past the hour:
?action=EditUpgradeProfile&name=test1&every=hour&on_minute=35
The method returns a JSON serialized representation of the modified object:
[
{
"id": 1,
"name": "test1",
"tags": [],
"all_computers": false,
"upgrade_type": "all",
"autoremove": false,
"deliver_within": 1,
"deliver_delay_window": 0,
"every": "hour",
"at_minute": 35
}
]
RemoveUpgradeProfile
Remove an existing upgrade profile by name.
Arguments:
-
name
: The name of the upgrade profile you wish to cancel.
The following errors may be raised:
-
UnknownUpgradeProfile
: A profile with the specified name could not be found in the database.
For example, the following request deletes an upgrade profile schedule with the name “test-1”:
?action=RemoveUpgradeProfile&name=test-1
GetUpgradeProfiles
List all previously created upgrade profiles.
Arguments:
-
upgrade_type
: Optional. The type of upgrade you wish to list. This can be eitherall
orsecurity
, in which case the result will be a list of upgrade profiles with an upgrade type ofall
orsecurity
respectively. If omitted, the resulting list will contain all upgrade profiles, regardless of their upgrade type.
The following errors may be raised:
-
InvalidParameterValue
: If upgrade_type is notall
orsecurity
.
For example, the following request lists all upgrade profile schedules:
?action=GetUpgradeProfiles
The method returns a JSON serialized representation of the list:
[
{
"id": 1,
"name": "test1",
"schedule": "FREQ=HOURLY;BYMINUTE=30",
"tags": [
"my-computers",
"lucid",
"server"
],
"all_computers": false,
"upgrade_type": "all"
}
{
"id": 2,
"name": "test2",
"schedule": "FREQ=WEEKLY",
"tags": [
"my-computers",
"lucid",
"server"
],
"all_computers": false,
"upgrade_type": "security"
}
]