{"id":13620619,"url":"https://github.com/project-fifo/vmwebadm","last_synced_at":"2026-01-07T05:57:51.144Z","repository":{"id":75995107,"uuid":"3653230","full_name":"project-fifo/vmwebadm","owner":"project-fifo","description":"A frontend for the SmartDC API from joyent that runs on vanilla SmartOS","archived":false,"fork":false,"pushed_at":"2014-07-29T15:38:35.000Z","size":534,"stargazers_count":51,"open_issues_count":3,"forks_count":9,"subscribers_count":15,"default_branch":"master","last_synced_at":"2024-11-08T07:38:10.604Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/project-fifo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-03-07T20:28:02.000Z","updated_at":"2023-09-08T16:32:30.000Z","dependencies_parsed_at":"2023-02-23T01:40:49.113Z","dependency_job_id":null,"html_url":"https://github.com/project-fifo/vmwebadm","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-fifo%2Fvmwebadm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-fifo%2Fvmwebadm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-fifo%2Fvmwebadm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-fifo%2Fvmwebadm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/project-fifo","download_url":"https://codeload.github.com/project-fifo/vmwebadm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248971882,"owners_count":21191679,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T21:00:57.817Z","updated_at":"2026-01-07T05:57:51.102Z","avatar_url":"https://github.com/project-fifo.png","language":"Clojure","readme":"DISCONTINUED\n============\nThe project is discontinued in favour for (https://project-fifo.net)[Project FiFo].\n\nGeneral\n=======\n\nThis project is meant to implement Joyent's cloud API (http://apidocs.joyent.com/sdcapidoc/cloudapi/#machines) on-top of vanilla SmartOS to allow for easier maintenance and handling of the host.\n\nYou can use tools like SmartDC CLI (http://wiki.joyentcloud.com/display/jpc2/About+Using+the+Cloud+API).\n\nNote the account part is just grouping machines by the owner_uuid right now.\n\nGetting Started\n===============\n\nWatch this first\n----------------\nhttp://www.youtube.com/watch?v=8dyAA-6Df-c\n\nGrab the SmartDC Tools\n----------------------\nYou can read the how to get started here: http://apidocs.joyent.com/sdcapidoc/cloudapi/#getting-started .\nOr just grab do:\n\n```\nnpm install smartdc -g\n```\n\nOn your client\n--------------\n* First clone this repository\n* make bootstrap\n* edit the makefile, change the DEPLOY_* variables to fit your setup\n* make deploy\n\nOn your SmartOS Server\n----------------------\nThe default behaviour for the server is to listen to 127.0.0.1:80, you can change this with ./vmwebadm port and host\n\n* By default there is admin user called admin with the password admin\n* Add users as you want with: ./vmwebadm passwd \u003cyour user\u003e \u003cyour pass\u003e\n\nMake it a service\n-----------------\n\n* run ./vmwebadmd install\n\nyou can disable the service with ./vmwebadmd disable and enable it with ./vmwebadmd enable\n\nThe service is persistent and will survive reboots!\n\nOn your client\n--------------\nYou can now set up your sdc toos with:\n    \n```sh\nsdc-setup http://\u003cSmartOS IP\u003e\nUsername (login): (\u003cyour user\u003e)\nPassword: \u003cyour pass\u003e\n```\n\nConfiguration commands\n======================\n\n```\nConfiguration tool\n  import package \u003cpackage-file(s)\u003e - imports one or more package files.\n  default-dataset \u003cdataset\u003e        - sets the default dataset.\n  passwd \u003cuser\u003e \u003cpass\u003e             - adds a new user or resets a password for an existing one.\n  list users                       - lists all known users\n  promote \u003cuser\u003e                   - grants a user admin rights.\n  demote \u003cuser\u003e                    - demotes a user from admin rights.\n  delete \u003cuser\u003e                    - deletes a user.\n  port \u003cport\u003e                      - sets the listen port for the server.\n  host \u003chost\u003e                      - sets the listen host for the server.\n```\n\nCurrently supported sdc-commands\n============================\n\n```sh\nsdc-listmachines\nsdc-getmachine 54e85ffa-988c-47b3-90f1-9ee5c23a8849\nsdc-startmachine 40e06b7a-314a-4028-a328-84619c47fc68\nsdc-stopmachine 40e06b7a-314a-4028-a328-84619c47fc68\nsdc-rebootmachine 40e06b7a-314a-4028-a328-84619c47fc68\nsdc-deletemachine 5a749276-9b9f-44b3-83c4-5965a7525646\nsdc-createmachine \\\n--dataset 31bc4dbe-5e06-11e1-907c-5bed6b255fd1 \\\n--package '{\"brand\": \"joyent\",\"zfs_io_priority\": 30,\"quota\": 20,\"nowait\": true,\"max_physical_memory\": 256,\"alias\": \"zone4\",\"nics\": [{\"nic_tag\": \"external\",\"ip\": \"dhcp\"}]}'\nsdc-createmachine \\\n--dataset 31bc4dbe-5e06-11e1-907c-5bed6b255fd1 \\\n--package small\nsdc-resizemachine --package '{\"max_physical_memory\":128}' 54e85ffa-988c-47b3-90f1-9ee5c23a8849\nsdc-listpackages\nsdc-getoackage\n```\n\nAPI Overview\n============\n\nKeys\n----\n```plaintext\n[X] ListKeys\n[X] GetKey\n[X] CreateKey\n[X] DeleteKey\n```\n\nDatacenters\n-----------\nThis won't be implemented at the current state since it does not make sense.\n\n```plaintext\n[-] ListDatacenters\n[-] GetDatacenter\n```\n\nDatasets\n--------\n```plaintext\n[X] ListDatasets\n[X] GetDataset\n```\n\nPackages\n--------\n```plaintext\n[X] ListPackages\n[X] GetPackage\n```\n\nMachines\n--------\n```plaintext\n[X] ListMachines\n[X] GetMachine\n[X] CreateMachine\n[X] StopMachine\n[X] StartMachine\n[X] RebootMachine\n[X] ResizeMachine\n[ ] CreateMachineSnapshot\n[ ] StartMachineFromSnapshot\n[ ] ListMachineSnapshots\n[ ] GetMachineSnapshot\n[ ] DeleteMachineSnapshot\n[X] UpdateMachineMetadata\n[X] GetMachineMetadata\n[X] DeleteMachineMetadata\n[X] DeleteAllMachineMetadata\n[X] AddMachineTags\n[X] ListMachineTags\n[X] GetMachineTag\n[X] DeleteMachineTag\n[X] DeleteMachineTags\n[X] DeleteMachine\n```\n\nAnalytics\n---------\nThis part does not really do anything yet, just the management functions to edit instrumentations are present.\n\n```plaintext\n[X] DescribeAnalytics\n[X] ListInstrumentations\n[X] GetInstrumentation\n[X] GetInstrumentationValue\n[ ] GetInstrumentationHeatmap\n[ ] GetInstrumentationHeatmapDetails\n[X] CreateInstrumentation\n[X] DeleteInstrumentation\n```\n\nIn addition to the normal decomposition vmwebadm supports a json base format to describe decompositions, the idea is to allow complex calls take the following example:\n\n\n```plaintext\nsdc-createinstrumentation -m fs -s logical_ops -n '[{\"latency\": {\"count\": [{\"*\": [{\"/\": [\"latency\", 1000]}, 1000]},{\"+\": [{\"*\": [{\"/\": [\"latency\", 1000]}, 1000]}, 999]}]}}]' -p '{\"eq\": [\"optype\",\"write\"]}'\n```\n\nthis compiles to\n\n```D\nsyscall::write:entry,\nsyscall::read:entry\n{\n  self-\u003estart[probefunc] = timestamp;\n}\n\nsyscall::read:return,\nsyscall::write:return\n/self-\u003estart[probefunc]\u0026\u0026(probefunc==\"write\")/\n{\n  @latency[(((timestamp - self-\u003estart[probefunc])/1000)*1000),((((timestamp - self-\u003estart[probefunc])/1000)*1000)+999)]=count();\n}\n```\n\nThe syntax is comparable to the one used for predicates:\n\n```\nresult=[\u003caggr\u003e+];\naggr={\u003cname\u003e: \u003caggrdef\u003e}\nname=/a-zZ-Z/*\nfieldname=/a-zZ-Z/*\nfield=\u003cfunction\u003e|fieldname\nfunction={\u003cfn-name\u003e: [\u003cparams\u003e+]}\nargs=field\nfn-name=fieldname|+|*|/|-\naggrdef={\u003caggrfn\u003e: [\u003cfield\u003e+, \u003cargs\u003e+]}\naggrfn=count|sum|avg|min|max|lquantize|quantize\n```\n","funding_links":[],"categories":["Clojure"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fproject-fifo%2Fvmwebadm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fproject-fifo%2Fvmwebadm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fproject-fifo%2Fvmwebadm/lists"}