Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This feature will add new (CPU, RAMMemory, Primary storage, Secondary storage, network rate etc.) resource types to the existing pool of resources. CS admin would be able to set the limits i.e. CPU, memory, storage etc. for accounts/domains through API or through CloudStack UI. This is functional specifications of feature CLOUDSTACK-713.

...

  • Requirements

    • Update Resource Limit: Root Admin would be able to limit the following resources for domain/accounts, domain admin would be able to limit the follwoing resources only for sub-domains/accounts under his own domain or all sub-domain.
      • CPUs
      • RAMMemory
      • Primary (shared) storage (Volumes)
      • Secondary storage  (Snapshots, Templates & ISOs)
      • Network bandwidth rate (in mbps)
    • Usage: Limits can be imposed on Accounts, Domains and Projects.
    • List Resource Limit: Any User/RootAdmin/Domain Admin can list Resources
    • Resource Limit Logs: Ensure proper logs are maintained into vmops.log and api.log 

...

  • Configuration

    • global configuration parameters:
      • max.account.cpus - Maximum number of CPU cores that can be used for an account. Default value for this is 40.
      • max.account.ram memory (in MB) - Maximum RAM Memory that can be used for an account. Default value for this is 40960.
      • max.account.primary.storage (in GB) - Maximum primary storage space that can be used for an account. Default value for this is 20*10.
      • max.account.secondary.storage (in GB) - Maximum secondary storage space that can be used for an account. Default value for this is 20*20.
      • max.account.network.rate(in mbps) - Maximum network rate that can be used for an account. Default value for this is 200.
      • max.project.cpus - Maximum number of CPU cores that can be used for an account. Default value for this is 40.
      • max.project.ram memory (in MB) - Maximum RAM Memory that can be used for an account. Default value for this is 40960.
      • max.project.primary.storage (in GB) - Maximum primary storage space that can be used for an account. Default value for this is 20*10.
      • max.project.secondary.storage(in GB) - Maximum secondary storage space that can be used for an account. Default value for this is 20*20.
      • max.project.network.rate(in mbps) - Maximum network rate that can be used for an account. Default value for this is 200.

...

    1. Root/Domain-Admin update CPU to 10 for domain D1. Users belonging to Domain D1 should not be able to use more than that.
    2. Root/Domain-Admin update CPU to 10 for Account A1 in Domain D1. Users belonging to Account A1 should not be able to use more than that. Also, they should not cross CPU limit defined for D1 domain.
    3. Limits imposed on Domain D1 should be imposed on sub-domain SD1 as well.
    4. Root/Domain-Admin update CPU to 10 for Project P1 having account A1 . Users belonging to Project P1 should not be able to use more CPUs than the defined limit.

2. Amount of RAM Memory:

    1. Root/Domain-Admin update RAM Memory to 1GB for domain D1. Users belonging to Domain D1 should not be able to use more than that.
    2. Root/Domain-Admin update RAM to Memory to 1GB for Account A1 in Domain D1. Users belonging to Account A1 should not be able to use more than that. Also, they should not cross RAM limit Memory limit defined for D1 domain.
    3. Limits imposed on Domain D1 should be imposed on sub-domain SD1 as well.
    4. Root/Domain-Admin update RAM to Memory to 1GB for Project P1 having account A1. Users belonging to Project P1 should not be able to use more RAM than Memory than the defined limit.

3. Amount of Primary Storage:

...

ApiName

Request Parameters

Response Parameters

Available to regular user

updateResourceLimit

  • resourcetype (admin can pass new resource type to update CPU, RAM Memory, primary storage, secondary storage and network rate)
  • account
  • domainid
  • max
  • projectid
  • account
  • domain
  • domainid
  • max
  • project
  • projectid
  • resourcetype

No

...

ApiName

Request Parameters

Response Parameters

Available to regular user

updateResourceCount

  • domainid
  • account
  • projectid
  • resourcetype (admin can pass new resource type to update CPU, RAM Memory, primary storage, secondary storage *and network rate*)
  • account
  • domain
  • domainid
  • project
  • projectid
  • resourcecount
  • resourcetype

No

...

  • The Limit imposed (per account, per  Domain, per Project) should not conflict  
  • What should be the maximum limit for CPU, RAMMemory, Primary Storage, Secondary Storage, Network rate

...