├── server ├── tmp │ └── .gitignore ├── log │ └── .gitignore ├── config │ ├── .gitignore │ ├── compass │ │ ├── .gitignore │ │ ├── print.sass │ │ ├── ie.sass │ │ └── partials │ │ │ └── _base.sass │ ├── drivers │ │ ├── sbc.yaml │ │ ├── mock.yaml │ │ ├── azure.yaml │ │ ├── rhevm.yaml │ │ ├── condor.yaml │ │ ├── gogrid.yaml │ │ ├── google.yaml │ │ ├── openstack.yaml │ │ ├── rackspace.yaml │ │ ├── terremark.yaml │ │ ├── digitalocean.yaml │ │ ├── profitbricks.yaml │ │ ├── rimuhosting.yaml │ │ ├── opennebula.yaml │ │ ├── vsphere.yaml │ │ ├── eucalyptus.yaml │ │ ├── arubacloud.yaml │ │ └── fgcp.yaml │ ├── compass.config │ └── addresses.xml ├── lib │ ├── deltacloud │ │ └── drivers │ │ │ └── mock │ │ │ └── data │ │ │ ├── images │ │ │ ├── .gitignore │ │ │ ├── img3.yml │ │ │ ├── img2.yml │ │ │ └── img1.yml │ │ │ ├── instances │ │ │ ├── .gitignore │ │ │ ├── inst2.yml │ │ │ ├── inst1.yml │ │ │ ├── inst3.yml │ │ │ └── inst0.yml │ │ │ ├── storage_snapshots │ │ │ ├── .gitignore │ │ │ ├── snap1.yml │ │ │ ├── snap2.yml │ │ │ └── snap3.yml │ │ │ ├── storage_volumes │ │ │ ├── .gitignore │ │ │ ├── vol1.yml │ │ │ ├── vol2.yml │ │ │ └── vol3.yml │ │ │ ├── addresses │ │ │ ├── 192.168.0.1.yml │ │ │ ├── 192.168.0.2.yml │ │ │ ├── 192.168.0.3.yml │ │ │ └── 192.168.0.4.yml │ │ │ ├── buckets │ │ │ ├── bucket2.yml │ │ │ └── bucket1.yml │ │ │ ├── network_interfaces │ │ │ ├── nic1.yml │ │ │ └── nicinst3.yml │ │ │ ├── subnets │ │ │ ├── subnet3.yml │ │ │ ├── subnet4.yml │ │ │ ├── subnet1.yml │ │ │ └── subnet2.yml │ │ │ ├── networks │ │ │ ├── net1.yml │ │ │ └── net2.yml │ │ │ ├── blobs │ │ │ ├── blob3.yml │ │ │ ├── blob5.yml │ │ │ ├── blob1.yml │ │ │ ├── blob4.yml │ │ │ └── blob2.yml │ │ │ └── cimi │ │ │ ├── system_network │ │ │ └── sysnet1.json │ │ │ ├── system_volume │ │ │ └── sys_volume_1.json │ │ │ ├── system_address │ │ │ └── sysaddress1.json │ │ │ ├── system_machine │ │ │ └── sys_machine_1.json │ │ │ ├── system_forwarding_group │ │ │ └── sysforwardinggroup1.json │ │ │ ├── network_port_configuration │ │ │ ├── portconfig1.json │ │ │ └── portconfig2.json │ │ │ ├── network_configuration │ │ │ ├── network_config2.json │ │ │ └── network_config1.json │ │ │ ├── network_port │ │ │ ├── network_port1.json │ │ │ ├── network_port2.json │ │ │ ├── network_port3.json │ │ │ └── network_port4.json │ │ │ ├── network_template │ │ │ ├── template1.json │ │ │ └── template2.json │ │ │ ├── forwarding_group_template │ │ │ └── template1.json │ │ │ ├── network_port_template │ │ │ ├── template1.json │ │ │ └── template2.json │ │ │ ├── system │ │ │ └── system2.json │ │ │ └── address_template │ │ │ ├── addr_template2.json │ │ │ └── addr_template1.json │ ├── ec2 │ │ └── views │ │ │ ├── delete_key_pair.haml │ │ │ ├── start_instances.haml │ │ │ ├── stop_instances.haml │ │ │ ├── reboot_instances.haml │ │ │ ├── error.haml │ │ │ ├── create_key_pair.haml │ │ │ ├── describe_key_pairs.haml │ │ │ ├── describe_availability_zones.haml │ │ │ ├── run_instances.haml │ │ │ ├── terminate_instances.haml │ │ │ ├── describe_instances.haml │ │ │ ├── instance_action.haml │ │ │ └── describe_images.haml │ ├── cimi │ │ └── data │ │ │ ├── collections │ │ │ ├── volume.col.xml │ │ │ ├── machine.col.xml │ │ │ ├── machine_image.col.xml │ │ │ └── machine_configuration.col.xml │ │ │ └── default_res │ │ │ ├── machine_image.col.xml │ │ │ └── volume.col.xml │ └── sinatra │ │ └── body_proxy.rb ├── public │ ├── robots.txt │ ├── favicon.ico │ ├── images │ │ ├── .DS_Store │ │ ├── blob.png │ │ ├── cloud.png │ │ ├── image.png │ │ ├── key.png │ │ ├── realm.png │ │ ├── address.png │ │ ├── bucket.png │ │ ├── machine.png │ │ ├── metric.png │ │ ├── profile.png │ │ ├── volume.png │ │ ├── balancer.png │ │ ├── bread-bg.png │ │ ├── firewall.png │ │ ├── logo-wide.png │ │ ├── snapshot.png │ │ └── topbar-bg.png │ └── stylesheets │ │ └── images │ │ ├── error.png │ │ ├── grid.png │ │ ├── rails.png │ │ ├── bread-bg.png │ │ ├── pending.png │ │ ├── running.png │ │ ├── stopped.png │ │ ├── logo-wide.png │ │ ├── topbar-bg.png │ │ ├── ajax-loader.png │ │ ├── icons-18-black.png │ │ ├── icons-18-white.png │ │ ├── icons-36-black.png │ │ ├── icons-36-white.png │ │ └── icon-search-black.png ├── bin │ ├── deltacloudd.bat │ ├── .gitattributes │ └── deltacloud-db-upgrade.bat ├── tests │ ├── drivers │ │ ├── mock │ │ │ └── common.rb │ │ ├── models │ │ │ ├── common.rb │ │ │ ├── blob_test.rb │ │ │ ├── address_test.rb │ │ │ ├── instance_profile_test.rb │ │ │ ├── metrics_test.rb │ │ │ ├── keys_test.rb │ │ │ └── instance_test.rb │ │ ├── fgcp │ │ │ ├── cert │ │ │ │ └── fgcp-testuser │ │ │ │ │ └── UserCert.p12 │ │ │ └── provider_test.rb │ │ ├── google │ │ │ ├── data │ │ │ │ └── deltacloud_blob_test.png │ │ │ └── common.rb │ │ ├── base │ │ │ └── common.rb │ │ ├── rhevm │ │ │ └── fixtures │ │ │ │ └── preferences.yml │ │ ├── profitbricks │ │ │ └── common.rb │ │ ├── openstack │ │ │ └── common.rb │ │ └── gogrid │ │ │ └── common.rb │ ├── helpers │ │ ├── rack │ │ │ ├── common.rb │ │ │ ├── rack_date_test.rb │ │ │ └── rack_etag_test.rb │ │ └── core_ext │ │ │ ├── integer_test.rb │ │ │ └── array_test.rb │ ├── cimi │ │ ├── data │ │ │ ├── machine-minimal.xml │ │ │ ├── machine-minimal.json │ │ │ ├── container.json │ │ │ ├── container.xml │ │ │ ├── machine_create_by_value.xml │ │ │ ├── credential.xml │ │ │ ├── credential.json │ │ │ ├── volume.xml │ │ │ ├── volume_configuration.xml │ │ │ ├── volume_image.xml │ │ │ ├── volume.json │ │ │ ├── volume_configuration.json │ │ │ ├── volume_image.json │ │ │ ├── volume_template.xml │ │ │ ├── machine_image.json │ │ │ ├── machine_image.xml │ │ │ ├── volume_template.json │ │ │ ├── machine_configuration.xml │ │ │ └── machine_configuration.json │ │ └── db │ │ │ ├── db_helper.rb │ │ │ └── entity_test.rb │ ├── deltacloud │ │ ├── common.rb │ │ └── base_collection_test.rb │ └── ec2 │ │ └── common.rb ├── .gitignore ├── support │ ├── condor │ │ ├── config │ │ │ └── condor-cloud │ │ └── bash │ │ │ ├── cached_images.sh │ │ │ ├── libvirt_cloud_script.sh │ │ │ ├── cloud_exit_hook.sh │ │ │ └── cloud_prepare_hook.sh │ ├── fedora │ │ └── deltacloudd-fedora │ ├── cimi │ │ ├── volume_config.json │ │ ├── volume_config.xml │ │ ├── machine_image.xml │ │ ├── machine_from_temp.xml │ │ ├── volume_image.xml │ │ ├── address.json │ │ ├── credential.json │ │ ├── address.xml │ │ ├── volume.xml │ │ ├── machine_from_temp.json │ │ ├── volume_by_value.xml │ │ ├── volume_template.xml │ │ ├── machine_template.xml │ │ ├── machine.xml │ │ ├── network.json │ │ ├── machine.json │ │ ├── machine_template.json │ │ └── address_template.xml │ └── tools │ │ └── hudson.sh ├── views │ ├── keys │ │ ├── index.xml.haml │ │ ├── show.xml.haml │ │ ├── new.html.haml │ │ └── index.html.haml │ ├── realms │ │ ├── index.xml.haml │ │ ├── show.xml.haml │ │ ├── index.html.haml │ │ └── show.html.haml │ ├── buckets │ │ ├── index.xml.haml │ │ ├── show.xml.haml │ │ ├── new.html.haml │ │ └── index.html.haml │ ├── subnets │ │ ├── index.xml.haml │ │ ├── show.xml.haml │ │ ├── index.html.haml │ │ └── new.html.haml │ ├── addresses │ │ ├── index.xml.haml │ │ ├── _address.html.haml │ │ ├── associate.html.haml │ │ ├── index.html.haml │ │ └── show.xml.haml │ ├── networks │ │ ├── index.xml.haml │ │ ├── new.html.haml │ │ ├── show.xml.haml │ │ └── index.html.haml │ ├── instances │ │ ├── index.xml.haml │ │ ├── run.html.haml │ │ ├── run.xml.haml │ │ └── index.html.haml │ ├── images │ │ ├── index.xml.haml │ │ ├── new.html.haml │ │ └── index.html.haml │ ├── load_balancers │ │ └── index.xml.haml │ ├── metrics │ │ ├── index.xml.haml │ │ ├── show.xml.haml │ │ ├── index.html.haml │ │ └── show.html.haml │ ├── storage_snapshots │ │ ├── index.xml.haml │ │ ├── new.html.haml │ │ ├── show.xml.haml │ │ └── index.html.haml │ ├── storage_volumes │ │ ├── index.xml.haml │ │ ├── attach.html.haml │ │ ├── index.html.haml │ │ └── new.html.haml │ ├── errors │ │ ├── backend_capability_failure.xml.haml │ │ └── common.xml.haml │ ├── network_interfaces │ │ ├── index.xml.haml │ │ ├── index.html.haml │ │ └── show.xml.haml │ ├── hardware_profiles │ │ ├── index.xml.haml │ │ └── show.xml.haml │ ├── index.html.haml │ ├── drivers │ │ ├── index.xml.haml │ │ ├── show.xml.haml │ │ └── index.html.haml │ ├── instance_states │ │ └── show.xml.haml │ ├── firewalls │ │ ├── new.html.haml │ │ └── index.html.haml │ ├── blobs │ │ └── show.xml.haml │ └── api │ │ └── show.xml.haml ├── .simplecov └── NOTICE ├── site ├── .gitignore ├── content │ ├── join-deltacloud.md │ ├── .getting-sources.md.marks │ ├── .instance-states.md.marks │ ├── clients.md │ ├── .DS_Store │ ├── contribute.md │ ├── use-the-api.md │ ├── api-docs.md │ ├── libdeltacloud.md │ ├── assets │ │ ├── img │ │ │ ├── asf.png │ │ │ ├── documentation_files │ │ │ │ ├── default.css │ │ │ │ ├── default-debug.css │ │ │ │ └── asf_logo_wide.png │ │ │ ├── logo.png │ │ │ ├── introbg.png │ │ │ ├── pattern.png │ │ │ ├── git-Fork.png │ │ │ ├── logo_old.png │ │ │ ├── diagram-soa.png │ │ │ ├── asf_logo_wide.png │ │ │ ├── deltacloud_concept.gif │ │ │ ├── glyphicons-halflings.png │ │ │ └── glyphicons-halflings-white.png │ │ ├── less │ │ │ ├── grid.less │ │ │ ├── utilities.less │ │ │ ├── component-animations.less │ │ │ ├── close.less │ │ │ ├── wells.less │ │ │ ├── hero-unit.less │ │ │ ├── layouts.less │ │ │ ├── breadcrumbs.less │ │ │ ├── pager.less │ │ │ ├── accordion.less │ │ │ ├── scaffolding.less │ │ │ └── thumbnails.less │ │ └── js │ │ │ └── application.js │ └── htaccess.txt ├── Procfile ├── lib │ ├── helpers.rb │ ├── default.rb │ ├── bootstrap.rb │ └── shellcmd.rb ├── layouts │ └── .DS_Store ├── output │ ├── assets │ │ ├── application │ │ │ └── index.html │ │ ├── img │ │ │ ├── asf.png │ │ │ ├── documentation_files │ │ │ │ ├── default.html │ │ │ │ ├── default-debug.html │ │ │ │ └── asf_logo_wide.png │ │ │ ├── logo.png │ │ │ ├── git-Fork.png │ │ │ ├── introbg.png │ │ │ ├── logo_old.png │ │ │ ├── pattern.png │ │ │ ├── API_Diagram.gif │ │ │ ├── asf_logo_wide.png │ │ │ ├── diagram-soa.png │ │ │ ├── deltacloud_concept.gif │ │ │ ├── glyphicons-halflings.png │ │ │ └── glyphicons-halflings-white.png │ │ └── js │ │ │ ├── application.js │ │ │ └── bootstrap-tabs.js │ └── .htaccess ├── Guardfile ├── Gemfile └── LICENSE ├── clients ├── cimi │ ├── bin │ │ ├── .gitattributes │ │ └── start.bat │ ├── public │ │ └── bootstrap │ │ │ └── img │ │ │ ├── glyphicons-halflings.png │ │ │ └── glyphicons-halflings-white.png │ ├── Gemfile │ ├── README.md │ └── views │ │ ├── cloud_entry_point │ │ └── index.haml │ │ ├── volumes │ │ └── index.haml │ │ ├── network_ports │ │ └── index.haml │ │ ├── volume_images │ │ └── index.haml │ │ ├── forwarding_groups │ │ ├── index.haml │ │ └── show.haml │ │ ├── machine_images │ │ └── index.haml │ │ ├── address_templates │ │ └── index.haml │ │ ├── network_templates │ │ └── index.haml │ │ ├── resource_metadata │ │ └── index.haml │ │ ├── machine_templates │ │ └── show.haml │ │ ├── network_configurations │ │ └── index.haml │ │ ├── network_port_templates │ │ └── index.haml │ │ ├── volume_configurations │ │ ├── index.haml │ │ └── show.haml │ │ └── machine_configurations │ │ └── index.haml ├── python │ ├── MANIFEST.in │ └── setup.py └── java │ ├── org.apache.deltacloud.client │ ├── .gitignore │ ├── NOTICE │ └── META-INF │ │ └── MANIFEST.MF │ └── org.apache.deltacloud.client.test │ ├── .gitignore │ ├── NOTICE │ └── META-INF │ └── MANIFEST.MF ├── .gitignore ├── support ├── crontab ├── README ├── dev.sh └── prod.sh ├── tests ├── deprecated │ ├── ec2 │ │ ├── support │ │ │ ├── s3 │ │ │ │ └── buckets.da39a3ee5e6b4b0d3255bfef95601890afd80709 │ │ │ ├── ec2 │ │ │ │ ├── destroy_delete_key_pair.2fadff67b41d6a6fd0a728f47a3312a5303f760c │ │ │ │ ├── reboot_reboot_instances.8702fc199a628a156f600c9fbd4c985b47a25762 │ │ │ │ ├── describe_availability_zones.fe7704c2394fbc2dd726f797e7080c707d4ee4a5 │ │ │ │ ├── destroy_terminate_instances.8702fc199a628a156f600c9fbd4c985b47a25762 │ │ │ │ ├── stop_terminate_instances.b5f0a55c4b7b77954ce958af619973e1764f1d5c │ │ │ │ ├── describe_key_pairs.29f1306f3c32628192103d291b06fdd6213d1f20 │ │ │ │ ├── create_create_volume.a4845bca9d929ab74a5a42691c1d2484ea6b4034 │ │ │ │ ├── describe_volumes.e3bd97aff62d5f6c7e157e9b722910eb09daf486 │ │ │ │ ├── destroy_describe_key_pairs.2fadff67b41d6a6fd0a728f47a3312a5303f760c │ │ │ │ ├── attach_volume.02b8ed437c66c556e77e4b7813a2ae5043c68a8f │ │ │ │ ├── describe_availability_zones.da39a3ee5e6b4b0d3255bfef95601890afd80709 │ │ │ │ ├── describe_volumes.64f65f4a7b5665ecd96359803f4354cc118776dd │ │ │ │ ├── describe_volumes.eb6199d82eb26b3ffa00cccf5ab82ce8eecc1de9 │ │ │ │ ├── describe_images.b6822a0a41541a8dbabe1babc57ed0d4d37f3dbe │ │ │ │ ├── describe_images.c4b6748639aec6ee0563714c9b6663e90253577b │ │ │ │ ├── describe_images_by_owner.12fef75ad6850ccb88e5261ab3b9906125134088 │ │ │ │ ├── create_describe_volumes.da39a3ee5e6b4b0d3255bfef95601890afd80709 │ │ │ │ ├── describe_volumes.da39a3ee5e6b4b0d3255bfef95601890afd80709 │ │ │ │ ├── launch_instances.c4b6748639aec6ee0563714c9b6663e90253577b │ │ │ │ ├── stop_describe_instances.b5f0a55c4b7b77954ce958af619973e1764f1d5c │ │ │ │ ├── create_launch_instances.c4b6748639aec6ee0563714c9b6663e90253577b │ │ │ │ └── create-hwp_launch_instances.378a10da4274bad1f6351b08d0168a5b65a85aaf │ │ │ └── elb │ │ │ │ └── describe_load_balancers.da39a3ee5e6b4b0d3255bfef95601890afd80709 │ │ └── step_definitions │ │ │ ├── rake_steps.rb │ │ │ └── hardware_profiles_steps.rb │ ├── rhevm │ │ ├── step_definitions │ │ │ ├── storage_volumes_steps.rb │ │ │ └── images_steps.rb │ │ └── support │ │ │ └── fixtures │ │ │ ├── 9361e31db701da1105c6adb528e6dc61.fixture │ │ │ ├── b3374f5480b46b5751c5ae508b9c4914.fixture │ │ │ ├── 530d1fad492a210b11e64a6714645727.fixture │ │ │ ├── 18ec06387f4e0a980cbbbbedeee85d71.fixture │ │ │ ├── 32c55dd505856722696e5923cbde59b7.fixture │ │ │ ├── bebe17c656cd81972487b80da37f002e.fixture │ │ │ ├── c02f885ab565fc077632ddda1b92db80.fixture │ │ │ ├── ee8de9dfd3d696e5bfc1537a6405aab1.fixture │ │ │ ├── 7fbe6810c9082b32ba685ad9afe7804c.fixture │ │ │ ├── 9b71abd5067c1079052d4c88f81f7f81.fixture │ │ │ ├── c9a5c35d6c00ea0207e2faa354504a41.fixture │ │ │ ├── fb8424ef5b5bcaa21c59e124fe316c1c.fixture │ │ │ └── 812b32fd276b1d09f3238088bc3a69a6.fixture │ ├── README │ ├── sbc │ │ ├── step_definitions │ │ │ ├── images_steps.rb │ │ │ └── instances_steps.rb │ │ └── support │ │ │ └── fixtures │ │ │ ├── 291f0f35b96fa2b9e5cae3d1e5b89878.fixture │ │ │ └── ff671e15c30a18a501dd6d4e6db77c9e.fixture │ └── mock │ │ ├── step_definitions │ │ ├── rake_steps.rb │ │ └── hardware_profiles_steps.rb │ │ └── support │ │ └── env.rb └── deltacloud │ ├── test_blob_large.png │ └── test_blob_small.png ├── examples └── mobile │ └── mobiledemo.war ├── client ├── .gitignore ├── Gemfile └── NOTICE ├── .travis.yml └── NOTICE /server/tmp/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | -------------------------------------------------------------------------------- /site/.gitignore: -------------------------------------------------------------------------------- 1 | tmp/* 2 | -------------------------------------------------------------------------------- /server/log/.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | -------------------------------------------------------------------------------- /site/content/join-deltacloud.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /clients/cimi/bin/.gitattributes: -------------------------------------------------------------------------------- 1 | start -crlf -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.sw* 2 | *.project 3 | *.pyc 4 | -------------------------------------------------------------------------------- /server/config/.gitignore: -------------------------------------------------------------------------------- 1 | rhevm_config.yml 2 | -------------------------------------------------------------------------------- /server/config/compass/.gitignore: -------------------------------------------------------------------------------- 1 | .sass-cache 2 | -------------------------------------------------------------------------------- /clients/python/MANIFEST.in: -------------------------------------------------------------------------------- 1 | include deltacloud.py 2 | -------------------------------------------------------------------------------- /site/Procfile: -------------------------------------------------------------------------------- 1 | web: bundle exec thin start -p $PORT -------------------------------------------------------------------------------- /site/lib/helpers.rb: -------------------------------------------------------------------------------- 1 | include Nanoc3::Helpers::Rendering -------------------------------------------------------------------------------- /server/config/drivers/sbc.yaml: -------------------------------------------------------------------------------- 1 | :sbc: 2 | :name: SBC 3 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/images/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/lib/ec2/views/delete_key_pair.haml: -------------------------------------------------------------------------------- 1 | %return true 2 | -------------------------------------------------------------------------------- /server/public/robots.txt: -------------------------------------------------------------------------------- 1 | User-Agent: * 2 | Disallow: / 3 | -------------------------------------------------------------------------------- /site/content/.getting-sources.md.marks: -------------------------------------------------------------------------------- 1 | !;3601;3601 2 | -------------------------------------------------------------------------------- /site/content/.instance-states.md.marks: -------------------------------------------------------------------------------- 1 | ! ;1439;1439 2 | -------------------------------------------------------------------------------- /clients/cimi/bin/start.bat: -------------------------------------------------------------------------------- 1 | @ruby -C%~dp0.. "%~dp0start" %* 2 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/instances/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/bin/deltacloudd.bat: -------------------------------------------------------------------------------- 1 | @ruby -C%~dp0.. "%~dp0deltacloudd" %* 2 | -------------------------------------------------------------------------------- /server/config/drivers/mock.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | :mock: 3 | :name: Mock 4 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/storage_snapshots/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/storage_volumes/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /clients/java/org.apache.deltacloud.client/.gitignore: -------------------------------------------------------------------------------- 1 | /bin 2 | /target 3 | -------------------------------------------------------------------------------- /server/config/drivers/azure.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | :azure: 3 | :name: Azure 4 | -------------------------------------------------------------------------------- /server/config/drivers/rhevm.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | :rhevm: 3 | :name: RHEVM 4 | -------------------------------------------------------------------------------- /clients/java/org.apache.deltacloud.client.test/.gitignore: -------------------------------------------------------------------------------- 1 | /bin 2 | /target 3 | -------------------------------------------------------------------------------- /server/bin/.gitattributes: -------------------------------------------------------------------------------- 1 | deltacloudd -crlf 2 | deltacloud-db-upgrade -crlf -------------------------------------------------------------------------------- /server/config/drivers/condor.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | :condor: 3 | :name: Condor 4 | -------------------------------------------------------------------------------- /server/config/drivers/gogrid.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | :gogrid: 3 | :name: Gogrid 4 | -------------------------------------------------------------------------------- /server/config/drivers/google.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | :google: 3 | :name: Google 4 | -------------------------------------------------------------------------------- /server/lib/ec2/views/start_instances.haml: -------------------------------------------------------------------------------- 1 | =render :instance_action, object 2 | -------------------------------------------------------------------------------- /server/lib/ec2/views/stop_instances.haml: -------------------------------------------------------------------------------- 1 | =render :instance_action, object 2 | -------------------------------------------------------------------------------- /server/tests/drivers/mock/common.rb: -------------------------------------------------------------------------------- 1 | require_relative '../../test_helper' 2 | -------------------------------------------------------------------------------- /server/config/compass/print.sass: -------------------------------------------------------------------------------- 1 | @import blueprint.sass 2 | 3 | +blueprint-print -------------------------------------------------------------------------------- /server/config/drivers/openstack.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | :openstack: 3 | :name: Openstack 4 | -------------------------------------------------------------------------------- /server/config/drivers/rackspace.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | :rackspace: 3 | :name: Rackspace 4 | -------------------------------------------------------------------------------- /server/config/drivers/terremark.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | :terremark: 3 | :name: Terremark 4 | -------------------------------------------------------------------------------- /server/lib/ec2/views/reboot_instances.haml: -------------------------------------------------------------------------------- 1 | =render :instance_action, object 2 | -------------------------------------------------------------------------------- /support/crontab: -------------------------------------------------------------------------------- 1 | MAILTO=dev@deltalcoud.apache.org 2 | 30 * * * * ${HOME}/bin/dev 3 | -------------------------------------------------------------------------------- /server/bin/deltacloud-db-upgrade.bat: -------------------------------------------------------------------------------- 1 | @ruby -C%~dp0.. "%~dp0deltacloud-db-upgrade" %* 2 | -------------------------------------------------------------------------------- /server/config/drivers/digitalocean.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | :digitalocean: 3 | :name: Digitalocean 4 | -------------------------------------------------------------------------------- /server/config/drivers/profitbricks.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | :profitbricks: 3 | :name: Profitbricks 4 | -------------------------------------------------------------------------------- /server/config/drivers/rimuhosting.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | :rimuhosting: 3 | :name: RimuHosting 4 | -------------------------------------------------------------------------------- /site/content/clients.md: -------------------------------------------------------------------------------- 1 | --- 2 | site_name: Deltacloud API 3 | title: Clients 4 | --- 5 | -------------------------------------------------------------------------------- /tests/deprecated/ec2/support/s3/buckets.da39a3ee5e6b4b0d3255bfef95601890afd80709: -------------------------------------------------------------------------------- 1 | BAhbAA== 2 | -------------------------------------------------------------------------------- /server/.gitignore: -------------------------------------------------------------------------------- 1 | log/*.log 2 | *.swp 3 | *.kpf 4 | tmp/* 5 | pkg/* 6 | *.lock 7 | .bundle/ 8 | -------------------------------------------------------------------------------- /site/content/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/site/content/.DS_Store -------------------------------------------------------------------------------- /site/content/contribute.md: -------------------------------------------------------------------------------- 1 | --- 2 | site_name: Deltacloud API 3 | title: Contribute 4 | --- 5 | -------------------------------------------------------------------------------- /site/content/use-the-api.md: -------------------------------------------------------------------------------- 1 | --- 2 | site_name: Deltacloud API 3 | title: Use the API 4 | --- 5 | -------------------------------------------------------------------------------- /site/layouts/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/site/layouts/.DS_Store -------------------------------------------------------------------------------- /server/lib/ec2/views/error.haml: -------------------------------------------------------------------------------- 1 | %Response 2 | %Errors 3 | %Code=code 4 | %Message=message 5 | -------------------------------------------------------------------------------- /server/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/favicon.ico -------------------------------------------------------------------------------- /site/content/api-docs.md: -------------------------------------------------------------------------------- 1 | --- 2 | site_name: Deltacloud API 3 | title: API Documentation 4 | --- 5 | -------------------------------------------------------------------------------- /site/content/libdeltacloud.md: -------------------------------------------------------------------------------- 1 | --- 2 | site_name: Deltacloud API 3 | title: Libdeltacloud 4 | --- 5 | -------------------------------------------------------------------------------- /tests/deprecated/ec2/support/ec2/destroy_delete_key_pair.2fadff67b41d6a6fd0a728f47a3312a5303f760c: -------------------------------------------------------------------------------- 1 | BAhU 2 | -------------------------------------------------------------------------------- /tests/deprecated/ec2/support/ec2/reboot_reboot_instances.8702fc199a628a156f600c9fbd4c985b47a25762: -------------------------------------------------------------------------------- 1 | BAhU 2 | -------------------------------------------------------------------------------- /examples/mobile/mobiledemo.war: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/examples/mobile/mobiledemo.war -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/addresses/192.168.0.1.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :id: 192.168.0.1 3 | :instance_id: 4 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/addresses/192.168.0.2.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :id: 192.168.0.2 3 | :instance_id: 4 | -------------------------------------------------------------------------------- /server/public/images/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/images/.DS_Store -------------------------------------------------------------------------------- /server/public/images/blob.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/images/blob.png -------------------------------------------------------------------------------- /server/public/images/cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/images/cloud.png -------------------------------------------------------------------------------- /server/public/images/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/images/image.png -------------------------------------------------------------------------------- /server/public/images/key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/images/key.png -------------------------------------------------------------------------------- /server/public/images/realm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/images/realm.png -------------------------------------------------------------------------------- /site/lib/default.rb: -------------------------------------------------------------------------------- 1 | # All files in the 'lib' directory will be loaded 2 | # before nanoc starts compiling. 3 | -------------------------------------------------------------------------------- /site/output/assets/application/index.html: -------------------------------------------------------------------------------- 1 | ul.article-nav { 2 | float : right; 3 | width : 300px; 4 | } 5 | -------------------------------------------------------------------------------- /site/output/assets/img/asf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/site/output/assets/img/asf.png -------------------------------------------------------------------------------- /server/config/drivers/opennebula.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | :opennebula: 3 | :class: OpennebulaDriver 4 | :name: Opennebula 5 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/addresses/192.168.0.3.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :id: "192.168.0.3" 3 | :instance_id: 4 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/addresses/192.168.0.4.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :id: "192.168.0.4" 3 | :instance_id: 4 | -------------------------------------------------------------------------------- /server/public/images/address.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/images/address.png -------------------------------------------------------------------------------- /server/public/images/bucket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/images/bucket.png -------------------------------------------------------------------------------- /server/public/images/machine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/images/machine.png -------------------------------------------------------------------------------- /server/public/images/metric.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/images/metric.png -------------------------------------------------------------------------------- /server/public/images/profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/images/profile.png -------------------------------------------------------------------------------- /server/public/images/volume.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/images/volume.png -------------------------------------------------------------------------------- /site/content/assets/img/asf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/site/content/assets/img/asf.png -------------------------------------------------------------------------------- /site/content/assets/img/documentation_files/default.css: -------------------------------------------------------------------------------- 1 | @import url(generic.css); 2 | @import url(dcloud.css); 3 | -------------------------------------------------------------------------------- /site/content/assets/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/site/content/assets/img/logo.png -------------------------------------------------------------------------------- /site/output/assets/img/documentation_files/default.html: -------------------------------------------------------------------------------- 1 | @import url(generic.css); 2 | @import url(dcloud.css); 3 | -------------------------------------------------------------------------------- /site/output/assets/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/site/output/assets/img/logo.png -------------------------------------------------------------------------------- /server/public/images/balancer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/images/balancer.png -------------------------------------------------------------------------------- /server/public/images/bread-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/images/bread-bg.png -------------------------------------------------------------------------------- /server/public/images/firewall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/images/firewall.png -------------------------------------------------------------------------------- /server/public/images/logo-wide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/images/logo-wide.png -------------------------------------------------------------------------------- /server/public/images/snapshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/images/snapshot.png -------------------------------------------------------------------------------- /server/public/images/topbar-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/images/topbar-bg.png -------------------------------------------------------------------------------- /site/content/assets/img/documentation_files/default-debug.css: -------------------------------------------------------------------------------- 1 | @import url(generic.css); 2 | @import url(debug.css); 3 | -------------------------------------------------------------------------------- /site/content/assets/img/introbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/site/content/assets/img/introbg.png -------------------------------------------------------------------------------- /site/content/assets/img/pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/site/content/assets/img/pattern.png -------------------------------------------------------------------------------- /site/output/assets/img/documentation_files/default-debug.html: -------------------------------------------------------------------------------- 1 | @import url(generic.css); 2 | @import url(debug.css); 3 | -------------------------------------------------------------------------------- /site/output/assets/img/git-Fork.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/site/output/assets/img/git-Fork.png -------------------------------------------------------------------------------- /site/output/assets/img/introbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/site/output/assets/img/introbg.png -------------------------------------------------------------------------------- /site/output/assets/img/logo_old.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/site/output/assets/img/logo_old.png -------------------------------------------------------------------------------- /site/output/assets/img/pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/site/output/assets/img/pattern.png -------------------------------------------------------------------------------- /site/content/assets/img/git-Fork.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/site/content/assets/img/git-Fork.png -------------------------------------------------------------------------------- /site/content/assets/img/logo_old.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/site/content/assets/img/logo_old.png -------------------------------------------------------------------------------- /tests/deltacloud/test_blob_large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/tests/deltacloud/test_blob_large.png -------------------------------------------------------------------------------- /tests/deltacloud/test_blob_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/tests/deltacloud/test_blob_small.png -------------------------------------------------------------------------------- /server/support/condor/config/condor-cloud: -------------------------------------------------------------------------------- 1 | STORAGE=/var/lib/condor-cloud/shared_images 2 | CACHE=/var/lib/condor-cloud/local_cache 3 | -------------------------------------------------------------------------------- /site/content/assets/img/diagram-soa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/site/content/assets/img/diagram-soa.png -------------------------------------------------------------------------------- /site/output/assets/img/API_Diagram.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/site/output/assets/img/API_Diagram.gif -------------------------------------------------------------------------------- /site/output/assets/img/asf_logo_wide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/site/output/assets/img/asf_logo_wide.png -------------------------------------------------------------------------------- /site/output/assets/img/diagram-soa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/site/output/assets/img/diagram-soa.png -------------------------------------------------------------------------------- /server/public/stylesheets/images/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/stylesheets/images/error.png -------------------------------------------------------------------------------- /server/public/stylesheets/images/grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/stylesheets/images/grid.png -------------------------------------------------------------------------------- /server/public/stylesheets/images/rails.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/stylesheets/images/rails.png -------------------------------------------------------------------------------- /server/tests/drivers/models/common.rb: -------------------------------------------------------------------------------- 1 | require_relative '../../test_helper' 2 | 3 | require_relative '../../../lib/deltacloud/models' 4 | -------------------------------------------------------------------------------- /site/content/assets/img/asf_logo_wide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/site/content/assets/img/asf_logo_wide.png -------------------------------------------------------------------------------- /server/lib/ec2/views/create_key_pair.haml: -------------------------------------------------------------------------------- 1 | %keyName=object.name 2 | %keyFingerprint=object.fingerprint 3 | %keyMaterial=object.pem_rsa_key 4 | -------------------------------------------------------------------------------- /server/public/stylesheets/images/bread-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/stylesheets/images/bread-bg.png -------------------------------------------------------------------------------- /server/public/stylesheets/images/pending.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/stylesheets/images/pending.png -------------------------------------------------------------------------------- /server/public/stylesheets/images/running.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/stylesheets/images/running.png -------------------------------------------------------------------------------- /server/public/stylesheets/images/stopped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/stylesheets/images/stopped.png -------------------------------------------------------------------------------- /site/output/assets/img/deltacloud_concept.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/site/output/assets/img/deltacloud_concept.gif -------------------------------------------------------------------------------- /server/public/stylesheets/images/logo-wide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/stylesheets/images/logo-wide.png -------------------------------------------------------------------------------- /server/public/stylesheets/images/topbar-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/stylesheets/images/topbar-bg.png -------------------------------------------------------------------------------- /site/content/assets/img/deltacloud_concept.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/site/content/assets/img/deltacloud_concept.gif -------------------------------------------------------------------------------- /site/output/assets/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/site/output/assets/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /server/public/stylesheets/images/ajax-loader.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/stylesheets/images/ajax-loader.png -------------------------------------------------------------------------------- /server/tests/helpers/rack/common.rb: -------------------------------------------------------------------------------- 1 | require 'sinatra/base' 2 | require_relative '../../test_helper.rb' 3 | require_relative '../../../lib/sinatra.rb' 4 | -------------------------------------------------------------------------------- /site/Guardfile: -------------------------------------------------------------------------------- 1 | guard 'nanoc' do 2 | watch(/^config.yaml\//) 3 | watch(/^Rules\//) 4 | watch(/^layouts\//) 5 | watch(/^content\//) 6 | end 7 | -------------------------------------------------------------------------------- /site/content/assets/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/site/content/assets/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/buckets/bucket2.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :blob_list: 3 | - blob4 4 | - blob5 5 | :size: 2 6 | :name: bucket2 7 | :id: bucket2 8 | -------------------------------------------------------------------------------- /server/public/stylesheets/images/icons-18-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/stylesheets/images/icons-18-black.png -------------------------------------------------------------------------------- /server/public/stylesheets/images/icons-18-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/stylesheets/images/icons-18-white.png -------------------------------------------------------------------------------- /server/public/stylesheets/images/icons-36-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/stylesheets/images/icons-36-black.png -------------------------------------------------------------------------------- /server/public/stylesheets/images/icons-36-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/stylesheets/images/icons-36-white.png -------------------------------------------------------------------------------- /server/views/keys/index.xml.haml: -------------------------------------------------------------------------------- 1 | !!!XML 2 | %keys 3 | - elements.each do |c| 4 | = haml :'keys/show', :locals => { :key => c, :partial => true } 5 | -------------------------------------------------------------------------------- /server/public/stylesheets/images/icon-search-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/public/stylesheets/images/icon-search-black.png -------------------------------------------------------------------------------- /server/views/realms/index.xml.haml: -------------------------------------------------------------------------------- 1 | !!!XML 2 | %realms 3 | - elements.each do |c| 4 | = haml :'realms/show', :locals => { :realm => c, :partial => true } 5 | -------------------------------------------------------------------------------- /site/content/assets/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/site/content/assets/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /site/output/assets/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/site/output/assets/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/buckets/bucket1.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :blob_list: 3 | - blob1 4 | - blob2 5 | - blob3 6 | :size: 3 7 | :name: bucket1 8 | :id: bucket1 9 | -------------------------------------------------------------------------------- /server/tests/drivers/fgcp/cert/fgcp-testuser/UserCert.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/tests/drivers/fgcp/cert/fgcp-testuser/UserCert.p12 -------------------------------------------------------------------------------- /server/tests/drivers/google/data/deltacloud_blob_test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/server/tests/drivers/google/data/deltacloud_blob_test.png -------------------------------------------------------------------------------- /server/views/buckets/index.xml.haml: -------------------------------------------------------------------------------- 1 | !!!XML 2 | %buckets 3 | - elements.each do |c| 4 | = haml :'buckets/show', :locals => { :bucket => c, :partial => true } 5 | -------------------------------------------------------------------------------- /server/views/subnets/index.xml.haml: -------------------------------------------------------------------------------- 1 | !!!XML 2 | %subnets 3 | - @elements.each do |c| 4 | = haml :'subnets/show', :locals => { :subnet => c, :partial => true } 5 | -------------------------------------------------------------------------------- /clients/cimi/public/bootstrap/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/clients/cimi/public/bootstrap/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /server/lib/ec2/views/describe_key_pairs.haml: -------------------------------------------------------------------------------- 1 | %keySet 2 | - object.each do |item| 3 | %item 4 | %keyName=item.name 5 | %keyFingerprint=item.fingerprint 6 | -------------------------------------------------------------------------------- /server/views/addresses/index.xml.haml: -------------------------------------------------------------------------------- 1 | !!!XML 2 | %addresses 3 | - elements.each do |c| 4 | = haml :'addresses/show', :locals => { :address => c, :partial => true } 5 | -------------------------------------------------------------------------------- /server/views/networks/index.xml.haml: -------------------------------------------------------------------------------- 1 | !!!XML 2 | %networks 3 | - @elements.each do |c| 4 | = haml :'networks/show', :locals => { :network => c, :partial => true } 5 | -------------------------------------------------------------------------------- /site/output/.htaccess: -------------------------------------------------------------------------------- 1 | Redirect 301 /documentation.html /usage.html 2 | Redirect 301 /api.html /rest-api.html 3 | Redirect 301 /developers.html /how-to-contribute.html 4 | -------------------------------------------------------------------------------- /site/output/assets/img/documentation_files/asf_logo_wide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/site/output/assets/img/documentation_files/asf_logo_wide.png -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/network_interfaces/nic1.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :id: nic1 3 | :name: nic1 4 | :network: subnet1 5 | :instance: inst1 6 | :ip_address: 192.168.1.2 7 | -------------------------------------------------------------------------------- /server/views/instances/index.xml.haml: -------------------------------------------------------------------------------- 1 | !!! XML 2 | %instances 3 | - elements.each do |c| 4 | = haml :'instances/show', :locals => { :instance => c, :partial => true } 5 | -------------------------------------------------------------------------------- /site/content/assets/img/documentation_files/asf_logo_wide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/site/content/assets/img/documentation_files/asf_logo_wide.png -------------------------------------------------------------------------------- /site/content/htaccess.txt: -------------------------------------------------------------------------------- 1 | Redirect 301 /documentation.html /usage.html 2 | Redirect 301 /api.html /rest-api.html 3 | Redirect 301 /developers.html /how-to-contribute.html 4 | -------------------------------------------------------------------------------- /clients/cimi/public/bootstrap/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/deltacloud/HEAD/clients/cimi/public/bootstrap/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/storage_snapshots/snap1.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :created: Wed Jul 29 18:15:24 UTC 2009 3 | :storage_volume_id: vol1 4 | :id: snap1 5 | :state: COMPLETED 6 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/storage_snapshots/snap2.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :created: Wed Jul 29 18:15:24 UTC 2009 3 | :storage_volume_id: vol2 4 | :id: snap2 5 | :state: COMPLETED 6 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/storage_snapshots/snap3.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :created: Wed Jul 29 18:15:24 UTC 2009 3 | :storage_volume_id: vol2 4 | :id: snap3 5 | :state: COMPLETED 6 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/subnets/subnet3.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :id: subnet3 3 | :name: subnet3 4 | :network: net2 5 | :address_block: 10.1.0.0/16 6 | :type: PRIVATE 7 | :state: UP 8 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/subnets/subnet4.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :id: subnet4 3 | :name: subnet4 4 | :network: net2 5 | :address_block: 10.2.0.0/16 6 | :type: PRIVATE 7 | :state: UP 8 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/subnets/subnet1.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :id: subnet1 3 | :name: subnet1 4 | :network: net1 5 | :address_block: 192.168.1.0/24 6 | :type: PRIVATE 7 | :state: UP 8 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/subnets/subnet2.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :id: subnet2 3 | :name: subnet2 4 | :network: net1 5 | :address_block: 192.168.2.0/24 6 | :type: PRIVATE 7 | :state: UP 8 | -------------------------------------------------------------------------------- /server/views/images/index.xml.haml: -------------------------------------------------------------------------------- 1 | - unless defined?(partial) 2 | !!! XML 3 | %images 4 | - elements.each do |c| 5 | = haml :'images/show', :locals => { :image => c, :partial => true } 6 | -------------------------------------------------------------------------------- /server/views/load_balancers/index.xml.haml: -------------------------------------------------------------------------------- 1 | !!!XML 2 | %load_balancers 3 | - elements.each do |c| 4 | = haml :'load_balancers/show', :locals => { :load_balancer => c, :partial => true } 5 | -------------------------------------------------------------------------------- /server/views/metrics/index.xml.haml: -------------------------------------------------------------------------------- 1 | - unless defined?(partial) 2 | !!!XML 3 | %metrics 4 | - elements.each do |c| 5 | = haml :'metrics/show', :locals => { :metric => c, :partial => true} 6 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/networks/net1.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :id: net1 3 | :name: network1 4 | :subnets: 5 | - subnet1 6 | - subnet2 7 | :address_blocks: 8 | - 192.168.0.0/16 9 | :state: UP 10 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/networks/net2.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :id: net2 3 | :name: network2 4 | :subnets: 5 | - subnet3 6 | - subnet4 7 | :address_blocks: 8 | - 10.0.0.0/8 9 | :state: UP 10 | -------------------------------------------------------------------------------- /server/views/storage_snapshots/index.xml.haml: -------------------------------------------------------------------------------- 1 | !!!XML 2 | %storage_snapshots 3 | - elements.each do |c| 4 | = haml :'storage_snapshots/show', :locals => { :storage_snapshot => c, :partial => true } 5 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/network_interfaces/nicinst3.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :id: nicinst3 3 | :name: nicinst3 4 | :instance: inst3 5 | :network: net1 6 | :subnet: subnet2 7 | :ip_address: 192.168.2.189 8 | -------------------------------------------------------------------------------- /server/views/storage_volumes/index.xml.haml: -------------------------------------------------------------------------------- 1 | !!!XML 2 | %storage_volumes 3 | - elements.each do |volume| 4 | = haml :'storage_volumes/show', :locals => { :storage_volume => volume, :partial => true } 5 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/storage_volumes/vol1.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :realm_id: us 3 | :capacity: 1 4 | :device: 5 | :created: Thu Jul 30 14:35:11 UTC 2009 6 | :instance_id: 7 | :id: vol1 8 | :state: AVAILABLE 9 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/storage_volumes/vol2.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :realm_id: us 3 | :capacity: 1 4 | :device: 5 | :created: Thu Jul 30 14:35:11 UTC 2009 6 | :instance_id: 7 | :id: vol2 8 | :state: AVAILABLE 9 | -------------------------------------------------------------------------------- /server/lib/ec2/views/describe_availability_zones.haml: -------------------------------------------------------------------------------- 1 | %availabilityZoneInfo 2 | - object.each do |item| 3 | %item 4 | %zoneName=item.id 5 | %zoneState=item.state 6 | %regionName=item.name 7 | -------------------------------------------------------------------------------- /tests/deprecated/ec2/support/ec2/describe_availability_zones.fe7704c2394fbc2dd726f797e7080c707d4ee4a5: -------------------------------------------------------------------------------- 1 | BAhbBnsIOhByZWdpb25fbmFtZSIOdXMtZWFzdC0xOg56b25lX25hbWUiD3Vz 2 | LWVhc3QtMWE6D3pvbmVfc3RhdGUiDmF2YWlsYWJsZQ== 3 | -------------------------------------------------------------------------------- /server/config/drivers/vsphere.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | :vsphere: 3 | :name: VSphere 4 | :username: Login Name 5 | :password: Password 6 | :entrypoints: 7 | default: 8 | default: "https://vsphere.provider.com/sdk" 9 | -------------------------------------------------------------------------------- /server/lib/ec2/views/run_instances.haml: -------------------------------------------------------------------------------- 1 | %reservationId r-11111111 2 | %ownerId deltacloud 3 | %groupSet 4 | %item 5 | %groupId sg-11111111 6 | %groupName default 7 | =render :describe_instance_set, [object] 8 | -------------------------------------------------------------------------------- /server/tests/cimi/data/machine-minimal.xml: -------------------------------------------------------------------------------- 1 | 2 | http://cimi.example.org/machines/1 3 | 12582912 4 | STARTED 5 | 6 | -------------------------------------------------------------------------------- /server/views/errors/backend_capability_failure.xml.haml: -------------------------------------------------------------------------------- 1 | %err{:url => "#{request.env['REQUEST_URI']}", :status => "#{response.status}"} 2 | %capability #{err.capability} 3 | %message< #{cdata err.message} 4 | 5 | 6 | -------------------------------------------------------------------------------- /server/views/instances/run.html.haml: -------------------------------------------------------------------------------- 1 | %h1 Run command on instance #{params[:id]} 2 | 3 | %p 4 | %label Command: 5 | %em #{output.ssh.command} 6 | %p 7 | %strong Command output 8 | %pre 9 | =output.body 10 | -------------------------------------------------------------------------------- /tests/deprecated/ec2/support/ec2/destroy_terminate_instances.8702fc199a628a156f600c9fbd4c985b47a25762: -------------------------------------------------------------------------------- 1 | BAhbBnsIOhNhd3NfcHJldl9zdGF0ZSIMcnVubmluZzoUYXdzX2luc3RhbmNl 2 | X2lkIg9pLTMzNjgwMDUyOhhhd3NfcHJldl9zdGF0ZV9jb2RlaRU= 3 | -------------------------------------------------------------------------------- /tests/deprecated/ec2/support/ec2/stop_terminate_instances.b5f0a55c4b7b77954ce958af619973e1764f1d5c: -------------------------------------------------------------------------------- 1 | BAhbBnsIOhNhd3NfcHJldl9zdGF0ZSIMcGVuZGluZzoUYXdzX2luc3RhbmNl 2 | X2lkIg9pLTQzNmEwMjIyOhhhd3NfcHJldl9zdGF0ZV9jb2RlaQA= 3 | -------------------------------------------------------------------------------- /server/support/fedora/deltacloudd-fedora: -------------------------------------------------------------------------------- 1 | #!/usr/bin/ruby 2 | 3 | root_path = File.join('/', 'usr', 'share', 'deltacloud-core') 4 | $:.unshift File.join(root_path, 'lib') 5 | load File.join(root_path, 'bin', 'deltacloudd') 6 | -------------------------------------------------------------------------------- /server/tests/drivers/base/common.rb: -------------------------------------------------------------------------------- 1 | require_relative '../../test_helper' 2 | 3 | require_relative File.join('..', '..', '..', 'lib', 'initializers', 'frontend_initialize') 4 | 5 | Deltacloud.require_frontend!(:deltacloud) 6 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/storage_volumes/vol3.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :realm_id: us 3 | :capacity: 1 4 | :device: /dev/sda1 5 | :created: Thu Jul 30 14:35:11 UTC 2009 6 | :instance_id: inst1 7 | :id: vol3 8 | :state: IN-USE 9 | -------------------------------------------------------------------------------- /server/views/network_interfaces/index.xml.haml: -------------------------------------------------------------------------------- 1 | !!!XML 2 | %network_interfaces 3 | - @elements.each do |c| 4 | = haml :'network_interfaces/show', :locals => { :network_interface => c, :subnets => subnets, :partial => true } 5 | -------------------------------------------------------------------------------- /server/support/condor/bash/cached_images.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | source /usr/libexec/condor/cloud_functions 4 | 5 | cd $CACHE 6 | echo "CACHED_IMAGES=\"$(echo * | tr ' ' '\n' | grep -v -e '*' -e .qcow2 | tr '\n' ',')\"" 7 | 8 | exit 0 9 | -------------------------------------------------------------------------------- /server/tests/cimi/data/machine-minimal.json: -------------------------------------------------------------------------------- 1 | { 2 | "resourceURI": "http://schemas.dmtf.org/cimi/1/Machine", 3 | "id": "http://cimi.example.org/machines/1", 4 | "state": "STARTED", 5 | "cpu": "4", 6 | "memory":12582912 7 | } 8 | -------------------------------------------------------------------------------- /server/views/hardware_profiles/index.xml.haml: -------------------------------------------------------------------------------- 1 | !!! XML 2 | %hardware_profiles 3 | - order_hardware_profiles(elements).each do |prof| 4 | = haml :'hardware_profiles/show', :locals => { :hardware_profile => prof, :partial => true } 5 | -------------------------------------------------------------------------------- /server/views/instances/run.xml.haml: -------------------------------------------------------------------------------- 1 | %instance{:id => params[:id], :href=> instance_url(params[:id])} 2 | %public_address 3 | =output.ssh.network.ip 4 | %command 5 | =output.ssh.command 6 | %output< 7 | =output.body 8 | -------------------------------------------------------------------------------- /tests/deprecated/rhevm/step_definitions/storage_volumes_steps.rb: -------------------------------------------------------------------------------- 1 | Then /^([a-z_]+) should have ([a-z_]+) set to$/ do |item, property, table| 2 | (xml/"/#{item}/#{property}").first.text.should == table.raw.flatten.first 3 | end 4 | 5 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/images/img3.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :architecture: i386 3 | :owner_id: mockuser 4 | :state: AVAILABLE 5 | :id: img3 6 | :name: img3 7 | :description: JBoss 8 | :creation_time: "Thu Oct 25 14:27:53 CEST 2012" 9 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/images/img2.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :architecture: i386 3 | :owner_id: fedoraproject 4 | :state: AVAILABLE 5 | :id: img2 6 | :name: img2 7 | :description: Fedora 10 8 | :creation_time: "Thu Oct 25 14:27:53 CEST 2012" 9 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/images/img1.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :architecture: x86_64 3 | :owner_id: fedoraproject 4 | :state: AVAILABLE 5 | :id: img1 6 | :name: img1 7 | :description: Fedora 10 8 | :creation_time: "Thu Oct 25 14:27:53 CEST 2012" 9 | -------------------------------------------------------------------------------- /server/config/drivers/eucalyptus.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | :eucalyptus: 3 | :name: Eucalyptus 4 | :username: Access Key ID 5 | :password: Secret Access Key 6 | :entrypoints: 7 | default: 8 | default: "ec2=EUCALYPTUS_IP[:PORT];s3=WALRUS_IP[:PORT]" 9 | -------------------------------------------------------------------------------- /server/views/index.html.haml: -------------------------------------------------------------------------------- 1 | %html 2 | %head 3 | %body 4 | %h1 Deltacloud API 5 | %h2 Enabled Frontends: 6 | %ul 7 | - Deltacloud.enabled_frontends.each do |f| 8 | %li 9 | %a{ :href => f.root_url}=f.name 10 | -------------------------------------------------------------------------------- /server/support/cimi/volume_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "resourceURI": "http://schemas.dmtf.org/cimi/1/VolumeConfigurationCreate", 3 | "name": "myVolumeConfig1", 4 | "description": "1 GB volume configuration", 5 | "format": "qcow2", 6 | "capacity": "1" 7 | } 8 | -------------------------------------------------------------------------------- /tests/deprecated/ec2/support/ec2/describe_key_pairs.29f1306f3c32628192103d291b06fdd6213d1f20: -------------------------------------------------------------------------------- 1 | BAhbBnsHOhFhd3Nfa2V5X25hbWUiGGtleS1pbnN0LTEzMTA3Mjg4NDk6FGF3 2 | c19maW5nZXJwcmludCJAMzc6ZDM6MjY6ZTU6NGU6YWM6Y2U6Mjc6YmI6Njc6 3 | NjM6MTI6Njg6OTI6MGM6NTk6YmI6ZDM6Yzk6YjU= 4 | -------------------------------------------------------------------------------- /server/lib/ec2/views/terminate_instances.haml: -------------------------------------------------------------------------------- 1 | %instancesSet 2 | %item 3 | %instanceId=context.params['InstanceId.1'] 4 | %currentState 5 | %code=32 6 | %name shutting-down 7 | %previousState 8 | %code -1 9 | %name unknown 10 | -------------------------------------------------------------------------------- /server/tests/cimi/data/container.json: -------------------------------------------------------------------------------- 1 | { "id": "http://example.com/cimi", 2 | "models": { 3 | "href": "http://example.com/cimi/models", 4 | "count": 2, 5 | "id": "http://example.com/cimi/models", 6 | "models": [ {"text":"m1"}, {"text":"m2"} ] 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /tests/deprecated/README: -------------------------------------------------------------------------------- 1 | The tests under this directory are no longer being used. 2 | 3 | In July 2012 it was decided to move to using MiniTest as 4 | the test suite for all our spec/unit tests. 5 | 6 | The cucumber features/step_definitions are kept here for reference. 7 | -------------------------------------------------------------------------------- /tests/deprecated/ec2/support/ec2/create_create_volume.a4845bca9d929ab74a5a42691c1d2484ea6b4034: -------------------------------------------------------------------------------- 1 | BAh7CzoTYXdzX2NyZWF0ZWRfYXR1OglUaW1lDQrdG8AAAJA8Ogthd3NfaWQi 2 | EXZvbC04MDMxY2RlYToPYXdzX3N0YXR1cyINY3JlYXRpbmc6EHNuYXBzaG90 3 | X2lkMDoNYXdzX3NpemVpBjoJem9uZSIPdXMtZWFzdC0xYQ== 4 | -------------------------------------------------------------------------------- /tests/deprecated/ec2/support/ec2/describe_volumes.e3bd97aff62d5f6c7e157e9b722910eb09daf486: -------------------------------------------------------------------------------- 1 | BAhbBnsLOhNhd3NfY3JlYXRlZF9hdHU6CVRpbWUNCt0bwAAAADI6C2F3c19p 2 | ZCIRdm9sLWEyMzBjY2M4Og9hd3Nfc3RhdHVzIg5hdmFpbGFibGU6EHNuYXBz 3 | aG90X2lkMDoNYXdzX3NpemVpBjoJem9uZSIPdXMtZWFzdC0xYQ== 4 | -------------------------------------------------------------------------------- /tests/deprecated/ec2/support/ec2/destroy_describe_key_pairs.2fadff67b41d6a6fd0a728f47a3312a5303f760c: -------------------------------------------------------------------------------- 1 | BAhbBnsHOhFhd3Nfa2V5X25hbWUiGGtleS1pbnN0LTEzMTA1NTkyNTA6FGF3 2 | c19maW5nZXJwcmludCJANTg6M2Q6ODE6ZjQ6Yzc6MjI6ZTI6Y2Q6ODU6MmQ6 3 | Yjg6ZjI6NmY6NWI6ZTM6ZDk6YzQ6MGI6YTI6ZDA= 4 | -------------------------------------------------------------------------------- /client/.gitignore: -------------------------------------------------------------------------------- 1 | *.gem 2 | *.rbc 3 | .bundle 4 | .config 5 | coverage 6 | InstalledFiles 7 | lib/bundler/man 8 | pkg 9 | rdoc 10 | spec/reports 11 | test/tmp 12 | test/version_tmp 13 | tmp 14 | *.lock 15 | 16 | # YARD artifacts 17 | .yardoc 18 | _yardoc 19 | doc/ 20 | -------------------------------------------------------------------------------- /client/Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | gem 'faraday' 4 | gem 'nokogiri' 5 | 6 | group :development do 7 | gem 'rake' 8 | gem 'minitest', "<5.0" 9 | gem 'vcr' 10 | gem 'pry' 11 | gem 'turn' 12 | gem 'simplecov', :require => false 13 | end 14 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/blobs/blob3.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :content_length: 17 3 | :content_type: text/plain 4 | :last_modified: 2010-08-14 02:14:31 +0100 5 | :content: content of blob 3 6 | :name: blob3 7 | :user_metadata: "" 8 | :bucket: bucket1 9 | :id: blob3 10 | -------------------------------------------------------------------------------- /server/support/cimi/volume_config.xml: -------------------------------------------------------------------------------- 1 | 2 | SampleVolumeConfiguration1 3 | This is sample 1GB volume configuration 4 | qcow2 5 | 1 6 | 7 | -------------------------------------------------------------------------------- /server/views/drivers/index.xml.haml: -------------------------------------------------------------------------------- 1 | %drivers 2 | - drivers.each do |id, details| 3 | %driver{ :href => driver_url(id), :id => id } 4 | %name< 5 | =details[:name] 6 | - driver_provider(details).keys.each do |prov| 7 | %provider{ :id => prov } 8 | -------------------------------------------------------------------------------- /clients/cimi/Gemfile: -------------------------------------------------------------------------------- 1 | source "http://rubygems.org" 2 | 3 | gem 'sinatra' 4 | gem 'rack-accept' 5 | gem 'haml' 6 | gem 'json' 7 | #gem 'xmlsimple' 8 | gem 'rest-client' 9 | gem 'nokogiri' 10 | 11 | gemspec :path => File.join(File.dirname(__FILE__), '..', '..', 'server') 12 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/blobs/blob5.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :content_length: 17 3 | :content_type: application/pdf 4 | :last_modified: 2009-07-21 11:12:13 +0100 5 | :content: content of blob 5 6 | :name: blob5 7 | :user_metadata: "" 8 | :id: blob5 9 | :bucket: bucket2 10 | -------------------------------------------------------------------------------- /server/support/cimi/machine_image.xml: -------------------------------------------------------------------------------- 1 | 2 | myMachineImage1 3 | Description of my new Machine 4 | IMAGE 5 | http://localhost:3001/cimi/machines/inst1 6 | 7 | -------------------------------------------------------------------------------- /server/lib/ec2/views/describe_instances.haml: -------------------------------------------------------------------------------- 1 | %reservationSet 2 | %item 3 | %reservationId r-11111111 4 | %ownerId deltacloud 5 | %groupSet 6 | %item 7 | %groupId sg-11111111 8 | %groupName default 9 | =render(:describe_instance_set, object) 10 | -------------------------------------------------------------------------------- /server/lib/ec2/views/instance_action.haml: -------------------------------------------------------------------------------- 1 | %instancesSet 2 | %item 3 | %instanceId=object.id 4 | %currentState 5 | %code=instance_state_code(object.state.downcase) 6 | %name=object.state.downcase 7 | %previousState 8 | %code -1 9 | %name unknown 10 | -------------------------------------------------------------------------------- /site/content/assets/less/grid.less: -------------------------------------------------------------------------------- 1 | // GRID SYSTEM 2 | // ----------- 3 | 4 | // Fixed (940px) 5 | #gridSystem > .generate(@gridColumns, @gridColumnWidth, @gridGutterWidth); 6 | 7 | // Fluid (940px) 8 | #fluidGridSystem > .generate(@gridColumns, @fluidGridColumnWidth, @fluidGridGutterWidth); 9 | -------------------------------------------------------------------------------- /client/NOTICE: -------------------------------------------------------------------------------- 1 | Apache Deltacloud 2 | Copyright 2010-2012 The Apache Software Foundation 3 | 4 | This product includes software developed at The Apache Software Foundation 5 | (http://www.apache.org/). 6 | 7 | This product includes software developed by Red Hat, 8 | Inc. (http://www.redhat.com/) 9 | -------------------------------------------------------------------------------- /server/support/cimi/machine_from_temp.xml: -------------------------------------------------------------------------------- 1 | 2 | myMachineXML123 3 | Description of my new Machine 4 | 5 | value 6 | 7 | -------------------------------------------------------------------------------- /tests/deprecated/ec2/support/ec2/attach_volume.02b8ed437c66c556e77e4b7813a2ae5043c68a8f: -------------------------------------------------------------------------------- 1 | BAh7CjoLYXdzX2lkIhF2b2wtYTIzMGNjYzg6GmF3c19hdHRhY2htZW50X3N0 2 | YXR1cyIOYXR0YWNoaW5nOg9hd3NfZGV2aWNlIg0vZGV2L3NkYzoUYXdzX2F0 3 | dGFjaGVkX2F0dToJVGltZQ0K3RvAqJa8RToUYXdzX2luc3RhbmNlX2lkIg9p 4 | LTdmNmEwMjFl 5 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/blobs/blob1.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :content_length: 17 3 | :content_type: text/plain 4 | :last_modified: 2010-09-23 16:44:54 +0100 5 | :content: content of blob 1 6 | :name: blob1 7 | :user_metadata: 8 | SOMENEWKEY: NEWVALUE 9 | :bucket: bucket1 10 | :id: blob1 11 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/blobs/blob4.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :content_length: 17 3 | :content_type: application/octet-stream 4 | :last_modified: 2010-09-21 06:17:24 +0100 5 | :content: content of blob 4 6 | :name: blob4 7 | :user_metadata: 8 | some: value 9 | :bucket: bucket2 10 | :id: blob4 11 | -------------------------------------------------------------------------------- /server/views/addresses/_address.html.haml: -------------------------------------------------------------------------------- 1 | %li 2 | %a{ :href => address_url(address.id), :'data-ajax' => 'false'} 3 | %img{ :class => 'ui-link-thumb', :src => '/images/address.png'} 4 | %h3= address.id 5 | %span{ :class => 'ui-li-count'} 6 | = address.instance_id ? address.instance_id : 'Free' 7 | -------------------------------------------------------------------------------- /site/lib/bootstrap.rb: -------------------------------------------------------------------------------- 1 | class BootstrapFilter < Nanoc3::Filter 2 | 3 | identifier :bootstrap 4 | 5 | def run(content, cmd, params={}) 6 | puts "***** RUNNING SHELL CMD *****" 7 | system "cd ./content/assets/less; lessc ./bootstrap.less > .././css/bootstrap.css" 8 | 9 | end 10 | 11 | end 12 | -------------------------------------------------------------------------------- /tests/deprecated/rhevm/support/fixtures/9361e31db701da1105c6adb528e6dc61.fixture: -------------------------------------------------------------------------------- 1 | ["https://10.34.2.122:8443/rhevm-api-powershell/vms/5b602d1a-4db0-4ab0-8842-5f3dfb551ba6/disks","get",{"content_type":"application/xml","status":200,"body":"\n\n"}] 2 | -------------------------------------------------------------------------------- /server/support/cimi/volume_image.xml: -------------------------------------------------------------------------------- 1 | 2 | myVolumeImage 3 | My very first VolumeImage 4 | 5 | false 6 | bar 7 | 8 | -------------------------------------------------------------------------------- /server/tests/drivers/rhevm/fixtures/preferences.yml: -------------------------------------------------------------------------------- 1 | --- 2 | user: fakeuser 3 | password: fakepassword 4 | provider: https://rhevm.example.com/api 5 | preferred: 6 | datacenter: b91b0346-4ba3-11e2-a3ac-0050568c6b2d 7 | vm: 4b4f9b94-3f85-45f3-9284-adf3deb72601 8 | template: da12fc7e-8f0c-4ebb-a524-5e99b3214d75 9 | -------------------------------------------------------------------------------- /server/views/realms/show.xml.haml: -------------------------------------------------------------------------------- 1 | - unless defined?(partial) 2 | !!! XML 3 | %realm{:href => realm_url(realm.id), :id => realm.id } 4 | %name< 5 | =realm.name 6 | %state< 7 | =realm.state 8 | - unless realm.limit.eql?(:unlimited) 9 | %limit< 10 | =cdata do 11 | =realm.limit 12 | -------------------------------------------------------------------------------- /tests/deprecated/sbc/step_definitions/images_steps.rb: -------------------------------------------------------------------------------- 1 | Then /^([a-z]+) properties should be$/ do |type, table| 2 | properties = table.raw.flatten 3 | (xml/"hardware_profiles/hardware_profile/property[@kind='#{type}']").each do |name| 4 | properties.delete(name[:name]) 5 | end 6 | properties.should be_empty 7 | end -------------------------------------------------------------------------------- /server/support/cimi/address.json: -------------------------------------------------------------------------------- 1 | { 2 | "resourceURI": "http://schemas.dmtf.org/cimi/1/AddressCreate", 3 | "name": "myDemoAddress", 4 | "description": "My very favorite address", 5 | "addressTemplate": { "ip" : "127.0.0.1" }, 6 | "properties": { 7 | "foo": "bar", 8 | "life": "is life" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /clients/java/org.apache.deltacloud.client/NOTICE: -------------------------------------------------------------------------------- 1 | Apache Deltacloud Java Client 2 | Copyright 2010 The Apache Software Foundation 3 | 4 | This product includes software developed at The Apache Software Foundation 5 | (http://www.apache.org/). 6 | 7 | This product includes software developed by Red Hat, 8 | Inc. (http://www.redhat.com/) -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/blobs/blob2.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :content_length: 56 3 | :content_type: text/html 4 | :last_modified: 2010-09-23 16:55:05 +0100 5 | :content: content of blob 2 6 | :name: blob2 7 | :user_metadata: 8 | VERSION: "1.2" 9 | :bucket: bucket1 10 | :id: blob2 11 | -------------------------------------------------------------------------------- /clients/java/org.apache.deltacloud.client.test/NOTICE: -------------------------------------------------------------------------------- 1 | Apache Deltacloud Java Client 2 | Copyright 2010 The Apache Software Foundation 3 | 4 | This product includes software developed at The Apache Software Foundation 5 | (http://www.apache.org/). 6 | 7 | This product includes software developed by Red Hat, 8 | Inc. (http://www.redhat.com/) -------------------------------------------------------------------------------- /clients/java/org.apache.deltacloud.client/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Bundle-ManifestVersion: 2 3 | Bundle-Name: DeltaCloud Client 4 | Bundle-Vendor: Apache Software Foundation 5 | Bundle-SymbolicName: org.apache.deltacloud.client 6 | Bundle-Version: 0.2.0.qualifier 7 | Bundle-RequiredExecutionEnvironment: JavaSE-1.6 8 | -------------------------------------------------------------------------------- /server/support/cimi/credential.json: -------------------------------------------------------------------------------- 1 | { 2 | "resourceURI": "http://schemas.dmtf.org/cimi/1/CredentialCreate", 3 | "name": "myCredential", 4 | "description": "A super secret credential", 5 | "credentialTemplate": { 6 | "username" : "mockuser", 7 | "password" : "mockpassword", 8 | "key" : "testkey" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /server/support/cimi/address.xml: -------------------------------------------------------------------------------- 1 | 2 | myAddress 3 | 4 | 127.0.0.1 5 | 6 | Description of my new address 7 | value_address 8 | bar 9 | 10 | -------------------------------------------------------------------------------- /server/lib/ec2/views/describe_images.haml: -------------------------------------------------------------------------------- 1 | %imagesSet 2 | - object.each do |item| 3 | %item 4 | %imageId=item.id 5 | %imageState=item.state.downcase 6 | %imageOwnerId=item.owner_id 7 | %architecture=item.architecture 8 | %imageType machine 9 | %name=item.name 10 | %description=item.description 11 | -------------------------------------------------------------------------------- /server/tests/cimi/data/container.xml: -------------------------------------------------------------------------------- 1 | 2 | http://example.com/cimi 3 | 4 | http://example.com/cimi/models 5 | 2 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /server/support/cimi/volume.xml: -------------------------------------------------------------------------------- 1 | 2 | myVolume1 3 | Description of my new volume 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /server/support/cimi/machine_from_temp.json: -------------------------------------------------------------------------------- 1 | { 2 | "resourceURI": "http://schemas.dmtf.org/cimi/1/MachineCreate", 3 | "name": "myMachine1337", 4 | "description": "My template machine", 5 | "properties": { 6 | "foo": "bar", 7 | "life": "is life" 8 | }, 9 | "machineTemplate": { "href": "http://localhost:3001/cimi/machine_templates/1" } 10 | } 11 | -------------------------------------------------------------------------------- /server/support/condor/bash/libvirt_cloud_script.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | while read line; do 4 | line=$(echo "$line" | tr -d '"') 5 | name="${line%% =*}" 6 | value="${line#*= }" 7 | case $name in 8 | VMPARAM_VM_NAME ) NAME="$value" ;; 9 | VM_XML ) VM_XML="$value" ;; 10 | esac 11 | done 12 | 13 | echo $(echo $VM_XML | sed "s:{NAME}:$NAME:") 14 | -------------------------------------------------------------------------------- /server/views/storage_snapshots/new.html.haml: -------------------------------------------------------------------------------- 1 | %h1 Create new storage volume snapshot 2 | 3 | %form{ :action => storage_snapshots_url, :method => :post } 4 | %p 5 | %label 6 | Volume ID: 7 | %input{ :name => 'volume_id', :size => 30, :value => params[:volume_id] } 8 | %p 9 | %input{ :type => :submit, :name => "commit", :value => "Create" }/ 10 | -------------------------------------------------------------------------------- /support/README: -------------------------------------------------------------------------------- 1 | This directory contains files used to maintain the public API instances 2 | https://api.deltacloud.org/ and https://dev.deltacloud.org/ 3 | 4 | We could/should puppetize this, but for now, here is where these files go 5 | on cavia: 6 | 7 | dev.sh -> symlinked from ~/bin/dev 8 | prod.sh -> symlinked from ~/bin/prod 9 | ssl.conf -> /etc/httpd/conf.d 10 | -------------------------------------------------------------------------------- /server/lib/cimi/data/collections/volume.col.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | volume 4 | Volume collection 5 | The volume collection 6 | 2011-09-12 11:37:28 UTC 7 | 8 | 9 | -------------------------------------------------------------------------------- /server/support/cimi/volume_by_value.xml: -------------------------------------------------------------------------------- 1 | 2 | myVolume2 3 | Description of my new volume 4 | 5 | 6 | 9999 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /server/tests/cimi/data/machine_create_by_value.xml: -------------------------------------------------------------------------------- 1 | 2 | xml_machine_by_value 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /tests/deprecated/ec2/support/elb/describe_load_balancers.da39a3ee5e6b4b0d3255bfef95601890afd80709: -------------------------------------------------------------------------------- 1 | BAh7CCIgRGVzY3JpYmVMb2FkQmFsYW5jZXJzUmVzdWx0ewYiHUxvYWRCYWxh 2 | bmNlckRlc2NyaXB0aW9uczAiFVJlc3BvbnNlTWV0YWRhdGF7BiIOUmVxdWVz 3 | dElkIik3ZjBmZmFiMC1lZTQyLTExZGYtODVmMS1iYjY4MDliY2MxNjgiCnht 4 | bG5zIj5odHRwOi8vZWxhc3RpY2xvYWRiYWxhbmNpbmcuYW1hem9uYXdzLmNv 5 | bS9kb2MvMjAwOS0wNS0xNS8= 6 | -------------------------------------------------------------------------------- /server/lib/cimi/data/collections/machine.col.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | machine 4 | Machine collection 5 | The machine collection 6 | 2011-09-12 11:37:28 UTC 7 | 8 | 9 | -------------------------------------------------------------------------------- /server/views/instance_states/show.xml.haml: -------------------------------------------------------------------------------- 1 | %states 2 | - for state in machine.states 3 | %state{ :name=>state } 4 | - for transition in state.transitions 5 | - if ( transition.automatically? ) 6 | %transition{ :to=>transition.destination, :auto=>'true'} 7 | - else 8 | %transition{ :to=>transition.destination, :action=>transition.action } 9 | -------------------------------------------------------------------------------- /site/lib/shellcmd.rb: -------------------------------------------------------------------------------- 1 | require 'open3' 2 | 3 | class ShellCmdFilter < Nanoc3::Filter 4 | identifier :shellcmd 5 | #type :binary 6 | 7 | def run(content, cmd, params={}) #params={ :cmd => "sed s/foo/bar/" }) 8 | Open3.popen3(cmd) do |stdin, stdout, stderr| 9 | stdin.write(content) 10 | stdin.close() 11 | stdout.read() 12 | end 13 | end 14 | end 15 | -------------------------------------------------------------------------------- /server/support/cimi/volume_template.xml: -------------------------------------------------------------------------------- 1 | 2 | myXMLVolumeTemplate 3 | Description of VolumeTemplate 4 | value 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /tests/deprecated/ec2/support/ec2/describe_availability_zones.da39a3ee5e6b4b0d3255bfef95601890afd80709: -------------------------------------------------------------------------------- 1 | BAhbCXsIOhByZWdpb25fbmFtZSIOdXMtZWFzdC0xOg56b25lX25hbWUiD3Vz 2 | LWVhc3QtMWE6D3pvbmVfc3RhdGUiDmF2YWlsYWJsZXsIOwAiDnVzLWVhc3Qt 3 | MTsGIg91cy1lYXN0LTFiOwciDmF2YWlsYWJsZXsIOwAiDnVzLWVhc3QtMTsG 4 | Ig91cy1lYXN0LTFjOwciDmF2YWlsYWJsZXsIOwAiDnVzLWVhc3QtMTsGIg91 5 | cy1lYXN0LTFkOwciDmF2YWlsYWJsZQ== 6 | -------------------------------------------------------------------------------- /server/support/condor/bash/cloud_exit_hook.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | source /usr/libexec/condor/cloud_functions 4 | 5 | while read line; do 6 | name="${line%% =*}" 7 | value="${line#*= }" 8 | case $name in 9 | VM_XML ) VM_XML="$line" ;; 10 | esac 11 | done 12 | 13 | DISK=$(echo $VM_XML | sed "s:.*.*:\1:") 14 | 15 | rm -f $DISK 16 | 17 | exit 0 18 | -------------------------------------------------------------------------------- /site/content/assets/less/utilities.less: -------------------------------------------------------------------------------- 1 | // UTILITY CLASSES 2 | // --------------- 3 | 4 | // Quick floats 5 | .pull-right { 6 | float: right; 7 | } 8 | .pull-left { 9 | float: left; 10 | } 11 | 12 | // Toggling content 13 | .hide { 14 | display: none; 15 | } 16 | .show { 17 | display: block; 18 | } 19 | 20 | // Visibility 21 | .invisible { 22 | visibility: hidden; 23 | } 24 | -------------------------------------------------------------------------------- /server/views/storage_snapshots/show.xml.haml: -------------------------------------------------------------------------------- 1 | - unless defined?(partial) 2 | !!! XML 3 | %storage_snapshot{:href => storage_snapshot_url(storage_snapshot.id), :id => storage_snapshot.id } 4 | %name=storage_snapshot.id 5 | %created< 6 | =storage_snapshot.created 7 | %storage_volume{:href => storage_volume_url(storage_snapshot.storage_volume_id), :id => storage_snapshot.storage_volume_id} 8 | -------------------------------------------------------------------------------- /site/content/assets/less/component-animations.less: -------------------------------------------------------------------------------- 1 | // COMPONENT ANIMATIONS 2 | // -------------------- 3 | 4 | .fade { 5 | .transition(opacity .15s linear); 6 | opacity: 0; 7 | &.in { 8 | opacity: 1; 9 | } 10 | } 11 | 12 | .collapse { 13 | .transition(height .35s ease); 14 | position:relative; 15 | overflow:hidden; 16 | height: 0; 17 | &.in { height: auto; } 18 | } 19 | -------------------------------------------------------------------------------- /server/views/firewalls/new.html.haml: -------------------------------------------------------------------------------- 1 | %h1 New firewall 2 | 3 | %form{:action => firewalls_url, :method => :post, :'data-ajax' => 'false'} 4 | %label 5 | Firewall Name 6 | %input{:name => 'name', :size => 25}/ 7 | %br 8 | %label 9 | Firewall Description 10 | %input{:name => 'description', :size => 100}/ 11 | %input{:type => :submit, :name => "commit", :value=>"Create"} 12 | -------------------------------------------------------------------------------- /clients/cimi/README.md: -------------------------------------------------------------------------------- 1 | CIMI Frontend 2 | ============== 3 | 4 | Prerequisites 5 | ------------- 6 | 7 | Start Deltacloud API with CIMI option: 8 | 9 | $ cd core/server 10 | $ deltacloudd -i mock -f cimi 11 | 12 | Then start CIMI Frontend server and point to Deltacloud API URL: 13 | 14 | $ cd core/clients/cimi 15 | $ bundle 16 | $ ./bin/start -u "http://localhost:3001/cimi" 17 | -------------------------------------------------------------------------------- /server/tests/drivers/profitbricks/common.rb: -------------------------------------------------------------------------------- 1 | # Warning: RightHttpConnection has to be required before WebMock is required !!! 2 | # Lets require that: 3 | #require 'right_http_connection' 4 | #require 'vcr' 5 | 6 | require_relative '../../test_helper.rb' 7 | #require_relative '../../../lib/deltacloud/drivers/ec2/ec2_driver' 8 | 9 | def credentials 10 | Deltacloud::Test::config.credentials('ec2') 11 | end -------------------------------------------------------------------------------- /server/support/cimi/machine_template.xml: -------------------------------------------------------------------------------- 1 | 2 | myXmlTestMachineTemplate1 3 | Description of my MachineTemplate 4 | value 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /server/lib/cimi/data/collections/machine_image.col.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | machineImage 4 | Machine Image collection 5 | The machine image collection 6 | 2011-09-12 11:37:28 UTC 7 | 8 | 9 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/cimi/system_network/sysnet1.json: -------------------------------------------------------------------------------- 1 | { "id": "http://cimi.example.org/systems/system1/networks/network1", 2 | "name": "sysnetwork1", 3 | "created": "Fri Feb 08 12:15:15 EET 2013", 4 | "network": { "href": "http://cimi.example.org/networks/network1" }, 5 | "operations": [ 6 | { "rel": "delete", "href": "http://cimi.example.org/systems/system1/networks/network1" } 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/cimi/system_volume/sys_volume_1.json: -------------------------------------------------------------------------------- 1 | { "id": "http://cimi.example.org/systems/system1/volumes/sys_volume_1", 2 | "name": "sysvol1", 3 | "created": "Fri Feb 08 12:15:15 EET 2013", 4 | "volume": { "href": "http://cimi.example.org/volumes/vol1" }, 5 | "operations": [ 6 | { "rel": "delete", "href": "http://cimi.example.org/systems/system1/volumes/sys_volume_1" } 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /clients/python/setup.py: -------------------------------------------------------------------------------- 1 | from distutils.core import setup 2 | 3 | VERSION='0.0.1' 4 | 5 | setup(name='deltacloud-client', 6 | version=VERSION, 7 | description='Python client wrapper for Deltacloud API', 8 | author='Michal Fojtik', 9 | author_email='mfojtik@redhat.com', 10 | license='GPLv2', 11 | url='http://deltacloud.apache.org/', 12 | py_modules=[ 'deltacloud' ] 13 | ) 14 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/cimi/system_address/sysaddress1.json: -------------------------------------------------------------------------------- 1 | { "id": "http://cimi.example.org/systems/system1/addresses/address1", 2 | "name": "sysaddress1", 3 | "created": "Fri Feb 08 12:15:15 EET 2013", 4 | "address": { "href": "http://cimi.example.org/addresses/address1" }, 5 | "operations": [ 6 | { "rel": "delete", "href": "http://cimi.example.org/systems/system1/addresses/address1" } 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /site/content/assets/less/close.less: -------------------------------------------------------------------------------- 1 | // CLOSE ICONS 2 | // ----------- 3 | 4 | .close { 5 | float: right; 6 | font-size: 20px; 7 | font-weight: bold; 8 | line-height: @baseLineHeight; 9 | color: @black; 10 | text-shadow: 0 1px 0 rgba(255,255,255,1); 11 | .opacity(20); 12 | &:hover { 13 | color: @black; 14 | text-decoration: none; 15 | .opacity(40); 16 | cursor: pointer; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/cimi/system_machine/sys_machine_1.json: -------------------------------------------------------------------------------- 1 | { "id": "http://cimi.example.org/systems/system1/machines/sys_machine_1", 2 | "name": "sysmach1", 3 | "created": "Fri Feb 08 12:15:15 EET 2013", 4 | "machine": { "href": "http://cimi.example.org/machines/inst0" }, 5 | "operations": [ 6 | { "rel": "delete", "href": "http://cimi.example.org/systems/system1/machines/sys_machine_1" } 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /server/support/cimi/machine.xml: -------------------------------------------------------------------------------- 1 | 2 | myMachineXML123 3 | Description of my new Machine 4 | 5 | 6 | 7 | 8 | value 9 | 10 | -------------------------------------------------------------------------------- /server/support/cimi/network.json: -------------------------------------------------------------------------------- 1 | { 2 | "resourceURI": "http://schemas.dmtf.org/cimi/1/NetworkCreate", 3 | "name": "myAwesomeNetwork", 4 | "description": "Sample network description", 5 | "networkTemplate": { 6 | "networkConfig" : { 'href' => 'http://localhost:3001/cimi/network_configurations/network_config1' } 7 | "forwardingGroup" : { 'href' => 'http://localhost:3001/cimi/forwarding_groups/group1' } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /server/support/tools/hudson.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Setup environment 4 | #source /home/hudson/.rvm/scripts/rvm 5 | PATH=/home/hudson/.rvm/gems/ruby-1.8.7-p302@deltacloud/bin:$PATH 6 | rvm use "ruby-1.8.7" 7 | 8 | # Execute tests 9 | cd deltacloud/trunk/client && rake fixtures:clean && rake fixtures 10 | cd ../tests 11 | API_DRIVER="mock" rake junit 12 | API_DRIVER="ec2" rake junit 13 | cd ../server 14 | rake ci:setup:testunit test 15 | -------------------------------------------------------------------------------- /site/content/assets/less/wells.less: -------------------------------------------------------------------------------- 1 | // WELLS 2 | // ----- 3 | 4 | .well { 5 | min-height: 20px; 6 | padding: 19px; 7 | margin-bottom: 20px; 8 | background-color: #f5f5f5; 9 | border: 1px solid #eee; 10 | border: 1px solid rgba(0,0,0,.05); 11 | .border-radius(4px); 12 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); 13 | blockquote { 14 | border-color: #ddd; 15 | border-color: rgba(0,0,0,.15); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /tests/deprecated/ec2/support/ec2/describe_volumes.64f65f4a7b5665ecd96359803f4354cc118776dd: -------------------------------------------------------------------------------- 1 | BAhbBnsPOhNhd3NfY3JlYXRlZF9hdHU6CVRpbWUNCt0bwAAAsDA6C2F3c19p 2 | ZCIRdm9sLWM2MzBjY2FjOg9hd3Nfc3RhdHVzIgtpbi11c2U6EHNuYXBzaG90 3 | X2lkIhJzbmFwLTU4OWE5NjMzOg1hd3Nfc2l6ZWkUOhphd3NfYXR0YWNobWVu 4 | dF9zdGF0dXMiDWF0dGFjaGVkOgl6b25lIg91cy1lYXN0LTFiOg9hd3NfZGV2 5 | aWNlIg4vZGV2L3NkYTE6FGF3c19hdHRhY2hlZF9hdHU7Bg0K3RvAAACwMToU 6 | YXdzX2luc3RhbmNlX2lkIg9pLTc3NmEwMjE2 7 | -------------------------------------------------------------------------------- /tests/deprecated/ec2/support/ec2/describe_volumes.eb6199d82eb26b3ffa00cccf5ab82ce8eecc1de9: -------------------------------------------------------------------------------- 1 | BAhbBnsPOhNhd3NfY3JlYXRlZF9hdHU6CVRpbWUNCt0bwAAAADE6C2F3c19p 2 | ZCIRdm9sLWRlMzBjY2I0Og9hd3Nfc3RhdHVzIgtpbi11c2U6EHNuYXBzaG90 3 | X2lkIhJzbmFwLTU4OWE5NjMzOg1hd3Nfc2l6ZWkUOhphd3NfYXR0YWNobWVu 4 | dF9zdGF0dXMiDWF0dGFjaGVkOgl6b25lIg91cy1lYXN0LTFhOg9hd3NfZGV2 5 | aWNlIg4vZGV2L3NkYTE6FGF3c19hdHRhY2hlZF9hdHU7Bg0K3RvAAADwMToU 6 | YXdzX2luc3RhbmNlX2lkIg9pLTdmNmEwMjFl 7 | -------------------------------------------------------------------------------- /server/config/compass/ie.sass: -------------------------------------------------------------------------------- 1 | @import blueprint.sass 2 | 3 | +blueprint-ie 4 | 5 | // Note : 6 | // 7 | // Compass will center text to fix IE6 container centering. 8 | // This means all your texts will be centered under all version of IE by default. 9 | // Please don't forget to restore the correct behavior to your main container (but not the body tag!) 10 | // 11 | // Example : 12 | // 13 | // .container, .footer 14 | // :text-align left 15 | -------------------------------------------------------------------------------- /site/Gemfile: -------------------------------------------------------------------------------- 1 | source 'http://rubygems.org' 2 | 3 | gem 'nanoc' 4 | gem 'mime-types' 5 | gem 'less' 6 | gem 'rainpress' 7 | gem 'adsf' 8 | gem 'kramdown' 9 | gem 'coderay' 10 | gem 'nanoc-code-classifier' 11 | gem 'coderay' 12 | gem 'thin' 13 | gem 'rack-rewrite', :require => 'rack-rewrite' 14 | gem 'rack-contrib', :require => 'rack/contrib' 15 | gem 'yui-compressor' 16 | gem 'guard' 17 | gem 'guard-nanoc' 18 | gem 'rb-fsevent' 19 | gem 'fssm' 20 | -------------------------------------------------------------------------------- /server/views/subnets/show.xml.haml: -------------------------------------------------------------------------------- 1 | - unless defined?(partial) 2 | !!! XML 3 | %subnet{ :href => subnet_url(subnet.id), :id => subnet.id } 4 | %name=subnet.name 5 | %state< 6 | =subnet.state 7 | %address_block 8 | =subnet.address_block 9 | %network 10 | =subnet.network 11 | %actions 12 | - if driver.respond_to?(:destroy_subnet) 13 | %link{ :rel => "destroy", :method => "delete", :href => destroy_subnet_url(subnet.id)} 14 | -------------------------------------------------------------------------------- /site/content/assets/less/hero-unit.less: -------------------------------------------------------------------------------- 1 | // HERO UNIT 2 | // --------- 3 | 4 | .hero-unit { 5 | padding: 60px; 6 | margin-bottom: 30px; 7 | background-color: #f5f5f5; 8 | .border-radius(6px); 9 | h1 { 10 | margin-bottom: 0; 11 | font-size: 60px; 12 | line-height: 1; 13 | letter-spacing: -1px; 14 | } 15 | p { 16 | font-size: 18px; 17 | font-weight: 200; 18 | line-height: @baseLineHeight * 1.5; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /server/.simplecov: -------------------------------------------------------------------------------- 1 | SimpleCov.start do 2 | command_name 'Minitest tests' 3 | project_name 'Deltacloud API' 4 | add_filter "tests/" 5 | add_group 'Drivers', 'lib/deltacloud/drivers' 6 | add_group 'Collections', 'lib/deltacloud/collections' 7 | add_group 'Models', 'lib/deltacloud/models' 8 | add_group 'Helpers', 'lib/deltacloud/helpers' 9 | add_group 'Extensions', 'lib/deltacloud/core_ext' 10 | add_group 'Sinatra', 'lib/sinatra' 11 | end 12 | -------------------------------------------------------------------------------- /server/lib/cimi/data/collections/machine_configuration.col.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | machineConfiguration 4 | Machine Configuration collection 5 | That is jsut a test 6 | 2011-09-12 11:37:28 UTC 7 | 8 | 9 | -------------------------------------------------------------------------------- /clients/java/org.apache.deltacloud.client.test/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Bundle-ManifestVersion: 2 3 | Bundle-Name: Deltacloud client tests 4 | Bundle-SymbolicName: org.apache.deltacloud.client.test 5 | Bundle-Version: 1.0.1.qualifier 6 | Bundle-RequiredExecutionEnvironment: JavaSE-1.6 7 | Require-Bundle: org.apache.deltacloud.client;bundle-version="0.1.0", 8 | org.junit;bundle-version="[4.8.0,5.0.0)" 9 | Bundle-Vendor: Apache Software Foundation 10 | -------------------------------------------------------------------------------- /server/views/drivers/show.xml.haml: -------------------------------------------------------------------------------- 1 | %driver{ :href => driver_url(name), :id => name } 2 | %name< 3 | = driver[:name] 4 | - if providers.nil? 5 | - driver_provider(driver).each do |prov, details| 6 | %provider{ :id => prov } 7 | - details.each do |kind, url| 8 | %entrypoint{ :kind => kind }<=cdata(url) 9 | - else 10 | - providers.each do |p| 11 | %provider{ :id => p.id } 12 | %entrypoint{ :kind => p.name }<=p.url 13 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/cimi/system_forwarding_group/sysforwardinggroup1.json: -------------------------------------------------------------------------------- 1 | { "id": "http://cimi.example.org/systems/system1/forwarding_groups/group1", 2 | "name": "sysforwardinggroup1", 3 | "created": "Fri Feb 08 12:15:15 EET 2013", 4 | "forwarding_group": { "href": "http://cimi.example.org/forwarding_groups/group1" }, 5 | "operations": [ 6 | { "rel": "delete", "href": "http://cimi.example.org/systems/system1/forwarding_groups/group1" } 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /server/views/buckets/show.xml.haml: -------------------------------------------------------------------------------- 1 | - unless defined?(partial) 2 | !!! XML 3 | %bucket{:href => bucket_url(bucket.id), :id => bucket.id} 4 | - bucket.attributes.select{ |attr| attr!=:id }.each do |attribute| 5 | - unless attribute == :blob_list 6 | -haml_tag(attribute, :<) do 7 | - haml_concat bucket.send(attribute) 8 | - if bucket.blob_list 9 | - bucket.blob_list.each do |blb| 10 | %blob{:id => blb, :href => bucket_url(bucket.id) +"/#{blb}"} 11 | -------------------------------------------------------------------------------- /site/content/assets/less/layouts.less: -------------------------------------------------------------------------------- 1 | // 2 | // Layouts 3 | // Fixed-width and fluid (with sidebar) layouts 4 | // -------------------------------------------- 5 | 6 | 7 | // Container (centered, fixed-width layouts) 8 | .container { 9 | .container-fixed(); 10 | } 11 | 12 | // Fluid layouts (left aligned, with sidebar, min- & max-width content) 13 | .container-fluid { 14 | padding-left: @gridGutterWidth; 15 | padding-right: @gridGutterWidth; 16 | .clearfix(); 17 | } -------------------------------------------------------------------------------- /server/support/cimi/machine.json: -------------------------------------------------------------------------------- 1 | { 2 | "resourceURI": "http://schemas.dmtf.org/cimi/1/MachineCreate", 3 | "name": "myDatabaseMachine", 4 | "description": "This is a hangout demo stuff", 5 | "properties": { 6 | "foo": "bar", 7 | "life": "is life" 8 | }, 9 | "machineTemplate": { 10 | "machineConfig": { "href": "http://localhost:3001/cimi/machine_configurations/m1-small" }, 11 | "machineImage": { "href": "http://localhost:3001/cimi/machine_images/img1" } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /server/support/condor/bash/cloud_prepare_hook.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | source /usr/libexec/condor/cloud_functions 4 | 5 | while read line; do 6 | name="${line%% =*}" 7 | value="${line#*= }" 8 | case $name in 9 | cloud_image ) BASE_IMAGE="$(echo $value | tr -d '\"')" ;; 10 | VM_XML ) VM_XML="$line" ;; 11 | esac 12 | done 13 | 14 | get_image $BASE_IMAGE 15 | 16 | IMAGE=$(make_image $BASE_IMAGE $PWD) 17 | 18 | echo $(echo $VM_XML | sed "s:{DISK}:$IMAGE:") 19 | 20 | exit 0 21 | -------------------------------------------------------------------------------- /tests/deprecated/rhevm/step_definitions/images_steps.rb: -------------------------------------------------------------------------------- 1 | Then /^each ([A-Za-z_]+) should have properties set to$/ do |object, table| 2 | table.raw.each do |property| 3 | (xml/"*/#{object}/#{property[0]}").each do |element| 4 | element.text.should == property[1] 5 | end 6 | end 7 | end 8 | 9 | Then /^attribute ([a-z_]+) should be set to ([0-9A-Za-z_-]+)$/ do |property, value| 10 | (xml/"/#{@current_collection.gsub(/s$/, '')}").first[property.to_sym] == value 11 | end 12 | 13 | -------------------------------------------------------------------------------- /server/support/cimi/machine_template.json: -------------------------------------------------------------------------------- 1 | { 2 | "resourceURI": "http://schemas.dmtf.org/cimi/1/MachineTemplateCreate", 3 | "name": "myMachineDemoTemplate", 4 | "description": "My very loved machine template", 5 | "machineConfig": { "href": "http://localhost:3001/cimi/machine_configurations/m1-xlarge" }, 6 | "machineImage": { "href": "http://localhost:3001/cimi/machine_images/img3" }, 7 | "realm": "us", 8 | "properties": { 9 | "foo": "bar", 10 | "life": "is life" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /server/views/drivers/index.html.haml: -------------------------------------------------------------------------------- 1 | =header "Supported drivers" 2 | =subheader "Deltacloud API #{settings.version}" 3 | 4 | %div{ :'data-role' => :content, :'data-theme' => 'c'} 5 | %ul{ :'data-role' => :listview , :'data-inset' => :true, :'data-divider-theme' => 'a'} 6 | - drivers.each do |id, details| 7 | %li 8 | %a{ :href => driver_url(id), :'data-ajax' => 'false'} 9 | %img{ :class => 'ui-link-thumb', :src => '/images/cloud.png'} 10 | %h3=details[:name] 11 | -------------------------------------------------------------------------------- /server/views/networks/new.html.haml: -------------------------------------------------------------------------------- 1 | =header "Create new network" 2 | 3 | %div{ :'data-role' => :content, :'data-theme' => 'c', :class => 'middle-dialog'} 4 | %form{ :action => networks_url, :method => :post} 5 | %div{ 'data-role' => :fieldcontain } 6 | %p 7 | %label{ :for => :address_block} CIDR Address block (optional): 8 | %p 9 | %input{ :type => :text, :id => :address_block, :name => :address_block, :value => '' } 10 | %button{ :type => :submit} Create network 11 | -------------------------------------------------------------------------------- /server/views/metrics/show.xml.haml: -------------------------------------------------------------------------------- 1 | - unless defined?(partial) 2 | !!! XML 3 | %metric{:href => metric_url(metric.id), :id => metric.id} 4 | -haml_tag(:entity, :<) do 5 | -haml_concat metric.send(:entity) || metric.send(:id) 6 | %properties 7 | -metric.properties.each do |prop| 8 | -haml_tag(prop.name, :<) do 9 | - if prop.values 10 | - prop.values.each do |p| 11 | %sample 12 | - p.each do |k, v| 13 | %property{ :name => k, :value => v } 14 | -------------------------------------------------------------------------------- /site/content/assets/js/application.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | $(".tweet").tweet({ 3 | username: "deltacloud", 4 | query : '#deltacloud', 5 | join_text: "auto", 6 | avatar_size: 32, 7 | count: 2, 8 | retweets : false, 9 | auto_join_text_default: "we said,", 10 | auto_join_text_ed: "", 11 | auto_join_text_ing: "", 12 | auto_join_text_reply: "we replied to", 13 | auto_join_text_url: "we were checking out", 14 | loading_text: "Loading news..." 15 | }); 16 | }); 17 | -------------------------------------------------------------------------------- /site/output/assets/js/application.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | $(".tweet").tweet({ 3 | username: "deltacloud", 4 | query : '#deltacloud', 5 | join_text: "auto", 6 | avatar_size: 32, 7 | count: 2, 8 | retweets : false, 9 | auto_join_text_default: "we said,", 10 | auto_join_text_ed: "", 11 | auto_join_text_ing: "", 12 | auto_join_text_reply: "we replied to", 13 | auto_join_text_url: "we were checking out", 14 | loading_text: "Loading news..." 15 | }); 16 | }); 17 | -------------------------------------------------------------------------------- /server/tests/cimi/data/credential.xml: -------------------------------------------------------------------------------- 1 | 2 | http://cimi.example.org/machine_admins/1 3 | credentials1 4 | Machine Admin One 5 | 2011-11-16 6 | mockuser 7 | mockpassword 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /server/tests/drivers/models/blob_test.rb: -------------------------------------------------------------------------------- 1 | require 'rubygems' 2 | require 'require_relative' if RUBY_VERSION < '1.9' 3 | 4 | require_relative 'common' 5 | 6 | describe Deltacloud::Address do 7 | 8 | before do 9 | @address = Deltacloud::Address.new(:id => 'adr1', :instance_id => 'inst1') 10 | end 11 | 12 | it 'should tell if it is associated to instance' do 13 | @address.associated?.must_equal true 14 | @address.instance_id = nil 15 | @address.associated?.must_equal false 16 | end 17 | 18 | end 19 | -------------------------------------------------------------------------------- /tests/deprecated/ec2/support/ec2/describe_images.b6822a0a41541a8dbabe1babc57ed0d4d37f3dbe: -------------------------------------------------------------------------------- 1 | BAhbBnsOOgthd3NfaWQiEWFtaS05MmJhNDNmYjoOYXdzX3N0YXRlIg5hdmFp 2 | bGFibGU6DWF3c19uYW1lIiZXaW5kb3dzLVNlcnZlcjIwMDgtaTM4Ni1CYXNl 3 | LXYxMDQ6E2F3c19pbWFnZV90eXBlIgxtYWNoaW5lOhRhd3NfZGVzY3JpcHRp 4 | b24iN01pY3Jvc29mdCBXaW5kb3dzIDIwMDggRGF0YWNlbnRlciAzMi1iaXQg 5 | QU1JIHYxLjA0OhFhd3NfbG9jYXRpb24iLWFtYXpvbi9XaW5kb3dzLVNlcnZl 6 | cjIwMDgtaTM4Ni1CYXNlLXYxMDQ6DmF3c19vd25lciIRMjA2MDI5NjIxNTMy 7 | OhVhd3NfYXJjaGl0ZWN0dXJlIglpMzg2OhJhd3NfaXNfcHVibGljVA== 8 | -------------------------------------------------------------------------------- /server/tests/drivers/models/address_test.rb: -------------------------------------------------------------------------------- 1 | require 'rubygems' 2 | require 'require_relative' if RUBY_VERSION < '1.9' 3 | 4 | require_relative 'common.rb' 5 | 6 | describe Deltacloud::Address do 7 | 8 | before do 9 | @address = Deltacloud::Address.new(:id => 'adr1', :instance_id => 'inst1') 10 | end 11 | 12 | it 'should tell if it is associated to instance' do 13 | @address.associated?.must_equal true 14 | @address.instance_id = nil 15 | @address.associated?.must_equal false 16 | end 17 | 18 | end 19 | -------------------------------------------------------------------------------- /site/content/assets/less/breadcrumbs.less: -------------------------------------------------------------------------------- 1 | // BREADCRUMBS 2 | // ----------- 3 | 4 | .breadcrumb { 5 | padding: 7px 14px; 6 | margin: 0 0 @baseLineHeight; 7 | #gradient > .vertical(@white, #f5f5f5); 8 | border: 1px solid #ddd; 9 | .border-radius(3px); 10 | .box-shadow(inset 0 1px 0 @white); 11 | li { 12 | display: inline-block; 13 | text-shadow: 0 1px 0 @white; 14 | } 15 | .divider { 16 | padding: 0 5px; 17 | color: @grayLight; 18 | } 19 | .active a { 20 | color: @grayDark; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /server/lib/cimi/data/default_res/machine_image.col.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | machineImage 4 | Default machine image name 5 | Default machine image description 6 | 2011-01-01 00:00:01 UTC 7 | http:// 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /server/tests/cimi/data/credential.json: -------------------------------------------------------------------------------- 1 | { 2 | "resourceURI": "http://schemas.dmtf.org/cimi/1/Credential", 3 | "id": "http://cimi.example.org/machine_admins/1", 4 | "name": "credentials1", 5 | "description": "Machine Admin One", 6 | "created": "2011-11-16", 7 | "username": "mockuser", 8 | "password": "mockpassword", 9 | "operations": [ 10 | { "rel": "edit", 11 | "href": "http://cimi.example.org/machine_admins/1/edit" }, 12 | { "rel": "delete", 13 | "href": "http://cimi.example.org/machine_admins/1/delete" } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /site/output/assets/js/bootstrap-tabs.js: -------------------------------------------------------------------------------- 1 | !function(c){function b(e,d){d.find(".active").removeClass("active");e.addClass("active")}function a(i){var h=c(this),d=h.attr("href"),g=h.closest("ul"),f;if(/^#\w+/.test(d)){i.preventDefault();if(h.hasClass("active")){return}$href=c(d);b(h.parent("li"),g);b($href,$href.parent())}}c.fn.tabs=c.fn.pills=function(d){return this.each(function(){c(this).delegate(d||".tabs li > a, .pills > li > a","click",a)})};c(document).ready(function(){c("body").tabs("ul[data-tabs] li > a, ul[data-pills] > li > a")})}(window.jQuery||window.ender); -------------------------------------------------------------------------------- /tests/deprecated/ec2/support/ec2/describe_images.c4b6748639aec6ee0563714c9b6663e90253577b: -------------------------------------------------------------------------------- 1 | BAhbBnsPOgthd3NfaWQiEWFtaS0xNmEzNTc3ZjoOYXdzX3N0YXRlIg5hdmFp 2 | bGFibGU6DWF3c19uYW1lIhtzbGVzLTEwLXNwMy12MS4wMC5pMzg2OhNhd3Nf 3 | aW1hZ2VfdHlwZSIMbWFjaGluZToUYXdzX2Rlc2NyaXB0aW9uIkNTVVNFIExp 4 | bnV4IEVudGVycHJpc2UgU2VydmVyIDEwIFNlcnZpY2UgUGFjayAzIGZvciB4 5 | ODYgKHYxLjAwKToSYXdzX2tlcm5lbF9pZCIRYWtpLTQwN2Q5NTI5OhFhd3Nf 6 | bG9jYXRpb24iImFtYXpvbi9zbGVzLTEwLXNwMy12MS4wMC5pMzg2Og5hd3Nf 7 | b3duZXIiETAxMzkwNzg3MTMyMjoVYXdzX2FyY2hpdGVjdHVyZSIJaTM4NjoS 8 | YXdzX2lzX3B1YmxpY1Q= 9 | -------------------------------------------------------------------------------- /server/tests/cimi/data/volume.xml: -------------------------------------------------------------------------------- 1 | 2 | http://cimi.example.org/volumes/1 3 | volume1 4 | Volume One 5 | IN-USE 6 | 2011-11-17 7 | 1024 8 | http://schemas.dmtf.org/cimi/1/mapped 9 | false 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /server/tests/drivers/models/instance_profile_test.rb: -------------------------------------------------------------------------------- 1 | require 'rubygems' 2 | require 'require_relative' if RUBY_VERSION < '1.9' 3 | 4 | require_relative 'common' 5 | 6 | describe Deltacloud::InstanceProfile do 7 | 8 | before do 9 | @instance = Deltacloud::InstanceProfile.new( 10 | 'm1-small', 11 | :hwp_memory => '512', 12 | :hwp_cpu => '1' 13 | ) 14 | end 15 | 16 | it 'advertise the overrides' do 17 | @instance.overrides.keys.must_include :cpu 18 | @instance.overrides.keys.must_include :memory 19 | end 20 | 21 | end 22 | -------------------------------------------------------------------------------- /server/support/cimi/address_template.xml: -------------------------------------------------------------------------------- 1 | 2 | myAddressTemplate 3 | 10.0.0.1 4 | my-example.hostname.com 5 | static 6 | 10.0.0.250 7 | 8.8.8.8 8 | 255.255.255.0 9 | ipv4 10 | A new awesome Address Template 11 | value_address_template 12 | bar 13 | 14 | -------------------------------------------------------------------------------- /server/tests/cimi/data/volume_configuration.xml: -------------------------------------------------------------------------------- 1 | 2 | http://cimi.example.org/volume_configurations/1 3 | volume_config_1 4 | Volume Configuration One 5 | 2011-11-21 6 | 1024 7 | ext3 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /server/tests/cimi/data/volume_image.xml: -------------------------------------------------------------------------------- 1 | 2 | http://cimi.example.org/volume_images/1 3 | volume_image_1 4 | Volume Image One 5 | 2011-11-21 6 | false 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /tests/deprecated/ec2/step_definitions/rake_steps.rb: -------------------------------------------------------------------------------- 1 | require 'fileutils' 2 | require 'rake' 3 | require 'find' 4 | 5 | Given /^I have a clean (.+) directory$/ do |dir| 6 | FileUtils.rm_rf dir 7 | end 8 | 9 | When /^I run a '(\w+)' task$/ do |task| 10 | @rake = Rake::Application.new 11 | Rake.application = @rake 12 | load "Rakefile" 13 | @task = Rake::Task[task] 14 | @task.invoke 15 | end 16 | 17 | Then /^I should see a (\d+) (\w+) file inside (\w+) directory$/ do |count, ext, dir| 18 | Dir["#{dir}/deltacloud-*.#{ext}"].size.should == count.to_i 19 | end 20 | -------------------------------------------------------------------------------- /tests/deprecated/mock/step_definitions/rake_steps.rb: -------------------------------------------------------------------------------- 1 | require 'fileutils' 2 | require 'rake' 3 | require 'find' 4 | 5 | When /^I run a '(\w+)' task$/ do |task| 6 | @rake = Rake::Application.new 7 | Rake.application = @rake 8 | load "Rakefile" 9 | @task = Rake::Task[task] 10 | @task.invoke 11 | end 12 | 13 | Given /^I have a clean (.+) directory$/ do |dir| 14 | FileUtils.rm_rf dir 15 | end 16 | 17 | Then /^I should see a (\d+) (\w+) file inside (\w+) directory$/ do |count, ext, dir| 18 | Dir["#{dir}/deltacloud-*.#{ext}"].size.should == count.to_i 19 | end 20 | -------------------------------------------------------------------------------- /server/tests/drivers/google/common.rb: -------------------------------------------------------------------------------- 1 | require 'vcr' 2 | 3 | require_relative '../../test_helper' 4 | 5 | def credentials 6 | { 7 | :user => 'GOOG4PBMMHEB2BTY6Q7U', 8 | :password => '7NxqwXy85xmaWB6o1RZ66IxqP+Rmbu8UFiFdpcSw' 9 | } 10 | end 11 | 12 | def created_blob_local_file 13 | File.join(File.dirname(__FILE__),"data","deltacloud_blob_test.png") 14 | end 15 | 16 | VCR.configure do |c| 17 | c.cassette_library_dir = "#{File.dirname(__FILE__)}/fixtures/" 18 | c.hook_into :excon 19 | c.default_cassette_options = { :record => vcr_record_mode } 20 | end 21 | -------------------------------------------------------------------------------- /server/views/addresses/associate.html.haml: -------------------------------------------------------------------------------- 1 | =header "Associate to instance" 2 | =subheader address.id 3 | 4 | %div{ :'data-role' => :content, :'data-theme' => 'c', :class => 'middle-dialog'} 5 | %form{ :action => "#{address_url(address.id)}/associate", :method => :post} 6 | %div{ 'data-role' => :fieldcontain } 7 | %label{ :for => :name} Instance: 8 | %select{:name => 'instance_id'} 9 | %option 10 | - instances.each do |inst| 11 | %option{ :value => inst.id } #{inst.id} - #{inst.name} 12 | %button{ :type => :submit} Associate 13 | -------------------------------------------------------------------------------- /server/tests/cimi/data/volume.json: -------------------------------------------------------------------------------- 1 | { 2 | "resourceURI": "http://schemas.dmtf.org/cimi/1/Volume", 3 | "id": "http://cimi.example.org/volumes/1", 4 | "name": "volume1", 5 | "description": "Volume One", 6 | "state": "IN-USE", 7 | "type": "http://schemas.dmtf.org/cimi/1/mapped", 8 | "created": "2011-11-17", 9 | "capacity": "1024", 10 | "bootable": "false", 11 | "operations": [ 12 | { "rel": "edit", 13 | "href": "http://cimi.example.org/volumes/1/edit" }, 14 | { "rel": "delete", 15 | "href": "http://cimi.example.org/volumes/1/delete" } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /clients/cimi/views/cloud_entry_point/index.haml: -------------------------------------------------------------------------------- 1 | - @title=entry_point['name'].first 2 | 3 | - content_for :breadcrumb do 4 | %ul.breadcrumb 5 | %li.active 6 | CloudEntryPoint 7 | 8 | - content_for :actions do 9 | %p 10 | %a{ :href => "#{entry_point['id'].first}?format=xml", :class => 'label warning' } XML 11 | %a{ :href => "#{entry_point['id'].first}?format=json", :class => 'label warning' } JSON 12 | 13 | %ul 14 | - entry_point.select { |k, v| !v.kind_of?(String) and v.first['href'] }.each do |k, v| 15 | %li 16 | %a{ :href => '/cimi/'+id_to_href(k) }=k 17 | -------------------------------------------------------------------------------- /server/tests/cimi/data/volume_configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "resourceURI": "http://schemas.dmtf.org/cimi/1/VolumeConfiguration", 3 | "id": "http://cimi.example.org/volume_configurations/1", 4 | "name": "volume_config_1", 5 | "description": "Volume Configuration One", 6 | "created": "2011-11-21", 7 | "format": "ext3", 8 | "capacity": "1024", 9 | "operations": [ 10 | { "rel": "edit", 11 | "href": "http://cimi.example.org/volume_configurations/1/edit" }, 12 | { "rel": "delete", 13 | "href": "http://cimi.example.org/volume_configurations/1/delete" } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /server/views/buckets/new.html.haml: -------------------------------------------------------------------------------- 1 | =header "New bucket" 2 | 3 | %div{ :'data-role' => :content, :'data-theme' => 'c', :class => 'middle-dialog'} 4 | %form{ :action => buckets_url, :method => :post, :'data-ajax' => 'false' } 5 | %label 6 | Bucket Name: 7 | %input{ :name => 'name', :size => 250}/ 8 | %br 9 | -if driver.class.has_feature?(:buckets, :bucket_location) 10 | %p 11 | %label 12 | Location: (optional) 13 | %input{ :name => 'location', :size => 20 }/ 14 | %input{ :type => :submit, :name => "commit", :value => "create"}/ 15 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/cimi/network_port_configuration/portconfig1.json: -------------------------------------------------------------------------------- 1 | { "id": "http://cimi.example.org/network_port_configurations/portconfig1", 2 | "name": "portconfig1", 3 | "description": "a mock network_port configuration", 4 | "created": "Fri Mar 16 18:39:41 EET 2012", 5 | "portType": "ACCESS", 6 | "classOfService": "GOLD", 7 | "operations": [ 8 | { "rel": "edit", "href": "http://cimi.example.org/network_port_configurations/portconfig1" }, 9 | { "rel": "delete", "href": "http://cimi.example.org/network_port_configurations/portconfig1" } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/cimi/network_port_configuration/portconfig2.json: -------------------------------------------------------------------------------- 1 | { "id": "http://cimi.example.org/network_port_configurations/portconfig2", 2 | "name": "portconfig2", 3 | "description": "a mock network_port configuration", 4 | "created": "Fri Mar 16 18:41:41 EET 2012", 5 | "portType": "ACCESS", 6 | "classOfService": "SILVER", 7 | "operations": [ 8 | { "rel": "edit", "href": "http://cimi.example.org/network_port_configurations/portconfig2" }, 9 | { "rel": "delete", "href": "http://cimi.example.org/network_port_configurations/portconfig2" } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /server/views/buckets/index.html.haml: -------------------------------------------------------------------------------- 1 | =header "Buckets" do 2 | %a{ :href => url_for('buckets/new'), :'data-icon' => :plus, :'data-role' => :button, :class => 'ui-btn-right'} Create new bucket 3 | 4 | %div{ :'data-role' => :content, :'data-theme' => 'c'} 5 | %ul{ :'data-role' => :listview , :'data-inset' => :true, :'data-divider-theme' => 'a'} 6 | - elements.each do |bucket| 7 | %li 8 | %a{ :href => bucket_url(bucket.id), :'data-ajax' => 'false'} 9 | %img{ :class => 'ui-link-thumb', :src => '/images/bucket.png'} 10 | %h3=bucket.name 11 | %p=bucket.id 12 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/cimi/network_configuration/network_config2.json: -------------------------------------------------------------------------------- 1 | { "id": "http://cimi.example.org/network_configurations/network_config2", 2 | "name": "network_config2", 3 | "description": "a network configuration", 4 | "created": "Fri Mar 9 12:01:53 EET 2012", 5 | "networkType": "PUBLIC", 6 | "mtu": 1500, 7 | "classOfService": "GOLD", 8 | "operations": [ 9 | { "rel": "edit", "href": "http://cimi.example.org/network_configurations/network_config2" }, 10 | { "rel": "delete", "href": "http://cimi.example.org/network_configurations/network_config2" } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /server/views/networks/show.xml.haml: -------------------------------------------------------------------------------- 1 | - unless defined?(partial) 2 | !!! XML 3 | %network{ :href => network_url(network.id), :id => network.id } 4 | %name=network.name 5 | %state< 6 | =network.state 7 | %address_blocks 8 | - network.address_blocks.each do |addr_block| 9 | %address_block=addr_block 10 | %subnets 11 | - (network.subnets || []).each do |subnet| 12 | %subnet{:href => subnet_url(subnet), :id=>subnet} 13 | %actions 14 | - if driver.respond_to?(:destroy_network) 15 | %link{ :rel => "destroy", :method => "delete", :href => destroy_network_url(network.id)} 16 | -------------------------------------------------------------------------------- /site/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2011 Michael McIntyre 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. -------------------------------------------------------------------------------- /server/config/drivers/arubacloud.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | :arubacloud: 3 | :entrypoints: 4 | compute: 5 | dc1: https://api.dc1.computing.cloud.it/WsEndUser/v2.4/WsEndUser.svc?wsdl 6 | dc2: https://api.dc2.computing.cloud.it/WsEndUser/v2.4/WsEndUser.svc?wsdl 7 | dc3: https://api.dc3.computing.cloud.it/WsEndUser/v2.4/WsEndUser.svc?wsdl 8 | dc4: https://api.dc4.computing.cloud.it/WsEndUser/v2.4/WsEndUser.svc?wsdl 9 | storage: 10 | dc1: https://r1-it.storage.cloud.it 11 | dc3: https://r1-cz.storage.forpsicloud.cz 12 | dc4: https://r1-fr.storage.arubacloud.fr 13 | :name: Arubacloud -------------------------------------------------------------------------------- /server/tests/cimi/data/volume_image.json: -------------------------------------------------------------------------------- 1 | { 2 | "resourceURI": "http://schemas.dmtf.org/cimi/1/VolumeImage", 3 | "id": "http://cimi.example.org/volume_images/1", 4 | "name": "volume_image_1", 5 | "description": "Volume Image One", 6 | "created": "2011-11-21", 7 | "bootable": "false", 8 | "imageLocation":{ "href": "nfs://cimi.example.com/volume_images/vol_image_1.img" }, 9 | "operations": [ 10 | { "rel": "edit", 11 | "href": "http://cimi.example.org/volume_images/1/edit" }, 12 | { "rel": "delete", 13 | "href": "http://cimi.example.org/volume_images/1/delete" } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /server/tests/drivers/models/metrics_test.rb: -------------------------------------------------------------------------------- 1 | require 'rubygems' 2 | require 'require_relative' if RUBY_VERSION < '1.9' 3 | 4 | require_relative 'common' 5 | 6 | describe Deltacloud::Metric do 7 | 8 | before do 9 | @metric = Deltacloud::Metric.new(:id => 'metric1', :entity => 'inst1') 10 | end 11 | 12 | it 'cat be extended by add_property' do 13 | @metric.add_property :network, { :max => 100, :min => 10, :avg => 50 } 14 | @metric.properties.wont_be_empty 15 | @metric.properties.each do |p| 16 | p.must_be_kind_of Deltacloud::Metric::Property 17 | end 18 | end 19 | 20 | end 21 | -------------------------------------------------------------------------------- /server/config/compass.config: -------------------------------------------------------------------------------- 1 | # Require any additional compass plugins here. 2 | project_type = :rails 3 | project_path = RAILS_ROOT if defined?(RAILS_ROOT) 4 | # Set this to the root of your project when deployed: 5 | http_path = "/" 6 | css_dir = "public/stylesheets/compiled" 7 | sass_dir = "app/stylesheets" 8 | images_dir = "public/images" 9 | javascripts_dir = "public/javascripts" 10 | # To enable relative paths to assets via compass helper functions. Uncomment: 11 | # relative_assets = true 12 | http_images_path = "/images" 13 | http_stylesheets_path = "/stylesheets" 14 | http_javascripts_path = "/javascripts" 15 | -------------------------------------------------------------------------------- /server/lib/cimi/data/default_res/volume.col.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | volume 4 | Default volume name 5 | Default volume description 6 | 2011-01-01 00:00:01 UTC 7 | 8 | true 9 | ext4 10 | true 11 | SATA 12 | 13 | 14 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/cimi/network_configuration/network_config1.json: -------------------------------------------------------------------------------- 1 | { "id": "http://cimi.example.org/network_configurations/network_config1", 2 | "name": "network_config1", 3 | "description": "another network configuration", 4 | "created": "Fri Mar 9 11:57:39 EET 2012", 5 | "networkType": "Public", 6 | "mtu": 1500, 7 | "classOfService": "SILVER", 8 | "operations": [ 9 | { "rel": "edit", "href": "http://cimi.example.org/network_configurations/network_config1" }, 10 | { "rel": "delete", "href": "http://cimi.example.org/network_configurations/network_config1" } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /server/tests/cimi/data/volume_template.xml: -------------------------------------------------------------------------------- 1 | 2 | http://cimi.example.org/volume_templates/1 3 | volume_template_1 4 | Volume Template One 5 | 2011-11-21 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /server/views/networks/index.html.haml: -------------------------------------------------------------------------------- 1 | =header "Networks" do 2 | - if driver.respond_to?(:create_network) 3 | %a{ :href => url_for('networks/new'), :'data-icon' => :plus, :'data-role' => :button, :class => 'ui-btn-right'} Create new network 4 | 5 | %div{ :'data-role' => :content, :'data-theme' => 'c'} 6 | %ul{ :'data-role' => :listview , :'data-inset' => :true, :'data-divider-theme' => 'a'} 7 | - elements.each do |net| 8 | %li 9 | %a{ :href => network_url(net.id), :'data-ajax' => 'false'} 10 | %img{ :class => 'ui-link-thumb', :src => '/images/cloud.png'} 11 | %h3=net.id 12 | -------------------------------------------------------------------------------- /server/views/subnets/index.html.haml: -------------------------------------------------------------------------------- 1 | =header "Subnets" do 2 | - if driver.respond_to?(:create_subnet) 3 | %a{ :href => url_for('subnets/new'), :'data-icon' => :plus, :'data-role' => :button, :class => 'ui-btn-right'} Create new subnet 4 | 5 | %div{ :'data-role' => :content, :'data-theme' => 'c'} 6 | %ul{ :'data-role' => :listview , :'data-inset' => :true, :'data-divider-theme' => 'a'} 7 | - @elements.each do |subnet| 8 | %li 9 | %a{ :href => subnet_url(subnet.id), :'data-ajax' => 'false'} 10 | %img{ :class => 'ui-link-thumb', :src => '/images/cloud.png'} 11 | %h3=subnet.id 12 | -------------------------------------------------------------------------------- /site/content/assets/less/pager.less: -------------------------------------------------------------------------------- 1 | // PAGER 2 | // ----- 3 | 4 | .pager { 5 | margin-left: 0; 6 | margin-bottom: @baseLineHeight; 7 | list-style: none; 8 | text-align: center; 9 | .clearfix(); 10 | } 11 | .pager li { 12 | display: inline; 13 | } 14 | .pager a { 15 | display: inline-block; 16 | padding: 5px 14px; 17 | background-color: #fff; 18 | border: 1px solid #ddd; 19 | .border-radius(15px); 20 | } 21 | .pager a:hover { 22 | text-decoration: none; 23 | background-color: #f5f5f5; 24 | } 25 | .pager .next a { 26 | float: right; 27 | } 28 | .pager .previous a { 29 | float: left; 30 | } 31 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/cimi/network_port/network_port1.json: -------------------------------------------------------------------------------- 1 | { "id": "http://cimi.example.org/network_ports/network_port1", 2 | "name": "network_port1", 3 | "description": "a mock switchport", 4 | "created": "Fri Mar 16 17:06:41 EET 2012", 5 | "state": "STARTED", 6 | "network": {"href": "http://cimi.example.org/networks/network1"}, 7 | "portType": "ACCESS", 8 | "classOfService": "GOLD", 9 | "operations": [ 10 | { "rel": "edit", "href": "http://cimi.example.org/network_ports/network_port1" }, 11 | { "rel": "delete", "href": "http://cimi.example.org/network_ports/network_port1" } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/cimi/network_port/network_port2.json: -------------------------------------------------------------------------------- 1 | { "id": "http://cimi.example.org/network_ports/network_port2", 2 | "name": "network_port2", 3 | "description": "a mock switchport", 4 | "created": "Fri Mar 16 17:09:27 EET 2012", 5 | "state": "STARTED", 6 | "network": {"href": "http://cimi.example.org/networks/network1"}, 7 | "portType": "ACCESS", 8 | "classOfService": "GOLD", 9 | "operations": [ 10 | { "rel": "edit", "href": "http://cimi.example.org/network_ports/network_port2" }, 11 | { "rel": "delete", "href": "http://cimi.example.org/network_ports/network_port2" } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /server/tests/helpers/core_ext/integer_test.rb: -------------------------------------------------------------------------------- 1 | require 'rubygems' 2 | require 'require_relative' if RUBY_VERSION < '1.9' 3 | 4 | require_relative '../../test_helper.rb' 5 | require_relative File.join('..', '..', '..', 'lib', 'deltacloud', 'core_ext.rb') 6 | 7 | class TestInteger < MiniTest::Unit::TestCase 8 | 9 | 10 | def test_ordinalize 11 | assert_equal true, 1.respond_to?(:"ordinalize") 12 | assert_equal '1st', 1.ordinalize 13 | assert_equal '2nd', 2.ordinalize 14 | assert_equal '3rd', 3.ordinalize 15 | assert_equal '6th', 6.ordinalize 16 | assert_equal '1211th', 1211.ordinalize 17 | end 18 | 19 | end 20 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/instances/inst2.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :instance_profile: !ruby/object:Deltacloud::InstanceProfile 3 | id: m1-large 4 | :realm_id: us 5 | :owner_id: mockuser 6 | :public_addresses: 7 | - !ruby/object:Deltacloud::InstanceAddress 8 | address: img1.inst2.public.com 9 | address_type: :hostname 10 | :private_addresses: 11 | - !ruby/object:Deltacloud::InstanceAddress 12 | address: img1.inst2.private.com 13 | address_type: :hostname 14 | :create_image: true 15 | :image_id: img1 16 | :name: AnotherInstance 17 | :id: inst2 18 | :state: RUNNING 19 | :actions: 20 | - :reboot 21 | - :stop 22 | :storage_volumes: [] 23 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: ruby 2 | rvm: 3 | - 1.9.3 4 | - 2.0.0 5 | - jruby-head 6 | jdk: 7 | - openjdk7 8 | install: 9 | - cd server 10 | - bundle install 11 | - bin/deltacloud-db-upgrade 12 | - cd ../client 13 | - bundle install 14 | - cd .. 15 | script: 16 | - cd server 17 | - bundle exec rake test 18 | - cd ../client 19 | - bundle exec rake test 20 | notifications: 21 | email: 22 | - mi@mifo.sk 23 | - marios@redhat.com 24 | - lutter@redhat.com 25 | - rlandy@redhat.com 26 | irc: 27 | channels: 28 | - "irc.freenode.org#deltacloud" 29 | use_notice: true 30 | skip_join: false 31 | 32 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/cimi/network_port/network_port3.json: -------------------------------------------------------------------------------- 1 | { "id": "http://cimi.example.org/network_ports/network_port3", 2 | "name": "network_port3", 3 | "description": "a mock switchport", 4 | "created": "Fri Mar 16 17:10:36 EET 2012", 5 | "state": "STARTED", 6 | "network": {"href": "http://cimi.example.org/networks/network2"}, 7 | "portType": "ACCESS", 8 | "classOfService": "GOLD", 9 | "operations": [ 10 | { "rel": "edit", "href": "http://cimi.example.org/network_ports/network_port3" }, 11 | { "rel": "delete", "href": "http://cimi.example.org/network_ports/network_port3" } 12 | ] 13 | } 14 | 15 | 16 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/cimi/network_port/network_port4.json: -------------------------------------------------------------------------------- 1 | { "id": "http://cimi.example.org/network_ports/network_port4", 2 | "name": "network_port4", 3 | "description": "a mock switchport", 4 | "created": "Fri Mar 16 17:10:36 EET 2012", 5 | "state": "STARTED", 6 | "network": {"href": "http://cimi.example.org/networks/network2"}, 7 | "portType": "ACCESS", 8 | "classOfService": "GOLD", 9 | "operations": [ 10 | { "rel": "edit", "href": "http://cimi.example.org/network_ports/network_port4" }, 11 | { "rel": "delete", "href": "http://cimi.example.org/network_ports/network_port4" } 12 | ] 13 | } 14 | 15 | 16 | -------------------------------------------------------------------------------- /server/config/compass/partials/_base.sass: -------------------------------------------------------------------------------- 1 | // Here is where you can define your constants for your application and to configure the blueprint framework. 2 | // Feel free to delete these if you want keep the defaults: 3 | 4 | !blueprint_grid_columns = 24 5 | !blueprint_container_size = 950px 6 | !blueprint_grid_margin = 10px 7 | 8 | // Use this to calculate the width based on the total width. 9 | // Or you can set !blueprint_grid_width to a fixed value and unset !blueprint_container_size -- it will be calculated for you. 10 | !blueprint_grid_width = (!blueprint_container_size + !blueprint_grid_margin) / !blueprint_grid_columns - !blueprint_grid_margin 11 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/cimi/network_template/template1.json: -------------------------------------------------------------------------------- 1 | { "id": "http://cimi.example.org/network_templates/template1", 2 | "name": "template1", 3 | "description": "A mock network template", 4 | "created": "Thu Mar 15 12:15:15 EET 2012", 5 | "networkConfig": {"href": "http://cimi.example.org/network_configurations/network_config1"}, 6 | "forwardingGroup": {"href": "http://cimi.example.org/forwarding_groups/group1"}, 7 | "operations": [ 8 | { "rel": "edit", "href": "http://cimi.example.org/network_templates/template1" }, 9 | { "rel": "delete", "href": "http://cimi.example.org/network_templates/template1" }] 10 | } 11 | -------------------------------------------------------------------------------- /server/tests/cimi/data/machine_image.json: -------------------------------------------------------------------------------- 1 | { 2 | "resourceURI": "http://schemas.dmtf.org/cimi/1/MachineImage", 3 | "id": "http://cimi.example.org/machine_images/1", 4 | "name": "img1", 5 | "description": "Machine Image One", 6 | "created": "2011-11-14", 7 | "properties": { "status": "BUILD", "locked": "true" }, 8 | "state": "AVAILABLE", 9 | "type": "IMAGE", 10 | "imageLocation": "nfs://cimi.example.com/images/1.img", 11 | "operations": [ 12 | { "rel": "edit", 13 | "href": "http://cimi.example.org/machine_images/1/edit" }, 14 | { "rel": "delete", 15 | "href": "http://cimi.example.org/machine_images/1/delete" } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/cimi/forwarding_group_template/template1.json: -------------------------------------------------------------------------------- 1 | { "id": "http://cimi.example.org/routing_group_templates/template1", 2 | "name": "template1", 3 | "description": "A mock routing group template", 4 | "created": "Fri Mar 16 16:42:50 EET 2012", 5 | "networks": [ 6 | { "href": "http://cimi.example.org/networks/network1"}, 7 | { "href": "http://cimi.example.org/networks/network2"} 8 | ], 9 | "operations": [ 10 | { "rel": "edit", "href": "http://cimi.example.org/routing_group_templates/template1" }, 11 | { "rel": "delete", "href": "http://cimi.example.org/routing_group_templates/template1" }] 12 | } 13 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/cimi/network_template/template2.json: -------------------------------------------------------------------------------- 1 | { "id": "http://cimi.example.org/network_templates/template2", 2 | "name": "template2", 3 | "description": "Another mock network template", 4 | "created": "Thu Mar 15 13:51:12 EET 2012", 5 | "networkConfig": {"href": "http://cimi.example.org/network_configurations/network_config2"}, 6 | "forwardingGroup": {"href": "http://cimi.example.org/forwarding_groups/group1"}, 7 | "operations": [ 8 | { "rel": "edit", "href": "http://cimi.example.org/network_templates/template2" }, 9 | { "rel": "delete", "href": "http://cimi.example.org/network_templates/template2" }] 10 | } 11 | -------------------------------------------------------------------------------- /server/views/storage_volumes/attach.html.haml: -------------------------------------------------------------------------------- 1 | %h1 Attach storage volume 2 | 3 | %form{ :action => url_for("storage_volumes/#{params[:id]}/attach"), :method => :post } 4 | %p 5 | %label 6 | Instance ID: 7 | - if instances.empty? 8 | %select 9 | %option There are no instances 10 | - else 11 | %select{ :name => 'instance_id' } 12 | - instances.each do |i| 13 | %option{ :value => "#{i.id}"} #{i.name} 14 | %p 15 | %label 16 | Device name: 17 | %input{ :name => "device", :size => 10, :value => "/dev/sdc"} 18 | %p 19 | %input{ :type => :submit, :name => "commit", :value => "attach" }/ 20 | -------------------------------------------------------------------------------- /server/views/subnets/new.html.haml: -------------------------------------------------------------------------------- 1 | =header "Create new subnet" 2 | 3 | %div{ :'data-role' => :content, :'data-theme' => 'c', :class => 'middle-dialog'} 4 | %form{ :action => subnets_url, :method => :post} 5 | %div{ 'data-role' => :fieldcontain } 6 | %p 7 | %label{ :for => :network_id} Network ID: 8 | %p 9 | %input{ :type => :text, :id => :network_id, :name => :network_id, :value => '' } 10 | %p 11 | %label{ :for => :address_block} CIDR Address block: 12 | %p 13 | %input{ :type => :text, :id => :address_block, :name => :address_block, :value => '' } 14 | %button{ :type => :submit} Create subnet 15 | -------------------------------------------------------------------------------- /server/views/blobs/show.xml.haml: -------------------------------------------------------------------------------- 1 | !!! XML 2 | %blob{:href => bucket_url(blob.bucket) + '/' + blob.id, :id => blob.id} 3 | %bucket=blob.bucket 4 | - blob.attributes.select{ |attr| (attr!=:id && attr!=:user_metadata) }.each do |attribute| 5 | - next if attribute == :bucket 6 | - unless attribute == :content 7 | - haml_tag(attribute, :<) do 8 | - haml_concat blob.send(attribute) 9 | %user_metadata 10 | - if blob.user_metadata.respond_to? :each 11 | - blob.user_metadata.each do |k, v| 12 | %entry{:key => k}=render_cdata(v) 13 | %content{:href => bucket_url(blob.bucket) + '/' + blob.id + '/content', :rel => 'blob_content'} 14 | -------------------------------------------------------------------------------- /server/views/errors/common.xml.haml: -------------------------------------------------------------------------------- 1 | - unless defined?(partial) 2 | !!! XML 3 | %error{ :url => request.env['REQUEST_URI'], :status => response.status } 4 | %backend{ :driver => driver_symbol, :provider => current_provider } 5 | %code=response.status 6 | %message< 7 | - if err.respond_to? :message 8 | =cdata err.message 9 | - else 10 | =translate_err_code(response.status) 11 | - if err.respond_to? :backtrace 12 | %backtrace 13 | =cdata err.backtrace.nil? ? '' : err.backtrace.join("\n") 14 | %request 15 | - if params 16 | -params.each do |name, value| 17 | %param{ :name => name }=cdata value.inspect 18 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/cimi/network_port_template/template1.json: -------------------------------------------------------------------------------- 1 | { "id": "http://cimi.example.org/network_port_templates/template1", 2 | "name": "template1", 3 | "description": "A mock NetworkPortTemplate", 4 | "created": "Fri Mar 16 19:26:41 EET 2012", 5 | "network": { "href": "http://cimi.example.org/networks/network1"}, 6 | "networkPortConfig": { "href": "http://cimi.example.org/network_port_configurations/portconfig1"}, 7 | "operations": [ 8 | { "rel": "edit", "href": "http://cimi.example.org/network_port_templates/template1" }, 9 | { "rel": "delete", "href": "http://cimi.example.org/network_port_templates/template1" }] 10 | } 11 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/cimi/network_port_template/template2.json: -------------------------------------------------------------------------------- 1 | { "id": "http://cimi.example.org/network_port_templates/template2", 2 | "name": "template2", 3 | "description": "A mock NetworkPortTemplate", 4 | "created": "Fri Mar 16 19:26:41 EET 2012", 5 | "network": { "href": "http://cimi.example.org/networks/network2"}, 6 | "networkPortConfig": { "href": "http://cimi.example.org/network_port_configurations/portconfig2"}, 7 | "operations": [ 8 | { "rel": "edit", "href": "http://cimi.example.org/network_port_templates/template2" }, 9 | { "rel": "delete", "href": "http://cimi.example.org/network_port_templates/template2" }] 10 | } 11 | -------------------------------------------------------------------------------- /server/tests/cimi/data/machine_image.xml: -------------------------------------------------------------------------------- 1 | 2 | http://cimi.example.org/machine_images/1 3 | img1 4 | Machine Image One 5 | 2011-11-14 6 | BUILD 7 | true 8 | AVAILABLE 9 | IMAGE 10 | nfs://cimi.example.com/images/1.img 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /server/tests/cimi/data/volume_template.json: -------------------------------------------------------------------------------- 1 | { 2 | "resourceURI": "http://schemas.dmtf.org/cimi/1/VolumeTemplate", 3 | "id": "http://cimi.example.org/volume_templates/1", 4 | "name": "volume_template_1", 5 | "description": "Volume Template One", 6 | "created": "2011-11-21", 7 | "volumeConfig":{ "href": "http://cimi.example.com/volume_configurations/1" }, 8 | "volumeImage":{ "href": "http://cimi.example.com/volume_images/1" }, 9 | "operations": [ 10 | { "rel": "edit", 11 | "href": "http://cimi.example.org/volume_templates/1/edit" }, 12 | { "rel": "delete", 13 | "href": "http://cimi.example.org/volume_templates/1/delete" } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /site/content/assets/less/accordion.less: -------------------------------------------------------------------------------- 1 | // ACCORDION 2 | // --------- 3 | 4 | 5 | // Parent container 6 | .accordion { 7 | margin-bottom: @baseLineHeight; 8 | } 9 | 10 | // Group == heading + body 11 | .accordion-group { 12 | margin-bottom: 2px; 13 | border: 1px solid #e5e5e5; 14 | .border-radius(4px); 15 | } 16 | .accordion-heading { 17 | border-bottom: 0; 18 | } 19 | .accordion-heading .accordion-toggle { 20 | display: block; 21 | padding: 8px 15px; 22 | } 23 | 24 | // Inner needs the styles because you can't animate properly with any styles on the element 25 | .accordion-inner { 26 | padding: 9px 15px; 27 | border-top: 1px solid #e5e5e5; 28 | } 29 | -------------------------------------------------------------------------------- /server/tests/helpers/rack/rack_date_test.rb: -------------------------------------------------------------------------------- 1 | require 'rubygems' 2 | require 'require_relative' if RUBY_VERSION < '1.9' 3 | require_relative '../../test_helper.rb' 4 | require_relative './common.rb' 5 | 6 | class TestDateApp < Sinatra::Base 7 | use Rack::Date 8 | get '/' do 9 | 'OK' 10 | end 11 | end 12 | 13 | describe TestDateApp do 14 | 15 | before do 16 | def app; TestDateApp; end 17 | end 18 | 19 | it 'add the Date header to all responses' do 20 | get '/' 21 | status.must_equal 200 22 | response_body.wont_be_empty 23 | headers['Date'].wont_be_empty 24 | Time.parse(headers['Date']).must_be_instance_of Time 25 | end 26 | 27 | end 28 | -------------------------------------------------------------------------------- /server/views/network_interfaces/index.html.haml: -------------------------------------------------------------------------------- 1 | =header "Network Interfaces" do 2 | - if driver.respond_to?(:create_network_interface) 3 | %a{ :href => url_for('network_interfaces/new'), :'data-icon' => :plus, :'data-role' => :button, :class => 'ui-btn-right'} Create new Network Interface 4 | 5 | %div{ :'data-role' => :content, :'data-theme' => 'c'} 6 | %ul{ :'data-role' => :listview , :'data-inset' => :true, :'data-divider-theme' => 'a'} 7 | - @elements.each do |nic| 8 | %li 9 | %a{ :href => network_interface_url(nic.id), :'data-ajax' => 'false'} 10 | %img{ :class => 'ui-link-thumb', :src => '/images/cloud.png'} 11 | %h3=nic.id 12 | -------------------------------------------------------------------------------- /server/views/storage_snapshots/index.html.haml: -------------------------------------------------------------------------------- 1 | =header "Storage snapshots" 2 | 3 | %div{ :'data-role' => :content, :'data-theme' => 'c'} 4 | %ul{ :'data-role' => :listview , :'data-inset' => :true, :'data-divider-theme' => 'a'} 5 | %li{ :'data-role' => 'list-divider'}=driver_symbol 6 | - elements.each do |snapshot| 7 | %li 8 | %a{ :href => storage_snapshot_url(snapshot.id), :'data-ajax' => 'false'} 9 | %img{ :class => 'ui-link-thumb', :src => '/images/snapshot.png'} 10 | %h3= snapshot.id 11 | %p=[snapshot.storage_volume_id, snapshot.created].join(', ') 12 | %span{ :class => 'ui-li-count'}=snapshot.state 13 | 14 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/instances/inst1.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :instance_profile: !ruby/object:Deltacloud::InstanceProfile 3 | id: m1-small 4 | :realm_id: us 5 | :owner_id: mockuser 6 | :public_addresses: 7 | - !ruby/object:Deltacloud::InstanceAddress 8 | address: img1.inst1.public.com 9 | address_type: :hostname 10 | :private_addresses: 11 | - !ruby/object:Deltacloud::InstanceAddress 12 | address: img1.inst1.private.com 13 | address_type: :hostname 14 | :create_image: true 15 | :image_id: img3 16 | :name: MockUserInstance 17 | :id: inst1 18 | :state: RUNNING 19 | :actions: 20 | - :reboot 21 | - :stop 22 | :storage_volumes: [] 23 | :network_interfaces: 24 | - nic1 25 | -------------------------------------------------------------------------------- /server/views/metrics/index.html.haml: -------------------------------------------------------------------------------- 1 | =header "Metrics" 2 | =subheader "#{Thread::current[:provider] || ENV['API_PROVIDER'] || 'default'}" 3 | 4 | %div{ :'data-role' => :content, :'data-theme' => 'c'} 5 | %ul{ :'data-role' => :listview , :'data-inset' => :true, :'data-divider-theme' => 'a'} 6 | %li{ :'data-role' => 'list-divider'}=driver_symbol 7 | - elements.each do |metric| 8 | %li 9 | %a{ :href => metric_url(metric.id), :'data-ajax' => 'false'} 10 | %img{ :class => 'ui-link-thumb', :src => '/images/metric.png'} 11 | %h3= metric.entity || metric.id 12 | %p 13 | = metric.properties.map { |p| p.name }.join(', ') 14 | -------------------------------------------------------------------------------- /server/views/realms/index.html.haml: -------------------------------------------------------------------------------- 1 | =header "Realms" 2 | =subheader "#{Thread::current[:provider] || ENV['API_PROVIDER'] || 'default'}" 3 | 4 | %div{ :'data-role' => :content, :'data-theme' => 'c'} 5 | %ul{ :'data-role' => :listview , :'data-inset' => :true, :'data-divider-theme' => 'a'} 6 | %li{ :'data-role' => 'list-divider'}=driver_symbol 7 | - elements.each do |realm| 8 | %li 9 | %a{ :href => realm_url(realm.id), :'data-ajax' => 'false'} 10 | %img{ :class => 'ui-link-thumb', :src => '/images/realm.png'} 11 | %h3= realm.name 12 | %p=[realm.id, realm.limit].join(', ') 13 | %span{ :class => 'ui-li-count'}=realm.state 14 | -------------------------------------------------------------------------------- /server/tests/cimi/data/machine_configuration.xml: -------------------------------------------------------------------------------- 1 | 2 | http://cimi.example.org/machine_configurations/1 3 | MachineConfiguration1 4 | Example MachineConfiguration One 5 | 2011-11-14 6 | i386 7 | 2 8 | 1048576 9 | 10 | 1073741824 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /server/tests/drivers/openstack/common.rb: -------------------------------------------------------------------------------- 1 | require 'openstack' 2 | require 'vcr' 3 | 4 | def credentials 5 | { 6 | :user => 'admin+admin', 7 | :password => 'password', 8 | :provider => 'http://10.34.32.211:5000/v2.0' 9 | } 10 | end 11 | 12 | def openstack_image_id 13 | 'bf7ce59a-d9f9-45d4-9313-f45b16436602' 14 | end 15 | 16 | unless Time.respond_to? :be 17 | require_relative '../../test_helper.rb' 18 | end 19 | 20 | VCR.configure do |c| 21 | # NOTE: Empty this directory before re-recording 22 | c.cassette_library_dir = File.join(File.dirname(__FILE__), 'fixtures') 23 | c.hook_into :webmock 24 | c.default_cassette_options = { :record => vcr_record_mode } 25 | end 26 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/instances/inst3.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :id: inst3 3 | :name: '' 4 | :state: RUNNING 5 | :keyname: '' 6 | :image_id: img3 7 | :owner_id: !binary |- 8 | bW9ja3VzZXI= 9 | :public_addresses: 10 | - !ruby/object:Deltacloud::InstanceAddress 11 | address: img3.inst3.public.com 12 | address_type: :hostname 13 | :private_addresses: 14 | - !ruby/object:Deltacloud::InstanceAddress 15 | address: img3.inst3.private.com 16 | address_type: :hostname 17 | :instance_profile: !ruby/object:Deltacloud::InstanceProfile 18 | id: m1-small 19 | :realm_id: eu 20 | :create_image: false 21 | :actions: 22 | - :reboot 23 | - :stop 24 | :user_data: 25 | :network_interfaces: 26 | - nicinst3 27 | -------------------------------------------------------------------------------- /server/tests/cimi/data/machine_configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "resourceURI": "http://schemas.dmtf.org/cimi/1/MachineConfiguration", 3 | "id": "http://cimi.example.org/machine_configurations/1", 4 | "name": "MachineConfiguration1", 5 | "description": "Example MachineConfiguration One", 6 | "created": "2011-11-14", 7 | "cpu": "2", 8 | "memory":1048576, 9 | "disks": [ 10 | {"capacity":1073741824} 11 | ], 12 | "properties": { "architecture": "i386" }, 13 | "operations": [ 14 | { "rel": "edit", 15 | "href": "http://cimi.example.org/machine_configurations/1/edit" }, 16 | { "rel": "delete", 17 | "href": "http://cimi.example.org/machine_configurations/1/delete" }] 18 | } 19 | -------------------------------------------------------------------------------- /server/views/addresses/index.html.haml: -------------------------------------------------------------------------------- 1 | =header "Addresses" do 2 | %a{ :href => "#", :onclick => "create_address('#{addresses_url}')", :'data-icon' => :plus, :'data-role' => :button, :class => 'ui-btn-right', :'data-ajax' => "false", :method => :post} Create new address 3 | =subheader "#{Thread::current[:provider] || ENV['API_PROVIDER'] || 'default'}" 4 | 5 | %div{ :'data-role' => :content, :'data-theme' => 'c'} 6 | %ul#address_list{ :'data-role' => :listview , :'data-inset' => :true, :'data-divider-theme' => 'a'} 7 | %li{ :'data-role' => 'list-divider'}=driver_symbol 8 | - elements.each do |address| 9 | = haml :"addresses/_address", :locals => { :address => address, :partial => true } 10 | -------------------------------------------------------------------------------- /tests/deprecated/rhevm/support/fixtures/b3374f5480b46b5751c5ae508b9c4914.fixture: -------------------------------------------------------------------------------- 1 | ["https://10.34.2.122:8443/rhevm-api-powershell/vms/5b602d1a-4db0-4ab0-8842-5f3dfb551ba6/start","post",{"content_type":"application/xml","status":200,"body":"\n\n COMPLETE\n \n \n\n"}] 2 | -------------------------------------------------------------------------------- /server/config/drivers/fgcp.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | :fgcp: 3 | :name: FGCP 4 | :username: Folder name containing User Certificate 5 | :password: Secret Key Password of User Certificate 6 | :entrypoints: 7 | default: 8 | jp-east: https://api.oviss.jp.fujitsu.com/ovissapi/endpoint 9 | au: https://api.globalcloud.fujitsu.com.au/ovissapi/endpoint 10 | sg: https://api.globalcloud.sg.fujitsu.com/ovissapi/endpoint 11 | uk: https://api.globalcloud.uk.fujitsu.com/ovissapi/endpoint 12 | us: https://api.globalcloud.us.fujitsu.com/ovissapi/endpoint 13 | de: https://api.globalcloud.de.fujitsu.com/ovissapi/endpoint 14 | jp-west: https://api.oviss2.jp.fujitsu.com/ovissapi/endpoint 15 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/instances/inst0.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :instance_profile: !ruby/object:Deltacloud::InstanceProfile 3 | memory: "12288" 4 | id: m1-large 5 | :realm_id: us 6 | :actions: 7 | - :reboot 8 | - :stop 9 | :owner_id: mockuser 10 | :public_addresses: 11 | - !ruby/object:Deltacloud::InstanceAddress 12 | address: img1.inst0.public.com 13 | address_type: :hostname 14 | :private_addresses: 15 | - !ruby/object:Deltacloud::InstanceAddress 16 | address: img1.inst0.private.com 17 | address_type: :hostname 18 | :create_image: true 19 | :image_id: img1 20 | :name: Mock Instance With Profile Change 21 | :id: inst0 22 | :state: RUNNING 23 | :storage_volumes: [] 24 | :network_interfaces: [] 25 | -------------------------------------------------------------------------------- /server/tests/drivers/models/keys_test.rb: -------------------------------------------------------------------------------- 1 | require 'rubygems' 2 | require 'require_relative' if RUBY_VERSION < '1.9' 3 | 4 | require_relative 'common' 5 | 6 | describe Deltacloud::Key do 7 | 8 | before do 9 | @key = Deltacloud::Key.new(:credential_type => :key) 10 | end 11 | 12 | it 'advertise if it is password or key' do 13 | @key.is_password?.must_equal false 14 | @key.is_key?.must_equal true 15 | end 16 | 17 | it 'cat generate the mock fingerprint' do 18 | Deltacloud::Key.generate_mock_fingerprint.must_match(/(\w{2}:?)/) 19 | end 20 | 21 | it 'can generate the mock PEM key' do 22 | Deltacloud::Key.generate_mock_pem.must_include 'PRIVATE KEY' 23 | end 24 | 25 | end 26 | -------------------------------------------------------------------------------- /server/views/images/new.html.haml: -------------------------------------------------------------------------------- 1 | =header "Create new image" 2 | =subheader "#{instance.id}" 3 | 4 | %div{ :'data-role' => :content, :'data-theme' => 'c', :class => 'middle-dialog'} 5 | %form{ :action => images_url, :method => :post} 6 | %input{ :type => :hidden, :name => :instance_id, :value => instance.id} 7 | %div{ 'data-role' => :fieldcontain } 8 | %label{ :for => :name} Name: 9 | %input{ :type => :text, :id => :name, :name => :name, :value => '' } 10 | %div{ 'data-role' => :fieldcontain } 11 | %label{ :for => :description} Description: 12 | %input{ :type => :text, :id => :description, :name => :description, :value => '' } 13 | %button{ :type => :submit} Create 14 | -------------------------------------------------------------------------------- /support/dev.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | # Restart the dev server (https://dev.deltacloud.org) 3 | 4 | dev_dir=${HOME}/code/deltacloud/server 5 | port=3002 6 | pid_file=${HOME}/pids/thin-dev.pid 7 | logdir=${HOME}/log 8 | deltacloudd=$dev_dir/bin/deltacloudd 9 | servername=dev.deltacloud.org 10 | 11 | cd $dev_dir 12 | 13 | exec >> $logdir/dev-update.log 14 | echo "Restarting $servername at $(date)" 15 | 16 | [ -f $pid_file ] && thin -P $pid_file stop 17 | 18 | # update the git checkout 19 | git pull 20 | bundle update 21 | rake mock:fixtures:reset 2>&1 22 | 23 | $deltacloudd -c -i mock -p $port -e production -f deltacloud,cimi,ec2 -d --pid $pid_file --logdir $logdir/dev 24 | 25 | echo "Done at $(date)" 26 | echo 27 | -------------------------------------------------------------------------------- /tests/deprecated/rhevm/support/fixtures/530d1fad492a210b11e64a6714645727.fixture: -------------------------------------------------------------------------------- 1 | ["https://10.34.2.122:8443/rhevm-api-powershell/vms/5b2555c9-73f1-46dc-b379-a1f6dd382c86/suspend","post",{"content_type":"application/xml","status":200,"body":"\n\n COMPLETE\n \n \n\n"}] 2 | -------------------------------------------------------------------------------- /server/views/images/index.html.haml: -------------------------------------------------------------------------------- 1 | =header "Images" 2 | =subheader "#{Thread::current[:provider] || ENV['API_PROVIDER'] || 'default'}" 3 | 4 | %div{ :'data-role' => :content, :'data-theme' => 'c'} 5 | %ul{ :'data-role' => :listview , :'data-inset' => :true, :'data-divider-theme' => 'a'} 6 | %li{ :'data-role' => 'list-divider'}=driver_symbol 7 | - elements.each do |image| 8 | %li 9 | %a{ :href => image_url(image.id), :'data-ajax' => 'false'} 10 | %img{ :class => 'ui-link-thumb', :src => '/images/image.png'} 11 | %h3= image.name 12 | %p=[image.description, image.owner_id, image.architecture].join(', ') 13 | %span{ :class => 'ui-li-count'}=image.state 14 | -------------------------------------------------------------------------------- /server/views/realms/show.html.haml: -------------------------------------------------------------------------------- 1 | =header 'Realm' 2 | =subheader realm.id 3 | 4 | %div{ :'data-role' => :content, :'data-theme' => 'c'} 5 | %ul{ :'data-role' => :listview , :'data-inset' => :true, :'data-divider-theme' => 'd'} 6 | %li{ :'data-role' => 'list-divider'} Identifier 7 | %li 8 | %p{ :'data-role' => 'fieldcontain'}=realm.id 9 | %li{ :'data-role' => 'list-divider'} Name 10 | %li 11 | %p{ :'data-role' => 'fieldcontain'}=realm.name 12 | %li{ :'data-role' => 'list-divider'} State 13 | %li 14 | %p{ :'data-role' => 'fieldcontain'}=realm.state 15 | %li{ :'data-role' => 'list-divider'} Limit 16 | %li 17 | %p{ :'data-role' => 'fieldcontain'}=realm.limit 18 | -------------------------------------------------------------------------------- /server/tests/helpers/core_ext/array_test.rb: -------------------------------------------------------------------------------- 1 | require 'rubygems' 2 | require 'require_relative' if RUBY_VERSION < '1.9' 3 | require_relative '../../test_helper.rb' 4 | 5 | require_relative File.join('..', '..', '..', 'lib', 'deltacloud', 'core_ext.rb') 6 | 7 | class TestArray < MiniTest::Unit::TestCase 8 | 9 | 10 | def test_expand_opts! 11 | assert_equal true, [].respond_to?(:"expand_opts!") 12 | a = [1,2,3] 13 | a.expand_opts!(:test => 1) 14 | assert_equal Hash, a.last.class 15 | end 16 | 17 | def test_extract_opts! 18 | assert_equal true, [].respond_to?(:"extract_opts!") 19 | a = [1,2,3, { :test => 1}] 20 | a.extract_opts! 21 | assert_equal [1,2,3], a 22 | end 23 | 24 | end 25 | -------------------------------------------------------------------------------- /site/content/assets/less/scaffolding.less: -------------------------------------------------------------------------------- 1 | // Scaffolding 2 | // Basic and global styles for generating a grid system, structural layout, and page templates 3 | // ------------------------------------------------------------------------------------------- 4 | 5 | 6 | // STRUCTURAL LAYOUT 7 | // ----------------- 8 | 9 | body { 10 | margin: 0; 11 | font-family: @baseFontFamily; 12 | font-size: @baseFontSize; 13 | line-height: @baseLineHeight; 14 | color: @textColor; 15 | background-color: @white; 16 | } 17 | 18 | 19 | // LINKS 20 | // ----- 21 | 22 | a { 23 | color: @linkColor; 24 | text-decoration: none; 25 | } 26 | a:hover { 27 | color: @linkColorHover; 28 | text-decoration: underline; 29 | } 30 | -------------------------------------------------------------------------------- /tests/deprecated/ec2/support/ec2/describe_images_by_owner.12fef75ad6850ccb88e5261ab3b9906125134088: -------------------------------------------------------------------------------- 1 | BAhbB3sOOgthd3NfaWQiEWFtaS0xMWNhMmQ3ODoOYXdzX3N0YXRlIg5hdmFp 2 | bGFibGU6E2F3c19pbWFnZV90eXBlIgxtYWNoaW5lOhJhd3Nfa2VybmVsX2lk 3 | IhFha2ktYTcxY2Y5Y2U6EWF3c19sb2NhdGlvbiI/YXdzLXRvb2xraXQtZm9y 4 | LWVjbGlwc2UtYW1pcy11cy90b21jYXQtdjEuMC4wLm1hbmlmZXN0LnhtbDoT 5 | YXdzX3JhbWRpc2tfaWQiEWFyaS1hNTFjZjljYzoOYXdzX293bmVyIhEyMDU2 6 | MDU4MTk3MTY6FWF3c19hcmNoaXRlY3R1cmUiCWkzODY6EmF3c19pc19wdWJs 7 | aWNUew47ACIRYW1pLWQxY2EyZGI4OwYiDmF2YWlsYWJsZTsHIgxtYWNoaW5l 8 | OwgiEWFraS1hNzFjZjljZTsJIkBhd3MtdG9vbGtpdC1mb3ItZWNsaXBzZS1h 9 | bWlzLXVzL2hhcHJveHktdjEuMC4yLm1hbmlmZXN0LnhtbDsKIhFhcmktYTUx 10 | Y2Y5Y2M7CyIRMjA1NjA1ODE5NzE2OwwiCWkzODY7DVQ= 11 | -------------------------------------------------------------------------------- /server/views/keys/show.xml.haml: -------------------------------------------------------------------------------- 1 | - unless defined?(partial) 2 | !!! XML 3 | %key{ :href => key_url(key.id), :id => key.id, :type => "#{key.credential_type}" } 4 | %name=key.name 5 | %actions 6 | - if driver.respond_to?(:destroy_key) 7 | %link{ :rel => "destroy", :method => "delete", :href => destroy_key_url(key.id)} 8 | - if key.is_key? 9 | - if key.fingerprint 10 | %fingerprint< 11 | =key.fingerprint 12 | - unless key.pem_rsa_key.nil? 13 | %pem 14 | ~render_cdata(key.pem_rsa_key) 15 | - if key.is_password? 16 | %username< 17 | =cdata do 18 | =key.username 19 | %password< 20 | =cdata do 21 | =key.password 22 | %state< 23 | =key.state 24 | -------------------------------------------------------------------------------- /server/views/keys/new.html.haml: -------------------------------------------------------------------------------- 1 | =header "Create new SSH key" 2 | 3 | %div{ :'data-role' => :content, :'data-theme' => 'c', :class => 'middle-dialog'} 4 | %form{ :action => keys_url, :method => :post} 5 | %div{ 'data-role' => :fieldcontain } 6 | %p 7 | %label{ :for => :name} Key name: 8 | %p 9 | %input{ :type => :text, :id => :name, :name => :name, :value => '' } 10 | %p 11 | %label{ :for => :public_key} Public Key (Optional - import): 12 | %small Enter your public key here to import it rather than creating a new one (not supported by all providers) 13 | %p 14 | %textarea{ :name => :public_key, :cols=>65, :rows=>5 } 15 | %button{ :type => :submit} Create key 16 | -------------------------------------------------------------------------------- /tests/deprecated/ec2/support/ec2/create_describe_volumes.da39a3ee5e6b4b0d3255bfef95601890afd80709: -------------------------------------------------------------------------------- 1 | BAhbCHsLOhNhd3NfY3JlYXRlZF9hdHU6CVRpbWUNCt0bwAAAADI6C2F3c19p 2 | ZCIRdm9sLWEyMzBjY2M4Og9hd3Nfc3RhdHVzIg5hdmFpbGFibGU6EHNuYXBz 3 | aG90X2lkMDoNYXdzX3NpemVpBjoJem9uZSIPdXMtZWFzdC0xYXsPOwB1OwYN 4 | Ct0bwAAAsDA7ByIRdm9sLWM2MzBjY2FjOwgiC2luLXVzZTsJIhJzbmFwLTU4 5 | OWE5NjMzOwppFDoaYXdzX2F0dGFjaG1lbnRfc3RhdHVzIg1hdHRhY2hlZDsL 6 | Ig91cy1lYXN0LTFiOg9hd3NfZGV2aWNlIg4vZGV2L3NkYTE6FGF3c19hdHRh 7 | Y2hlZF9hdHU7Bg0K3RvAAACwMToUYXdzX2luc3RhbmNlX2lkIg9pLTc3NmEw 8 | MjE2ew87AHU7Bg0K3RvAAAAAMTsHIhF2b2wtZGUzMGNjYjQ7CCILaW4tdXNl 9 | OwkiEnNuYXAtNTg5YTk2MzM7CmkUOwwiDWF0dGFjaGVkOwsiD3VzLWVhc3Qt 10 | MWE7DSIOL2Rldi9zZGExOw51OwYNCt0bwAAA8DE7DyIPaS03ZjZhMDIxZQ== 11 | -------------------------------------------------------------------------------- /tests/deprecated/sbc/support/fixtures/291f0f35b96fa2b9e5cae3d1e5b89878.fixture: -------------------------------------------------------------------------------- 1 | ["/instances/48151","get",{"body":"{\"launchTime\":1297389062997,\"software\":[{\"version\":\"11\",\"type\":\"OS\",\"name\":\"SUSE Linux Enterprise Server\"}],\"primaryIP\":{\"hostname\":\"170.224.161.70 \",\"ip\":\"170.224.161.70 \",\"type\":0},\"requestId\":\"48451\",\"keyName\":\"woodser_key\",\"name\":\"EricTest1\",\"instanceType\":\"COP32.1/2048/60\",\"status\":5,\"owner\":\"woodser@us.ibm.com\",\"location\":\"41\",\"imageId\":\"20006009\",\"root-only\":\"true\",\"productCodes\":[],\"volumes\":[],\"requestName\":\"EricTest1\",\"id\":\"48151\",\"secondaryIP\":[],\"expirationTime\":1360386000000,\"diskSize\":\"60\"}","Content-Type":"application/json","status":"200"}] 2 | -------------------------------------------------------------------------------- /tests/deprecated/sbc/support/fixtures/ff671e15c30a18a501dd6d4e6db77c9e.fixture: -------------------------------------------------------------------------------- 1 | ["/instances/48151","get",{"body":"{\"launchTime\":1297389062997,\"software\":[{\"version\":\"11\",\"type\":\"OS\",\"name\":\"SUSE Linux Enterprise Server\"}],\"primaryIP\":{\"hostname\":\"170.224.161.70 \",\"ip\":\"170.224.161.70 \",\"type\":0},\"requestId\":\"48451\",\"keyName\":\"woodser_key\",\"name\":\"EricTest1\",\"instanceType\":\"COP32.1/2048/60\",\"status\":5,\"owner\":\"woodser@us.ibm.com\",\"location\":\"41\",\"imageId\":\"20006009\",\"root-only\":\"true\",\"productCodes\":[],\"volumes\":[],\"requestName\":\"EricTest1\",\"id\":\"48151\",\"secondaryIP\":[],\"expirationTime\":1360386000000,\"diskSize\":\"60\"}","Content-Type":"application/json","status":"200"}] 2 | -------------------------------------------------------------------------------- /support/prod.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | # Restart the prod server (https://api.deltacloud.org) 3 | # FIXME: This is a crazy hack. There's no clean separation of code and runtime 4 | # files (like pid_file) 5 | 6 | gem_dir=${HOME}/gems 7 | port=3001 8 | pid_file=${HOME}/pids/thin-prod.pid 9 | logdir=${HOME}/log 10 | deltacloudd=$gem_dir/bin/deltacloudd 11 | servername=api.deltacloud.org 12 | 13 | exec >> $logdir/prod-update.log 14 | echo "Restarting $servername at $(date)" 15 | 16 | [ -f $pid_file ] && thin -P $pid_file stop 17 | 18 | export GEM_PATH=$gem_dir:$GEM_HOME:/usr/lib/ruby/gems/1.8 19 | $deltacloudd -i ec2 -p $port -e production -f deltacloud,cimi,ec2 -d --pid $pid_file --logdir $logdir/prod 20 | 21 | echo "Done at $(date)" 22 | echo 23 | -------------------------------------------------------------------------------- /server/tests/deltacloud/common.rb: -------------------------------------------------------------------------------- 1 | require_relative '../test_helper.rb' 2 | 3 | Deltacloud.require_frontend! :deltacloud 4 | 5 | def check_json_serialization_for(model, sample_id, optional_attrs=[]) 6 | header 'Accept', 'application/json' 7 | get root_url + "/#{model.to_s.pluralize}" 8 | status.must_equal 200 9 | json[model.to_s.pluralize].wont_be_empty 10 | get root_url + "/#{model.to_s.pluralize}/#{sample_id}" 11 | status.must_equal 200 12 | json[model.to_s].wont_be_empty 13 | klass = Deltacloud.const_get(model.to_s.camelize) 14 | klass.attributes.each do |attr| 15 | attr = attr.to_s.gsub(/_id$/,'') if attr.to_s =~ /_id$/ 16 | json[model.to_s].keys.must_include attr.to_s unless optional_attrs.include? attr 17 | end 18 | end 19 | -------------------------------------------------------------------------------- /server/tests/deltacloud/base_collection_test.rb: -------------------------------------------------------------------------------- 1 | require 'rubygems' 2 | require 'require_relative' if RUBY_VERSION < '1.9' 3 | 4 | require_relative 'common.rb' 5 | 6 | describe Deltacloud::Collections::Base do 7 | 8 | before do 9 | @base = Deltacloud::Collections::Base 10 | end 11 | 12 | it 'has config set correctly' do 13 | @base.config.must_be_kind_of Deltacloud::Server 14 | @base.config.root_url.must_equal Deltacloud.config[:deltacloud].root_url 15 | end 16 | 17 | it 'has root_url set correctly' do 18 | @base.root_url.must_equal Deltacloud.config[:deltacloud].root_url 19 | end 20 | 21 | it 'has version set correctly' do 22 | @base.version.must_equal Deltacloud.config[:deltacloud].version 23 | end 24 | 25 | end 26 | -------------------------------------------------------------------------------- /clients/cimi/views/volumes/index.haml: -------------------------------------------------------------------------------- 1 | - @title=collection_name @volumes 2 | 3 | - content_for :breadcrumb do 4 | %ul.breadcrumb 5 | %li 6 | %a{ :href => "/cimi/cloudEntryPoint"} CloudEntryPoint 7 | %span.divider="/" 8 | %li.active 9 | VolumeCollection 10 | 11 | - content_for :actions do 12 | %p 13 | %a{ :href => "#{@volumes.id}?format=xml", :class => 'label warning' } XML 14 | %a{ :href => "#{@volumes.id}?format=json", :class => 'label warning' } JSON 15 | 16 | %h3 VolumesCollection 17 | %ul 18 | - @volumes.volumes.each do |volume| 19 | %li 20 | %a{ :href => "/cimi/volumes/#{href_to_id(volume.id)}"}=href_to_id(volume.id) 21 | 22 | - details do 23 | - row 'ID', @volumes.id 24 | - row 'Count', @volumes.count 25 | -------------------------------------------------------------------------------- /server/tests/cimi/db/db_helper.rb: -------------------------------------------------------------------------------- 1 | require_relative '../../test_helper' 2 | 3 | module Deltacloud 4 | module DatabaseTestHelper 5 | 6 | def check_entity_base_attrs(entity, entity_klass, provider) 7 | entity.must_be_kind_of entity_klass 8 | entity.id.wont_be_nil 9 | entity.created_at.wont_be_nil 10 | entity.name.wont_be_empty 11 | entity.description.wont_be_empty 12 | entity.provider.must_equal provider 13 | entity.model.must_equal entity_klass 14 | entity.to_hash[:name].must_equal entity.name 15 | entity.to_hash[:description].must_equal entity.description 16 | entity.to_hash[:property].must_be_kind_of Hash 17 | entity.to_hash[:property].wont_be_empty 18 | end 19 | 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /server/views/api/show.xml.haml: -------------------------------------------------------------------------------- 1 | %api{ :version => settings.version, :driver => driver_symbol, :provider => Thread.current[:provider] || ENV['API_PROVIDER'] } 2 | - collections.each do |c| 3 | %link{ :rel => c.collection_name, :href => self.send(:"#{c.collection_name}_url")} 4 | - c.features.select { |f| driver.class.has_feature?(c.collection_name, f.name) }.each do |f| 5 | - f.operations.each do |operation| 6 | %feature{ :name => f.name, :rel => operation.name } 7 | - operation.params_array.each do |param| 8 | %param{ :name => param.name} 9 | - driver.class.constraints(:collection => c.collection_name, :feature => f.name).each do |name, value| 10 | %constraint{ :name => name }=value 11 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/cimi/system/system2.json: -------------------------------------------------------------------------------- 1 | { "id": "http://cimi.example.org/systems/system2", 2 | "name": "system2", 3 | "description": "the second system", 4 | "created": "Fri Feb 08 15:25:41 EET 2013", 5 | "state": "STOPPED", 6 | "machines": { "href": "http://cimi.example.org/systems/system2/machines"}, 7 | "operations": [ 8 | { "rel": "http://schemas.dmtf.org/cimi/1/action/start", "href": "http://cimi.example.org/systems/system2/start" }, 9 | { "rel": "http://schemas.dmtf.org/cimi/1/action/export", "href": "http://cimi.example.org/systems/system2/export" }, 10 | { "rel": "edit", "href": "http://cimi.example.org/systems/system2" }, 11 | { "rel": "delete", "href": "http://cimi.example.org/systems/system2" } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/cimi/address_template/addr_template2.json: -------------------------------------------------------------------------------- 1 | { "id": "http://cimi.example.org/address_templates/addr_template2", 2 | "name": "addr_template2", 3 | "description": "an IP address", 4 | "created": "Wed Apr 04 13:27:15 EET 2012", 5 | "ip": "192.168.10.1", 6 | "hostname": "foo.bar", 7 | "allocation": "dynamic", 8 | "defaultGateway": "192.168.0.1", 9 | "dns": "192.168.0.10", 10 | "protocol": "IPv4", 11 | "mask": "255.255.0.0", 12 | "network": {"href": "http://cimi.example.org/networks/network1"}, 13 | "operations": [ 14 | { "rel": "edit", "href": "http://cimi.example.org/address_templates/addr_template2" }, 15 | { "rel": "delete", "href": "http://cimi.example.org/address_templates/addr_template2" } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /server/lib/deltacloud/drivers/mock/data/cimi/address_template/addr_template1.json: -------------------------------------------------------------------------------- 1 | { "id": "http://cimi.example.org/address_templates/addr_template1", 2 | "name": "addr_template1", 3 | "description": "an IP address", 4 | "created": "Tue Apr 03 10:34:45 EET 2012", 5 | "ip": "192.168.10.1", 6 | "hostname": "marios.local", 7 | "allocation": "dynamic", 8 | "defaultGateway": "192.168.0.1", 9 | "dns": "192.168.0.10", 10 | "protocol": "IPv4", 11 | "mask": "255.255.0.0", 12 | "network": {"href": "http://cimi.example.org/networks/network1"}, 13 | "operations": [ 14 | { "rel": "edit", "href": "http://cimi.example.org/address_templates/addr_template1" }, 15 | { "rel": "delete", "href": "http://cimi.example.org/address_templates/addr_template1" } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /clients/cimi/views/network_ports/index.haml: -------------------------------------------------------------------------------- 1 | - @title=collection_name @network_ports 2 | 3 | - content_for :breadcrumb do 4 | %ul.breadcrumb 5 | %li 6 | %a{ :href => "/cimi/cloudEntryPoint"} CloudEntryPoint 7 | %span.divider="/" 8 | %li.active 9 | NetworkPortCollection 10 | 11 | - content_for :actions do 12 | %p 13 | %a{ :href => "#{@network_ports.id}?format=xml", :class => 'label warning' } XML 14 | %a{ :href => "#{@network_ports.id}?format=json", :class => 'label warning' } JSON 15 | 16 | %ul 17 | - @network_ports.network_ports.each do |port| 18 | %li 19 | %a{ :href => "/cimi/network_ports/#{href_to_id(port.id)}"}=href_to_id(port.id) 20 | 21 | -details do 22 | -row 'ID', @network_ports.id 23 | -row 'Count', @network_ports.count 24 | -------------------------------------------------------------------------------- /clients/cimi/views/volume_images/index.haml: -------------------------------------------------------------------------------- 1 | - @title=collection_name @volume_images 2 | 3 | - content_for :breadcrumb do 4 | %ul.breadcrumb 5 | %li 6 | %a{ :href => "/cimi/cloudEntryPoint"} CloudEntryPoint 7 | %span.divider="/" 8 | %li.active 9 | VolumeImageCollection 10 | 11 | - content_for :actions do 12 | %p 13 | %a{ :href => "#{@volume_images.id}?format=xml", :class => 'label warning' } XML 14 | %a{ :href => "#{@volume_images.id}?format=json", :class => 'label warning' } JSON 15 | 16 | %ul 17 | - @volume_images.volume_images.each do |image| 18 | %li 19 | %a{ :href => "/cimi/volume_images/#{href_to_id(image.id)}"}=href_to_id(image.id) 20 | 21 | - details do 22 | - row 'ID', @volume_images.id 23 | - row 'Count', @volume_images.count 24 | -------------------------------------------------------------------------------- /server/tests/helpers/rack/rack_etag_test.rb: -------------------------------------------------------------------------------- 1 | require 'rubygems' 2 | require 'require_relative' if RUBY_VERSION < '1.9' 3 | require_relative '../../test_helper.rb' 4 | require_relative './common.rb' 5 | 6 | class TestEtagApp < Sinatra::Base 7 | use Rack::ETag 8 | get '/' do 9 | params[:test] 10 | end 11 | end 12 | 13 | describe TestEtagApp do 14 | 15 | before do 16 | def app; TestEtagApp; end 17 | end 18 | 19 | it 'add the ETag header to all responses' do 20 | get '/?test=1' 21 | status.must_equal 200 22 | response_body.wont_be_empty 23 | headers['ETag'].wont_be_empty 24 | headers['ETag'].must_equal 'c4ca4238a0b923820dcc509a6f75849b' 25 | get '/?test=2' 26 | headers['ETag'].must_equal 'c81e728d9d4c2f636f067f89cc14862c' 27 | end 28 | 29 | end 30 | -------------------------------------------------------------------------------- /server/views/keys/index.html.haml: -------------------------------------------------------------------------------- 1 | =header "Keys" do 2 | %a{ :href => url_for('keys/new'), :'data-icon' => :plus, :'data-role' => :button, :class => 'ui-btn-right'} Create new key 3 | 4 | %div{ :'data-role' => :content, :'data-theme' => 'c'} 5 | %ul{ :'data-role' => :listview , :'data-inset' => :true, :'data-divider-theme' => 'a'} 6 | - elements.each do |key| 7 | %li 8 | %a{ :href => key_url(key.id), :'data-ajax' => 'false'} 9 | %img{ :class => 'ui-link-thumb', :src => '/images/key.png'} 10 | %h3=key.id 11 | %p=key.name 12 | %p 13 | - if key.credential_type.eql?(:key) 14 | = key.fingerprint 15 | - if key.credential_type.eql?(:password) 16 | = "#{key.username} - #{key.password}" 17 | -------------------------------------------------------------------------------- /server/config/addresses.xml: -------------------------------------------------------------------------------- 1 | 2 |
172.31.0.101
3 |
172.31.0.102
4 |
172.31.0.103
5 |
172.31.0.104
6 |
172.31.0.105
7 |
172.31.0.106
8 |
172.31.0.107
9 |
172.31.0.108
10 |
172.31.0.109
11 |
172.31.0.110
12 |
172.31.0.111
13 |
172.31.0.112
14 |
15 | -------------------------------------------------------------------------------- /clients/cimi/views/forwarding_groups/index.haml: -------------------------------------------------------------------------------- 1 | - @title=collection_name @fgs 2 | 3 | - content_for :breadcrumb do 4 | %ul.breadcrumb 5 | %li 6 | %a{ :href => "/cimi/cloudEntryPoint"} CloudEntryPoint 7 | %span.divider="/" 8 | %li.active 9 | ForwardingGroupCollection 10 | - content_for :actions do 11 | %p 12 | %a{ :href => "#{@fgs.id}?format=xml", :class => 'label warning' } XML 13 | %a{ :href => "#{@fgs.id}?format=json", :class => 'label warning' } JSON 14 | 15 | 16 | %h3 ForwardingGroupCollection 17 | %ul 18 | - @fgs.forwarding_groups.each do |fg| 19 | %li 20 | %a{ :href => "/cimi/forwarding_groups/#{href_to_id fg.id}"}=href_to_id(fg.id) 21 | 22 | -details 'ForwardingGroupCollection details' do 23 | -row 'ID', @fgs.id 24 | -row 'Count', @fgs.count 25 | -------------------------------------------------------------------------------- /tests/deprecated/mock/support/env.rb: -------------------------------------------------------------------------------- 1 | require 'rubygems' 2 | require 'nokogiri' 3 | require 'rack/test' 4 | load File.join(File.dirname(__FILE__), '..', '..', '..', 'server', 'lib', 'deltacloud_rack.rb') 5 | 6 | Deltacloud::configure do |server| 7 | server.root_url '/api' 8 | server.version '1.0.0' 9 | server.klass 'Deltacloud::API' 10 | end 11 | 12 | Deltacloud.require_frontend!(:deltacloud) 13 | 14 | CONFIG = { 15 | :username => 'mockuser', 16 | :password => 'mockpassword' 17 | } 18 | 19 | def output_xml 20 | Nokogiri::XML(last_response.body) 21 | end 22 | 23 | def app 24 | Rack::URLMap.new( 25 | "/" => Deltacloud::API.new, 26 | "/stylesheets" => Rack::Directory.new( "public/stylesheets" ), 27 | "/javascripts" => Rack::Directory.new( "public/javascripts" ) 28 | ) 29 | end 30 | -------------------------------------------------------------------------------- /server/views/instances/index.html.haml: -------------------------------------------------------------------------------- 1 | =header "Instances" 2 | =subheader "#{Thread::current[:provider] || ENV['API_PROVIDER'] || 'default'}" 3 | 4 | %div{ :'data-role' => :content, :'data-theme' => 'c'} 5 | %ul{ :'data-role' => :listview , :'data-inset' => :true, :'data-divider-theme' => 'a'} 6 | %li{ :'data-role' => 'list-divider'}=driver_symbol 7 | - elements.each do |instance| 8 | %li 9 | %a{ :href => instance_url(instance.id), :'data-ajax' => 'false'} 10 | %img{ :class => 'ui-link-thumb', :src => '/images/machine.png'} 11 | %h3=instance.id.to_s.truncate 12 | %p 13 | %strong=instance.name 14 | %p=[instance.owner_id, instance.image_id, instance.hardware_profile].join(', ') 15 | %span{ :class => 'ui-li-count'}=instance.state 16 | -------------------------------------------------------------------------------- /server/views/storage_volumes/index.html.haml: -------------------------------------------------------------------------------- 1 | =header "Storage volumes" do 2 | %a{ :href => url_for('storage_volumes/new'), :'data-icon' => :plus, :'data-role' => :button, :class => 'ui-btn-right'} Create new volume 3 | 4 | %div{ :'data-role' => :content, :'data-theme' => 'c'} 5 | %ul{ :'data-role' => :listview , :'data-inset' => :true, :'data-divider-theme' => 'a'} 6 | %li{ :'data-role' => 'list-divider'}=driver_symbol 7 | - elements.each do |volume| 8 | %li 9 | %a{ :href => storage_volume_url(volume.id), :'data-ajax' => 'false'} 10 | %img{ :class => 'ui-link-thumb', :src => '/images/volume.png'} 11 | %h3= volume.name ? volume.name : volume.id 12 | %p=[volume.realm_id, volume.capacity].join(', ') 13 | %span{ :class => 'ui-li-count'}=volume.state 14 | -------------------------------------------------------------------------------- /server/views/metrics/show.html.haml: -------------------------------------------------------------------------------- 1 | =header Metric 2 | =subheader metric.id 3 | 4 | %div{ :'data-role' => :content, :'data-theme' => 'c'} 5 | %div{ :'data-role' => :'collapsible-set'} 6 | - metric.properties.each do |p| 7 | %div{ :'data-role' => :'collapsible', :'data-collapse' => 'true'} 8 | %h3=p.name 9 | %table{ :summary => "#{p.name} values"} 10 | %caption Statistics for the last 60 minutes 11 | %tr 12 | %th Time 13 | %th Minimum 14 | %th Maximum 15 | %th Average 16 | %th Unit 17 | - p.values.each do |v| 18 | %tr 19 | %td=v[:timestamp] 20 | %td=v[:minimum] 21 | %td=v[:maximum] 22 | %td=v[:average] 23 | %td=v[:unit] 24 | -------------------------------------------------------------------------------- /clients/cimi/views/machine_images/index.haml: -------------------------------------------------------------------------------- 1 | - @title=collection_name @machine_images 2 | 3 | - content_for :breadcrumb do 4 | %ul.breadcrumb 5 | %li 6 | %a{ :href => "/cimi/cloudEntryPoint"} CloudEntryPoint 7 | %span.divider="/" 8 | %li.active 9 | MachineImageCollection 10 | 11 | - content_for :actions do 12 | %p 13 | %a{ :href => "#{@machine_images.id}?format=xml", :class => 'label warning' } XML 14 | %a{ :href => "#{@machine_images.id}?format=json", :class => 'label warning' } JSON 15 | 16 | %ul 17 | - @machine_images.machine_images.each do |image| 18 | %li 19 | %a{ :href => "/cimi/machine_images/#{href_to_id image.id}"}=href_to_id(image.id) 20 | 21 | - details('Collection details') do 22 | - row 'ID', @machine_images.id 23 | - row 'Count', @machine_images.count 24 | -------------------------------------------------------------------------------- /server/tests/drivers/gogrid/common.rb: -------------------------------------------------------------------------------- 1 | require 'vcr' 2 | 3 | require_relative '../../test_helper.rb' 4 | 5 | def credentials 6 | Deltacloud::Test::config.credentials("gogrid") 7 | end 8 | 9 | def fixed_image_id 10 | # A fixed image we use throughout the tests; if GoGrid ever removes it 11 | # we need to change it here 12 | "9928" 13 | end 14 | 15 | VCR.configure do |c| 16 | # NOTE: Empty this directory before re-recording 17 | c.cassette_library_dir = File.join(File.dirname(__FILE__), 'fixtures') 18 | c.hook_into :webmock 19 | matcher = VCR.request_matchers.uri_without_param("api_key", "sig") 20 | c.register_request_matcher(:gogrid_matcher, &matcher) 21 | c.default_cassette_options[:record] = vcr_record_mode 22 | c.default_cassette_options[:match_requests_on] = [:method, :gogrid_matcher] 23 | end 24 | -------------------------------------------------------------------------------- /server/tests/ec2/common.rb: -------------------------------------------------------------------------------- 1 | require 'rubygems' 2 | require 'require_relative' if RUBY_VERSION < '1.9' 3 | require 'minitest/autorun' 4 | 5 | require_relative File.join('..', '..', 'lib', 'deltacloud_rack.rb') 6 | require_relative '../test_helper.rb' 7 | 8 | # Setup Deltacloud::API Sinatra instance 9 | # 10 | 11 | Deltacloud::configure(:ec2) do |server| 12 | server.root_url '/ec2' 13 | server.version '2012-04-01' 14 | server.klass 'Deltacloud::EC2::API' 15 | server.logger Rack::DeltacloudLogger.setup(ENV['API_LOG'], ENV['API_VERBOSE']) 16 | server.default_driver :mock 17 | end 18 | 19 | Deltacloud[:ec2].require! 20 | Deltacloud[:ec2].default_frontend! 21 | 22 | # The root_url here is '/' because the application is not 23 | # mounted and so by default Sinatra mounts it on '/' 24 | 25 | def root_url; '/'; end 26 | -------------------------------------------------------------------------------- /server/views/addresses/show.xml.haml: -------------------------------------------------------------------------------- 1 | - unless defined?(partial) 2 | !!! XML 3 | %address{ :href => address_url(address.id), :id => address.id } 4 | %ip< 5 | =address.id 6 | %actions 7 | - if driver.respond_to?(:destroy_address) 8 | %link{ :rel => "destroy", :method => "delete", :href => destroy_address_url(address.id)} 9 | - if driver.respond_to?(:associate_address) and not address.instance_id 10 | %link{ :rel => "associate", :method => "post", :href => associate_address_url(address.id)} 11 | - if driver.respond_to?(:disassociate_address) and address.instance_id 12 | %link{ :rel => "disassociate", :method => "post", :href => disassociate_address_url(address.id)} 13 | - if address.instance_id 14 | %instance{ :href => instance_url(address.instance_id), :id => address.instance_id} 15 | -------------------------------------------------------------------------------- /tests/deprecated/ec2/support/ec2/describe_volumes.da39a3ee5e6b4b0d3255bfef95601890afd80709: -------------------------------------------------------------------------------- 1 | BAhbCXsLOhNhd3NfY3JlYXRlZF9hdHU6CVRpbWUNCt0bwAAAADI6C2F3c19p 2 | ZCIRdm9sLWEyMzBjY2M4Og9hd3Nfc3RhdHVzIg5hdmFpbGFibGU6EHNuYXBz 3 | aG90X2lkMDoNYXdzX3NpemVpBjoJem9uZSIPdXMtZWFzdC0xYXsLOwB1OwYN 4 | Ct0bwAAAkDw7ByIRdm9sLTgwMzFjZGVhOwgiDmF2YWlsYWJsZTsJMDsKaQY7 5 | CyIPdXMtZWFzdC0xYXsPOwB1OwYNCt0bwAAAsDA7ByIRdm9sLWM2MzBjY2Fj 6 | OwgiC2luLXVzZTsJIhJzbmFwLTU4OWE5NjMzOwppFDoaYXdzX2F0dGFjaG1l 7 | bnRfc3RhdHVzIg1hdHRhY2hlZDsLIg91cy1lYXN0LTFiOg9hd3NfZGV2aWNl 8 | Ig4vZGV2L3NkYTE6FGF3c19hdHRhY2hlZF9hdHU7Bg0K3RvAAACwMToUYXdz 9 | X2luc3RhbmNlX2lkIg9pLTc3NmEwMjE2ew87AHU7Bg0K3RvAAAAAMTsHIhF2 10 | b2wtZGUzMGNjYjQ7CCILaW4tdXNlOwkiEnNuYXAtNTg5YTk2MzM7CmkUOwwi 11 | DWF0dGFjaGVkOwsiD3VzLWVhc3QtMWE7DSIOL2Rldi9zZGExOw51OwYNCt0b 12 | wAAA8DE7DyIPaS03ZjZhMDIxZQ== 13 | -------------------------------------------------------------------------------- /clients/cimi/views/address_templates/index.haml: -------------------------------------------------------------------------------- 1 | - @title=collection_name @address_templates 2 | 3 | - content_for :breadcrumb do 4 | %ul.breadcrumb 5 | %li 6 | %a{ :href => "/cimi/cloudEntryPoint"} CloudEntryPoint 7 | %span.divider="/" 8 | %li.active 9 | AddressTemplateCollection 10 | 11 | - content_for :actions do 12 | %p 13 | %a{ :href => "#{@address_templates.id}?format=xml", :class => 'label warning' } XML 14 | %a{ :href => "#{@address_templates.id}?format=json", :class => 'label warning' } JSON 15 | 16 | %ul 17 | - @address_templates.address_templates.each do |template| 18 | %li 19 | %a{ :href => "/cimi/address_templates/#{href_to_id(template.id)}"}=href_to_id(template.id) 20 | 21 | -details do 22 | -row 'ID', @address_templates.id 23 | -row 'Count', @address_templates.count 24 | -------------------------------------------------------------------------------- /clients/cimi/views/network_templates/index.haml: -------------------------------------------------------------------------------- 1 | - @title=collection_name @network_templates 2 | 3 | - content_for :breadcrumb do 4 | %ul.breadcrumb 5 | %li 6 | %a{ :href => "/cimi/cloudEntryPoint"} CloudEntryPoint 7 | %span.divider="/" 8 | %li.active 9 | NetworkTemplateCollection 10 | 11 | - content_for :actions do 12 | %p 13 | %a{ :href => "#{@network_templates.id}?format=xml", :class => 'label warning' } XML 14 | %a{ :href => "#{@network_templates.id}?format=json", :class => 'label warning' } JSON 15 | 16 | %ul 17 | - @network_templates.network_templates.each do |template| 18 | %li 19 | %a{ :href => "/cimi/network_templates/#{href_to_id(template.id)}"}=href_to_id(template.id) 20 | 21 | -details do 22 | -row 'ID', @network_templates.id 23 | -row 'Count', @network_templates.count 24 | -------------------------------------------------------------------------------- /server/views/firewalls/index.html.haml: -------------------------------------------------------------------------------- 1 | =header "Firewalls" do 2 | %a{ :href => url_for('firewalls/new'), :'data-icon' => :plus, :'data-role' => :button, :class => 'ui-btn-right'} Create new firewall 3 | =subheader "#{Thread::current[:provider] || ENV['API_PROVIDER'] || 'default'}" 4 | 5 | %div{ :'data-role' => :content, :'data-theme' => 'c'} 6 | %ul{ :'data-role' => :listview , :'data-inset' => :true, :'data-divider-theme' => 'a'} 7 | %li{ :'data-role' => 'list-divider'}=driver_symbol 8 | - elements.each do |firewall| 9 | %li 10 | %a{ :href => firewall_url(firewall.id), :'data-ajax' => 'false'} 11 | %img{ :class => 'ui-link-thumb', :src => '/images/firewall.png'} 12 | %h3=firewall.id 13 | %p=firewall.description 14 | %span{ :class => 'ui-li-count'}=firewall.owner_id 15 | 16 | -------------------------------------------------------------------------------- /server/tests/drivers/models/instance_test.rb: -------------------------------------------------------------------------------- 1 | require 'rubygems' 2 | require 'require_relative' if RUBY_VERSION < '1.9' 3 | 4 | require_relative 'common' 5 | 6 | describe Deltacloud::Instance do 7 | 8 | before do 9 | @instance = Deltacloud::Instance.new( 10 | :id => 'inst1', 11 | :create_image => true, 12 | :name => 'Instance', 13 | :instance_profile => 'm1-small', 14 | :state => 'RUNNING' 15 | ) 16 | end 17 | 18 | it 'advertise if can be used to create image' do 19 | @instance.can_create_image?.must_equal true 20 | @instance.create_image = false 21 | @instance.can_create_image?.must_equal false 22 | end 23 | 24 | it 'advertise the current state using is_state?' do 25 | @instance.is_running?.must_equal true 26 | @instance.is_stopped?.must_equal false 27 | end 28 | 29 | end 30 | -------------------------------------------------------------------------------- /tests/deprecated/rhevm/support/fixtures/18ec06387f4e0a980cbbbbedeee85d71.fixture: -------------------------------------------------------------------------------- 1 | ["https://10.34.2.122:8443/rhevm-api-powershell/vms/f159bbf5-ecb5-40ad-acea-040096f916e7/nics","get",{"content_type":"application/xml","status":200,"body":"\n\n \n nic1\n \n \n PV\n \n \n\n"}] 2 | -------------------------------------------------------------------------------- /tests/deprecated/rhevm/support/fixtures/32c55dd505856722696e5923cbde59b7.fixture: -------------------------------------------------------------------------------- 1 | ["https://10.34.2.122:8443/rhevm-api-powershell/vms/080d18f9-6832-4dca-9efb-63573aef7c12/nics","get",{"content_type":"application/xml","status":200,"body":"\n\n \n nic1\n \n \n PV\n \n \n\n"}] 2 | -------------------------------------------------------------------------------- /tests/deprecated/rhevm/support/fixtures/bebe17c656cd81972487b80da37f002e.fixture: -------------------------------------------------------------------------------- 1 | ["https://10.34.2.122:8443/rhevm-api-powershell/vms/d624520d-edc7-4071-a576-2aee5840a510/nics","get",{"content_type":"application/xml","status":200,"body":"\n\n \n nic1\n \n \n PV\n \n \n\n"}] 2 | -------------------------------------------------------------------------------- /tests/deprecated/rhevm/support/fixtures/c02f885ab565fc077632ddda1b92db80.fixture: -------------------------------------------------------------------------------- 1 | ["https://10.34.2.122:8443/rhevm-api-powershell/vms/5b2555c9-73f1-46dc-b379-a1f6dd382c86/nics","get",{"content_type":"application/xml","status":200,"body":"\n\n \n nic1\n \n \n PV\n \n \n\n"}] 2 | -------------------------------------------------------------------------------- /site/content/assets/less/thumbnails.less: -------------------------------------------------------------------------------- 1 | // THUMBNAILS 2 | // ---------- 3 | 4 | .thumbnails { 5 | margin-left: -@gridGutterWidth; 6 | list-style: none; 7 | .clearfix(); 8 | } 9 | .thumbnails > li { 10 | float: left; 11 | margin: 0 0 @baseLineHeight @gridGutterWidth; 12 | } 13 | .thumbnail { 14 | display: block; 15 | padding: 4px; 16 | line-height: 1; 17 | border: 1px solid #ddd; 18 | .border-radius(4px); 19 | .box-shadow(0 1px 1px rgba(0,0,0,.075)); 20 | } 21 | // Add a hover state for linked versions only 22 | a.thumbnail:hover { 23 | border-color: @linkColor; 24 | .box-shadow(0 1px 4px rgba(0,105,214,.25)); 25 | } 26 | // Images and captions 27 | .thumbnail > img { 28 | display: block; 29 | max-width: 100%; 30 | margin-left: auto; 31 | margin-right: auto; 32 | } 33 | .thumbnail .caption { 34 | padding: 9px; 35 | } 36 | -------------------------------------------------------------------------------- /tests/deprecated/sbc/step_definitions/instances_steps.rb: -------------------------------------------------------------------------------- 1 | Then /^instance should be in ([A-Z]+) state$/ do |state| 2 | (xml/'instance/state').first.text.should == state 3 | end 4 | 5 | Then /^instance should have defined actions$/ do |table| 6 | actions = table.raw.flatten 7 | (xml/'instance/actions/link').each do |action| 8 | actions.delete(action[:rel]) 9 | end 10 | actions.should be_empty 11 | end 12 | 13 | Then /^I want to ([a-z]+) this instance$/ do |action| 14 | get @current_collection_url 15 | end 16 | 17 | Then /^I follow ([a-z]+) link in actions$/ do |action| 18 | link = (xml/"instance/actions/link[@rel='#{action}']").first 19 | @instance_id = (xml/'instance').first[:id] 20 | if link[:method].eql?('post') 21 | post link[:href] 22 | end 23 | if link[:method].eql?('delete') 24 | delete link[:href] 25 | end 26 | end -------------------------------------------------------------------------------- /clients/cimi/views/resource_metadata/index.haml: -------------------------------------------------------------------------------- 1 | - @title=collection_name @resource_metadata 2 | 3 | - content_for :breadcrumb do 4 | %ul.breadcrumb 5 | %li 6 | %a{ :href => "/cimi/cloudEntryPoint"} CloudEntryPoint 7 | %span.divider="/" 8 | %li.active 9 | ResourceMetadataCollection 10 | 11 | - content_for :actions do 12 | %p 13 | %a{ :href => "#{@resource_metadata.id}?format=xml", :class => 'label warning' } XML 14 | %a{ :href => "#{@resource_metadata.id}?format=json", :class => 'label warning' } JSON 15 | 16 | %h3 ResourceMetadataCollection 17 | %ul 18 | - @resource_metadata.resource_metadata.each do |meta| 19 | %li 20 | %a{ :href => "/cimi/resource_metadata/#{href_to_id(meta.id)}"}=href_to_id(meta.id) 21 | 22 | - details do 23 | - row 'ID', @resource_metadata.id 24 | - row 'Count', @resource_metadata.count 25 | -------------------------------------------------------------------------------- /server/tests/cimi/db/entity_test.rb: -------------------------------------------------------------------------------- 1 | require 'rubygems' 2 | require 'require_relative' if RUBY_VERSION < '1.9' 3 | require 'minitest/autorun' 4 | 5 | require_relative 'db_helper.rb' 6 | require_relative '../spec_helper.rb' 7 | require_relative './../collections/common.rb' 8 | 9 | describe "Deltacloud::Database::Entity" do 10 | 11 | before do 12 | @provider = Deltacloud::Database::Provider 13 | @entity = Deltacloud::Database::Entity 14 | @baseModel = CIMI::Model::Base 15 | @prov = @provider::lookup 16 | end 17 | 18 | it 'newly created entities have valid ent_properties' do 19 | model = @baseModel.new(:id => "/base/42") 20 | ent = @entity.retrieve(model) 21 | ent.properties = nil 22 | ent.exists?.must_equal false 23 | ent.save 24 | 25 | ent = @entity.retrieve(model) 26 | ent.exists?.must_equal true 27 | end 28 | end 29 | -------------------------------------------------------------------------------- /clients/cimi/views/machine_templates/show.haml: -------------------------------------------------------------------------------- 1 | - @title="#{@machine_template.name}" 2 | 3 | - content_for :breadcrumb do 4 | %ul.breadcrumb 5 | %li 6 | %a{ :href => "/cimi/cloudEntryPoint"} CloudEntryPoint 7 | %span.divider="/" 8 | %li 9 | %a{ :href => "/cimi/machine_templates"} MachineTemplateCollection 10 | %span.divider="/" 11 | %li.active 12 | = @machine_template.name 13 | 14 | -details 'MachineTemplate details' do 15 | -row 'id',@machine_template.id 16 | -row 'Name',@machine_template.name 17 | -row 'Description',@machine_template.description 18 | -row 'Created',@machine_template.created 19 | -row 'Machine Image', url("/cimi/machine_images/#{href_to_id @machine_template.machine_image.href}") 20 | -row 'Machine Configuration', url("/cimi/machine_configurations/#{href_to_id @machine_template.machine_config.href}") 21 | -------------------------------------------------------------------------------- /clients/cimi/views/network_configurations/index.haml: -------------------------------------------------------------------------------- 1 | - @title=collection_name @network_configs 2 | 3 | - content_for :breadcrumb do 4 | %ul.breadcrumb 5 | %li 6 | %a{ :href => "/cimi/cloudEntryPoint"} CloudEntryPoint 7 | %span.divider="/" 8 | %li.active 9 | NetworkConfigurationCollection 10 | 11 | - content_for :actions do 12 | %p 13 | %a{ :href => "#{@network_configs.id}?format=xml", :class => 'label warning' } XML 14 | %a{ :href => "#{@network_configs.id}?format=json", :class => 'label warning' } JSON 15 | 16 | %ul 17 | - @network_configs.network_configurations.each do |conf| 18 | %li 19 | %a{ :href => "/cimi/network_configurations/#{href_to_id(conf.id)}"}=href_to_id(conf.id) 20 | 21 | -details 'NetworkConfigurationCollection details' do 22 | -row 'ID', @network_configs.id 23 | -row 'Count', @network_configs.count 24 | -------------------------------------------------------------------------------- /server/views/storage_volumes/new.html.haml: -------------------------------------------------------------------------------- 1 | =header "Create new storage volume" 2 | 3 | 4 | %div{ :'data-role' => :content, :'data-theme' => 'c', :class => 'middle-dialog'} 5 | %form{ :action => storage_volumes_url, :method => :post } 6 | %p 7 | %label 8 | Name: 9 | %input{ :name => 'name', :size => 30 } (optional) 10 | %p 11 | %label 12 | Snapshot ID: 13 | %input{ :name => 'snapshot_id', :size => 30 } (optional) 14 | %p 15 | %label 16 | Capacity (in GB): 17 | %input{ :name => "capacity", :size => 3, :value => "1"} 18 | %p 19 | %label 20 | Realm ID: 21 | %select{ :name => 'realm_id' } 22 | - driver.realms(credentials).each do |i| 23 | %option{ :value => "#{i.id}"} #{i.name} 24 | %p 25 | %input{ :type => :submit, :name => "commit", :value => "Create" }/ 26 | -------------------------------------------------------------------------------- /tests/deprecated/rhevm/support/fixtures/ee8de9dfd3d696e5bfc1537a6405aab1.fixture: -------------------------------------------------------------------------------- 1 | ["https://10.34.2.122:8443/rhevm-api-powershell/clusters/","get",{"content_type":"application/xml","status":200,"body":"\n\n \n Default\n The default server cluster\n \n \n \n \n \n \n \n \n\n"}] 2 | -------------------------------------------------------------------------------- /tests/deprecated/ec2/step_definitions/hardware_profiles_steps.rb: -------------------------------------------------------------------------------- 1 | Then /^it should have a (\w+) attribute$/ do |name| 2 | attr = output_xml.xpath('/hardware_profile').first[name] 3 | attr.should_not be_nil 4 | end 5 | 6 | Then /^it should have a (\w+) property '(.+)'$/ do |kind, name| 7 | props = output_xml.xpath("/hardware_profile/property[@name = '#{name}']") 8 | props.size.should == 1 9 | prop = props.first 10 | prop['kind'].should == kind 11 | prop['unit'].should_not be_nil 12 | if kind == 'range' 13 | ranges = prop.xpath('range') 14 | ranges.size.should == 1 15 | range = ranges.first 16 | range['first'].should_not be_nil 17 | range['last'].should_not be_nil 18 | end 19 | if kind == 'enum' 20 | enums = prop.xpath('enum') 21 | enums.size.should == 1 22 | enums.first.xpath('entry').size.should_not == 0 23 | end 24 | end 25 | 26 | -------------------------------------------------------------------------------- /tests/deprecated/mock/step_definitions/hardware_profiles_steps.rb: -------------------------------------------------------------------------------- 1 | Then /^it should have a (\w+) attribute$/ do |name| 2 | attr = output_xml.xpath('/hardware_profile').first[name] 3 | attr.should_not be_nil 4 | end 5 | 6 | Then /^it should have a (\w+) property '(.+)'$/ do |kind, name| 7 | props = output_xml.xpath("/hardware_profile/property[@name = '#{name}']") 8 | props.size.should == 1 9 | prop = props.first 10 | prop['kind'].should == kind 11 | prop['unit'].should_not be_nil 12 | if kind == 'range' 13 | ranges = prop.xpath('range') 14 | ranges.size.should == 1 15 | range = ranges.first 16 | range['first'].should_not be_nil 17 | range['last'].should_not be_nil 18 | end 19 | if kind == 'enum' 20 | enums = prop.xpath('enum') 21 | enums.size.should == 1 22 | enums.first.xpath('entry').size.should_not == 0 23 | end 24 | end 25 | 26 | -------------------------------------------------------------------------------- /clients/cimi/views/network_port_templates/index.haml: -------------------------------------------------------------------------------- 1 | - @title=collection_name @network_port_templates 2 | 3 | - content_for :breadcrumb do 4 | %ul.breadcrumb 5 | %li 6 | %a{ :href => "/cimi/cloudEntryPoint"} CloudEntryPoint 7 | %span.divider="/" 8 | %li.active 9 | NetworkPortTemplateCollection 10 | 11 | - content_for :actions do 12 | %p 13 | %a{ :href => "#{@network_port_templates.id}?format=xml", :class => 'label warning' } XML 14 | %a{ :href => "#{@network_port_templates.id}?format=json", :class => 'label warning' } JSON 15 | 16 | %ul 17 | - @network_port_templates.network_port_templates.each do |template| 18 | %li 19 | %a{ :href => "/cimi/network_port_templates/#{href_to_id(template.id)}"}=href_to_id(template.id) 20 | 21 | -details do 22 | -row 'ID', @network_port_templates.id 23 | -row 'Count', @network_port_templates.count 24 | -------------------------------------------------------------------------------- /tests/deprecated/ec2/support/ec2/launch_instances.c4b6748639aec6ee0563714c9b6663e90253577b: -------------------------------------------------------------------------------- 1 | BAhbBnscOhFhd3NfaW1hZ2VfaWQiEWFtaS0xNmEzNTc3ZjoTYXdzX3N0YXRl 2 | X2NvZGUiDHBlbmRpbmc6FmF3c19wcm9kdWN0X2NvZGVzWwA6DmF3c19zdGF0 3 | ZSIMcGVuZGluZzoNZG5zX25hbWUiADoVbW9uaXRvcmluZ19zdGF0ZSINZGlz 4 | YWJsZWQ6EXNzaF9rZXlfbmFtZSIAOg9hd3NfZ3JvdXBzWwYiDGRlZmF1bHQ6 5 | EWFyY2hpdGVjdHVyZSIAOhRhd3NfbGF1bmNoX3RpbWUiHTIwMTEtMDgtMDhU 6 | MTA6MTI6MTUuMDAwWjoSYXdzX2tlcm5lbF9pZCIRYWtpLTQwN2Q5NTI5Ogl0 7 | YWdzewA6FXJvb3RfZGV2aWNlX3R5cGUiCGViczoWYXdzX2luc3RhbmNlX3R5 8 | cGUiDW0xLnNtYWxsOhpibG9ja19kZXZpY2VfbWFwcGluZ3NbADoPYXdzX3Jl 9 | YXNvbiIAOg5hd3Nfb3duZXIiETI5Mzc4Nzc0OTg4NDoaYXdzX2F2YWlsYWJp 10 | bGl0eV96b25lIg91cy1lYXN0LTFiOhVhbWlfbGF1bmNoX2luZGV4IgYwOhdh 11 | d3NfcmVzZXJ2YXRpb25faWQiD3ItZjMxYTk0OWM6FGF3c19pbnN0YW5jZV9p 12 | ZCIPaS00MzZhMDIyMjoVcm9vdF9kZXZpY2VfbmFtZSIOL2Rldi9zZGExOhVw 13 | cml2YXRlX2Ruc19uYW1lIgA= 14 | -------------------------------------------------------------------------------- /clients/cimi/views/forwarding_groups/show.haml: -------------------------------------------------------------------------------- 1 | - @title="#{@fg.name}" 2 | 3 | - content_for :breadcrumb do 4 | %ul.breadcrumb 5 | %li 6 | %a{ :href => "/cimi/cloudEntryPoint"} CloudEntryPoint 7 | %span.divider="/" 8 | %li 9 | %a{ :href => "/cimi/forwarding_groups"} ForwardingGroupCollection 10 | %span.divider="/" 11 | %li.active 12 | =@fg.name 13 | 14 | - content_for :actions do 15 | %p 16 | %a{ :href => "#{@fg.id}?format=xml", :class => 'label warning' } XML 17 | %a{ :href => "#{@fg.id}?format=json", :class => 'label warning' } JSON 18 | 19 | %blockquote 20 | %p 21 | 22 | 23 | -details 'ForwardingGroup details' do 24 | -row 'ID', @fg.id 25 | -row 'Description', @fg.description 26 | -row 'Created', @fg.created 27 | 28 | -details 'ForwardingGroup networks' do 29 | -@fg.networks.each do |net| 30 | -row 'ID', net.href 31 | -------------------------------------------------------------------------------- /tests/deprecated/ec2/support/ec2/stop_describe_instances.b5f0a55c4b7b77954ce958af619973e1764f1d5c: -------------------------------------------------------------------------------- 1 | BAhbBnscOhFhd3NfaW1hZ2VfaWQiEWFtaS0xNmEzNTc3ZjoTYXdzX3N0YXRl 2 | X2NvZGUiBjA6FmF3c19wcm9kdWN0X2NvZGVzWwA6DmF3c19zdGF0ZSIMcGVu 3 | ZGluZzoNZG5zX25hbWUiADoVbW9uaXRvcmluZ19zdGF0ZSINZGlzYWJsZWQ6 4 | EXNzaF9rZXlfbmFtZSIAOg9hd3NfZ3JvdXBzWwYiDGRlZmF1bHQ6EWFyY2hp 5 | dGVjdHVyZSIJaTM4NjoUYXdzX2xhdW5jaF90aW1lIh0yMDExLTA4LTA4VDEw 6 | OjEyOjE1LjAwMFo6EmF3c19rZXJuZWxfaWQiEWFraS00MDdkOTUyOToJdGFn 7 | c3sAOhVyb290X2RldmljZV90eXBlIghlYnM6FmF3c19pbnN0YW5jZV90eXBl 8 | Ig1tMS5zbWFsbDoaYmxvY2tfZGV2aWNlX21hcHBpbmdzWwA6D2F3c19yZWFz 9 | b24iADoOYXdzX293bmVyIhEyOTM3ODc3NDk4ODQ6GmF3c19hdmFpbGFiaWxp 10 | dHlfem9uZSIPdXMtZWFzdC0xYjoVYW1pX2xhdW5jaF9pbmRleCIGMDoXYXdz 11 | X3Jlc2VydmF0aW9uX2lkIg9yLWYzMWE5NDljOhRhd3NfaW5zdGFuY2VfaWQi 12 | D2ktNDM2YTAyMjI6FXJvb3RfZGV2aWNlX25hbWUiDi9kZXYvc2RhMToVcHJp 13 | dmF0ZV9kbnNfbmFtZSIA 14 | -------------------------------------------------------------------------------- /NOTICE: -------------------------------------------------------------------------------- 1 | Apache Deltacloud 2 | Copyright 2010-2012 The Apache Software Foundation 3 | 4 | This product includes software developed at The Apache Software Foundation 5 | (http://www.apache.org/). 6 | 7 | This product includes software developed by Red Hat, 8 | Inc. (http://www.redhat.com/) 9 | 10 | This product includes software developed by IBM Corporation 11 | 12 | This product includes software developed by the OpenNebula Project 13 | (http://opennebula.org/) 14 | 15 | This product includes software developed by the jQuery Project 16 | (http://jquerymobile.com/) 17 | 18 | This product includes icons created by David Vignon licensed under LGPL 19 | (http://www.icon-king.com/) 20 | 21 | This product includes software developed by Christian Neukirchen 22 | (https://github.com/rack/rack) 23 | 24 | This product includes software developed by ProfitBricks GmbH 25 | (https://profitbricks.com/) 26 | -------------------------------------------------------------------------------- /tests/deprecated/ec2/support/ec2/create_launch_instances.c4b6748639aec6ee0563714c9b6663e90253577b: -------------------------------------------------------------------------------- 1 | BAhbBnscOhFhd3NfaW1hZ2VfaWQiEWFtaS0xNmEzNTc3ZjoTYXdzX3N0YXRl 2 | X2NvZGUiDHBlbmRpbmc6FmF3c19wcm9kdWN0X2NvZGVzWwA6DmF3c19zdGF0 3 | ZSIMcGVuZGluZzoNZG5zX25hbWUiADoVbW9uaXRvcmluZ19zdGF0ZSINZGlz 4 | YWJsZWQ6EXNzaF9rZXlfbmFtZSIAOg9hd3NfZ3JvdXBzWwYiDGRlZmF1bHQ6 5 | EWFyY2hpdGVjdHVyZSIAOhRhd3NfbGF1bmNoX3RpbWUiHTIwMTEtMDgtMDhU 6 | MTA6MTI6MDguMDAwWjoSYXdzX2tlcm5lbF9pZCIRYWtpLTQwN2Q5NTI5Ogl0 7 | YWdzewA6FXJvb3RfZGV2aWNlX3R5cGUiCGViczoWYXdzX2luc3RhbmNlX3R5 8 | cGUiDW0xLnNtYWxsOhpibG9ja19kZXZpY2VfbWFwcGluZ3NbADoPYXdzX3Jl 9 | YXNvbiIAOg5hd3Nfb3duZXIiETI5Mzc4Nzc0OTg4NDoaYXdzX2F2YWlsYWJp 10 | bGl0eV96b25lIg91cy1lYXN0LTFiOhVhbWlfbGF1bmNoX2luZGV4IgYwOhdh 11 | d3NfcmVzZXJ2YXRpb25faWQiD3ItZmYxYTk0OTA6FGF3c19pbnN0YW5jZV9p 12 | ZCIPaS03NzZhMDIxNjoVcm9vdF9kZXZpY2VfbmFtZSIOL2Rldi9zZGExOhVw 13 | cml2YXRlX2Ruc19uYW1lIgA= 14 | -------------------------------------------------------------------------------- /server/tests/drivers/fgcp/provider_test.rb: -------------------------------------------------------------------------------- 1 | require 'rubygems' 2 | require 'require_relative' if RUBY_VERSION < '1.9' 3 | 4 | require_relative 'common.rb' 5 | 6 | describe 'FgcpDriver Providers' do 7 | 8 | before do 9 | @driver = Deltacloud::new(:fgcp, credentials) 10 | VCR.insert_cassette __name__ 11 | end 12 | 13 | after do 14 | VCR.eject_cassette 15 | end 16 | 17 | it 'must support listing of available providers' do 18 | providers = @driver.providers 19 | providers.wont_be_empty 20 | providers.each { |p| p.must_be_kind_of Deltacloud::Provider } 21 | providers.each { |p| p.name.wont_be_empty } 22 | providers.each { |p| p.url.wont_be_empty } 23 | providers.each { |p| p.id.wont_be_empty } 24 | providers.each { |p| ['fgcp-au', 'fgcp-sg', 'fgcp-uk', 'fgcp-us', 'fgcp-de', 'fgcp-jp-east', 'fgcp-jp-west'].must_include p.id } 25 | end 26 | 27 | end 28 | -------------------------------------------------------------------------------- /server/views/hardware_profiles/show.xml.haml: -------------------------------------------------------------------------------- 1 | - unless defined?(partial) 2 | !!! XML 3 | %hardware_profile{ :href => hardware_profile_url(hardware_profile.id), :id => hardware_profile.id } 4 | %id= hardware_profile.id 5 | %name< 6 | = hardware_profile.name 7 | - hardware_profile.each_property do |prop| 8 | - attr = { :name => prop.name, :kind => prop.kind, :unit => prop.unit } 9 | - if prop.kind == :fixed 10 | %property{ attr, :value => prop.value }/ 11 | - else 12 | %property{ attr, :value => prop.default } 13 | %param{ :operation => "create", :href => instances_url, :method => "post", :name => prop.param } 14 | - if prop.kind == :range 15 | %range{ :first => prop.first, :last => prop.last }/ 16 | - elsif prop.kind == :enum 17 | %enum 18 | - prop.values.each do |v| 19 | %entry{ :value => v }/ 20 | -------------------------------------------------------------------------------- /tests/deprecated/ec2/support/ec2/create-hwp_launch_instances.378a10da4274bad1f6351b08d0168a5b65a85aaf: -------------------------------------------------------------------------------- 1 | BAhbBnscOhFhd3NfaW1hZ2VfaWQiEWFtaS0xNmEzNTc3ZjoTYXdzX3N0YXRl 2 | X2NvZGUiDHBlbmRpbmc6FmF3c19wcm9kdWN0X2NvZGVzWwA6DmF3c19zdGF0 3 | ZSIMcGVuZGluZzoNZG5zX25hbWUiADoVbW9uaXRvcmluZ19zdGF0ZSINZGlz 4 | YWJsZWQ6EXNzaF9rZXlfbmFtZSIAOg9hd3NfZ3JvdXBzWwYiDGRlZmF1bHQ6 5 | EWFyY2hpdGVjdHVyZSIAOhRhd3NfbGF1bmNoX3RpbWUiHTIwMTEtMDgtMDhU 6 | MTA6MTI6MTMuMDAwWjoSYXdzX2tlcm5lbF9pZCIRYWtpLTQwN2Q5NTI5Ogl0 7 | YWdzewA6FXJvb3RfZGV2aWNlX3R5cGUiCGViczoWYXdzX2luc3RhbmNlX3R5 8 | cGUiDXQxLm1pY3JvOhpibG9ja19kZXZpY2VfbWFwcGluZ3NbADoPYXdzX3Jl 9 | YXNvbiIAOg5hd3Nfb3duZXIiETI5Mzc4Nzc0OTg4NDoaYXdzX2F2YWlsYWJp 10 | bGl0eV96b25lIg91cy1lYXN0LTFhOhVhbWlfbGF1bmNoX2luZGV4IgYwOhdh 11 | d3NfcmVzZXJ2YXRpb25faWQiD3ItZjcxYTk0OTg6FGF3c19pbnN0YW5jZV9p 12 | ZCIPaS03ZjZhMDIxZToVcm9vdF9kZXZpY2VfbmFtZSIOL2Rldi9zZGExOhVw 13 | cml2YXRlX2Ruc19uYW1lIgA= 14 | -------------------------------------------------------------------------------- /clients/cimi/views/volume_configurations/index.haml: -------------------------------------------------------------------------------- 1 | - @title=collection_name @volume_configurations 2 | 3 | - content_for :breadcrumb do 4 | %ul.breadcrumb 5 | %li 6 | %a{ :href => "/cimi/cloudEntryPoint"} CloudEntryPoint 7 | %span.divider="/" 8 | %li.active 9 | VolumeConfigurationCollection 10 | 11 | - content_for :actions do 12 | %p 13 | %a{ :href => "#{@volume_configurations.id}?format=xml", :class => 'label warning' } XML 14 | %a{ :href => "#{@volume_configurations.id}?format=json", :class => 'label warning' } JSON 15 | 16 | %ul 17 | - @volume_configurations.volume_configurations.each do |conf| 18 | %li 19 | %a{ :href => "/cimi/volume_configurations/#{href_to_id(conf.id)}"}=href_to_id(conf.id) 20 | 21 | - details 'VolumeConfigurationCollection details' do 22 | -row 'ID', @volume_configurations.id 23 | -row 'Count', @volume_configurations.count 24 | -------------------------------------------------------------------------------- /server/NOTICE: -------------------------------------------------------------------------------- 1 | Apache Deltacloud 2 | Copyright 2010-2012 The Apache Software Foundation 3 | 4 | This product includes software developed at The Apache Software Foundation 5 | (http://www.apache.org/). 6 | 7 | This product includes software developed by Red Hat, 8 | Inc. (http://www.redhat.com/) 9 | 10 | This product includes software developed by IBM Corporation 11 | 12 | This product includes software developed by the OpenNebula Project 13 | (http://opennebula.org/) 14 | 15 | This product includes software developed by the jQuery Project 16 | (http://jquerymobile.com/) 17 | 18 | This product includes icons created by David Vignon licensed under LGPL 19 | (http://www.icon-king.com/) 20 | 21 | This product includes software developed by Christian Neukirchen 22 | (https://github.com/rack/rack) 23 | 24 | This product includes software developed by the Ruby On Rails project 25 | (https://github.com/rails) -------------------------------------------------------------------------------- /tests/deprecated/rhevm/support/fixtures/7fbe6810c9082b32ba685ad9afe7804c.fixture: -------------------------------------------------------------------------------- 1 | ["https://10.34.2.122:8443/rhevm-api-powershell/datacenters/98f3433b-6b93-46d0-8dd1-d6a9bab4abcd","get",{"content_type":"application/xml","status":200,"body":"\n\n Brno\n \n \n NFS\n \n \n \n \n UP\n\n"}] 2 | -------------------------------------------------------------------------------- /tests/deprecated/rhevm/support/fixtures/9b71abd5067c1079052d4c88f81f7f81.fixture: -------------------------------------------------------------------------------- 1 | ["https://10.34.2.122:8443/rhevm-api-powershell/vms/5b2555c9-73f1-46dc-b379-a1f6dd382c86/disks","get",{"content_type":"application/xml","status":200,"body":"\n\n \n _bababab_12/21/2010 12:08:31 PM\n \n 262144\n SYSTEM\n OK\n VIRTIO\n COW\n true\n true\n \n\n"}] 2 | -------------------------------------------------------------------------------- /tests/deprecated/rhevm/support/fixtures/c9a5c35d6c00ea0207e2faa354504a41.fixture: -------------------------------------------------------------------------------- 1 | ["https://10.34.2.122:8443/rhevm-api-powershell/vms/d624520d-edc7-4071-a576-2aee5840a510/disks","get",{"content_type":"application/xml","status":200,"body":"\n\n \n _test5_12/20/2010 6:34:19 PM\n \n 262144\n SYSTEM\n OK\n VIRTIO\n COW\n true\n true\n \n\n"}] 2 | -------------------------------------------------------------------------------- /tests/deprecated/rhevm/support/fixtures/fb8424ef5b5bcaa21c59e124fe316c1c.fixture: -------------------------------------------------------------------------------- 1 | ["https://10.34.2.122:8443/rhevm-api-powershell/vms/080d18f9-6832-4dca-9efb-63573aef7c12/disks","get",{"content_type":"application/xml","status":200,"body":"\n\n \n _apitest1_12/21/2010 3:35:18 PM\n \n 458752\n SYSTEM\n OK\n VIRTIO\n COW\n true\n true\n \n\n"}] 2 | -------------------------------------------------------------------------------- /tests/deprecated/rhevm/support/fixtures/812b32fd276b1d09f3238088bc3a69a6.fixture: -------------------------------------------------------------------------------- 1 | ["https://10.34.2.122:8443/rhevm-api-powershell/vms/f159bbf5-ecb5-40ad-acea-040096f916e7/disks","get",{"content_type":"application/xml","status":200,"body":"\n\n \n _TestPool-1_12/21/2010 2:00:31 PM\n \n 458752\n SYSTEM\n OK\n VIRTIO\n COW\n true\n true\n \n\n"}] 2 | -------------------------------------------------------------------------------- /clients/cimi/views/machine_configurations/index.haml: -------------------------------------------------------------------------------- 1 | - @title=collection_name @machine_configurations 2 | 3 | - content_for :breadcrumb do 4 | %ul.breadcrumb 5 | %li 6 | %a{ :href => "/cimi/cloudEntryPoint"} CloudEntryPoint 7 | %span.divider="/" 8 | %li.active=collection_name @machine_configurations 9 | 10 | - content_for :actions do 11 | %p 12 | %a{ :href => "#{@machine_configurations.id}?format=xml", :class => 'label warning' } XML 13 | %a{ :href => "#{@machine_configurations.id}?format=json", :class => 'label warning' } JSON 14 | 15 | %h3 MachineConfigurationCollection 16 | %ul 17 | - @machine_configurations.machine_configurations.each do |conf| 18 | %li 19 | %a{ :href => "/cimi/machine_configurations/#{href_to_id(conf.id)}"}=href_to_id(conf.id) 20 | 21 | - details do 22 | - row 'ID', @machine_configurations.id 23 | - row 'Count', @machine_configurations.count 24 | -------------------------------------------------------------------------------- /clients/cimi/views/volume_configurations/show.haml: -------------------------------------------------------------------------------- 1 | - @title="#{@volume_configuration.name}" 2 | 3 | - content_for :breadcrumb do 4 | %ul.breadcrumb 5 | %li 6 | %a{ :href => "/cimi/cloudEntryPoint"} CloudEntryPoint 7 | %span.divider="/" 8 | %li 9 | %a{ :href => "/cimi/volume_configurations"} VolumeConfigurationCollection 10 | %span.divider="/" 11 | %li.active 12 | = @volume_configuration.name 13 | 14 | - content_for :actions do 15 | %p 16 | %a{ :href => "#{@volume_configuration.id}?format=xml", :class => 'label warning' } XML 17 | %a{ :href => "#{@volume_configuration.id}?format=json", :class => 'label warning' } JSON 18 | 19 | 20 | - details do 21 | -row 'ID', @volume_configuration.id 22 | -row 'Description', @volume_configuration.description 23 | -row 'Created', @volume_configuration.created 24 | -row 'Capacity', @volume_configuration.capacity 25 | 26 | -------------------------------------------------------------------------------- /server/lib/sinatra/body_proxy.rb: -------------------------------------------------------------------------------- 1 | # This code was originaly copied from Rack::BodyProxy 2 | # https://github.com/rack/rack/blob/master/lib/rack/body_proxy.rb 3 | # 4 | # Copyright (C) 2007, 2008, 2009, 2010 Christian Neukirchen 5 | 6 | module Rack 7 | class BodyProxy 8 | def initialize(body, &block) 9 | @body, @block, @closed = body, block, false 10 | end 11 | 12 | def respond_to?(*args) 13 | super or @body.respond_to?(*args) 14 | end 15 | 16 | def close 17 | raise IOError, "closed stream" if @closed 18 | begin 19 | @body.close if @body.respond_to? :close 20 | ensure 21 | @block.call 22 | @closed = true 23 | end 24 | end 25 | 26 | def closed? 27 | @closed 28 | end 29 | 30 | def method_missing(*args, &block) 31 | @body.__send__(*args, &block) 32 | end 33 | end 34 | end 35 | -------------------------------------------------------------------------------- /server/views/network_interfaces/show.xml.haml: -------------------------------------------------------------------------------- 1 | - unless defined?(partial) 2 | !!! XML 3 | %network_interface{ :href => network_interface_url(network_interface.id), :id => network_interface.id } 4 | %name=network_interface.name 5 | %ip_address=network_interface.ip_address 6 | -if subnets 7 | %network{:href => subnet_url(network_interface.network), :rel => "subnet", :id => network_interface.network} #{network_interface.network} 8 | -else 9 | %network{:href => network_url(network_interface.network), :rel => "network", :id => network_interface.network} #{network_interface.network} 10 | %instance{:href => instance_url(network_interface.instance), :id=>network_interface.instance} #{network_interface.instance} 11 | %actions 12 | - if driver.respond_to?(:destroy_network_interface) 13 | %link{ :rel => "destroy", :method => "delete", :href => destroy_network_interface_url(network_interface.id)} 14 | --------------------------------------------------------------------------------