...
You will need the following resources:
More than one enterprise created in the platform
Your user role must include the following privileges.
ENTERPRISE_ENUMERATE
ENTERPRISE_ADMINISTER_ALL
Your user must have the new enterprise within your management scope.
The following pages describe the switch enterprise functionality in the Abiquo UI.
...
In the Abiquo UI, you can switch enterprises in Home view or in Users view. For more details, see the following pages.
Summary diagram
The steps in this diagram link to the API reference guide resources and data entities sections.
Detailed steps
Get the user entity by name
...
To get a cloud admin user from whichever enterprise they are currently in, run the get request with a wildcard for all enterprises represented by the underscore character "_".
...
If you know the ID of the user, you can retrieve the user entity directly with the users link.
For example, the cloud admin user has an ID of 1, and the link as "https://example.com/api/admin/enterprises/_/users/1"
Or use the "has" parameter to perform a search for the user by text such as username, name, or details
Code Block |
---|
curl -X GET \
'https://example.com/api/admin/enterprises/_/users?has=cloudadmin' \
-H 'Accept: application/vnd.abiquo.users+json;version=4.7' \ |
This request returns a collection of users, so find the required user
...
Mermaid | ||||||
---|---|---|---|---|---|---|
| ||||||
{"diagramDefinition":"graph TD\r\n\r\nZ(( ))\r\n\r\nstyle Z fill:#g1g,stroke:#100,stroke-width:20px\r\n\r\nZ-->A(Requires: More than one enterprise!)\r\n\r\nA -->B(<font color=0052cc>Get users by name)\r\n\r\nclick B href \"https://wiki.abiquo.com/api/latest/UsersResource.html#list-users\" _blank\r\n\r\nB -->C(<font color=0052cc>Get enterprises<br/>by name)\r\n\r\nclick C href \"https://wiki.abiquo.com/api/latest/EnterprisesResource.html#list-enterprises\" _blank\r\n\r\nC-->D(Modify the user entity to add<br/>the new 'enterprise' link)\r\n\r\nD-->E(<font color=0052cc>Update the user<br/>in any enterprise)\r\n\r\nclick E href \"https://wiki.abiquo.com/api/latest/UsersResource.html#update-a-user\" _blank\r\n\r\nE-->Q((<fontcolour=f3efe6> * ))\r\n\tstyle Q fill:#f3efe6,stroke:#030300,stroke-width:7px,color:#f3efe6"} |
Detailed steps
Get the user entity by name
To get an administrator from the enterprise they are currently working in, without knowing the enterprise ID, use a URL with a wildcard for all enterprises, which is the underscore character "_".
If you know the ID of the user, you can retrieve the user entity directly with the users link.
For example, the cloud admin user has an ID of 1, so the link would be: "https://example.com/api/admin/enterprises/_/users/1"Or use the "has" parameter to perform a search for the user by text such as username, name, or details
Code Block curl -X GET \ 'https://example.com/api/admin/enterprises/_/users?has=cloudadmin' \ -H 'Accept: application/vnd.abiquo.users+json;version=4.7' \ -u admin:xabiquo k --verbose | jq .
This request returns a collection of users. Keep the required user entity, which starts with the braces before its ID
Code Block { "totalSize": 1, "links": [ { "rel": "first", "href": "https://example.com:443/api/admin/enterprises/_/users?limit=25&has=cloudadmin&by=name&asc=true" }, { "rel": "last", "href": "https://example.com:443/api/admin/enterprises/_/users?startwith=0&limit=25&has=cloudadmin&by=name&asc=true" } ], "collection": [ { "id": 10, "nick": "cloudadmin", "name": "Cloud", "surname": "Admin", "description": "Secondary cloud admin user", "email": "cloudadmin@example.com", "locale": "en_US", "authType": "ABIQUO", "active": true, "publicSshKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDgm0ckfblahblahblah", "allowedCIDRs": [], "firstLogin": false, "locked": false, "phoneNumber": "555123456", "links": [ { "title": "Marketing Department", "rel": "enterprise", "type": "application/vnd.abiquo.enterprise+json", "href": "https://example.com:443/api/admin/enterprises/3" }, { "title": "CLOUD_ADMIN", "rel": "role", "type": "application/vnd.abiquo.role+json", "href": "https://example.com:443/api/admin/roles/1" }, { "title": "cloudadmin", "rel": "edit", "type": "application/vnd.abiquo.user+json", "href": "https://example.com:443/api/admin/enterprises/3/users/10" }, { "title": "Global scope", "rel": "scope", "type": "application/vnd.abiquo.scope+json", "href": "https://example.com:443/api/admin/scopes/1" }, { "title": "virtual machines", "rel": "virtualmachines", "type": "application/vnd.abiquo.virtualmachines+json", "href": "https://example.com:443/api/admin/enterprises/3/users/10/action/virtualmachines" }, { "title": "pending tasks", "rel": "pendingtasks", "type": "application/vnd.abiquo.tasks+json", "href": "https://example.com:443/api/admin/enterprises/3/users/10/action/pendingtasks" }, { "title": "applications", "rel": "applications", "type": "application/vnd.abiquo.applications+json", "href": "https://example.com:443/api/admin/enterprises/3/users/10/applications" }, { "title": "async tasks", "rel": "asynctasks", "type": "application/vnd.abiquo.asynctasks+json", "href": "https://example.com:443/api/admin/enterprises/3/users/10/asynctasks" } ] } ] }
Get the new enterprise by name
Code Block curl -X GET \ 'https://example.com/api/admin/enterprises?has=Finance' \ -H 'Accept: application/vnd.abiquo.enterprises+json;version=4.7' \
Sample response
Code Block { "totalSize": 1, "links": [ { "rel": "first", "href": "https://example.com:443/api/admin/enterprises?limit=25&has=Finance&by=name&asc=true" }, { "rel": "last", "href": "https://example.com:443/api/admin/enterprises?startwith=0&limit=25&has=Finance&by=name&asc=true" } ], "collection": [ { "id": 2, "name": "Finance Department", "isReservationRestricted": false, "workflow": false, "twoFactorAuthenticationMandatory": false, "reseller": false, "keyNode": false, "diskSoftLimitInMb": 0, "diskHardLimitInMb": 0, "storageSoftInMb": 0, "storageHardInMb": 0, "vmsSoft": 0, "vmsHard": 0, "vlansSoft": 0, "vlansHard": 0, "publicIpsSoft": 0, "publicIpsHard": 0, "repositorySoftInMb": 0, "repositoryHardInMb": 0, "links": [ { "title": "Finance Department", "rel": "edit", "type": "application/vnd.abiquo.enterprise+json", "href": "https://example.com:443/api/admin/enterprises/2" }, { "title": "users", "rel": "users", "type": "application/vnd.abiquo.users+json", "href": "https://example.com:443/api/admin/enterprises/2/users" }, { "title": "properties", "rel": "properties", "type": "application/vnd.abiquo.enterpriseproperties+json", "href": "https://example.com:443/api/admin/enterprises/2/properties" }, { "title": "Global scope", "rel": "scope", "type": "application/vnd.abiquo.scope+json", "href": "https://example.com:443/api/admin/scopes/1" }, { "title": "template definitions lists", "rel": "appslib/templateDefinitionLists", "type": "application/vnd.abiquo.templatedefinitionlists+json", "href": "https://example.com:443/api/admin/enterprises/2/appslib/templateDefinitionLists" }, { "title": "template defintion paths", "rel": "appslib/templateDefinitions", "type": "application/vnd.abiquo.templatedefinitions+json", "href": "https://example.com:443/api/admin/enterprises/2/appslib/templateDefinitions" }, { "title": "repositories", "rel": "datacenterrepositories", "type": "application/vnd.abiquo.datacenterrepositories+json", "href": "https://example.com:443/api/admin/enterprises/2/datacenterrepositories" }, { "title": "virtual machines", "rel": "virtualmachines", "type": "application/vnd.abiquo.virtualmachines+json", "href": "https://example.com:443/api/admin/enterprises/2/action/virtualmachines" }, { "title": "virtual appliances", "rel": "virtualappliances", "type": "application/vnd.abiquo.virtualappliances+json", "href": "https://example.com:443/api/admin/enterprises/2/action/virtualappliances" }, { "title": "ips", "rel": "ips", "type": "application/vnd.abiquo.privateips+json", "href": "https://example.com:443/api/admin/enterprises/2/action/ips" }, { "title": "virtual datacenters", "rel": "cloud/virtualdatacenters", "type": "application/vnd.abiquo.virtualdatacenters+json", "href": "https://example.com:443/api/admin/enterprises/2/action/virtualdatacenters" }, { "title": "reserved machines", "rel": "reservedmachines", "type": "application/vnd.abiquo.machines+json", "href": "https://example.com:443/api/admin/enterprises/2/reservedmachines" }, { "title": "limits", "rel": "limits", "type": "application/vnd.abiquo.limits+json", "href": "https://example.com:443/api/admin/enterprises/2/limits" }, { "title": "providerlimits", "rel": "providerlimits", "type": "application/vnd.abiquo.providerlimits+json", "href": "https://example.com:443/api/admin/enterprises/2/providerlimits" }, { "title": "volumes", "rel": "volumes", "type": "application/vnd.abiquo.volumes+json", "href": "https://example.com:443/api/admin/enterprises/2/action/volumes" }, { "title": "external networks", "rel": "externalnetworks", "type": "application/vnd.abiquo.vlans+json", "href": "https://example.com:443/api/admin/enterprises/2/action/externalnetworks" }, { "title": "pending tasks", "rel": "pendingtasks", "type": "application/vnd.abiquo.tasks+json", "href": "https://example.com:443/api/admin/enterprises/2/action/pendingtasks" }, { "title": "credentials", "rel": "credentials", "type": "application/vnd.abiquo.publiccloudcredentialslist+json", "href": "https://example.com:443/api/admin/enterprises/2/credentials" }, { "title": "pricingcredentials", "rel": "pricingcredentials", "type": "application/vnd.abiquo.pricingcredentialslist+json", "href": "https://example.com:443/api/admin/enterprises/2/pricingcredentials" }, { "title": "virtual appliances specs", "rel": "vappspecs", "type": "application/vnd.abiquo.virtualappliancespecs+json", "href": "https://example.com:443/api/admin/enterprises/2/vappspecs" }, { "title": "bills", "rel": "bills", "type": "application/vnd.abiquo.bills+json", "href": "https://example.com:443/api/statistics/enterpriseresources/2/bills" }, { "title": "billregisters", "rel": "billregisters", "type": "application/vnd.abiquo.bills+json", "href": "https://example.com:443/api/statistics/enterpriseresources/2/billregisters" }, { "title": "estimation", "rel": "estimation", "type": "text/plain", "href": "https://example.com:443/api/statistics/enterpriseresources/2/billregisters/action/estimate" }, { "title": "Bill providers", "rel": "billproviders", "type": "application/vnd.abiquo.billproviders+json", "href": "https://example.com:443/api/statistics/enterpriseresources/2/bills/action/providers" }, { "title": "Budgets", "rel": "budgets", "type": "application/vnd.abiquo.budgets+json", "
href": "https://example.com:443/api/admin/enterprises/2/budgets"
}
], "
ramSoft":
0, "
ramHard":
0, "
cpuSoft":
0, "
cpuHard":
0 } ]
}
Find the required enterprise in the collection
Save the enterprise "edit" link
Code Block
{ "
title":
"Finance Department", "
rel":
"edit", "
type":
"application/vnd.abiquo.enterprise+json",
"href": "https://example.com:443/api/admin/enterprises/2"
},
Edit the user entity to add the new enterprise link
Find the link with the "rel"
value of "enterprise" and replace it with the new enterprise link. For example, to switch to enterprise 2, you could use the link below
Remember that the user entity must be complete in order to save the user, e.g. add an email attribute for the user because it is required.
Sample enterprise link
Code Block
{
"href": "https://example.com
/api/admin/enterprises/
2", "rel": "enterprise"
}
Sample user entity with new enterprise link
Code Block { "
id":
10,
"nick": "
cloudadmin",
"
name": "
Cloud",
"surname": "Admin", "description": "Secondary cloud
admin user",
"
email": "
cloudadmin@example.com",
"locale": "
en_US", "authType": "ABIQUO",
"active": true, "
publicSshKey": "
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDblahblahblah", "allowedCIDRs": [],
"firstLogin": false,
"locked": false, "
phoneNumber": "
555123456", "links": [
{ "
rel": "
enterprise", "href": "https://example.com:443/api/admin/
enterprises/
2" }, { "title": "
CLOUD_ADMIN", "rel": "
role", "type": "application/vnd.abiquo.
role+json", "href": "https://example.com:443/api/admin/
roles/1" }, { "title": "
cloudadmin", "rel": "
edit", "type": "application/vnd.abiquo.
user+json", "href": "https://example.com:443/api/admin/enterprises/
3/users/10
" }, { "title": "
Global scope", "rel": "
scope", "type": "application/vnd.abiquo.
scope+json", "href": "https://example.com:443/api/admin/
scopes/1" }, { "title": "
virtual machines", "rel": "
virtualmachines", "type": "application/vnd.abiquo.
virtualmachines+json", "href": "https://example.com:443/api/admin/enterprises/
3/users/10/action/
virtualmachines" }, { "title": "
pending tasks", "rel": "
pendingtasks", "type": "application/vnd.abiquo.
tasks+json", "href": "https://example.com:443/api/admin/enterprises
/3/users/10/action/pendingtasks" }, {
"title": "applications",
Edit the user entity and replace the enterprise link, for example to switch to enterprise 1224
Code Block "rel": "applications",
"
type": "
application/vnd.abiquo.applications+json",
Update the user
Perform a PUT request to the user and replace the enterprise id in the URL with an underscore character "_".
Send the user entity that you modified above. Remember that the user entity must be complete in order to save the user, e.g. add an email attribute for the user if you didn't already add one because this is obligatory.
cURL
Code Block curl -X PUT \ "href": "https://example.com:443/api/admin/enterprises/_3/users/10 \/applications" -H 'Accept: application/vnd.abiquo.user+json;version=4.6' \ -H 'Content-Type: application/vnd.abiquo.user+json;version=4.6' \ }, -u user:password --verbose \ -d @requestpayload.json
Sample response
Expand {Code Block {
"id":"
nicktitle": "
cloudadminasync tasks",
"name"rel": "
cloudadminasynctasks", "
surnametype": "
cloudadminapplication/vnd.abiquo.asynctasks+json",
"email"href": "
cloudadmin@example.com",https://example.com:443/api/admin/enterprises/3/users/10/asynctasks"
"locale":}
"authType":]
"active": true, "publicSshKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDgm0ckfxabLgc2a2cJlTyTdsZ4F5xNWHQqOZjOiZ/OEJ7jDXJiDz2cWiUNeNJJ49xFHHVo4R7QIROau8F5jhjvz1T6yPIcaI+EEqyKBNZtAuTxi7u9xwiuye4Zj6H37oAsxolRNBKg/nPCZ6SGNnVp2nhbN4bJS33Ia8rUSTa7yEbQxkduQndvNh64DscmxMwPiVJOcc9GJZz7gz1PcpeNNxP7Ir3giDSQF+TP4OyCDYV8nOQitGbxqNlJK3jcrx4nhaaY9As1xb5XD1e6X40fNg2+aW6z5rTh5PaEqPReyHDf7RxFWsgj58XUiJ4EPKvnV2EqM9DQINahlDlvIVG8G7p1dx+zT9VCZjEaHIuMQvK7MhStI9cE++TxhipPRfpPClDVQMguDs/JBpiztDZyCYe8szBo+IfxWl3im3pO4CjHqns1Kq0qR8AE7hc3wzNxR4wtX/jGN22LUDObfjVO3zYvnlDu9B3iTtFhS8MZ1N4Pk2/DKnN2/qg8nSNCufSZcFHnY2OV4Wspl5S5MIvz8nQMcl+0q+0BELeIdA0zhAzAaJMv0P8C/R9L0HVLCUFmzwIPW8rrEox5WgZjbxh5Fw3gDNk8/vCWZsKWsYFyy1MoFPt9JrfrO1/axb3xowFI04FcaXgk69SAMxfzL4LQuFCimprdj0gAea1gyswLvw== maryjane.smyth@abiquo.com", "firstLogin": false, "locked": false, "links": [ { "rel": "enterprise", "href": "https://example.com:443/api/admin/enterprises/276" }, {}
Update the user in any enterprise
In the user URL, replace the enterprise ID with a wildcard to represent all enterprises, which is the underscore character "_".
Perform a PUT request to the user, sending the updated user entity
cURL request
Code Block curl -X PUT \ https://example.com/api/admin/enterprises/_/users/10 \ -H 'Accept: application/vnd.abiquo.user+json;version=4.7' \ -H 'Content-Type: application/vnd.abiquo.user+json;version=4.7' \ -u user:password --verbose \ -d @requestpayload.json
Sample response. Success status code: 200
Code Block { "id": 10, "nick": "cloudadmin", "name": "Cloud", "surname": "Admin", "description": "Secondary cloud admin user", "email": "cloudadmin@example.com", "locale": "en_US", "authType": "ABIQUO", "active": true, "publicSshKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDgm0ckfblahblahblah", "allowedCIDRs": [], "firstLogin": false, "locked": false, "phoneNumber": "555123456", "links": [ {
"title": "
CLOUD_ADMINFinance Department",
"rel": "
roleenterprise",
"type": "application/vnd.abiquo.
roleenterprise+json",
"href": "https://example.com:443/api/admin/
rolesenterprises/
12"
},
{ "title": "
cloudadminCLOUD_ADMIN",
"rel": "
editrole",
"type": "application/vnd.abiquo.
userrole+json",
"href": "https://example.com:443/api/admin/
enterprises/275/users/10"roles/1"
},
{
"title": "
Global scopecloudadmin",
"rel": "
scopeedit",
"type": "application/vnd.abiquo.
scopeuser+json",
"href": "https://example.com:443/api/admin/enterprises/
scopes2/users/
110"
},
{
"title": "
virtualGlobal
machinesscope",
"rel": "
virtualmachinesscope",
"type": "application/vnd.abiquo.
virtualmachinesscope+json",
"href": "https://example.com:443/api/admin/
enterprises/275/users/10/action/virtualmachines"scopes/1" },
{
"title": "
pendingvirtual
tasksmachines",
"rel": "
pendingtasksvirtualmachines",
"type": "application/vnd.abiquo.
tasksvirtualmachines+json",
"href": "https://example.com:443/api/admin/enterprises/
2752/users/10/action/
pendingtasksvirtualmachines"
},
{
"title": "
applications",pending tasks", "rel": "
applicationspendingtasks",
"type": "application/vnd.abiquo.
applicationstasks+json",
"href": "https://example.com:443/api/admin/enterprises/
2752/users/10/action/
applications"pendingtasks" },
{
"title": "
enable two factor authenticationapplications",
"rel": "
enable2faapplications",
"type": "application/vnd.abiquo.
twofactorauthcredentialsapplications+json
",", "href": "https://example.com:443/api/admin/enterprises/
2752/users/10/
action/enable2faapplications"
},
{
"title": "async tasks",
"rel": "asynctasks",
"type": "application/vnd.abiquo.asynctasks+json",
"href": "https://example.com:443/api/admin/enterprises/
2752/users/10/asynctasks"
}
]
}