1557 | | * '''Operation:''' viewComputers |
1558 | | * '''Input Parameters:''' |
1559 | | * Userid - the user making the request (the owner on success) |
1560 | | * Owner - an optional string the computer owner |
1561 | | * NameRE - an optional string containing a regular expression matched against the name |
1562 | | * Type - an optional string containing the computer types to look for |
1563 | | * '''Return Values:''' |
1564 | | * Zero or more structures with the following fields: |
1565 | | * Name - a string, the name of this computer, if absent this is a class |
1566 | | * Owner - a string, the owner of the computer or class |
1567 | | * Type - a string containing the type of computer |
1568 | | * Description - a string describing this computer or class |
1569 | | * Allocated - an optional flag indicating whether this computer is allocated. The field is absent all together if this structure describes a class |
1570 | | * AllocatedExperiment - an optional string containing the experiment name if the computer is allocated and the user has the right to read the experiment |
1571 | | * AllocatedProject - an optional string containing the project name in which the experiment is realized if the computer is allocated and the user has the right to read the project |
1572 | | * ProjectDelete - an optional list of project names that can delete this resource |
1573 | | * ProjectModify - an optional list of project names that can modify this resource |
1574 | | * ProjectUse - an optional list of project names that can use this resource |
1575 | | * ProjectRead - an optional list of projects names that can read this resource |
1576 | | |
1577 | | If any of the permission fields are not present, the class permissions apply. If they are present for a specific computer, they specific computer's permissions override the class permissions. |
1578 | | |
1579 | | Administrators can add new computers or classes using |
1580 | | |
1581 | | * '''Service:''' Resources |
1582 | | * '''Operation:''' createComputer |
1583 | | * '''Input Parameters:''' |
1584 | | * Userid - the user making the request (the owner on success) |
1585 | | * Name - an optional string, the name of this computer, if absent this is a class |
1586 | | * Type - a string containing the type of computer |
1587 | | * Description - an optional string describing this computer or class (If omitted for a computer, the type description is used) |
1588 | | * ProjectDelete - an optional list of project names that can delete this resource |
1589 | | * ProjectModify - an optional list of project names that can modify this resource |
1590 | | * ProjectUse - an optional list of project names that can use this resource |
1591 | | * ProjectRead - an optional list of projects names that can read this resource |
1592 | | * '''Return Values:''' |
1593 | | None |
1594 | | |
1595 | | Note that missing fields in a computer creation are generally filled in from the type. Creating a computer or class without any projects that can use it is of questionable value. |
1596 | | |
1597 | | Similarly, they can modify an existing computer using (assuming they are in a project that allows modification of the class or computer): |
1598 | | |
1599 | | * '''Service:''' Resources |
1600 | | * '''Operation:''' modifyComputer |
1601 | | * '''Input Parameters:''' |
1602 | | * Userid - the user making the request |
1603 | | * Name - an optional string, the name of this computer, if absent this is a class |
1604 | | * Type - an optional string containing the type of computer |
1605 | | * Description - an optional string describing this computer or class (If omitted for a computer, the type description is used) |
1606 | | * ProjectDelete - an optional list of project names that can delete this resource |
1607 | | * ProjectModify - an optional list of project names that can modify this resource |
1608 | | * ProjectUse - an optional list of project names that can use this resource |
1609 | | * ProjectRead - an optional list of projects names that can read this resource |
1610 | | * '''Return Values:''' |
1611 | | None |
1612 | | |
1613 | | Values passed in overwrite the current values if the user had modify rights. One of Name or Type must be present. |
1614 | | |
1615 | | Finally an administrator can delete a computer: |
1616 | | |
1617 | | * '''Service:''' Resources |
1618 | | * '''Operation:''' removeComputer |
1619 | | * '''Input Parameters:''' |
1620 | | * Userid - the user making the request |
1621 | | * Name - an optional string, the name of this computer, if absent this is a class |
1622 | | * Type - an optional string, the type of computer. May be omitted for specific computers |
1623 | | * '''Return Values:''' |
1624 | | None |
1625 | | |
1626 | | === Images === |
1627 | | |
1628 | | Images are saved container state - including saved physical container state. These are selected in the experiment definition, but users may need to manipulate them directly. |
1629 | | |
1630 | | To read image information: |
1631 | | |
1632 | | * '''Service:''' Resources |
1633 | | * '''Operation:''' viewImages |
1634 | | * '''Input Parameters:''' |
1635 | | * Userid - the user making the request (the owner on success) |
1636 | | * Owner - an optional string the computer owner |
1637 | | * NameRE - an optional string containing a regular expression matched against the name |
1638 | | * '''Return Values:''' |
1639 | | * Zero or more structures with the following fields: |
1640 | | * Name - a string, the name of this image |
1641 | | * Owner - a string, the owner of the image |
1642 | | * Description - a string describing this image |
1643 | | * ValidIn - a list of container types that can use this image |
1644 | | * ProjectDelete - a list of project names that can delete this resource |
1645 | | * ProjectModify - a list of project names that can modify this resource |
1646 | | * ProjectUse - a list of project names that can use this resource |
1647 | | * ProjectRead - a list of projects names that can read this resource |
1648 | | |
1649 | | Images are created by operations on a container, but users can modify or delete their metadata: |
1650 | | |
1651 | | * '''Service:''' Resources |
1652 | | * '''Operation:''' modifyImage |
1653 | | * '''Input Parameters:''' |
1654 | | * Userid - the user making the request |
1655 | | * Name - a string, the name of this image |
1656 | | * Description - an optional string describing this computer or class |
1657 | | * ValidIn - an optional list of container types that can use this image |
1658 | | * ProjectDelete - an optional list of project names that can delete this resource |
1659 | | * ProjectModify - an optional list of project names that can modify this resource |
1660 | | * ProjectUse - an optional list of project names that can use this resource |
1661 | | * ProjectRead - an optional list of projects names that can read this resource |
1662 | | * '''Return Values:''' |
1663 | | None |
1664 | | |
1665 | | |
1666 | | As with other resources, these values overwrite the existing parameters (except for name which is a selector). |
1667 | | |
1668 | | A user can delete an image: |
1669 | | |
1670 | | * '''Service:''' Resources |
1671 | | * '''Operation:''' removeImage |
1672 | | * '''Input Parameters:''' |
1673 | | * Userid - the user making the request (the owner on success) |
1674 | | * Name - a string, the image to remove |
1675 | | * '''Return Values:''' |
1676 | | None |
1677 | | |
1678 | | |
1679 | | === Pubkey === |
1680 | | |
1681 | | Public/Private keypairs are used several places in the testbed for authentication and access. For example, access to containers that present a computer interface is done using the ssh protocol. These interfaces allow users to manipulate their keys. |
1682 | | |
1683 | | Viewing keys: |
1684 | | |
1685 | | * '''Service:''' Resources |
1686 | | * '''Operation:''' viewKeys |
1687 | | * '''Input Parameters:''' |
1688 | | * Userid - the user making the request |
1689 | | * Owner - an optional string the computer owner |
1690 | | * type - an optional string containing the kind of keys to report |
1691 | | * '''Return Values:''' |
1692 | | * Zero or more structures with the following fields: |
1693 | | * Name - a string, the name of this key |
1694 | | * Owner - a string, the owner of the key |
1695 | | * Description - a string describing this key |
1696 | | * KeyData - an opaque data value - the key data |
1697 | | * ProjectDelete - a list of project names that can delete this resource |
1698 | | * ProjectModify - a list of project names that can modify this resource |
1699 | | * ProjectUse - a list of project names that can use this resource |
1700 | | * ProjectRead - a list of projects names that can read this resource |
1701 | | |
1702 | | |
1703 | | Users can add and delete keys: |
1704 | | |
1705 | | * '''Service:''' Resources |
1706 | | * '''Operation:''' addKey |
1707 | | * '''Input Parameters:''' |
1708 | | * Userid - the user making the request (the owner on success) |
1709 | | * Owner - an optional string the computer owner |
1710 | | * Name - an optional string, the name of this key (system will assign if omitted) |
1711 | | * Description - an optional string describing this key |
1712 | | * KeyData - an opaque data value - the key data |
1713 | | * ProjectDelete - a list of project names that can delete this resource |
1714 | | * ProjectModify - a list of project names that can modify this resource |
1715 | | * ProjectUse - a list of project names that can use this resource |
1716 | | * ProjectRead - a list of projects names that can read this resource |
1717 | | * '''Return Values:''' |
1718 | | * None |
1719 | | |
1720 | | * '''Service:''' Resources |
1721 | | * '''Operation:''' removeKey |
1722 | | * '''Input Parameters:''' |
1723 | | * Userid - the user making the request |
1724 | | * Name - a string, the name of this key |
| 1570 | * '''Operation:''' createResource |
| 1571 | String name, String type, Boolean persist, String description, ResourceFacet[] facets, ResourceTag[] tags, AccessMember[] accessLists |
| 1572 | |
| 1573 | * '''Input Parameters:''' |
| 1574 | * Name - a string, the scoped, unique identifier of the resource |
| 1575 | * Type - a string, the resource type |
| 1576 | * Persist - a boolean, true if the resource is independent of an experiment realization. Non persistent resources resource disappear once bound to a realization and then released. |
| 1577 | * Description - a string, an optional human readable description of the resource |
| 1578 | * A list of zero or more facets that describe the capabilities and requirements of the resource. Each facet includes |
| 1579 | * A name, scoped by the resource |
| 1580 | * A type (CPU, Storage, Communication, Sensing, Manipulation) |
| 1581 | * A value, the real-valued amount of the type |
| 1582 | * A units value that scales and defined the value |
| 1583 | * Zero or more tags. |
| 1584 | * An access control list |
| 1585 | * '''Return Values:''' |
| 1586 | * A boolean indicating success |
| 1587 | |