From e2028d1e372177ee8502e1c5d0d5fb80b4d4288e Mon Sep 17 00:00:00 2001 From: Sergey Otpuschennikov Date: Mon, 28 Oct 2013 14:04:58 +0400 Subject: [PATCH] Added SPECS end SOURCES fot rpm Change-Id: Ie56cd4662dc3cf7a8d81c28048d6e6e3c53e9e5a --- .gitignore | 19 - .testr.conf | 4 - CONTRIBUTING.rst | 17 - HACKING.rst | 43 - LICENSE | 176 -- MANIFEST.in | 27 - README.rst | 39 - babel.cfg | 1 - bin/cinder-keystone-setup | 17 - bin/heat-api | 66 - bin/heat-api-cfn | 68 - bin/heat-api-cloudwatch | 68 - bin/heat-db-setup | 264 -- bin/heat-engine | 68 - bin/heat-keystone-setup | 243 -- bin/heat-manage | 34 - contrib/redhat-eventlet.patch | 16 - doc/.gitignore | 2 - doc/Makefile | 153 - doc/README.rst | 35 - doc/docbkx/README.rst | 35 - doc/docbkx/api-ref/pom.xml | 76 - doc/docbkx/api-ref/src/docbkx/api-ref.xml | 24 - .../src/wadls/heat-api/src/heat-api-1.0.wadl | 389 --- .../heat-api/src/samples/stack_create.json | 9 - .../heat-api/src/samples/stack_update.json | 8 - .../src/samples/template_validate.json | 3 - doc/docbkx/heat-admin/app_core.xml | 16 - doc/docbkx/heat-admin/bk-heat-admin-guide.xml | 69 - doc/docbkx/heat-admin/ch_install.xml | 19 - doc/docbkx/heat-admin/ch_limitations.xml | 43 - doc/docbkx/heat-admin/ch_overview.xml | 57 - doc/docbkx/heat-admin/ch_preface.xml | 68 - doc/docbkx/heat-admin/ch_using.xml | 43 - doc/docbkx/heat-admin/pom.xml | 151 - doc/docbkx/heat-cli-guide/pom.xml | 132 - .../heat-cli-guide/src/bk-cli-guide.xml | 15 - .../heat-cli-guide/src/heat_cli_commands.xml | 22 - .../heat-cli-guide/src/heat_cli_howto.xml | 13 - .../heat-cli-guide/src/heat_cli_install.xml | 84 - doc/source/_templates/.placeholder | 0 doc/source/architecture.rst | 67 - doc/source/conf.py | 406 --- doc/source/getting_started/index.rst | 24 - doc/source/getting_started/jeos_building.rst | 161 -- doc/source/getting_started/on_devstack.rst | 117 - doc/source/getting_started/on_fedora.rst | 365 --- doc/source/getting_started/on_other.rst | 22 - doc/source/getting_started/on_ubuntu.rst | 233 -- doc/source/glossary.rst | 27 - doc/source/index.rst | 68 - doc/source/man/heat-api-cfn.rst | 39 - doc/source/man/heat-api-cloudwatch.rst | 33 - doc/source/man/heat-api.rst | 39 - doc/source/man/heat-db-setup.rst | 63 - doc/source/man/heat-engine.rst | 38 - doc/source/man/heat-keystone-setup.rst | 27 - doc/source/man/index.rst | 25 - doc/source/sourcecode/.gitignore | 1 - doc/source/template_guide/cfn.rst | 16 - doc/source/template_guide/environment.rst | 79 - doc/source/template_guide/functions.rst | 324 --- doc/source/template_guide/hot_guide.rst | 223 -- doc/source/template_guide/hot_spec.rst | 536 ---- doc/source/template_guide/index.rst | 26 - doc/source/template_guide/openstack.rst | 17 - doc/source/template_guide/rackspace.rst | 16 - .../cfn/WordPress_Single_Instance.rst | 59 - doc/source/templates/hot/hello_world.rst | 40 - doc/source/templates/index.rst | 30 - docs/GettingStarted.rst | 8 - docs/api.md | 294 -- etc/heat/api-paste.ini | 87 - etc/heat/environment.d/default.yaml | 9 - etc/heat/heat.conf.sample | 711 ----- etc/heat/policy.json | 27 - etc/heat/templates/AWS_CloudWatch_Alarm.yaml | 85 - etc/heat/templates/AWS_RDS_DBInstance.yaml | 127 - heat/__init__.py | 21 - heat/api/__init__.py | 14 - heat/api/aws/__init__.py | 14 - heat/api/aws/ec2token.py | 226 -- heat/api/aws/exception.py | 287 -- heat/api/aws/utils.py | 115 - heat/api/cfn/__init__.py | 27 - heat/api/cfn/v1/__init__.py | 88 - heat/api/cfn/v1/signal.py | 59 - heat/api/cfn/v1/stacks.py | 678 ----- heat/api/cfn/versions.py | 59 - heat/api/cloudwatch/__init__.py | 81 - heat/api/cloudwatch/versions.py | 59 - heat/api/cloudwatch/watch.py | 351 --- heat/api/middleware/__init__.py | 14 - heat/api/middleware/fault.py | 127 - heat/api/middleware/version_negotiation.py | 125 - heat/api/openstack/__init__.py | 27 - heat/api/openstack/v1/__init__.py | 167 -- heat/api/openstack/v1/actions.py | 67 - heat/api/openstack/v1/events.py | 133 - heat/api/openstack/v1/resources.py | 111 - heat/api/openstack/v1/stacks.py | 367 --- heat/api/openstack/v1/util.py | 64 - heat/api/openstack/versions.py | 59 - heat/cloudinit/__init__.py | 0 heat/cloudinit/boothook.sh | 7 - heat/cloudinit/config | 12 - heat/cloudinit/loguserdata.py | 101 - heat/cloudinit/part_handler.py | 46 - heat/cmd/__init__.py | 0 heat/cmd/manage.py | 89 - heat/common/__init__.py | 14 - heat/common/auth_password.py | 135 - heat/common/auth_token.py | 48 - heat/common/config.py | 196 -- heat/common/context.py | 201 -- heat/common/crypt.py | 52 - heat/common/custom_backend_auth.py | 71 - heat/common/environment_format.py | 50 - heat/common/exception.py | 331 --- heat/common/heat_keystoneclient.py | 301 -- heat/common/identifier.py | 238 -- heat/common/plugin_loader.py | 99 - heat/common/policy.py | 98 - heat/common/short_id.py | 58 - heat/common/template_format.py | 129 - heat/common/timeutils.py | 42 - heat/common/urlfetch.py | 58 - heat/common/wsgi.py | 904 ------ heat/db/__init__.py | 0 heat/db/api.py | 213 -- heat/db/migration.py | 33 - heat/db/sqlalchemy/__init__.py | 0 heat/db/sqlalchemy/api.py | 459 --- heat/db/sqlalchemy/manage.py | 38 - heat/db/sqlalchemy/migrate_repo/README | 4 - heat/db/sqlalchemy/migrate_repo/__init__.py | 0 heat/db/sqlalchemy/migrate_repo/manage.py | 5 - heat/db/sqlalchemy/migrate_repo/migrate.cfg | 25 - .../migrate_repo/versions/015_grizzly.py | 151 - .../versions/016_timeout_nullable.py | 31 - .../versions/017_event_state_status.py | 36 - .../versions/018_resource_id_uuid.py | 33 - .../versions/019_resource_action_status.py | 37 - .../migrate_repo/versions/020_stack_action.py | 32 - .../versions/021_resource_data.py | 45 - .../versions/022_stack_event_soft_delete.py | 52 - .../023_raw_template_mysql_longtext.py | 35 - .../versions/024_event_resource_name.py | 29 - .../versions/025_user_creds_drop_service.py | 37 - .../versions/026_user_creds_drop_aws.py | 37 - .../versions/027_user_creds_trusts.py | 38 - .../versions/028_text_mysql_longtext.py | 55 - .../migrate_repo/versions/__init__.py | 0 heat/db/sqlalchemy/migration.py | 115 - heat/db/sqlalchemy/models.py | 311 -- heat/db/sqlalchemy/mutable.py | 64 - heat/db/sqlalchemy/session.py | 102 - heat/db/sync.py | 45 - heat/db/utils.py | 49 - heat/doc/__init__.py | 0 heat/doc/resources.py | 251 -- heat/engine/__init__.py | 0 heat/engine/api.py | 196 -- heat/engine/attributes.py | 100 - heat/engine/clients.py | 219 -- heat/engine/components.py | 99 - heat/engine/dependencies.py | 245 -- heat/engine/environment.py | 334 --- heat/engine/event.py | 100 - heat/engine/hot.py | 299 -- heat/engine/parameters.py | 386 --- heat/engine/parser.py | 666 ----- heat/engine/properties.py | 783 ----- heat/engine/resource.py | 760 ----- heat/engine/resources/__init__.py | 105 - heat/engine/resources/autoscaling.py | 603 ---- heat/engine/resources/ceilometer/__init__.py | 0 heat/engine/resources/ceilometer/alarm.py | 177 -- heat/engine/resources/cloud_watch.py | 184 -- heat/engine/resources/eip.py | 211 -- heat/engine/resources/instance.py | 595 ---- heat/engine/resources/internet_gateway.py | 111 - heat/engine/resources/loadbalancer.py | 435 --- heat/engine/resources/network_interface.py | 93 - heat/engine/resources/neutron/__init__.py | 0 heat/engine/resources/neutron/firewall.py | 229 -- heat/engine/resources/neutron/floatingip.py | 107 - heat/engine/resources/neutron/loadbalancer.py | 324 --- heat/engine/resources/neutron/net.py | 75 - heat/engine/resources/neutron/neutron.py | 146 - heat/engine/resources/neutron/port.py | 111 - heat/engine/resources/neutron/router.py | 148 - heat/engine/resources/neutron/subnet.py | 95 - heat/engine/resources/neutron/vpnservice.py | 514 ---- heat/engine/resources/nova_utils.py | 240 -- heat/engine/resources/rackspace/__init__.py | 4 - .../resources/rackspace/cloud_loadbalancer.py | 461 --- .../resources/rackspace/cloud_server.py | 456 --- .../resources/rackspace/clouddatabase.py | 265 -- .../resources/rackspace/rackspace_resource.py | 108 - heat/engine/resources/route_table.py | 155 - heat/engine/resources/s3.py | 111 - heat/engine/resources/security_group.py | 231 -- heat/engine/resources/server.py | 477 ---- heat/engine/resources/stack.py | 94 - heat/engine/resources/subnet.py | 100 - heat/engine/resources/swift.py | 122 - heat/engine/resources/template_resource.py | 183 -- heat/engine/resources/user.py | 275 -- heat/engine/resources/volume.py | 408 --- heat/engine/resources/vpc.py | 105 - heat/engine/resources/wait_condition.py | 229 -- heat/engine/scheduler.py | 422 --- heat/engine/service.py | 815 ------ heat/engine/signal_responder.py | 117 - heat/engine/stack_resource.py | 250 -- heat/engine/template.py | 451 --- heat/engine/timestamp.py | 48 - heat/engine/update.py | 195 -- heat/engine/watchrule.py | 382 --- heat/locale/bs/LC_MESSAGES/heat.po | 1477 ---------- heat/locale/cs/LC_MESSAGES/heat.po | 1477 ---------- heat/locale/da/LC_MESSAGES/heat.po | 1477 ---------- heat/locale/de/LC_MESSAGES/heat.po | 1477 ---------- heat/locale/en_AU/LC_MESSAGES/heat.po | 1477 ---------- heat/locale/en_GB/LC_MESSAGES/heat.po | 1477 ---------- heat/locale/en_US/LC_MESSAGES/heat.po | 1477 ---------- heat/locale/es/LC_MESSAGES/heat.po | 1477 ---------- heat/locale/fr/LC_MESSAGES/heat.po | 1477 ---------- heat/locale/heat.pot | 1477 ---------- heat/locale/it/LC_MESSAGES/heat.po | 1477 ---------- heat/locale/ja/LC_MESSAGES/heat.po | 1477 ---------- heat/locale/ko/LC_MESSAGES/heat.po | 1477 ---------- heat/locale/pt_BR/LC_MESSAGES/heat.po | 1477 ---------- heat/locale/ru/LC_MESSAGES/heat.po | 1477 ---------- heat/locale/tl/LC_MESSAGES/heat.po | 1477 ---------- heat/locale/tr/LC_MESSAGES/heat.po | 1477 ---------- heat/locale/uk/LC_MESSAGES/heat.po | 1477 ---------- heat/locale/zh_CN/LC_MESSAGES/heat.po | 1477 ---------- heat/locale/zh_TW/LC_MESSAGES/heat.po | 1477 ---------- heat/openstack/__init__.py | 0 heat/openstack/common/README | 13 - heat/openstack/common/__init__.py | 0 heat/openstack/common/config/__init__.py | 0 heat/openstack/common/config/generator.py | 256 -- heat/openstack/common/context.py | 83 - heat/openstack/common/db/__init__.py | 16 - heat/openstack/common/db/api.py | 106 - heat/openstack/common/db/exception.py | 45 - .../common/db/sqlalchemy/__init__.py | 16 - .../common/db/sqlalchemy/migration.py | 159 -- heat/openstack/common/db/sqlalchemy/models.py | 108 - .../openstack/common/db/sqlalchemy/session.py | 794 ------ heat/openstack/common/db/sqlalchemy/utils.py | 488 ---- heat/openstack/common/eventlet_backdoor.py | 146 - heat/openstack/common/exception.py | 140 - heat/openstack/common/excutils.py | 98 - heat/openstack/common/fileutils.py | 110 - heat/openstack/common/gettextutils.py | 305 -- heat/openstack/common/importutils.py | 68 - heat/openstack/common/jsonutils.py | 172 -- heat/openstack/common/local.py | 48 - heat/openstack/common/lockutils.py | 276 -- heat/openstack/common/log.py | 559 ---- heat/openstack/common/loopingcall.py | 147 - heat/openstack/common/network_utils.py | 81 - heat/openstack/common/notifier/__init__.py | 14 - heat/openstack/common/notifier/api.py | 173 -- .../common/notifier/list_notifier.py | 119 - .../openstack/common/notifier/log_notifier.py | 37 - .../common/notifier/no_op_notifier.py | 19 - .../common/notifier/rabbit_notifier.py | 29 - .../openstack/common/notifier/rpc_notifier.py | 46 - .../common/notifier/rpc_notifier2.py | 52 - .../common/notifier/test_notifier.py | 22 - heat/openstack/common/policy.py | 852 ------ heat/openstack/common/processutils.py | 247 -- heat/openstack/common/rpc/__init__.py | 308 -- heat/openstack/common/rpc/amqp.py | 636 ----- heat/openstack/common/rpc/common.py | 509 ---- heat/openstack/common/rpc/dispatcher.py | 178 -- heat/openstack/common/rpc/impl_fake.py | 195 -- heat/openstack/common/rpc/impl_kombu.py | 856 ------ heat/openstack/common/rpc/impl_qpid.py | 833 ------ heat/openstack/common/rpc/impl_zmq.py | 818 ------ heat/openstack/common/rpc/matchmaker.py | 324 --- heat/openstack/common/rpc/matchmaker_redis.py | 145 - heat/openstack/common/rpc/matchmaker_ring.py | 108 - heat/openstack/common/rpc/proxy.py | 226 -- heat/openstack/common/rpc/securemessage.py | 521 ---- heat/openstack/common/rpc/serializer.py | 52 - heat/openstack/common/rpc/service.py | 78 - heat/openstack/common/rpc/zmq_receiver.py | 40 - heat/openstack/common/service.py | 450 --- heat/openstack/common/sslutils.py | 100 - heat/openstack/common/threadgroup.py | 121 - heat/openstack/common/timeutils.py | 188 -- heat/openstack/common/uuidutils.py | 39 - heat/rpc/__init__.py | 0 heat/rpc/api.py | 155 - heat/rpc/client.py | 313 -- heat/tests/__init__.py | 18 - heat/tests/common.py | 60 - heat/tests/fakes.py | 145 - heat/tests/generic_resource.py | 69 - heat/tests/policy/deny_stack_user.json | 27 - heat/tests/policy/notallowed.json | 14 - heat/tests/templates/Neutron.template | 100 - heat/tests/templates/Neutron.yaml | 72 - heat/tests/templates/README | 6 - .../WordPress_Single_Instance.template | 149 - .../templates/WordPress_Single_Instance.yaml | 161 -- heat/tests/test_api_aws.py | 185 -- heat/tests/test_api_cfn_v1.py | 1739 ----------- heat/tests/test_api_cloudwatch.py | 525 ---- heat/tests/test_api_ec2token.py | 434 --- heat/tests/test_api_openstack_v1.py | 2534 ----------------- heat/tests/test_attributes.py | 98 - heat/tests/test_auth_password.py | 178 -- heat/tests/test_autoscaling.py | 1458 ---------- heat/tests/test_autoscaling_update_policy.py | 382 --- heat/tests/test_ceilometer_alarm.py | 222 -- heat/tests/test_cloud_loadbalancer.py | 531 ---- heat/tests/test_clouddatabase.py | 185 -- heat/tests/test_cloudwatch.py | 86 - heat/tests/test_common_policy.py | 211 -- heat/tests/test_components.py | 218 -- heat/tests/test_cw_alarm.py | 150 - heat/tests/test_dbinstance.py | 118 - heat/tests/test_dependencies.py | 222 -- heat/tests/test_eip.py | 454 --- heat/tests/test_engine_api_utils.py | 130 - heat/tests/test_engine_service.py | 1753 ------------ heat/tests/test_environment.py | 168 -- heat/tests/test_environment_format.py | 43 - heat/tests/test_event.py | 124 - heat/tests/test_exception.py | 33 - heat/tests/test_fault_middleware.py | 87 - heat/tests/test_heatclient.py | 355 --- heat/tests/test_hot.py | 503 ---- heat/tests/test_identifier.py | 418 --- heat/tests/test_instance.py | 775 ----- heat/tests/test_instance_group.py | 311 -- .../test_instance_group_update_policy.py | 373 --- heat/tests/test_instance_network.py | 276 -- heat/tests/test_iso8601_utils.py | 47 - heat/tests/test_loadbalancer.py | 229 -- heat/tests/test_loguserdata.py | 168 -- heat/tests/test_metadata_refresh.py | 280 -- heat/tests/test_nested_stack.py | 420 --- heat/tests/test_neutron.py | 998 ------- heat/tests/test_neutron_firewall.py | 480 ---- heat/tests/test_neutron_loadbalancer.py | 628 ---- heat/tests/test_neutron_vpnservice.py | 748 ----- heat/tests/test_nokey.py | 81 - heat/tests/test_nova_utils.py | 109 - heat/tests/test_parameters.py | 465 --- heat/tests/test_parser.py | 1787 ------------ heat/tests/test_plugin_loader.py | 67 - heat/tests/test_properties.py | 1399 --------- heat/tests/test_provider_template.py | 497 ---- heat/tests/test_rackspace_cloud_server.py | 443 --- heat/tests/test_resource.py | 1036 ------- heat/tests/test_rpc_client.py | 196 -- heat/tests/test_s3.py | 239 -- heat/tests/test_scheduler.py | 1002 ------- heat/tests/test_security_group.py | 807 ------ heat/tests/test_server.py | 859 ------ heat/tests/test_server_tags.py | 272 -- heat/tests/test_short_id.py | 73 - heat/tests/test_signal.py | 235 -- heat/tests/test_sqlalchemy_api.py | 312 -- heat/tests/test_stack_resource.py | 386 --- heat/tests/test_swift.py | 263 -- heat/tests/test_template_format.py | 157 - heat/tests/test_urlfetch.py | 109 - heat/tests/test_user.py | 413 --- heat/tests/test_validate.py | 830 ------ heat/tests/test_volume.py | 795 ------ heat/tests/test_vpc.py | 846 ------ heat/tests/test_waitcondition.py | 558 ---- heat/tests/test_watch.py | 881 ------ heat/tests/test_wsgi.py | 396 --- heat/tests/testing-overview.txt | 49 - heat/tests/unit/__init__.py | 13 - heat/tests/utils.py | 180 -- heat/tests/v1_1/__init__.py | 0 heat/tests/v1_1/fakes.py | 886 ------ heat/tests/v1_1/testfile.txt | 1 - heat/version.py | 19 - install.sh | 125 - openstack-common.conf | 29 - pylintrc | 29 - requirements.txt | 27 - rpm/SOURCES/heat-dist.conf | 41 + rpm/SOURCES/heat-newdeps.patch | 41 + rpm/SOURCES/heat.logrotate | 7 + rpm/SOURCES/openstack-heat-api-cfn.init | 104 + .../openstack-heat-api-cloudwatch.init | 102 + rpm/SOURCES/openstack-heat-api.init | 104 + rpm/SOURCES/openstack-heat-engine.init | 102 + .../remove-pbr-runtime-dependency.patch | 21 + rpm/SOURCES/switch-to-using-m2crypto.patch | 64 + rpm/SPECS/openstack-heat.spec | 574 ++++ run_tests.sh | 123 - setup.cfg | 55 - setup.py | 22 - test-requirements.txt | 15 - tools/README | 37 - tools/cfn-json2yaml | 50 - tools/conf/check_uptodate.sh | 9 - tools/conf/generate_sample.sh | 26 - tools/config/generate_sample.sh | 69 - tools/experimental_ssh_eventlet.py | 60 - tools/glance-jeos-add-from-github.sh | 20 - tools/heat-db-drop | 33 - tools/install_venv.py | 74 - tools/install_venv_common.py | 212 -- tools/integration.sh | 26 - tools/nova_create_flavors.sh | 3 - tools/openstack | 385 --- tools/openstack_ubuntu | 343 --- tools/patch_tox_venv.py | 50 - tools/rst2script.sed | 38 - tools/state_transitions.py | 41 - tools/test-requires-rpm | 11 - tools/uninstall-heat | 78 - tools/with_venv.sh | 4 - tox.ini | 41 - uninstall.sh | 21 - 430 files changed, 1160 insertions(+), 112633 deletions(-) delete mode 100644 .gitignore delete mode 100644 .testr.conf delete mode 100644 CONTRIBUTING.rst delete mode 100644 HACKING.rst delete mode 100644 LICENSE delete mode 100644 MANIFEST.in delete mode 100644 README.rst delete mode 100644 babel.cfg delete mode 100755 bin/cinder-keystone-setup delete mode 100755 bin/heat-api delete mode 100755 bin/heat-api-cfn delete mode 100755 bin/heat-api-cloudwatch delete mode 100755 bin/heat-db-setup delete mode 100755 bin/heat-engine delete mode 100755 bin/heat-keystone-setup delete mode 100755 bin/heat-manage delete mode 100644 contrib/redhat-eventlet.patch delete mode 100644 doc/.gitignore delete mode 100644 doc/Makefile delete mode 100644 doc/README.rst delete mode 100644 doc/docbkx/README.rst delete mode 100644 doc/docbkx/api-ref/pom.xml delete mode 100644 doc/docbkx/api-ref/src/docbkx/api-ref.xml delete mode 100644 doc/docbkx/api-ref/src/wadls/heat-api/src/heat-api-1.0.wadl delete mode 100644 doc/docbkx/api-ref/src/wadls/heat-api/src/samples/stack_create.json delete mode 100644 doc/docbkx/api-ref/src/wadls/heat-api/src/samples/stack_update.json delete mode 100644 doc/docbkx/api-ref/src/wadls/heat-api/src/samples/template_validate.json delete mode 100644 doc/docbkx/heat-admin/app_core.xml delete mode 100644 doc/docbkx/heat-admin/bk-heat-admin-guide.xml delete mode 100644 doc/docbkx/heat-admin/ch_install.xml delete mode 100644 doc/docbkx/heat-admin/ch_limitations.xml delete mode 100644 doc/docbkx/heat-admin/ch_overview.xml delete mode 100644 doc/docbkx/heat-admin/ch_preface.xml delete mode 100644 doc/docbkx/heat-admin/ch_using.xml delete mode 100644 doc/docbkx/heat-admin/pom.xml delete mode 100644 doc/docbkx/heat-cli-guide/pom.xml delete mode 100644 doc/docbkx/heat-cli-guide/src/bk-cli-guide.xml delete mode 100644 doc/docbkx/heat-cli-guide/src/heat_cli_commands.xml delete mode 100644 doc/docbkx/heat-cli-guide/src/heat_cli_howto.xml delete mode 100644 doc/docbkx/heat-cli-guide/src/heat_cli_install.xml delete mode 100644 doc/source/_templates/.placeholder delete mode 100644 doc/source/architecture.rst delete mode 100644 doc/source/conf.py delete mode 100644 doc/source/getting_started/index.rst delete mode 100644 doc/source/getting_started/jeos_building.rst delete mode 100644 doc/source/getting_started/on_devstack.rst delete mode 100644 doc/source/getting_started/on_fedora.rst delete mode 100644 doc/source/getting_started/on_other.rst delete mode 100644 doc/source/getting_started/on_ubuntu.rst delete mode 100644 doc/source/glossary.rst delete mode 100644 doc/source/index.rst delete mode 100644 doc/source/man/heat-api-cfn.rst delete mode 100644 doc/source/man/heat-api-cloudwatch.rst delete mode 100644 doc/source/man/heat-api.rst delete mode 100644 doc/source/man/heat-db-setup.rst delete mode 100644 doc/source/man/heat-engine.rst delete mode 100644 doc/source/man/heat-keystone-setup.rst delete mode 100644 doc/source/man/index.rst delete mode 100644 doc/source/sourcecode/.gitignore delete mode 100644 doc/source/template_guide/cfn.rst delete mode 100644 doc/source/template_guide/environment.rst delete mode 100644 doc/source/template_guide/functions.rst delete mode 100644 doc/source/template_guide/hot_guide.rst delete mode 100644 doc/source/template_guide/hot_spec.rst delete mode 100644 doc/source/template_guide/index.rst delete mode 100644 doc/source/template_guide/openstack.rst delete mode 100644 doc/source/template_guide/rackspace.rst delete mode 100644 doc/source/templates/cfn/WordPress_Single_Instance.rst delete mode 100644 doc/source/templates/hot/hello_world.rst delete mode 100644 doc/source/templates/index.rst delete mode 100644 docs/GettingStarted.rst delete mode 100644 docs/api.md delete mode 100644 etc/heat/api-paste.ini delete mode 100644 etc/heat/environment.d/default.yaml delete mode 100644 etc/heat/heat.conf.sample delete mode 100644 etc/heat/policy.json delete mode 100644 etc/heat/templates/AWS_CloudWatch_Alarm.yaml delete mode 100644 etc/heat/templates/AWS_RDS_DBInstance.yaml delete mode 100644 heat/__init__.py delete mode 100644 heat/api/__init__.py delete mode 100644 heat/api/aws/__init__.py delete mode 100644 heat/api/aws/ec2token.py delete mode 100644 heat/api/aws/exception.py delete mode 100644 heat/api/aws/utils.py delete mode 100644 heat/api/cfn/__init__.py delete mode 100644 heat/api/cfn/v1/__init__.py delete mode 100644 heat/api/cfn/v1/signal.py delete mode 100644 heat/api/cfn/v1/stacks.py delete mode 100644 heat/api/cfn/versions.py delete mode 100644 heat/api/cloudwatch/__init__.py delete mode 100644 heat/api/cloudwatch/versions.py delete mode 100644 heat/api/cloudwatch/watch.py delete mode 100644 heat/api/middleware/__init__.py delete mode 100644 heat/api/middleware/fault.py delete mode 100644 heat/api/middleware/version_negotiation.py delete mode 100644 heat/api/openstack/__init__.py delete mode 100644 heat/api/openstack/v1/__init__.py delete mode 100644 heat/api/openstack/v1/actions.py delete mode 100644 heat/api/openstack/v1/events.py delete mode 100644 heat/api/openstack/v1/resources.py delete mode 100644 heat/api/openstack/v1/stacks.py delete mode 100644 heat/api/openstack/v1/util.py delete mode 100644 heat/api/openstack/versions.py delete mode 100644 heat/cloudinit/__init__.py delete mode 100755 heat/cloudinit/boothook.sh delete mode 100644 heat/cloudinit/config delete mode 100755 heat/cloudinit/loguserdata.py delete mode 100644 heat/cloudinit/part_handler.py delete mode 100644 heat/cmd/__init__.py delete mode 100644 heat/cmd/manage.py delete mode 100644 heat/common/__init__.py delete mode 100644 heat/common/auth_password.py delete mode 100644 heat/common/auth_token.py delete mode 100644 heat/common/config.py delete mode 100644 heat/common/context.py delete mode 100644 heat/common/crypt.py delete mode 100644 heat/common/custom_backend_auth.py delete mode 100644 heat/common/environment_format.py delete mode 100644 heat/common/exception.py delete mode 100644 heat/common/heat_keystoneclient.py delete mode 100644 heat/common/identifier.py delete mode 100644 heat/common/plugin_loader.py delete mode 100644 heat/common/policy.py delete mode 100644 heat/common/short_id.py delete mode 100644 heat/common/template_format.py delete mode 100644 heat/common/timeutils.py delete mode 100644 heat/common/urlfetch.py delete mode 100644 heat/common/wsgi.py delete mode 100644 heat/db/__init__.py delete mode 100644 heat/db/api.py delete mode 100644 heat/db/migration.py delete mode 100644 heat/db/sqlalchemy/__init__.py delete mode 100644 heat/db/sqlalchemy/api.py delete mode 100755 heat/db/sqlalchemy/manage.py delete mode 100644 heat/db/sqlalchemy/migrate_repo/README delete mode 100644 heat/db/sqlalchemy/migrate_repo/__init__.py delete mode 100755 heat/db/sqlalchemy/migrate_repo/manage.py delete mode 100644 heat/db/sqlalchemy/migrate_repo/migrate.cfg delete mode 100644 heat/db/sqlalchemy/migrate_repo/versions/015_grizzly.py delete mode 100644 heat/db/sqlalchemy/migrate_repo/versions/016_timeout_nullable.py delete mode 100644 heat/db/sqlalchemy/migrate_repo/versions/017_event_state_status.py delete mode 100644 heat/db/sqlalchemy/migrate_repo/versions/018_resource_id_uuid.py delete mode 100644 heat/db/sqlalchemy/migrate_repo/versions/019_resource_action_status.py delete mode 100644 heat/db/sqlalchemy/migrate_repo/versions/020_stack_action.py delete mode 100644 heat/db/sqlalchemy/migrate_repo/versions/021_resource_data.py delete mode 100644 heat/db/sqlalchemy/migrate_repo/versions/022_stack_event_soft_delete.py delete mode 100644 heat/db/sqlalchemy/migrate_repo/versions/023_raw_template_mysql_longtext.py delete mode 100644 heat/db/sqlalchemy/migrate_repo/versions/024_event_resource_name.py delete mode 100644 heat/db/sqlalchemy/migrate_repo/versions/025_user_creds_drop_service.py delete mode 100644 heat/db/sqlalchemy/migrate_repo/versions/026_user_creds_drop_aws.py delete mode 100644 heat/db/sqlalchemy/migrate_repo/versions/027_user_creds_trusts.py delete mode 100644 heat/db/sqlalchemy/migrate_repo/versions/028_text_mysql_longtext.py delete mode 100644 heat/db/sqlalchemy/migrate_repo/versions/__init__.py delete mode 100644 heat/db/sqlalchemy/migration.py delete mode 100644 heat/db/sqlalchemy/models.py delete mode 100644 heat/db/sqlalchemy/mutable.py delete mode 100644 heat/db/sqlalchemy/session.py delete mode 100755 heat/db/sync.py delete mode 100644 heat/db/utils.py delete mode 100644 heat/doc/__init__.py delete mode 100644 heat/doc/resources.py delete mode 100644 heat/engine/__init__.py delete mode 100644 heat/engine/api.py delete mode 100644 heat/engine/attributes.py delete mode 100644 heat/engine/clients.py delete mode 100644 heat/engine/components.py delete mode 100644 heat/engine/dependencies.py delete mode 100644 heat/engine/environment.py delete mode 100644 heat/engine/event.py delete mode 100644 heat/engine/hot.py delete mode 100644 heat/engine/parameters.py delete mode 100644 heat/engine/parser.py delete mode 100644 heat/engine/properties.py delete mode 100644 heat/engine/resource.py delete mode 100644 heat/engine/resources/__init__.py delete mode 100644 heat/engine/resources/autoscaling.py delete mode 100644 heat/engine/resources/ceilometer/__init__.py delete mode 100644 heat/engine/resources/ceilometer/alarm.py delete mode 100644 heat/engine/resources/cloud_watch.py delete mode 100644 heat/engine/resources/eip.py delete mode 100644 heat/engine/resources/instance.py delete mode 100644 heat/engine/resources/internet_gateway.py delete mode 100644 heat/engine/resources/loadbalancer.py delete mode 100644 heat/engine/resources/network_interface.py delete mode 100644 heat/engine/resources/neutron/__init__.py delete mode 100644 heat/engine/resources/neutron/firewall.py delete mode 100644 heat/engine/resources/neutron/floatingip.py delete mode 100644 heat/engine/resources/neutron/loadbalancer.py delete mode 100644 heat/engine/resources/neutron/net.py delete mode 100644 heat/engine/resources/neutron/neutron.py delete mode 100644 heat/engine/resources/neutron/port.py delete mode 100644 heat/engine/resources/neutron/router.py delete mode 100644 heat/engine/resources/neutron/subnet.py delete mode 100644 heat/engine/resources/neutron/vpnservice.py delete mode 100644 heat/engine/resources/nova_utils.py delete mode 100644 heat/engine/resources/rackspace/__init__.py delete mode 100644 heat/engine/resources/rackspace/cloud_loadbalancer.py delete mode 100644 heat/engine/resources/rackspace/cloud_server.py delete mode 100644 heat/engine/resources/rackspace/clouddatabase.py delete mode 100644 heat/engine/resources/rackspace/rackspace_resource.py delete mode 100644 heat/engine/resources/route_table.py delete mode 100644 heat/engine/resources/s3.py delete mode 100644 heat/engine/resources/security_group.py delete mode 100644 heat/engine/resources/server.py delete mode 100644 heat/engine/resources/stack.py delete mode 100644 heat/engine/resources/subnet.py delete mode 100644 heat/engine/resources/swift.py delete mode 100644 heat/engine/resources/template_resource.py delete mode 100644 heat/engine/resources/user.py delete mode 100644 heat/engine/resources/volume.py delete mode 100644 heat/engine/resources/vpc.py delete mode 100644 heat/engine/resources/wait_condition.py delete mode 100644 heat/engine/scheduler.py delete mode 100644 heat/engine/service.py delete mode 100644 heat/engine/signal_responder.py delete mode 100644 heat/engine/stack_resource.py delete mode 100644 heat/engine/template.py delete mode 100644 heat/engine/timestamp.py delete mode 100644 heat/engine/update.py delete mode 100644 heat/engine/watchrule.py delete mode 100644 heat/locale/bs/LC_MESSAGES/heat.po delete mode 100644 heat/locale/cs/LC_MESSAGES/heat.po delete mode 100644 heat/locale/da/LC_MESSAGES/heat.po delete mode 100644 heat/locale/de/LC_MESSAGES/heat.po delete mode 100644 heat/locale/en_AU/LC_MESSAGES/heat.po delete mode 100644 heat/locale/en_GB/LC_MESSAGES/heat.po delete mode 100644 heat/locale/en_US/LC_MESSAGES/heat.po delete mode 100644 heat/locale/es/LC_MESSAGES/heat.po delete mode 100644 heat/locale/fr/LC_MESSAGES/heat.po delete mode 100644 heat/locale/heat.pot delete mode 100644 heat/locale/it/LC_MESSAGES/heat.po delete mode 100644 heat/locale/ja/LC_MESSAGES/heat.po delete mode 100644 heat/locale/ko/LC_MESSAGES/heat.po delete mode 100644 heat/locale/pt_BR/LC_MESSAGES/heat.po delete mode 100644 heat/locale/ru/LC_MESSAGES/heat.po delete mode 100644 heat/locale/tl/LC_MESSAGES/heat.po delete mode 100644 heat/locale/tr/LC_MESSAGES/heat.po delete mode 100644 heat/locale/uk/LC_MESSAGES/heat.po delete mode 100644 heat/locale/zh_CN/LC_MESSAGES/heat.po delete mode 100644 heat/locale/zh_TW/LC_MESSAGES/heat.po delete mode 100644 heat/openstack/__init__.py delete mode 100644 heat/openstack/common/README delete mode 100644 heat/openstack/common/__init__.py delete mode 100644 heat/openstack/common/config/__init__.py delete mode 100644 heat/openstack/common/config/generator.py delete mode 100644 heat/openstack/common/context.py delete mode 100644 heat/openstack/common/db/__init__.py delete mode 100644 heat/openstack/common/db/api.py delete mode 100644 heat/openstack/common/db/exception.py delete mode 100644 heat/openstack/common/db/sqlalchemy/__init__.py delete mode 100644 heat/openstack/common/db/sqlalchemy/migration.py delete mode 100644 heat/openstack/common/db/sqlalchemy/models.py delete mode 100644 heat/openstack/common/db/sqlalchemy/session.py delete mode 100644 heat/openstack/common/db/sqlalchemy/utils.py delete mode 100644 heat/openstack/common/eventlet_backdoor.py delete mode 100644 heat/openstack/common/exception.py delete mode 100644 heat/openstack/common/excutils.py delete mode 100644 heat/openstack/common/fileutils.py delete mode 100644 heat/openstack/common/gettextutils.py delete mode 100644 heat/openstack/common/importutils.py delete mode 100644 heat/openstack/common/jsonutils.py delete mode 100644 heat/openstack/common/local.py delete mode 100644 heat/openstack/common/lockutils.py delete mode 100644 heat/openstack/common/log.py delete mode 100644 heat/openstack/common/loopingcall.py delete mode 100644 heat/openstack/common/network_utils.py delete mode 100644 heat/openstack/common/notifier/__init__.py delete mode 100644 heat/openstack/common/notifier/api.py delete mode 100644 heat/openstack/common/notifier/list_notifier.py delete mode 100644 heat/openstack/common/notifier/log_notifier.py delete mode 100644 heat/openstack/common/notifier/no_op_notifier.py delete mode 100644 heat/openstack/common/notifier/rabbit_notifier.py delete mode 100644 heat/openstack/common/notifier/rpc_notifier.py delete mode 100644 heat/openstack/common/notifier/rpc_notifier2.py delete mode 100644 heat/openstack/common/notifier/test_notifier.py delete mode 100644 heat/openstack/common/policy.py delete mode 100644 heat/openstack/common/processutils.py delete mode 100644 heat/openstack/common/rpc/__init__.py delete mode 100644 heat/openstack/common/rpc/amqp.py delete mode 100644 heat/openstack/common/rpc/common.py delete mode 100644 heat/openstack/common/rpc/dispatcher.py delete mode 100644 heat/openstack/common/rpc/impl_fake.py delete mode 100644 heat/openstack/common/rpc/impl_kombu.py delete mode 100644 heat/openstack/common/rpc/impl_qpid.py delete mode 100644 heat/openstack/common/rpc/impl_zmq.py delete mode 100644 heat/openstack/common/rpc/matchmaker.py delete mode 100644 heat/openstack/common/rpc/matchmaker_redis.py delete mode 100644 heat/openstack/common/rpc/matchmaker_ring.py delete mode 100644 heat/openstack/common/rpc/proxy.py delete mode 100644 heat/openstack/common/rpc/securemessage.py delete mode 100644 heat/openstack/common/rpc/serializer.py delete mode 100644 heat/openstack/common/rpc/service.py delete mode 100644 heat/openstack/common/rpc/zmq_receiver.py delete mode 100644 heat/openstack/common/service.py delete mode 100644 heat/openstack/common/sslutils.py delete mode 100644 heat/openstack/common/threadgroup.py delete mode 100644 heat/openstack/common/timeutils.py delete mode 100644 heat/openstack/common/uuidutils.py delete mode 100644 heat/rpc/__init__.py delete mode 100644 heat/rpc/api.py delete mode 100644 heat/rpc/client.py delete mode 100644 heat/tests/__init__.py delete mode 100644 heat/tests/common.py delete mode 100644 heat/tests/fakes.py delete mode 100644 heat/tests/generic_resource.py delete mode 100644 heat/tests/policy/deny_stack_user.json delete mode 100644 heat/tests/policy/notallowed.json delete mode 100644 heat/tests/templates/Neutron.template delete mode 100644 heat/tests/templates/Neutron.yaml delete mode 100644 heat/tests/templates/README delete mode 100644 heat/tests/templates/WordPress_Single_Instance.template delete mode 100644 heat/tests/templates/WordPress_Single_Instance.yaml delete mode 100644 heat/tests/test_api_aws.py delete mode 100644 heat/tests/test_api_cfn_v1.py delete mode 100644 heat/tests/test_api_cloudwatch.py delete mode 100644 heat/tests/test_api_ec2token.py delete mode 100644 heat/tests/test_api_openstack_v1.py delete mode 100644 heat/tests/test_attributes.py delete mode 100644 heat/tests/test_auth_password.py delete mode 100644 heat/tests/test_autoscaling.py delete mode 100644 heat/tests/test_autoscaling_update_policy.py delete mode 100644 heat/tests/test_ceilometer_alarm.py delete mode 100644 heat/tests/test_cloud_loadbalancer.py delete mode 100644 heat/tests/test_clouddatabase.py delete mode 100644 heat/tests/test_cloudwatch.py delete mode 100644 heat/tests/test_common_policy.py delete mode 100644 heat/tests/test_components.py delete mode 100644 heat/tests/test_cw_alarm.py delete mode 100644 heat/tests/test_dbinstance.py delete mode 100644 heat/tests/test_dependencies.py delete mode 100644 heat/tests/test_eip.py delete mode 100644 heat/tests/test_engine_api_utils.py delete mode 100644 heat/tests/test_engine_service.py delete mode 100644 heat/tests/test_environment.py delete mode 100644 heat/tests/test_environment_format.py delete mode 100644 heat/tests/test_event.py delete mode 100644 heat/tests/test_exception.py delete mode 100644 heat/tests/test_fault_middleware.py delete mode 100644 heat/tests/test_heatclient.py delete mode 100644 heat/tests/test_hot.py delete mode 100644 heat/tests/test_identifier.py delete mode 100644 heat/tests/test_instance.py delete mode 100644 heat/tests/test_instance_group.py delete mode 100644 heat/tests/test_instance_group_update_policy.py delete mode 100644 heat/tests/test_instance_network.py delete mode 100644 heat/tests/test_iso8601_utils.py delete mode 100644 heat/tests/test_loadbalancer.py delete mode 100644 heat/tests/test_loguserdata.py delete mode 100644 heat/tests/test_metadata_refresh.py delete mode 100644 heat/tests/test_nested_stack.py delete mode 100644 heat/tests/test_neutron.py delete mode 100644 heat/tests/test_neutron_firewall.py delete mode 100644 heat/tests/test_neutron_loadbalancer.py delete mode 100644 heat/tests/test_neutron_vpnservice.py delete mode 100644 heat/tests/test_nokey.py delete mode 100644 heat/tests/test_nova_utils.py delete mode 100644 heat/tests/test_parameters.py delete mode 100644 heat/tests/test_parser.py delete mode 100644 heat/tests/test_plugin_loader.py delete mode 100644 heat/tests/test_properties.py delete mode 100644 heat/tests/test_provider_template.py delete mode 100644 heat/tests/test_rackspace_cloud_server.py delete mode 100644 heat/tests/test_resource.py delete mode 100644 heat/tests/test_rpc_client.py delete mode 100644 heat/tests/test_s3.py delete mode 100644 heat/tests/test_scheduler.py delete mode 100644 heat/tests/test_security_group.py delete mode 100644 heat/tests/test_server.py delete mode 100644 heat/tests/test_server_tags.py delete mode 100644 heat/tests/test_short_id.py delete mode 100644 heat/tests/test_signal.py delete mode 100644 heat/tests/test_sqlalchemy_api.py delete mode 100644 heat/tests/test_stack_resource.py delete mode 100644 heat/tests/test_swift.py delete mode 100644 heat/tests/test_template_format.py delete mode 100644 heat/tests/test_urlfetch.py delete mode 100644 heat/tests/test_user.py delete mode 100644 heat/tests/test_validate.py delete mode 100644 heat/tests/test_volume.py delete mode 100644 heat/tests/test_vpc.py delete mode 100644 heat/tests/test_waitcondition.py delete mode 100644 heat/tests/test_watch.py delete mode 100644 heat/tests/test_wsgi.py delete mode 100644 heat/tests/testing-overview.txt delete mode 100644 heat/tests/unit/__init__.py delete mode 100644 heat/tests/utils.py delete mode 100644 heat/tests/v1_1/__init__.py delete mode 100644 heat/tests/v1_1/fakes.py delete mode 100644 heat/tests/v1_1/testfile.txt delete mode 100644 heat/version.py delete mode 100755 install.sh delete mode 100644 openstack-common.conf delete mode 100644 pylintrc delete mode 100644 requirements.txt create mode 100644 rpm/SOURCES/heat-dist.conf create mode 100644 rpm/SOURCES/heat-newdeps.patch create mode 100644 rpm/SOURCES/heat.logrotate create mode 100644 rpm/SOURCES/openstack-heat-api-cfn.init create mode 100644 rpm/SOURCES/openstack-heat-api-cloudwatch.init create mode 100644 rpm/SOURCES/openstack-heat-api.init create mode 100644 rpm/SOURCES/openstack-heat-engine.init create mode 100644 rpm/SOURCES/remove-pbr-runtime-dependency.patch create mode 100644 rpm/SOURCES/switch-to-using-m2crypto.patch create mode 100644 rpm/SPECS/openstack-heat.spec delete mode 100755 run_tests.sh delete mode 100644 setup.cfg delete mode 100644 setup.py delete mode 100644 test-requirements.txt delete mode 100644 tools/README delete mode 100755 tools/cfn-json2yaml delete mode 100755 tools/conf/check_uptodate.sh delete mode 100755 tools/conf/generate_sample.sh delete mode 100755 tools/config/generate_sample.sh delete mode 100755 tools/experimental_ssh_eventlet.py delete mode 100755 tools/glance-jeos-add-from-github.sh delete mode 100755 tools/heat-db-drop delete mode 100644 tools/install_venv.py delete mode 100644 tools/install_venv_common.py delete mode 100755 tools/integration.sh delete mode 100755 tools/nova_create_flavors.sh delete mode 100755 tools/openstack delete mode 100755 tools/openstack_ubuntu delete mode 100644 tools/patch_tox_venv.py delete mode 100755 tools/rst2script.sed delete mode 100755 tools/state_transitions.py delete mode 100644 tools/test-requires-rpm delete mode 100755 tools/uninstall-heat delete mode 100755 tools/with_venv.sh delete mode 100644 tox.ini delete mode 100755 uninstall.sh diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 7fc967a0..00000000 --- a/.gitignore +++ /dev/null @@ -1,19 +0,0 @@ -*.pyc -*.swp -*~ -build -dist -heat.egg-info -tags -*.log -heat-test.db -.venv -AUTHORS -ChangeLog -templates/cloudformation-examples -.tox -.coverage -cover -.testrepository -.project -.pydevproject diff --git a/.testr.conf b/.testr.conf deleted file mode 100644 index a2ff14b2..00000000 --- a/.testr.conf +++ /dev/null @@ -1,4 +0,0 @@ -[DEFAULT] -test_command=${PYTHON:-python} -m subunit.run discover -t ./ . $LISTOPT $IDOPTION -test_id_option=--load-list $IDFILE -test_list_option=--list diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst deleted file mode 100644 index 513270a8..00000000 --- a/CONTRIBUTING.rst +++ /dev/null @@ -1,17 +0,0 @@ -If you would like to contribute to the development of OpenStack, -you must follow the steps in the "If you're a developer, start here" -section of this page: - - http://wiki.openstack.org/HowToContribute - -Once those steps have been completed, changes to OpenStack -should be submitted for review via the Gerrit tool, following -the workflow documented at: - - http://wiki.openstack.org/GerritWorkflow - -Pull requests submitted through GitHub will be ignored. - -Bugs should be filed on Launchpad, not GitHub: - - https://bugs.launchpad.net/heat diff --git a/HACKING.rst b/HACKING.rst deleted file mode 100644 index 1871e0b2..00000000 --- a/HACKING.rst +++ /dev/null @@ -1,43 +0,0 @@ -Heat Style Commandments -======================= - -- Step 1: Read the OpenStack Style Commandments - https://github.com/openstack-dev/hacking/blob/master/HACKING.rst -- Step 2: Read on - -Heat Specific Commandments --------------------------- - -None so far - -Creating Unit Tests -------------------- -For every new feature, unit tests should be created that both test and -(implicitly) document the usage of said feature. If submitting a patch for a -bug that had no unit test, a new passing unit test should be added. If a -submitted bug fix does have a unit test, be sure to add a new one that fails -without the patch and passes with the patch. - -For more information on creating unit tests and utilizing the testing -infrastructure in OpenStack Heat, please read heat/testing/README.rst. - - -Running Tests -------------- -The testing system is based on a combination of tox and testr. The canonical -approach to running tests is to simply run the command `tox`. This will -create virtual environments, populate them with dependencies and run all of -the tests that OpenStack CI systems run. Behind the scenes, tox is running -`testr run --parallel`, but is set up such that you can supply any additional -testr arguments that are needed to tox. For example, you can run: -`tox -- --analyze-isolation` to cause tox to tell testr to add ---analyze-isolation to its argument list. - -It is also possible to run the tests inside of a virtual environment -you have created, or it is possible that you have all of the dependencies -installed locally already. In this case, you can interact with the testr -command directly. Running `testr run` will run the entire test suite. `testr -run --parallel` will run it in parallel (this is the default incantation tox -uses.) More information about testr can be found at: -http://wiki.openstack.org/testr - diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 68c771a0..00000000 --- a/LICENSE +++ /dev/null @@ -1,176 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index e655e931..00000000 --- a/MANIFEST.in +++ /dev/null @@ -1,27 +0,0 @@ -include AUTHORS -include ChangeLog -include CONTRIBUTING.rst -include HACKING.rst -include LICENSE -include README.rst -include MANIFEST.in pylintrc -include openstack-common.conf -include babel.cfg install.sh run_tests.sh tox.ini uninstall.sh -include heat/cloudinit/config -include heat/cloudinit/boothook.sh -include heat/cloudinit/loguserdata.py -include heat/cloudinit/part-handler.py -include heat/db/sqlalchemy/migrate_repo/migrate.cfg -include heat/db/sqlalchemy/migrate_repo/README -include heat/openstack/common/README -include heat/testing/README.rst -include heat/tests/examples/tags.txt -include heat/tests/testing-overview.txt -include heat/tests/v1_1/testfile.txt -include heat/tests/policy/deny_stack_user.json -include heat/tests/policy/notallowed.json -graft contrib -graft etc -graft doc -graft docs -graft tools diff --git a/README.rst b/README.rst deleted file mode 100644 index f9bfacbc..00000000 --- a/README.rst +++ /dev/null @@ -1,39 +0,0 @@ -==== -HEAT -==== - -Heat is a service to orchestrate multiple composite cloud applications using -templates, through both an OpenStack-native ReST API and a -CloudFormation-compatible Query API. - -Why heat? It makes the clouds rise and keeps them there. - -Getting Started ---------------- - -If you'd like to run from the master branch, you can clone the git repo: - - git clone git@github.com:openstack/heat.git - - -* Wiki: http://wiki.openstack.org/Heat -* Developer docs: http://docs.openstack.org/developer/heat - - -Python client -------------- -https://github.com/openstack/python-heatclient - -References ----------- -* http://docs.amazonwebservices.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html -* http://docs.amazonwebservices.com/AWSCloudFormation/latest/UserGuide/create-stack.html -* http://docs.amazonwebservices.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html -* http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=tosca - -We have integration with ------------------------- -* https://github.com/openstack/python-novaclient (instance) -* https://github.com/openstack/python-keystoneclient (auth) -* https://github.com/openstack/python-swiftclient (s3) -* https://github.com/openstack/python-neutronclient (networking) diff --git a/babel.cfg b/babel.cfg deleted file mode 100644 index efceab81..00000000 --- a/babel.cfg +++ /dev/null @@ -1 +0,0 @@ -[python: **.py] diff --git a/bin/cinder-keystone-setup b/bin/cinder-keystone-setup deleted file mode 100755 index 19165fd2..00000000 --- a/bin/cinder-keystone-setup +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -set +e - -SERVICE_PASSWORD='servicepass' -CINDER_USERNAME='cinder' - -source `dirname $0`/heat-keystone-setup - -ADMIN_ROLE=$(get_data 2 admin 1 keystone role-list) -SERVICE_TENANT=$(get_data 2 service 1 keystone tenant-list) - -CINDER_USERID=$(get_user $CINDER_USERNAME) -add_role $CINDER_USERID $SERVICE_TENANT $ADMIN_ROLE $CINDER_USERNAME - -CINDER_SERVICE=$(get_service cinder volume "Cinder Volume Service") -add_endpoint $CINDER_SERVICE 'http://localhost:8776/v1/$(tenant_id)s' diff --git a/bin/heat-api b/bin/heat-api deleted file mode 100755 index 7286334d..00000000 --- a/bin/heat-api +++ /dev/null @@ -1,66 +0,0 @@ -#!/usr/bin/env python -# vim: tabstop=4 shiftwidth=4 softtabstop=4 -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -""" -Heat API Server. An OpenStack ReST API to Heat. -""" - -import eventlet -eventlet.monkey_patch(os=False) - -import os -import sys - -# If ../heat/__init__.py exists, add ../ to Python search path, so that -# it will override what happens to be installed in /usr/(local/)lib/python... -possible_topdir = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]), - os.pardir, - os.pardir)) -if os.path.exists(os.path.join(possible_topdir, 'heat', '__init__.py')): - sys.path.insert(0, possible_topdir) - -from heat.openstack.common import gettextutils - -gettextutils.install('heat', lazy=True) - -from oslo.config import cfg - -from heat.common import config -from heat.common import wsgi - -from heat.openstack.common import log as logging - -LOG = logging.getLogger('heat.api') - -if __name__ == '__main__': - try: - cfg.CONF(project='heat', prog='heat-api') - cfg.CONF.default_log_levels = ['amqplib=WARN', - 'qpid.messaging=INFO', - 'keystone=INFO', - 'eventlet.wsgi.server=WARN', - ] - logging.setup('heat') - - app = config.load_paste_app() - - port = cfg.CONF.heat_api.bind_port - host = cfg.CONF.heat_api.bind_host - LOG.info('Starting Heat ReST API on %s:%s' % (host, port)) - server = wsgi.Server() - server.start(app, cfg.CONF.heat_api, default_port=port) - server.wait() - except RuntimeError as e: - sys.exit("ERROR: %s" % e) diff --git a/bin/heat-api-cfn b/bin/heat-api-cfn deleted file mode 100755 index 71a97a5f..00000000 --- a/bin/heat-api-cfn +++ /dev/null @@ -1,68 +0,0 @@ -#!/usr/bin/env python -# vim: tabstop=4 shiftwidth=4 softtabstop=4 -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -""" -Heat API Server. This implements an approximation of the Amazon -CloudFormation API and translates it into a native representation. It then -calls the heat-engine via AMQP RPC to implement them. -""" - -import eventlet -eventlet.monkey_patch(os=False) - -import os -import sys - -# If ../heat/__init__.py exists, add ../ to Python search path, so that -# it will override what happens to be installed in /usr/(local/)lib/python... -possible_topdir = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]), - os.pardir, - os.pardir)) -if os.path.exists(os.path.join(possible_topdir, 'heat', '__init__.py')): - sys.path.insert(0, possible_topdir) - -from heat.openstack.common import gettextutils - -gettextutils.install('heat', lazy=True) - -from oslo.config import cfg - -from heat.common import config -from heat.common import wsgi - -from heat.openstack.common import log as logging - -LOG = logging.getLogger('heat.api.cfn') - -if __name__ == '__main__': - try: - cfg.CONF(project='heat', prog='heat-api-cfn') - cfg.CONF.default_log_levels = ['amqplib=WARN', - 'qpid.messaging=INFO', - 'keystone=INFO', - 'eventlet.wsgi.server=WARN', - ] - logging.setup('heat') - - app = config.load_paste_app() - - port = cfg.CONF.heat_api_cfn.bind_port - host = cfg.CONF.heat_api_cfn.bind_host - LOG.info('Starting Heat API on %s:%s' % (host, port)) - server = wsgi.Server() - server.start(app, cfg.CONF.heat_api_cfn, default_port=port) - server.wait() - except RuntimeError as e: - sys.exit("ERROR: %s" % e) diff --git a/bin/heat-api-cloudwatch b/bin/heat-api-cloudwatch deleted file mode 100755 index b01db22e..00000000 --- a/bin/heat-api-cloudwatch +++ /dev/null @@ -1,68 +0,0 @@ -#!/usr/bin/env python -# vim: tabstop=4 shiftwidth=4 softtabstop=4 -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -""" -Heat API Server. This implements an approximation of the Amazon -CloudWatch API and translates it into a native representation. It then -calls the heat-engine via AMQP RPC to implement them. -""" - -import eventlet -eventlet.monkey_patch(os=False) - -import os -import sys - -# If ../heat/__init__.py exists, add ../ to Python search path, so that -# it will override what happens to be installed in /usr/(local/)lib/python... -possible_topdir = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]), - os.pardir, - os.pardir)) -if os.path.exists(os.path.join(possible_topdir, 'heat', '__init__.py')): - sys.path.insert(0, possible_topdir) - -from heat.openstack.common import gettextutils - -gettextutils.install('heat', lazy=True) - -from oslo.config import cfg - -from heat.common import config -from heat.common import wsgi - -from heat.openstack.common import log as logging - -LOG = logging.getLogger('heat.api.cloudwatch') - -if __name__ == '__main__': - try: - cfg.CONF(project='heat', prog='heat-api-cloudwatch') - cfg.CONF.default_log_levels = ['amqplib=WARN', - 'qpid.messaging=INFO', - 'keystone=INFO', - 'eventlet.wsgi.server=WARN', - ] - logging.setup('heat') - - app = config.load_paste_app() - - port = cfg.CONF.heat_api_cloudwatch.bind_port - host = cfg.CONF.heat_api_cloudwatch.bind_host - LOG.info('Starting Heat CloudWatch API on %s:%s' % (host, port)) - server = wsgi.Server() - server.start(app, cfg.CONF.heat_api_cloudwatch, default_port=port) - server.wait() - except RuntimeError as e: - sys.exit("ERROR: %s" % e) diff --git a/bin/heat-db-setup b/bin/heat-db-setup deleted file mode 100755 index d7a58441..00000000 --- a/bin/heat-db-setup +++ /dev/null @@ -1,264 +0,0 @@ -#!/bin/bash -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. -# - -# -# Print --help output and exit. -# -usage() { - -cat << EOF -Set up a local MySQL database for use with heat. -This script will create a 'heat' database that is accessible -only on localhost by user 'heat' with password 'heat'. - -Usage: heat-db-setup [options] -Options: - select a distro type (rpm or debian) - - --help | -h - Print usage information. - --password | -p - Specify the password for the 'heat' MySQL user that will - use to connect to the 'heat' MySQL database. By default, - the password 'heat' will be used. - --rootpw | -r - Specify the root MySQL password. If the script installs - the MySQL server, it will set the root password to this value - instead of prompting for a password. If the MySQL server is - already installed, this password will be used to connect to the - database instead of having to prompt for it. - --yes | -y - In cases where the script would normally ask for confirmation - before doing something, such as installing mysql-server, - just assume yes. This is useful if you want to run the script - non-interactively. -EOF - - exit 0 -} - -install_mysql_server() { - if [ -z "${ASSUME_YES}" ] ; then - $PACKAGE_INSTALL mysql-server - else - $PACKAGE_INSTALL -y mysql-server - fi -} - -start_mysql_server() { - $SERVICE_START -} - -MYSQL_HEAT_PW_DEFAULT="heat" -MYSQL_HEAT_PW=${MYSQL_HEAT_PW_DEFAULT} -HEAT_CONFIG="/etc/heat/heat.conf" -ASSUME_YES="" -ELEVATE="" - -# Check for root privileges -if [[ $EUID -ne 0 ]] ; then - echo "This operation requires superuser privileges, using sudo:" - if sudo -l > /dev/null ; then - ELEVATE="sudo" - else - exit 1 - fi -fi - -case "$1" in - rpm) - echo "Installing on an RPM system." - PACKAGE_INSTALL="$ELEVATE yum install" - PACKAGE_STATUS="rpm -q" - SERVICE_MYSQLD="mysqld" - SERVICE_START="$ELEVATE service $SERVICE_MYSQLD start" - SERVICE_STATUS="service $SERVICE_MYSQLD status" - SERVICE_ENABLE="$ELEVATE chkconfig" - ;; - deb) - echo "Installing on a Debian system." - PACKAGE_INSTALL="$ELEVATE apt-get install" - PACKAGE_STATUS="dpkg-query -s" - SERVICE_MYSQLD="mysql" - SERVICE_START="$ELEVATE service $SERVICE_MYSQLD start" - SERVICE_STATUS="$ELEVATE service $SERVICE_MYSQLD status" - SERVICE_ENABLE="" - ;; - *) - usage - ;; -esac - -while [ $# -gt 0 ] -do - case "$1" in - -h|--help) - usage - ;; - -p|--password) - shift - MYSQL_HEAT_PW=${1} - ;; - -r|--rootpw) - shift - MYSQL_ROOT_PW=${1} - ;; - -y|--yes) - ASSUME_YES="yes" - ;; - *) - # ignore - ;; - esac - shift -done - - -# Make sure MySQL is installed. - -NEW_MYSQL_INSTALL=0 -if ! $PACKAGE_STATUS mysql-server && ! $PACKAGE_STATUS mariadb-server > /dev/null -then - if [ -z "${ASSUME_YES}" ] ; then - printf "mysql-server is not installed. Would you like to install it now? (y/n): " - read response - case "$response" in - y|Y) - ;; - n|N) - echo "mysql-server must be installed. Please install it before proceeding." - exit 0 - ;; - *) - echo "Invalid response." - exit 1 - esac - fi - - NEW_MYSQL_INSTALL=1 - install_mysql_server -fi - - -# Make sure mysqld is running. - -if ! $SERVICE_STATUS > /dev/null -then - if [ -z "${ASSUME_YES}" ] ; then - printf "$SERVICE_MYSQLD is not running. Would you like to start it now? (y/n): " - read response - case "$response" in - y|Y) - ;; - n|N) - echo "$SERVICE_MYSQLD must be running. Please start it before proceeding." - exit 0 - ;; - *) - echo "Invalid response." - exit 1 - esac - fi - - start_mysql_server - - # If we both installed and started, ensure it starts at boot - [ $NEW_MYSQL_INSTALL -eq 1 ] && $SERVICE_ENABLE $SERVICE_MYSQLD on -fi - - -# Get MySQL root access. - -if [ $NEW_MYSQL_INSTALL -eq 1 ] -then - if [ ! "${MYSQL_ROOT_PW+defined}" ] ; then - echo "Since this is a fresh installation of MySQL, please set a password for the 'root' mysql user." - - PW_MATCH=0 - while [ $PW_MATCH -eq 0 ] - do - printf "Enter new password for 'root' mysql user: " - read -s MYSQL_ROOT_PW - echo - printf "Enter new password again: " - read -s PW2 - echo - if [ "${MYSQL_ROOT_PW}" = "${PW2}" ] ; then - PW_MATCH=1 - else - echo "Passwords did not match." - fi - done - fi - - echo "UPDATE mysql.user SET password = password('${MYSQL_ROOT_PW}') WHERE user = 'root'; DELETE FROM mysql.user WHERE user = ''; flush privileges;" | mysql -u root - if ! [ $? -eq 0 ] ; then - echo "Failed to set password for 'root' MySQL user." - exit 1 - fi -elif [ ! "${MYSQL_ROOT_PW+defined}" ] ; then - printf "Please enter the password for the 'root' MySQL user: " - read -s MYSQL_ROOT_PW - echo -fi - - -# Sanity check MySQL credentials. - -MYSQL_ROOT_PW_ARG="" -if [ "${MYSQL_ROOT_PW+defined}" ] -then - MYSQL_ROOT_PW_ARG="--password=${MYSQL_ROOT_PW}" -fi -echo "SELECT 1;" | mysql -u root ${MYSQL_ROOT_PW_ARG} > /dev/null -if ! [ $? -eq 0 ] -then - echo "Failed to connect to the MySQL server. Please check your root user credentials." - exit 1 -fi -echo "Verified connectivity to MySQL." - - -# Now create the db. - -echo "Creating 'heat' database." -cat << EOF | mysql -u root ${MYSQL_ROOT_PW_ARG} -CREATE DATABASE IF NOT EXISTS heat; -GRANT ALL ON heat.* TO 'heat'@'localhost' IDENTIFIED BY '${MYSQL_HEAT_PW}'; -GRANT ALL ON heat.* TO 'heat'@'%' IDENTIFIED BY '${MYSQL_HEAT_PW}'; -flush privileges; -EOF - - -# Make sure heat configuration has the right MySQL password. - -if [ "${MYSQL_HEAT_PW}" != "${MYSQL_HEAT_PW_DEFAULT}" ] ; then - echo "Updating 'heat' database password in ${HEAT_CONFIG}" - sed -i -e "s/mysql:\/\/heat:\(.*\)@/mysql:\/\/heat:${MYSQL_HEAT_PW}@/" ${HEAT_CONFIG} -fi - -heat-manage db_sync - - -# Do a final sanity check on the database. - -echo "SELECT * FROM migrate_version;" | mysql -u heat --password=${MYSQL_HEAT_PW} heat > /dev/null -if ! [ $? -eq 0 ] -then - echo "Final sanity check failed." - exit 1 -fi - -echo "Complete!" diff --git a/bin/heat-engine b/bin/heat-engine deleted file mode 100755 index 36412cba..00000000 --- a/bin/heat-engine +++ /dev/null @@ -1,68 +0,0 @@ -#!/usr/bin/env python -# vim: tabstop=4 shiftwidth=4 softtabstop=4 - -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -""" -Heat Engine Server. This does the work of actually implementing the API -calls made by the user. Normal communications is done via the heat API -which then calls into this engine. -""" - -import eventlet -eventlet.monkey_patch() - -import os -import sys - -# If ../heat/__init__.py exists, add ../ to Python search path, so that -# it will override what happens to be installed in /usr/(local/)lib/python... -POSSIBLE_TOPDIR = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]), - os.pardir, - os.pardir)) -if os.path.exists(os.path.join(POSSIBLE_TOPDIR, 'heat', '__init__.py')): - sys.path.insert(0, POSSIBLE_TOPDIR) - -from heat.openstack.common import gettextutils - -gettextutils.install('heat', lazy=True) - -from oslo.config import cfg - -from heat.openstack.common import log as logging -from heat.openstack.common import service - -from heat.db import api as db_api -from heat.rpc import api as rpc_api - - -LOG = logging.getLogger('heat.engine') - -if __name__ == '__main__': - - cfg.CONF(project='heat', prog='heat-engine') - cfg.CONF.default_log_levels = ['amqplib=WARN', - 'sqlalchemy=WARN', - 'qpid.messaging=INFO', - 'keystone=INFO', - 'eventlet.wsgi.server=WARN', - ] - logging.setup('heat') - - from heat.engine import service as engine - - db_api.configure() - srv = engine.EngineService(cfg.CONF.host, rpc_api.ENGINE_TOPIC) - launcher = service.launch(srv) - launcher.wait() diff --git a/bin/heat-keystone-setup b/bin/heat-keystone-setup deleted file mode 100755 index ca184501..00000000 --- a/bin/heat-keystone-setup +++ /dev/null @@ -1,243 +0,0 @@ -#!/bin/bash - -set +e - -KEYSTONE_CONF=${KEYSTONE_CONF:-/etc/keystone/keystone.conf} - -# Extract some info from Keystone's configuration file -if [[ -r "$KEYSTONE_CONF" ]]; then - CONFIG_SERVICE_TOKEN=$(sed 's/[[:space:]]//g' $KEYSTONE_CONF | grep ^admin_token= | cut -d'=' -f2) - CONFIG_ADMIN_PORT=$(sed 's/[[:space:]]//g' $KEYSTONE_CONF | grep ^admin_port= | cut -d'=' -f2) -fi - -SERVICE_TOKEN=${SERVICE_TOKEN:-$CONFIG_SERVICE_TOKEN} -SERVICE_ENDPOINT=${SERVICE_ENDPOINT:-http://127.0.0.1:${CONFIG_ADMIN_PORT:-35357}/v2.0} -if [[ -z "$SERVICE_TOKEN" ]]; then - echo "No service token found." >&2 - echo "Set SERVICE_TOKEN manually from keystone.conf admin_token." >&2 - exit 1 -fi - -set_admin_token() { - alias keystone="keystone --token $SERVICE_TOKEN \ - --endpoint $SERVICE_ENDPOINT" -} - -unset_admin_token() { - unalias keystone -} - - -get_data() { - local match_column=$(($1 + 1)) - local regex="$2" - local output_column=$(($3 + 1)) - shift 3 - - echo $("$@" | \ - awk -F'|' \ - "! /^\+/ && \$${match_column} ~ \"^ *${regex} *\$\" \ - { print \$${output_column} }") -} - -get_id () { - get_data 1 id 2 "$@" -} - -get_column_num() { - local name=$1 - shift - $@ | awk -F'|' "NR == 2 { for (i=2; i&2 - echo $user_id - else - echo "Creating $username user..." >&2 - get_id keystone user-create --name=$username \ - --pass="$SERVICE_PASSWORD" \ - --tenant_id $SERVICE_TENANT \ - --email=$username@example.com - fi -} - -add_role() { - local user_id=$1 - local tenant=$2 - local role_id=$3 - local username=$4 - - # The keystone argument format changed between essex and folsom - # so we use the fact that the folsom keystone version has a new - # option "user-role-list" to detect we're on that newer version - # This also allows us to detect when the user already has the - # requested role_id, preventing an error on folsom - user_roles=$(keystone user-role-list \ - --user_id $user_id\ - --tenant_id $tenant 2>/dev/null) - if [ $? == 0 ]; then - # Folsom - existing_role=$(get_data 1 $role_id 1 echo "$user_roles") - if [ -n "$existing_role" ] - then - echo "User $username already has role $role_id" >&2 - return - fi - keystone user-role-add --tenant_id $tenant \ - --user_id $user_id \ - --role_id $role_id - else - # Essex - keystone user-role-add --tenant_id $tenant \ - --user $user_id \ - --role $role_id - fi -} - -create_role() { - local role_name=$1 - - role_id=$(get_data 2 $role_name 1 keystone role-list) - if [ -n "$role_id" ] - then - echo "Role $role_name already exists : $role_id" >&2 - else - keystone role-create --name $role_name - fi -} - -get_endpoint() { - local service_type=$1 - - unset_admin_token - keystone endpoint-get --service $service_type - set_admin_token -} - -delete_endpoint() { - local service_type=$1 - - case $service_type in - volume) urlsuffix='\\\\$\\\\(tenant_id)s';; - orchestration) urlsuffix='%[(]tenant_id[)]s';; - # cloudformation has no hash suffix - *) urlsuffix='' - esac - - local url=$(get_data 1 "${service_type}[.]publicURL" 2 \ - get_endpoint $service_type 2>/dev/null | \ - sed -r "s/[a-f0-9]{32}/$urlsuffix/") - - if [ -n "$url" ]; then - local endpoints=$(get_data 3 $url 1 keystone endpoint-list) - - for endpoint in $endpoints; do - echo "Removing $service_type endpoint ${endpoint}..." >&2 - keystone endpoint-delete "$endpoint" >&2 - done - - if [ -z "$endpoints" ]; then false; fi - else - false - fi -} - -delete_all_endpoints() { - while delete_endpoint $1; do - true - done -} - -delete_service() { - local service_type=$1 - - delete_all_endpoints $service_type - - local service_ids=$(get_data 3 $service_type 1 keystone service-list) - - for service in $service_ids; do - local service_name=$(get_data 1 $service 2 keystone service-list) - echo "Removing $service_name:$service_type service..." >&2 - keystone service-delete $service >&2 - done -} - -get_service() { - local service_name=$1 - local service_type=$2 - local description="$3" - - delete_service $service_type - - get_id keystone service-create --name=$service_name \ - --type=$service_type \ - --description="$description" -} - -add_endpoint() { - local service_id=$1 - local url="$2" - - keystone endpoint-create --region RegionOne --service_id $service_id \ - --publicurl "$url" --adminurl "$url" --internalurl "$url" >&2 -} - -keystone_setup() { - TENANT_ID=$(get_data 1 tenant_id 2 keystone token-get) - set_admin_token - - ADMIN_ROLE=$(get_data 2 admin 1 keystone role-list) - SERVICE_TENANT=$(get_data 2 service 1 keystone tenant-list) - SERVICE_PASSWORD=${SERVICE_PASSWORD:-$OS_PASSWORD} - SERVICE_HOST=${SERVICE_HOST:-localhost} - - if [[ "$SERVICE_PASSWORD" == "$OS_PASSWORD" ]]; then - echo "Using the OS_PASSWORD for the SERVICE_PASSWORD." >&2 - fi - - if [[ "$SERVICE_HOST" == "localhost" ]]; then - echo "Endpoints will be registered as localhost, but this usually won't work." - echo "Set SERVICE_HOST to a publically accessible hostname/IP instead." - fi - - echo ADMIN_ROLE $ADMIN_ROLE - echo SERVICE_TENANT $SERVICE_TENANT - echo SERVICE_PASSWORD $SERVICE_PASSWORD - echo SERVICE_TOKEN $SERVICE_TOKEN - echo SERVICE_HOST $SERVICE_HOST - - HEAT_USERNAME="heat" - HEAT_USERID=$(get_user $HEAT_USERNAME) - echo HEAT_USERID $HEAT_USERID - add_role $HEAT_USERID $SERVICE_TENANT $ADMIN_ROLE $HEAT_USERNAME - - # Create a special role which template-defined "stack users" are - # assigned to in the engine when they are created, this allows them - # to be more easily differentiated from other users (e.g so we can - # lock down these implicitly untrusted users via RBAC policy) - STACK_USER_ROLE="heat_stack_user" - create_role $STACK_USER_ROLE - - HEAT_CFN_SERVICE=$(get_service heat-cfn cloudformation \ - "Heat CloudFormation API") - add_endpoint $HEAT_CFN_SERVICE "http://$SERVICE_HOST:8000/v1" - - HEAT_OS_SERVICE=$(get_service heat orchestration \ - "Heat API") - add_endpoint $HEAT_OS_SERVICE "http://$SERVICE_HOST:8004/v1/%(tenant_id)s" -} - -if [[ ${BASH_SOURCE[0]} == ${0} ]]; then - keystone_setup -fi diff --git a/bin/heat-manage b/bin/heat-manage deleted file mode 100755 index 32bdc8f7..00000000 --- a/bin/heat-manage +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env python -# vim: tabstop=4 shiftwidth=4 softtabstop=4 - -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -# implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import os -import sys - -# If ../heat/__init__.py exists, add ../ to Python search path, so that -# it will override what happens to be installed in /usr/(local/)lib/python... -POSSIBLE_TOPDIR = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]), - os.pardir, - os.pardir)) -if os.path.exists(os.path.join(POSSIBLE_TOPDIR, 'heat', '__init__.py')): - sys.path.insert(0, POSSIBLE_TOPDIR) - -from heat.openstack.common import gettextutils - -gettextutils.install('heat') - -from heat.cmd import manage - -manage.main() diff --git a/contrib/redhat-eventlet.patch b/contrib/redhat-eventlet.patch deleted file mode 100644 index cf2ff53d..00000000 --- a/contrib/redhat-eventlet.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- .nova-venv/lib/python2.6/site-packages/eventlet/green/subprocess.py.orig -2011-05-25 -23:31:34.597271402 +0000 -+++ .nova-venv/lib/python2.6/site-packages/eventlet/green/subprocess.py -2011-05-25 -23:33:24.055602468 +0000 -@@ -32,7 +32,7 @@ - setattr(self, attr, wrapped_pipe) - __init__.__doc__ = subprocess_orig.Popen.__init__.__doc__ - -- def wait(self, check_interval=0.01): -+ def wait(self, check_interval=0.01, timeout=None): - # Instead of a blocking OS call, this version of wait() uses logic - # borrowed from the eventlet 0.2 processes.Process.wait() method. - try: - diff --git a/doc/.gitignore b/doc/.gitignore deleted file mode 100644 index 6438f1c0..00000000 --- a/doc/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -target/ -build/ diff --git a/doc/Makefile b/doc/Makefile deleted file mode 100644 index 5e5f8ff1..00000000 --- a/doc/Makefile +++ /dev/null @@ -1,153 +0,0 @@ -# Makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = build - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source - -.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext - -help: - @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - -clean: - -rm -rf $(BUILDDIR)/* - -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Heat.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Heat.qhc" - -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/Heat" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Heat" - @echo "# devhelp" - -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." diff --git a/doc/README.rst b/doc/README.rst deleted file mode 100644 index 9188b214..00000000 --- a/doc/README.rst +++ /dev/null @@ -1,35 +0,0 @@ -=========================== -Building the developer docs -=========================== - -For user and admin docs, go to the directory `doc/docbkx`. - -Dependencies -============ - -Sphinx_ - You'll need sphinx (the python one) and if you are - using the virtualenv you'll need to install it in the virtualenv - specifically so that it can load the cinder modules. - - :: - - sudo yum install python-sphinx - sudo pip-python install sphinxcontrib-httpdomain - -Use `make` -========== - -Just type make:: - - make - -Look in the Makefile for more targets. - -To build the man pages: - - make man - -To build the developer documentation as HTML: - - make html \ No newline at end of file diff --git a/doc/docbkx/README.rst b/doc/docbkx/README.rst deleted file mode 100644 index 4286b29f..00000000 --- a/doc/docbkx/README.rst +++ /dev/null @@ -1,35 +0,0 @@ -================================ -Building the user and admin docs -================================ - -This documentation should eventually end up in the OpenStack documentation -repositories `api-site` and `openstack-manuals`. - -Dependencies -============ - -on Ubuntu: - - sudo apt-get install maven - -on Fedora Core: - - sudo yum install maven - -Use `mvn` -========= - -Build the REST API reference manual: - - cd api-ref - mvn clean generate-sources - -Build the Heat admin guide: - - cd heat-admin - mvn clean generate-sources - -Build the Heat CLI guide: - - cd heat-cli-guide - mvn clean generate-sources \ No newline at end of file diff --git a/doc/docbkx/api-ref/pom.xml b/doc/docbkx/api-ref/pom.xml deleted file mode 100644 index 3147fce7..00000000 --- a/doc/docbkx/api-ref/pom.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - 4.0.0 - - org.openstack.identity - docs - 1.0 - jar - OpenStack API Page Project - - - Rackspace Research Repositories - - true - - - - rackspace-research - Rackspace Research Repository - http://maven.research.rackspacecloud.com/content/groups/public/ - - - - - rackspace-research - Rackspace Research Repository - http://maven.research.rackspacecloud.com/content/groups/public/ - - always - - - - - - - UTF-8 - 1.5.1 - - - - - com.rackspace.cloud.api - clouddocs-maven-plugin - ${doctools.version} - - - g1 - - generate-html - - generate-sources - - false - 1 - UA-17511903-1 - - - - - - true - src/docbkx - - api-ref.xml - - reviewer - openstack - 1 - true - - - - - diff --git a/doc/docbkx/api-ref/src/docbkx/api-ref.xml b/doc/docbkx/api-ref/src/docbkx/api-ref.xml deleted file mode 100644 index ab1ca4ae..00000000 --- a/doc/docbkx/api-ref/src/docbkx/api-ref.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - Heat API - - 2012 - - - - - - - Heat - - - - - diff --git a/doc/docbkx/api-ref/src/wadls/heat-api/src/heat-api-1.0.wadl b/doc/docbkx/api-ref/src/wadls/heat-api/src/heat-api-1.0.wadl deleted file mode 100644 index 53e2ed3b..00000000 --- a/doc/docbkx/api-ref/src/wadls/heat-api/src/heat-api-1.0.wadl +++ /dev/null @@ -1,389 +0,0 @@ - - - - - - - - - - - -

- The unique identifier of the tenant or account. -

-
- - - - - - - - -

- The name of an existing stack. -

- - - - - - - - - - - - - - -

- The unique identifier of an existing stack. -

- - - - - - - - - - - - - - - -

- The name of a resource in the stack. -

- - - - - - - -
- - - - - - -

- The unique identifier of an event related to the resource in the stack. -

- - - -
-
- -
- - - - -
-
-
- - - - - - - - - -
-
-
- - - -

Get a list of active stacks.

-
- - - -
- - - -

Create a Stack.

-
- - - -

- The name of the stack to create. -

- - - -

- The URL of the template to instantiate. -

- This is ignored if the template is supplied inline. -

- - - -

- A JSON template to instantiate. -

- This takes precedence over the Template URL if both are supplied. -

- - - -

- A JSON envionment for the stack. -

- - - -

- User-defined parameter names to pass to the template. -

- - - -

- User-defined parameter values to pass to the template. -

- - - -

- The timeout for stack creation in minutes. -

- - - - - - - -
- - -
- - - -

Find the canonical URL for a stack with a given name.

-

This operation also works - with verbs other than GET, so you can also use it to perform - PUT and DELETE operations on a current stack. Just set your - client to follow redirects. Note that when redirecting, the - request method should not change, as defined in RFC2626. - However, in many clients the default behaviour is to change the - method to GET when receiving a 302 because this behaviour is - ubiquitous in web browsers.

-
- - -
- - - -

Get data about a stack.

-
- - - -
- - - -

Retrieve a stack's template.

-
- - - -
- - - -

Update a Stack.

-
- - - -

- The URL of the template to instantiate. -

- This is ignored if the template is supplied inline. -

- - - -

- A JSON template to instantiate. -

- This takes precedence over the Template URL if both are supplied. -

- - - -

- A JSON envionment for the stack. -

- - - -

- User-defined parameter names to pass to the template. -

- - - -

- User-defined parameter values to pass to the template. -

- - - -

- The timeout for stack creation in minutes. -

- - - - - - - -
- - -
- - - -

Delete a stack.

-
- - -
- - - -

Update a Stack.

-
- - - -

- The URL of the template to instantiate. -

- This is ignored if the template is supplied inline. -

- - - -

- A JSON template to instantiate. -

- This takes precedence over the Template URL if both are supplied. -

- - - - - - - -
- - - -
- - - -

Get a list of the template resource types that are supported.

-
- - - -
- - - -

Find the canonical URL for the resource list of a stack with a given name.

-
- - -
- - - -

Get a list of resources in a stack.

-
- - - -
- - - -

Get data about a resource.

-
- - - -
- - - -

Get data a resource's metadata.

-
- - - -
- - - -

Find the canonical URL for the event list of a stack with a given name.

-
- - -
- - - -

Get a list of events for a stack.

-
- - - -
- - - -

Get a list of events for a stack resource.

-
- - - -
- - - -

Get data about an event.

-
- - - -
- -
diff --git a/doc/docbkx/api-ref/src/wadls/heat-api/src/samples/stack_create.json b/doc/docbkx/api-ref/src/wadls/heat-api/src/samples/stack_create.json deleted file mode 100644 index 6b8fab10..00000000 --- a/doc/docbkx/api-ref/src/wadls/heat-api/src/samples/stack_create.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "stack_name": "{stack_name}", - "template_url": "{template_url}", - "parameters": { - "param_name-1": "param_value-1", - "param_name-2": "param_value-2" - }, - "timeout_mins": {timeout_mins} -} diff --git a/doc/docbkx/api-ref/src/wadls/heat-api/src/samples/stack_update.json b/doc/docbkx/api-ref/src/wadls/heat-api/src/samples/stack_update.json deleted file mode 100644 index 1ef9a7ea..00000000 --- a/doc/docbkx/api-ref/src/wadls/heat-api/src/samples/stack_update.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "template_url": "{template_url}", - "parameters": { - "param_name-1": "param_value-1", - "param_name-2": "param_value-2" - }, - "timeout_mins": {timeout_mins} -} diff --git a/doc/docbkx/api-ref/src/wadls/heat-api/src/samples/template_validate.json b/doc/docbkx/api-ref/src/wadls/heat-api/src/samples/template_validate.json deleted file mode 100644 index 0a90617f..00000000 --- a/doc/docbkx/api-ref/src/wadls/heat-api/src/samples/template_validate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "template_url": "{template_url}" -} diff --git a/doc/docbkx/heat-admin/app_core.xml b/doc/docbkx/heat-admin/app_core.xml deleted file mode 100644 index e1901b17..00000000 --- a/doc/docbkx/heat-admin/app_core.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - -]> - - Core Configuration File Options - TODO - diff --git a/doc/docbkx/heat-admin/bk-heat-admin-guide.xml b/doc/docbkx/heat-admin/bk-heat-admin-guide.xml deleted file mode 100644 index 23fd7dde..00000000 --- a/doc/docbkx/heat-admin/bk-heat-admin-guide.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - -]> - - - Heat Administration Guide - - - - - - - - - 2012 - OpenStack - - Grizzly (2013.1) - Heat - 2012-12-14 - - - Copyright details are filled in by the template. - - - - This document is intended for administrators interested in running the Heat Service. - - - - - - 2012-12-14 - - - - First edition of this document. - - - - - - - - - - - - - - - - - diff --git a/doc/docbkx/heat-admin/ch_install.xml b/doc/docbkx/heat-admin/ch_install.xml deleted file mode 100644 index e3f675e3..00000000 --- a/doc/docbkx/heat-admin/ch_install.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - -]> - - Heat Installation - This chapter describes how to install the Heat Service - and get it up and running. - diff --git a/doc/docbkx/heat-admin/ch_limitations.xml b/doc/docbkx/heat-admin/ch_limitations.xml deleted file mode 100644 index b057431f..00000000 --- a/doc/docbkx/heat-admin/ch_limitations.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - -GET'> -PUT'> -POST'> -DELETE'> - - - - - - - - -'> - - - - - - - - -'> -]> - - Limitations - TODO - diff --git a/doc/docbkx/heat-admin/ch_overview.xml b/doc/docbkx/heat-admin/ch_overview.xml deleted file mode 100644 index 49382311..00000000 --- a/doc/docbkx/heat-admin/ch_overview.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - -GET'> -PUT'> -POST'> -DELETE'> - - - - - - - - -'> - - - - - - - - -'> - - - - - - -powered by OpenStack'> -powered by OpenStack'> -]> - - Overview - This chapter describes the high-level concepts and - components of a Heat deployment. - - diff --git a/doc/docbkx/heat-admin/ch_preface.xml b/doc/docbkx/heat-admin/ch_preface.xml deleted file mode 100644 index 2da18129..00000000 --- a/doc/docbkx/heat-admin/ch_preface.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - -GET'> -PUT'> -POST'> -DELETE'> - - - - - - - - -'> - - - - - - - - -'> - - - - - - -powered by OpenStack'> -powered by OpenStack'> -]> - - Preface -
- Intended Audience - TODO -
-
- Document Change History - The most recent changes are described in the table - below: - -
-
- Resources - TODO -
- -
diff --git a/doc/docbkx/heat-admin/ch_using.xml b/doc/docbkx/heat-admin/ch_using.xml deleted file mode 100644 index 354dd60f..00000000 --- a/doc/docbkx/heat-admin/ch_using.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - -GET'> -PUT'> -POST'> -DELETE'> - - - - - - - - -'> - - - - - - - - -'> -]> - - Using Heat - TODO - diff --git a/doc/docbkx/heat-admin/pom.xml b/doc/docbkx/heat-admin/pom.xml deleted file mode 100644 index 4cd7ae58..00000000 --- a/doc/docbkx/heat-admin/pom.xml +++ /dev/null @@ -1,151 +0,0 @@ - - - - 4.0.0 - - org.openstack.docs - openstack-guide - 1.0.0-SNAPSHOT - jar - OpenStack Guides - - - - local - 1 - - - - - - - - Rackspace Research Repositories - - true - - - - rackspace-research - Rackspace Research Repository - http://maven.research.rackspacecloud.com/content/groups/public/ - - - - - rackspace-research - Rackspace Research Repository - http://maven.research.rackspacecloud.com/content/groups/public/ - - - - - - - - - target/docbkx/pdf - - **/*.fo - - - - - - - com.rackspace.cloud.api - clouddocs-maven-plugin - 1.5.1 - - - goal1 - - generate-pdf - - generate-sources - - false - - 0 - 0 - - - - goal2 - - generate-webhelp - - generate-sources - - - ${comments.enabled} - 1 - os-heat-guides - 1 - UA-17511903-1 - - appendix toc,title - article/appendix nop - article toc,title - book title,figure,table,example,equation - chapter toc,title - part toc,title - preface toc,title - qandadiv toc - qandaset toc - reference toc,title - set toc,title - - - 0 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - . - - bk-heat-admin-guide.xml - - http://docs.openstack.org/${release.path.name}/heat-admin/content/ - reviewer - openstack - - - - - - diff --git a/doc/docbkx/heat-cli-guide/pom.xml b/doc/docbkx/heat-cli-guide/pom.xml deleted file mode 100644 index fc74cc7f..00000000 --- a/doc/docbkx/heat-cli-guide/pom.xml +++ /dev/null @@ -1,132 +0,0 @@ - - - 4.0.0 - - org.openstack.docs - openstack-cli-guide - 1.0.0-SNAPSHOT - jar - OpenStack CLI Guides - - - - - - - Rackspace Research Repositories - - true - - - - rackspace-research - Rackspace Research Repository - http://maven.research.rackspacecloud.com/content/groups/public/ - - - - - rackspace-research - Rackspace Research Repository - http://maven.research.rackspacecloud.com/content/groups/public/ - - - - - - - - - target/docbkx/pdf - - **/*.fo - - - - - - - com.rackspace.cloud.api - clouddocs-maven-plugin - 1.5.1 - - - goal1 - - generate-pdf - - generate-sources - - - false - - 0 - 0 - - - - goal2 - - generate-webhelp - - generate-sources - - - cli-guide.pdf - 1 - os-cliguide - 1 - UA-17511903-1 - - appendix toc,title - article/appendix nop - article toc,title - book title,figure,table,example,equation - chapter toc,title - part toc,title - preface toc,title - qandadiv toc - qandaset toc - reference toc,title - set toc,title - - - 0 - 0 - - - - - - - - - - - - - - - - - - true - src - - bk-cli-guide.xml - - - reviewer - openstack - - - - - - diff --git a/doc/docbkx/heat-cli-guide/src/bk-cli-guide.xml b/doc/docbkx/heat-cli-guide/src/bk-cli-guide.xml deleted file mode 100644 index 0e47555b..00000000 --- a/doc/docbkx/heat-cli-guide/src/bk-cli-guide.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - OpenStack CLI Guide - Each OpenStack project has a Command-Line-Interface (CLI) - that interacts with the service's REST API. - - - - - diff --git a/doc/docbkx/heat-cli-guide/src/heat_cli_commands.xml b/doc/docbkx/heat-cli-guide/src/heat_cli_commands.xml deleted file mode 100644 index 7d5f9b3e..00000000 --- a/doc/docbkx/heat-cli-guide/src/heat_cli_commands.xml +++ /dev/null @@ -1,22 +0,0 @@ - -
- Command List for heat CLI - - event-list List events for a stack - event-show Describe the event - resource-list Show list of resources belonging to a stack - resource-metadata List resource metadata - resource-show Describe the resource - stack-create Create the stack - stack-delete Delete the stack - stack-list List the user's stacks - stack-show Describe the stack - stack-update Update the stack - template-show Get the template for the specified stack - template-validate Validate a template with parameters - help Display help about this program or one of its subcommands. - -
diff --git a/doc/docbkx/heat-cli-guide/src/heat_cli_howto.xml b/doc/docbkx/heat-cli-guide/src/heat_cli_howto.xml deleted file mode 100644 index 1618e432..00000000 --- a/doc/docbkx/heat-cli-guide/src/heat_cli_howto.xml +++ /dev/null @@ -1,13 +0,0 @@ - -
- - OpenStack Heat CLI Guide - This section describes heat commands - -
diff --git a/doc/docbkx/heat-cli-guide/src/heat_cli_install.xml b/doc/docbkx/heat-cli-guide/src/heat_cli_install.xml deleted file mode 100644 index d05f12b0..00000000 --- a/doc/docbkx/heat-cli-guide/src/heat_cli_install.xml +++ /dev/null @@ -1,84 +0,0 @@ - -
- Install OpenStack heat CLI - This example walks through installing the heat client. After - you install a client, you must configure environment variables - for authentication. - - To install the heat client: - - Install Python - Install Python 2.6 or later. Currently, the heat - client does not support Python 3. - - - Install the heat client package - Choose one of the following methods to install the - heat client package. - - Recommended - method: - pip - Install pip through - the package manager for your - system: - - - - - System - Command - - - - - Mac OS X - - $ sudo easy_install pip - - - - Ubuntu - - $ aptitude install python-pip - - - - RHEL, CentOS, or Fedora: - - $ yum install python-pip - - - - - Run the following command to install the heat client package: - $ sudo pip install python-heatclient - - - - easy_install - Run the following command to install the - heat client package: - $ sudo easy_install python-heatclient - - - - - Get help for heat client commands - To get help for heat client commands, run the - following command: - $ heat -h - Depending on your user credentials, you may not have - permissions to use every command that is listed. The - heat client was written for use with recent - development versions of OpenStack. - To get help for a specific command, type the command - name after the help parameter, - as follows: - $ heat help <command_name> - -
diff --git a/doc/source/_templates/.placeholder b/doc/source/_templates/.placeholder deleted file mode 100644 index e69de29b..00000000 diff --git a/doc/source/architecture.rst b/doc/source/architecture.rst deleted file mode 100644 index 1a4df668..00000000 --- a/doc/source/architecture.rst +++ /dev/null @@ -1,67 +0,0 @@ -.. - Copyright 2011-2012 OpenStack Foundation - All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); you may - not use this file except in compliance with the License. You may obtain - a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - License for the specific language governing permissions and limitations - under the License. - -Heat Architecture -================= - -Heat is a service to orchestrate multiple composite cloud applications using the .. _AWS CloudFormation: http://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/Welcome.html?r=7078 template format, through both an OpenStack-native ReST API and a CloudFormation-compatible Query API. - - --------------------- -Detailed Description --------------------- - -What is the purpose of the project and vision for it? - -*Heat provides an AWS CloudFormation implementation for OpenStack that orchestrates an AWS CloudFormation template describing a cloud application by executing appropriate OpenStack API calls to generate running cloud applications.* - -Describe the relevance of the project to other OpenStack projects and the OpenStack mission to provide a ubiquitous cloud computing platform: - -*The software integrates other core components of OpenStack into a one-file template system. The templates allow creation of most OpenStack resource types (such as instances, floating ips, volumes, security groups, users, etc), as well as some more advanced functionality such as instance high availability, instance autoscaling, and nested stacks. By providing very tight integration with other OpenStack core projects, all OpenStack core projects could receive a larger user base.* -*Currently no other CloudFormation implementation exists for OpenStack. The developers believe cloud developers have a strong desire to move workloads from AWS to OpenStack deployments. Given the missing gap of a well-implemented and integrated CloudFormation API in OpenStack, we provide a high quality implementation of this gap improving the ubiquity of OpenStack.* - -------------- -Heat Services -------------- - -The developers are focused on creating an OpenStack style project using OpenStack design tenets, implemented in Python. We have started with full integration with Keystone. We have a number of components. - -As the developers have only started development in March 2012, the architecture is evolving rapidly. - -heat ----- - -The heat tool is a CLI which communicates with the heat-api to execute AWS CloudFormation APIs. End developers could also use the heat REST API directly. - - -heat-api --------- - -The heat-api component provides an OpenStack-native REST API that processes API requests by sending them to the heat-engine over RPC. - - -heat-api-cfn ------------- - -The heat-api-cfn component provides an AWS Query API that is compatible with AWS CloudFormation and processes API requests by sending them to the heat-engine over RPC. - - -heat-engine ------------ - -The heat engine's main responsibility is to orchestrate the launching of templates and provide events back to the API consumer. - -The templates integrate well with .. _Puppet: https://s3.amazonaws.com/cloudformation-examples/IntegratingAWSCloudFormationWithPuppet.pdf and .. _Chef: http://www.full360.com/2011/02/27/integrating-aws-cloudformation-and-chef.html diff --git a/doc/source/conf.py b/doc/source/conf.py deleted file mode 100644 index bf9bb91e..00000000 --- a/doc/source/conf.py +++ /dev/null @@ -1,406 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. -# -# Heat documentation build configuration file, created by -# sphinx-quickstart on Thu Dec 13 11:23:35 2012. -# -# This file is execfile()d with the current directory set to its containing -# dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import os -import sys - -BASE_DIR = os.path.dirname(os.path.abspath(__file__)) -ROOT = os.path.abspath(os.path.join(BASE_DIR, "..", "..")) - -sys.path.insert(0, ROOT) -sys.path.insert(0, BASE_DIR) - -# This is required for ReadTheDocs.org, but isn't a bad idea anyway. -os.environ['DJANGO_SETTINGS_MODULE'] = 'openstack_dashboard.settings' - - -def write_autodoc_index(): - - def find_autodoc_modules(module_name, sourcedir): - """Return a list of modules in the SOURCE directory.""" - modlist = [] - os.chdir(os.path.join(sourcedir, module_name)) - print("SEARCHING %s" % sourcedir) - for root, dirs, files in os.walk("."): - for filename in files: - if filename.endswith(".py"): - # remove the pieces of the root - elements = root.split(os.path.sep) - # replace the leading "." with the module name - elements[0] = module_name - # and get the base module name - base, extension = os.path.splitext(filename) - if not (base == "__init__"): - elements.append(base) - result = ".".join(elements) - #print(result) - modlist.append(result) - return modlist - - RSTDIR = os.path.abspath(os.path.join(BASE_DIR, "sourcecode")) - SRCS = {'heat': ROOT} - - EXCLUDED_MODULES = ('heat.tests', - 'heat.testing', - 'heat.cmd', - 'heat.common', - 'heat.cloudinit', - 'heat.cfn_client', - 'heat.doc', - 'heat.db', - 'heat.engine.resources', - 'heat.locale', - 'heat.openstack') - CURRENT_SOURCES = {} - - if not(os.path.exists(RSTDIR)): - os.mkdir(RSTDIR) - CURRENT_SOURCES[RSTDIR] = ['autoindex.rst', '.gitignore'] - - INDEXOUT = open(os.path.join(RSTDIR, "autoindex.rst"), "w") - INDEXOUT.write("=================\n") - INDEXOUT.write("Source Code Index\n") - INDEXOUT.write("=================\n") - - for modulename, path in SRCS.items(): - sys.stdout.write("Generating source documentation for %s\n" % - modulename) - INDEXOUT.write("\n%s\n" % modulename.capitalize()) - INDEXOUT.write("%s\n" % ("=" * len(modulename),)) - INDEXOUT.write(".. toctree::\n") - INDEXOUT.write(" :maxdepth: 1\n") - INDEXOUT.write("\n") - - MOD_DIR = os.path.join(RSTDIR, modulename) - CURRENT_SOURCES[MOD_DIR] = [] - if not(os.path.exists(MOD_DIR)): - os.mkdir(MOD_DIR) - for module in find_autodoc_modules(modulename, path): - if any([module.startswith(exclude) - for exclude - in EXCLUDED_MODULES]): - print("Excluded module %s." % module) - continue - mod_path = os.path.join(path, *module.split(".")) - generated_file = os.path.join(MOD_DIR, "%s.rst" % module) - - INDEXOUT.write(" %s/%s\n" % (modulename, module)) - - # Find the __init__.py module if this is a directory - if os.path.isdir(mod_path): - source_file = ".".join((os.path.join(mod_path, "__init__"), - "py",)) - else: - source_file = ".".join((os.path.join(mod_path), "py")) - - CURRENT_SOURCES[MOD_DIR].append("%s.rst" % module) - # Only generate a new file if the source has changed or we don't - # have a doc file to begin with. - if not os.access(generated_file, os.F_OK) or \ - os.stat(generated_file).st_mtime < \ - os.stat(source_file).st_mtime: - print("Module %s updated, generating new documentation." - % module) - FILEOUT = open(generated_file, "w") - header = "The :mod:`%s` Module" % module - FILEOUT.write("%s\n" % ("=" * len(header),)) - FILEOUT.write("%s\n" % header) - FILEOUT.write("%s\n" % ("=" * len(header),)) - FILEOUT.write(".. automodule:: %s\n" % module) - FILEOUT.write(" :members:\n") - FILEOUT.write(" :undoc-members:\n") - FILEOUT.write(" :show-inheritance:\n") - FILEOUT.write(" :noindex:\n") - FILEOUT.close() - - INDEXOUT.close() - - # Delete auto-generated .rst files for sources which no longer exist - for directory, subdirs, files in list(os.walk(RSTDIR)): - for old_file in files: - if old_file not in CURRENT_SOURCES.get(directory, []): - print("Removing outdated file for %s" % old_file) - os.remove(os.path.join(directory, old_file)) - - -write_autodoc_index() - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ---------------------------------------------------- - -# If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = ['sphinx.ext.autodoc', - 'sphinx.ext.ifconfig', - 'sphinx.ext.viewcode', - 'sphinx.ext.todo', - 'sphinx.ext.coverage', - 'sphinx.ext.pngmath', - 'sphinx.ext.viewcode', - 'oslo.sphinx', - 'heat.doc.resources'] - -todo_include_todos = True - -# Add any paths that contain templates here, relative to this directory. -if os.getenv('HUDSON_PUBLISH_DOCS'): - templates_path = ['_ga', '_templates'] -else: - templates_path = ['_templates'] - -# The suffix of source filenames. -source_suffix = '.rst' - -# The encoding of source files. -#source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -project = u'Heat' -copyright = u'2012,2013 Heat Developers' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -#language = None - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = ['**/#*', '**~', '**/#*#'] - -# The reST default role (used for this markup: `text`) -# to use for all documents. -#default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - -primary_domain = 'py' -nitpicky = False - - -# -- Options for HTML output -------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -# html_theme_path = ['.'] -# html_theme = '_theme' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -html_theme_options = { - "nosidebar": "false" -} - -# Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -#html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -#html_logo = None - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -#html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -# html_static_path = ['_static'] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' -git_cmd = "git log --pretty=format:'%ad, commit %h' --date=local -n1" -html_last_updated_fmt = os.popen(git_cmd).read() - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -#html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_domain_indices = True - -# If false, no index is generated. -#html_use_index = True - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -#html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None - -# Output file base name for HTML help builder. -htmlhelp_basename = 'Heatdoc' - - -# -- Options for LaTeX output ------------------------------------------------- - -latex_elements = { - # The paper size ('letterpaper' or 'a4paper'). - #'papersize': 'letterpaper', - - # The font size ('10pt', '11pt' or '12pt'). - #'pointsize': '10pt', - - # Additional stuff for the LaTeX preamble. - #'preamble': '', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, author, documentclass [howto/manual]) -latex_documents = [ - ('index', 'Heat.tex', u'Heat Documentation', - u'Heat Developers', 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -#latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -#latex_use_parts = False - -# If true, show page references after internal links. -#latex_show_pagerefs = False - -# If true, show URL addresses after external links. -#latex_show_urls = False - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -#latex_domain_indices = True - - -# -- Options for manual page output ------------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - ('man/heat-api', 'heat-api', - u'REST API service to the heat project.', - [u'Heat Developers'], 1), - ('man/heat-api-cfn', 'heat-api-cfn', - u'CloudFormation compatible API service to the heat project.', - [u'Heat Developers'], 1), - ('man/heat-api-cloudwatch', 'heat-api-cloudwatch', - u'CloudWatch alike API service to the heat project', - [u'Heat Developers'], 1), - ('man/heat-db-setup', 'heat-db-setup', - u'Command line utility to setup the Heat database', - [u'Heat Developers'], 1), - ('man/heat-engine', 'heat-engine', - u'Service which performs the actions from the API calls made by the user', - [u'Heat Developers'], 1), - ('man/heat-keystone-setup', 'heat-keystone-setup', - u'Script which sets up keystone for usage by Heat', - [u'Heat Developers'], 1), -] - -# If true, show URL addresses after external links. -#man_show_urls = False - - -# -- Options for Texinfo output ----------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - ('index', 'Heat', u'Heat Documentation', - u'Heat Developers', 'Heat', 'One line description of project.', - 'Miscellaneous'), -] - -# Documents to append as an appendix to all manuals. -#texinfo_appendices = [] - -# If false, no module index is generated. -#texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' diff --git a/doc/source/getting_started/index.rst b/doc/source/getting_started/index.rst deleted file mode 100644 index 610b2bd0..00000000 --- a/doc/source/getting_started/index.rst +++ /dev/null @@ -1,24 +0,0 @@ -.. - Licensed under the Apache License, Version 2.0 (the "License"); you may - not use this file except in compliance with the License. You may obtain - a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - License for the specific language governing permissions and limitations - under the License. - -Getting Started Guides -====================== - -.. toctree:: - :maxdepth: 2 - - on_devstack - on_fedora - on_ubuntu - on_other - jeos_building \ No newline at end of file diff --git a/doc/source/getting_started/jeos_building.rst b/doc/source/getting_started/jeos_building.rst deleted file mode 100644 index 1de3cc0e..00000000 --- a/doc/source/getting_started/jeos_building.rst +++ /dev/null @@ -1,161 +0,0 @@ -.. - Licensed under the Apache License, Version 2.0 (the "License"); you may - not use this file except in compliance with the License. You may obtain - a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - License for the specific language governing permissions and limitations - under the License. - -Building JEOS images for use with Heat -====================================== -Heat's full functionality can only be used when launching cloud images that have -the heat-cfntools_ package installed. -This document describes some options for creating a heat-cfntools enabled image -for yourself. - -.. _heat-cfntools: https://github.com/openstack/heat-cfntools - -Building an image with diskimage-builder -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -diskimage-builder_ is a tool for customizing cloud images. -tripleo-image-elements_ is a collection of diskimage-builder elements related -to the TripleO_ project. It includes an element for heat-cfntools which can be -used to create heat-enabled images. - -.. _diskimage-builder: https://github.com/openstack/diskimage-builder -.. _tripleo-image-elements: https://github.com/openstack/tripleo-image-elements -.. _TripleO: https://wiki.openstack.org/wiki/TripleO - -Fetch the tool and elements:: - - git clone https://github.com/openstack/diskimage-builder.git - git clone https://github.com/openstack/tripleo-image-elements.git - -To create a heat-cfntools enabled image with the current release of Fedora x86_64:: - - export ELEMENTS_PATH=tripleo-image-elements/elements - diskimage-builder/bin/disk-image-create vm fedora heat-cfntools -a amd64 -o fedora-heat-cfntools - -The image may then be pushed to glance, e.g:: - - source ~/.openstack/keystonerc - glance image-create --name fedora-heat-cfntools --is-public true --disk-format qcow2 --container-format bare < fedora-heat-cfntools.qcow2 - -To create a heat-cfntools enabled image with the current release of Ubuntu i386:: - - export ELEMENTS_PATH=tripleo-image-elements/elements - diskimage-builder/bin/disk-image-create vm ubuntu heat-cfntools -a i386 -o ubuntu-heat-cfntools - -If you are creating your own images you should consider creating golden images -which contain all the packages required for the stacks that you launch. You can do -this by writing your own diskimage-builder elements and invoking those elements -in the call to disk-image-create. - -This means that the resulting heat templates only need to modify configuration -files. This will speed stack launch time and reduce the risk of a transient -package download failure causing the stack launch to fail. - -Building an image with Oz -~~~~~~~~~~~~~~~~~~~~~~~~~ -Another approach to building a heat-cfntools enabled image is to use Oz wrapped in a convenience script. - -The example below demonstrates how to build an F17 image, but there are Oz tdl templates for several other distributions provided in heat-templates/jeos - -Get heat-templates ------------------- - -Clone the heat-templates repository from GitHub at ``git://github.com/openstack/heat-templates.git`` - - -Note Oz does not work in virt on virt situations. In this case, it is recommended that the prebuilt images are used. - -Download OS install DVD and copy it to libvirt images location --------------------------------------------------------------- - -:: - - sudo cp Downloads/Fedora-17-x86_64-DVD.iso /var/lib/libvirt/images - -Install Oz (RPM distros) ------------------------- - -We recommend cloning oz from the latest master. Support for building guests based on recent distributions is not available in the version of Oz shipped with many distros. - -On Fedora and other RPM-based distros:: - - git clone -q https://github.com/clalancette/oz.git - pushd oz - rm -f ~/rpmbuild/RPMS/noarch/oz-* - make rpm - sudo yum -q -y localinstall ~/rpmbuild/RPMS/noarch/oz-* - popd - -Note: In the steps above, it's only necessary to be root for the yum localinstall, it's recommended not to be root while building the rpm. - -Install Oz (DEB distros) ------------------------- - -We recommend cloning oz from the latest master. The debian packaging is broken in older versions and support for building guests based on recent distributions is not available in the version of Oz shipped with many distros. - -On Fedora and other RPM-based distros: - - -On Debian, Ubuntu and other deb based distros:: - - git clone https://github.com/clalancette/oz.git - cd oz - make deb - cd .. - sudo dpkg -i oz_*_all.deb - sudo apt-get -f install - -Note: Select yes to "Create or update supermin appliance.". This will rebuild the guestfs appliance to work with latest updates of Ubuntu. Oz will not work properly without updating the guestfs appliance. - - -Configure libguestfs (required by Oz) to work in latest Ubuntu 12 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Some files shipped with Ubuntu 12 are incompatible with libguestfs -used by the image creation software Oz. To allow heat-jeos to work -properly, run the following commands:: - - sudo chmod 644 /boot/vmlinuz* - sudo update-guestfs-appliance - -Note: For more details see: http://permalink.gmane.org/gmane.comp.emulators.guestfs/1382 -and http://libguestfs.org/guestfs-faq.1.html - -Note: If you want to create F17 images, you may need a new libguestfs binary of version 1.18.0 or later. Ubuntu Precise may not have this version yet. - -You can use the Debian Wheezy version including the `guestfs shared library`_, the tools_ and the `python libraries`_. - -.. _guestfs shared library: http://packages.debian.org/wheezy/amd64/libguestfs0/download -.. _tools: http://packages.debian.org/wheezy/amd64/libguestfs-tools/download -.. _python libraries: http://packages.debian.org/wheezy/amd64/python-guestfs/download - - -Create a JEOS with heat-jeos.sh script --------------------------------------- - -heat-templates/tools contains a convenience wrapper for Oz which demonstrates how to create a JEOS:: - - cd heat-templates/tools - sudo ./heat-jeos.sh ../jeos/F17-x86_64-cfntools.tdl F17-x86_64-cfntools - -Note: the second argument is the name as defined inside the TDL, so it may not necessarily match the filename - -Note: ``heat-jeos.sh`` must be run as root in order to create the disk image. - -Register the image with glance ------------------------------- - -On successful completion, the heat-jeos.sh script will generate a qcow2 image under /var/lib/libvirt/images/ - -The image may then be pushed to glance, e.g:: - - source ~/.openstack/keystonerc - glance add name=F17-x86_64-cfntools is_public=true disk_format=qcow2 container_format=bare < /var/lib/libvirt/images/F17-x86_64-cfntools.qcow2 diff --git a/doc/source/getting_started/on_devstack.rst b/doc/source/getting_started/on_devstack.rst deleted file mode 100644 index e273500a..00000000 --- a/doc/source/getting_started/on_devstack.rst +++ /dev/null @@ -1,117 +0,0 @@ -.. - Licensed under the Apache License, Version 2.0 (the "License"); you may - not use this file except in compliance with the License. You may obtain - a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - License for the specific language governing permissions and limitations - under the License. - -Heat and Devstack -================= -Heat is fully integrated into DevStack. This is a convenient way to try out or develop heat alongside the current development state of all the other OpenStack projects. Heat on DevStack works on both Ubuntu and Fedora. - -These instructions assume you already have a working DevStack installation which can launch basic instances. - -Configure DevStack to enable Heat ---------------------------------- -Adding the following line to your `localrc` file will enable the heat services:: - - ENABLED_SERVICES+=,heat,h-api,h-api-cfn,h-api-cw,h-eng - -It would also be useful to automatically download and register -a VM image that Heat can launch:: - - IMAGE_URLS+=",http://fedorapeople.org/groups/heat/prebuilt-jeos-images/F17-x86_64-cfntools.qcow2,http://fedorapeople.org/groups/heat/prebuilt-jeos-images/F17-i386-cfntools.qcow2" - -URLs for any of [http://fedorapeople.org/groups/heat/prebuilt-jeos-images/ these prebuilt JEOS images] can be specified. - -That is all the configuration that is required. When you run `./stack.sh` the Heat processes will be launched in `screen` with the labels prefixed with `h-`. - -Confirming heat is responding ------------------------------ - -Before any heat commands can be run, the authentication environment -needs to be loaded:: - - source openrc - -You can confirm that Heat is running and responding -with this command:: - - heat stack-list - -This should return an empty line - -Preparing Nova for running stacks ---------------------------------- - -Enabling Heat in devstack will replace the default Nova flavors with -flavours that the Heat example templates expect. You can see what -those flavors are by running:: - - nova flavor-list - -Heat needs to launch instances with a keypair, so we need -to generate one:: - - nova keypair-add heat_key > heat_key.priv - chmod 600 heat_key.priv - -Launching a stack ------------------ -Now lets launch a stack, using an example template from the heat-templates repository:: - - heat stack-create teststack -u - https://raw.github.com/openstack/heat-templates/master/cfn/WordPress_Single_Instance.template -P "InstanceType=m1.large;DBUsername=wp;DBPassword=verybadpassword;KeyName=heat_key;LinuxDistribution=F17" - -Which will respond:: - - +--------------------------------------+-----------+--------------------+----------------------+ - | ID | Name | Status | Created | - +--------------------------------------+-----------+--------------------+----------------------+ - | (uuid) | teststack | CREATE_IN_PROGRESS | (timestamp) | - +--------------------------------------+-----------+--------------------+----------------------+ - - -List stacks -~~~~~~~~~~~ -List the stacks in your tenant:: - - heat stack-list - -List stack events -~~~~~~~~~~~~~~~~~ - -List the events related to a particular stack:: - - heat event-list teststack - -Describe the wordpress stack -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Show detailed state of a stack:: - - heat stack-show teststack - -Note: After a few seconds, the stack_status should change from IN_PROGRESS to CREATE_COMPLETE. - -Verify instance creation -~~~~~~~~~~~~~~~~~~~~~~~~ -Because the software takes some time to install from the repository, it may be a few minutes before the Wordpress instance is in a running state. - -Point a web browser at the location given by the WebsiteURL Output as shown by heat stack-show teststack:: - - wget ${WebsiteURL} - -Delete the instance when done -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Note: The list operation will show no running stack.:: - - heat stack-delete teststack - heat stack-list diff --git a/doc/source/getting_started/on_fedora.rst b/doc/source/getting_started/on_fedora.rst deleted file mode 100644 index 05444c4d..00000000 --- a/doc/source/getting_started/on_fedora.rst +++ /dev/null @@ -1,365 +0,0 @@ -.. - Licensed under the Apache License, Version 2.0 (the "License"); you may - not use this file except in compliance with the License. You may obtain - a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - License for the specific language governing permissions and limitations - under the License. - -Getting Started With Heat on Fedora -=================================== - -.. - This file is a ReStructuredText document, but can be converted to a script - using the accompanying rst2script.sed script. Any blocks that are indented by - 4 spaces (including comment blocks) will appear in the script. To document - code that should not appear in the script, use an indent of less than 4 - spaces. (Using a Quoted instead of Indented Literal block also works.) - To include code in the script that should not appear in the output, make it - a comment block. - -.. - #!/bin/bash - - # Exit on error - set -e - -Get Heat --------- - -Clone the heat repository_ from GitHub at ``git://github.com/openstack/heat.git``. Note that OpenStack must be installed before heat. -Optionally, one may wish to install Heat via RPM. Creation instructions are in the readme in the heat-rpms_ repository at ``git://github.com/heat-api/heat-rpms.git``. - -.. _repository: https://github.com/openstack/heat -.. _heat-rpms: https://github.com/heat-api/heat-rpms - -Install OpenStack ------------------ - -Installing OpenStack on Fedora 17/18 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Note: - - On Fedora 17 using the `Preview Repository`_ to install the OpenStack Folsom release is recommended - - On Fedora 18 you can use the included OpenStack Folsom release or the Grizzly `Preview Repository`_ - -A script called "``openstack``" in the tools directory of the repository will install and start OpenStack for you on Fedora:: - - ./tools/openstack install -y -r ${MYSQL_ROOT_PASSWORD} - -If you use this method, you will need to manually create a guest network. How this is done depends on your environment. An example network create operation: - -.. - SUBNET=10.0.0.0/24 - -:: - - sudo nova-manage network create demonet ${SUBNET} 1 256 --bridge=demonetbr0 - -Where ``${SUBNET}`` is of the form ``10.0.0.0/24``. The network range here, must *not* be one used on your existing physical network. It should be a range dedicated for the network that OpenStack will configure. So if ``10.0.0.0/24`` clashes with your local network, pick another subnet. - -Currently, the bridge is not created immediately upon running this command, but is actually added when Nova first requires it. - -If you wish to set up OpenStack manually on Fedora, read `Getting Started With OpenStack On Fedora`_. - -.. _Getting Started With OpenStack on Fedora: http://fedoraproject.org/wiki/Getting_started_with_OpenStack_on_Fedora_17 -.. _Preview Repository: http://fedoraproject.org/wiki/OpenStack#Preview_repository - -Download or alternatively generate a JEOS image ------------------------------------------------ -It is possible to either use an image-building tool to create an image or download a prebuilt image of a desired distribution. - -Download a prebuilt image and copy to libvirt images location -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Download a prebuilt image from ``http://fedorapeople.org/groups/heat/prebuilt-jeos-images/``. - -Note: This example assumes F17-x86_64-cfntools qcow2 was downloaded. - -:: - - sudo cp Downloads/F17-x86_64-cfntools.qcow2 /var/lib/libvirt/images - -Register with glance: - -:: - - glance image-create --name=F17-x86_64-cfntools --disk-format=qcow2 --container-format=bare < /var/lib/libvirt/images/F17-x86_64-cfntools.qcow2 - -Alternatively see JEOS image-building documentation -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -If you wish to create your own JEOS image from scratch, there are a number of approaches which can be used. - -One approach is using the Oz image-building tool, which is documented in the `jeos building documentation`_. - -.. _jeos building documentation: http://docs.openstack.org/developer/heat/getting_started/jeos_building.html - -Install and Configure Heat -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Install heat from source ------------------------- - -In the heat directory, run the install script:: - - sudo ./install.sh - -If running OpenStack grizzly installed via tools/openstack, it is necessary to modify the default service user password:: - - sudo sed -i "s/verybadpass/secrete/" /etc/heat/heat.conf - -Source the keystone credentials created with tools/openstack ------------------------------------------------------------- - -:: - - source ~/.openstack/keystonerc - -Note: these credentials will be required for all future steps. - -Allocate Floating IP Addresses to OpenStack -------------------------------------------- - -If you want to use templates that depend on ``AWS::EC2::EIP`` or ``AWS::EC2::EIPAssociation`` (multi-instance stacks often do, single-instance less often but it's still possible), see the wiki page on `Configuring Floating IPs`_. - -.. _Configuring Floating IPs: http://wiki.openstack.org/Heat/Configuring-Floating-IPs - -Setup the MySQL database for Heat ---------------------------------- - -:: - - heat-db-setup rpm -y -r ${MYSQL_ROOT_PASSWORD} - -Note: the first argument is either ``rpm`` for RPM-based distros (such as Fedora) or ``deb`` for Debian-based distros (such as Ubuntu). To prompt for confirmation when e.g. installing MySQL Server, omit the ``-y`` option. Run ``heat-db-setup --help`` for detailed documentation. - -Register heat with keystone ---------------------------- - -:: - - sudo -E ./bin/heat-keystone-setup - -Note: The ``-E`` option to ``sudo`` preserves the environment, specifically the keystone credentials, when ``heat-keystone-setup`` is run as root. This script needs to run as root in order to read the admin password. - -Register a SSH key-pair with OpenStack Nova -------------------------------------------- - -This is for Heat to associate with the virtual machines. - -:: - - nova keypair-add --pub_key ~/.ssh/id_rsa.pub ${USER}_key - - -Verify JEOS registration -~~~~~~~~~~~~~~~~~~~~~~~~ - -Check that there is a ``F17-x86_64-cfntools`` JEOS in glance: - -.. - GLANCE_INDEX=$(cat < 0)) - do - echo "Waiting for Stack creation to complete..." >&2 - sleep 5 - done - - $HEAT_DESCRIBE | grep -q "CREATE_COMPLETE" - - -Verify instance creation ------------------------- - -Because the software takes some time to install from the repository, it may be a few minutes before the Wordpress intance is in a running state. One way to check is to login via ssh and ``tail -f /var/log/yum.log``. Once ``mysql-server`` installs, the instance should be ready to go. - -.. - WebsiteURL=$($HEAT_DESCRIBE | sed \ - -e '/WebsiteURL<\/OutputKey>/,/<\/member>/ {' \ - -e '// {' \ - -e 's/\([^<]*\)<\/OutputValue>/\1/' \ - -e p \ - -e '}' -e '}' \ - -e d \ - ) - HOST=`echo $WebsiteURL | sed -r -e 's#http://([^/]+)/.*#\1#'` - - retries=9 - while ! ping -q -c 1 $HOST >/dev/null && ((retries-- > 0)); do - echo "Waiting for host networking..." >&2 - sleep 2 - done - test $retries -ge 0 - - sleep 10 - - retries=49 - while ! ssh -o PasswordAuthentication=no -o StrictHostKeyChecking=no \ - -q -t -l ec2-user $HOST \ - sudo grep -q mysql-server /var/log/yum.log && \ - ((retries-- > 0)) - do - echo "Waiting for package installation..." >&2 - sleep 5 - done - test $retries -ge 0 - - echo "Pausing to wait for application startup..." >&2 - sleep 60 - -Point a web browser at the location given by the ``WebsiteURL`` Output as shown by ``heat-cfn describe``:: - - wget ${WebsiteURL} - -Delete the instance when done ------------------------------ - -:: - - heat-cfn delete wordpress - heat-cfn list - -Note: This operation will show no running stack. - -Other Templates ---------------- -Check out the ``Wordpress_2_Instances_with_EBS_EIP.template``. This uses a few different APIs in OpenStack nova, such as the Volume API, the Floating IP API and the Security Groups API, as well as the general nova launching and monitoring APIs. - -IPtables rules --------------- - -Some templates require the instances to be able to connect to the heat CFN API (for metadata update via cfn-hup and waitcondition notification via cfn-signal): - -Open up port 8000 so that the guests can communicate with the heat-api-cfn server:: - - sudo iptables -I INPUT -p tcp --dport 8000 -j ACCEPT -i demonetbr0 - -Open up port 8003 so that the guests can communicate with the heat-api-cloudwatch server:: - - sudo iptables -I INPUT -p tcp --dport 8003 -j ACCEPT -i demonetbr0 - -Note the above rules will not persist across reboot, so you may wish to add them to /etc/sysconfig/iptables - -Start the Heat Cloudwatch server --------------------------------- - -If you wish to try any of the HA or autoscaling templates (which collect stats from instances via the CloudWatch API), it is neccessary to start the heat-api-cloudwatch server:: - - sudo -E bash -c 'heat-api-cloudwatch &' - -Further information on using the heat cloudwatch features is available in the Using-Cloudwatch_ wiki page - -.. _Using-Cloudwatch: http://wiki.openstack.org/Heat/Using-CloudWatch - -Using the OpenStack Heat API ----------------------------- - -CloudFormation (heat-api-cfn) and a native OpenStack Heat API (heat-api) are provided. To use the recommended Heat API, a python client library is necessary. To use this library, clone the python-heatclient repository_ from GitHub at ``git://github.com/openstack/python-heatclient.git``. - -Install python-heatclient from source -------------------------------------- - -In the python-heatclient directory, run the install script:: - - sudo ./setup.py install - -Note that python-heatclient may be installed on a different server than heat itself. -Note that pip can be used to install python-heatclient, but the instructions vary for each distribution. Read your distribution documentation if you wish to install with pip. - -Start the OpenStack specific Heat API -------------------------------------- - -When using heat-pythonclient, the OpenStack API service provided by heat must be started:: - - sudo bash -c 'heat-api &' - -List stacks ------------ - -:: - - heat stack-list - -.. - echo; echo 'Success!' diff --git a/doc/source/getting_started/on_other.rst b/doc/source/getting_started/on_other.rst deleted file mode 100644 index 2866abf8..00000000 --- a/doc/source/getting_started/on_other.rst +++ /dev/null @@ -1,22 +0,0 @@ -.. - Licensed under the Apache License, Version 2.0 (the "License"); you may - not use this file except in compliance with the License. You may obtain - a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - License for the specific language governing permissions and limitations - under the License. - -Installing OpenStack on other Distributions -=========================================== - -- There is a `Debian packaging team for OpenStack`_. -- There are instructions for `installing OpenStack on Ubuntu`_. -- Various other distributions may have packaging teams or Getting Started guides available. - -.. _Debian packaging team for OpenStack: http://wiki.openstack.org/Packaging/Debian -.. _installing OpenStack on Ubuntu: http://docs.openstack.org/bexar/openstack-compute/admin/content/ch03s02.html diff --git a/doc/source/getting_started/on_ubuntu.rst b/doc/source/getting_started/on_ubuntu.rst deleted file mode 100644 index a1a805ff..00000000 --- a/doc/source/getting_started/on_ubuntu.rst +++ /dev/null @@ -1,233 +0,0 @@ -.. - Licensed under the Apache License, Version 2.0 (the "License"); you may - not use this file except in compliance with the License. You may obtain - a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - License for the specific language governing permissions and limitations - under the License. - -Getting Started With Heat on Ubuntu -=================================== - -This guide will help to get the current git master of Heat to run on Ubuntu. It makes the following assumptions: - -- The host is running Ubuntu 12.04 or 12.10 -- There is a working OpenStack installation based on Folsom, Grizzly or Havana, or that one will be installed via the tools/openstack_ubuntu script described below -- Heat will be installed on the controller host of the existing OpenStack installation (or if doing a single-host evaluation, on the same host as all other OpenStack services) - -Get Heat --------- - -Clone the heat repository_ from GitHub at ``git://github.com/openstack/heat.git``. Note that OpenStack must be installed before heat. - -.. _repository: https://github.com/openstack/heat - -Install OpenStack ------------------ - -Note, this section may be skipped if you already have a working OpenStack installation - -Installing OpenStack on Ubuntu 12.04/12.10 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -A script called openstack_ubuntu in the tools directory of the Heat repository will install and start OpenStack for you on Ubuntu: -''Note currently only tested on 12.04, if it works for you on 12.10, please let us know'' -:: - - ./tools/openstack_ubuntu install -r ${MYSQL_ROOT_PASSWORD} - -If you use this method, you will need to manually create a guest network. How this is done depends on your environment. An example network create operation: - -.. - SUBNET=10.0.0.0/24 - -:: - - sudo nova-manage network create --label=demonet --fixed_range_v4=${SUBNET} --bridge=demonetbr0 --bridge_interface=eth0 - -Where ''${SUBNET}'' is of the form ''10.0.0.0/24''. The network range here, must *not* be one used on your existing physical network. It should be a range dedicated for the network that OpenStack will configure. So if ''10.0.0.0/24'' clashes with your local network, pick another subnet. - -The example above assumes you want to bridge with physical device ''eth0'' - -Currently, the bridge is not created immediately upon running this command, but is actually added when Nova first requires it. - -Load keystone authentication into your environment and verify everything is ok. -------------------------------------------------------------------------------- - -:: - - . ~/.openstack/keystonerc - keystone user-list - glance index - nova list - -Note ''~/.openstack/keystonerc'' is created by tools/openstack_ubuntu, replace this step with your own credentials file for an admin user if OpenStack was installed by some other method - -Install prerequisites ---------------------- - -:: - - sudo apt-get install python-pip gcc python2.7-dev - sudo apt-get install git - sudo apt-get install build-essential devscripts debhelper python-all gdebi-core - sudo apt-get install python-setuptools python-prettytable python-lxml - sudo apt-get install libguestfs* - -Install python-heatclient (optional) ------------------------------------- -*NOTE* If running 12.04 LTS with the packaged Openstack Essex release, do not install python-heatclient, as it will break your OpenStack installation, because it explicitly requires a version of the prettytable library (>0.6) which causes problems with the Essex cli tools (keystone/nova/glance) in 12.04 : https://bugs.launchpad.net/keystone/+bug/995976 The packaged python-prettytable (0.5 version) works OK - -:: - - sudo pip install python-heatclient - -Install Heat from master ------------------------- - -:: - - git clone git://github.com/openstack/heat.git - cd heat - sudo ./install.sh - -Modify configuration for admin password ---------------------------------------- -Later a keystone user called '''heat''' will be created. At this point a password for that user needs to be chosen. -The following files will need editing: - -- /etc/heat/heat.conf - -:: - - [keystone_authtoken] - admin_password= - - -Create the MySQL Heat database: -------------------------------- -:: - - sudo heat-db-setup deb -r - -Create the keystone authentication parameters ---------------------------------------------- -:: - - sudo -E ./bin/heat-keystone-setup - -Download or alternatively generate a JEOS image ------------------------------------------------- - -It is possible to either use an image-building tool to create an image or download a prebuilt image of a desired distribution. - -Download a prebuilt image and copy to libvirt images location -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Download a prebuilt image from ``http://fedorapeople.org/groups/heat/prebuilt-jeos-images/``. - -Note: This example assumes U10-x86_64-cfntools qcow2 was downloaded. - -:: - - sudo cp Downloads/U10-x86_64-cfntools.qcow2 /var/lib/libvirt/images - -Register with glance: - -:: - - glance image-create --name=U10-x86_64-cfntools --disk-format=qcow2 --container-format=bare < /var/lib/libvirt/images/U10-x86_64-cfntools.qcow2 - -Alternatively see JEOS image-building documentation -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -If you wish to create your own JEOS image from scratch, there are a number of approaches which can be used. - -One approach is using the Oz image-building tool, which is documented in the `jeos building documentation`_. - -.. _jeos building documentation: http://docs.openstack.org/developer/heat/getting_started/jeos_building.html - -Configure your host to work with Heat -------------------------------------- - -Create SSH key and add it to the Nova sshkey list -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -:: - - ssh-keygen -t rsa - nova keypair-add --pub_key ~/.ssh/id_rsa.pub ${USER}_key - -Note: If running in a VM, modify /etc/libvirt/qemu/networks/default.xml: -change network to not conflict with host (default 192.168.122.x) -:: - - sudo service libvirt-bin restart - -If dnsmasq is not running on the default network -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -:: - - sudo virsh net-destroy default - sudo virsh net-start default - -Experiment with Heat --------------------- - -Execute the heat api services -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -:: - - sudo heat-engine & - sudo heat-api & - sudo heat-api-cfn & - sudo heat-api-cloudwatch & - -Run the debian wordpress example -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -:: - - heat stack-create wordpress --template-url=https://raw.github.com/openstack/heat-templates/master/cfn/WordPress_Single_Instance_deb.template --parameters="InstanceType=m1.xlarge;DBUsername=${USER};DBPassword=verybadpassword;KeyName=${USER}_key;LinuxDistribution=U10" - -List stacks -~~~~~~~~~~~ -:: - - heat stack-list - -List stack events -~~~~~~~~~~~~~~~~~ -:: - - heat event-list wordpress - -Describe the wordpress stack -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -:: - - heat stack-show wordpress - -Note: After a few seconds, the Status should change from IN_PROGRESS to CREATE_COMPLETE. - -Verify instance creation -~~~~~~~~~~~~~~~~~~~~~~~~ -Because the software takes some time to install from the repository, it may be a few minutes before the Wordpress intance is in a running state. - -Point a web browser at the location given by the WebsiteURL Output as shown by heat show-stack wordpress:: -:: - - wget ${WebsiteURL} - -Delete the instance when done -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -:: - - heat stack-delete wordpress - heat stack-list - -Note: This operation will show no running stack. diff --git a/doc/source/glossary.rst b/doc/source/glossary.rst deleted file mode 100644 index a14be31c..00000000 --- a/doc/source/glossary.rst +++ /dev/null @@ -1,27 +0,0 @@ -.. - Licensed under the Apache License, Version 2.0 (the "License"); you may - not use this file except in compliance with the License. You may obtain - a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - License for the specific language governing permissions and limitations - under the License. - -========== - Glossary -========== - -.. glossary:: - - OpenStack - Open source software for building private and public clouds. - - API server - HTTP REST API service for heat. - - orchestrate - Arrange or direct the elements of (a situation) to produce a desired effect. diff --git a/doc/source/index.rst b/doc/source/index.rst deleted file mode 100644 index fd8542f6..00000000 --- a/doc/source/index.rst +++ /dev/null @@ -1,68 +0,0 @@ -.. - Licensed under the Apache License, Version 2.0 (the "License"); you may - not use this file except in compliance with the License. You may obtain - a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - License for the specific language governing permissions and limitations - under the License. - -================================================== -Welcome to the Heat developer documentation! -================================================== -Heat is a service to :term:`orchestrate` multiple composite cloud -applications using the AWS CloudFormation template format, through -both an OpenStack-native ReST API and a CloudFormation-compatible Query API. - -What is the purpose of the project and vision for it? -===================================================== - -* Heat provides a template based orchestration for describing a cloud application by executing appropriate :term:`OpenStack` API calls to generate running cloud applications. -* The software integrates other core components of OpenStack into a one-file template system. The templates allow creation of most OpenStack resource types (such as instances, floating ips, volumes, security groups, users, etc), as well as some more advanced functionality such as instance high availability, instance autoscaling, and nested stacks. By providing very tight integration with other OpenStack core projects, all OpenStack core projects could receive a larger user base. -* Allow deployers to integrate with Heat directly or by adding custom plugins. - -This documentation offers information on how heat works and how to contribute to the project. - -Getting Started -=============== - -.. toctree:: - :maxdepth: 1 - - getting_started/index - templates/index - template_guide/index - glossary - -Man Pages -========= - -.. toctree:: - :maxdepth: 2 - - man/index - -Developers Documentation -======================== -.. toctree:: - :maxdepth: 1 - - architecture - -Code Documentation -================== -.. toctree:: - :maxdepth: 3 - - sourcecode/autoindex - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` diff --git a/doc/source/man/heat-api-cfn.rst b/doc/source/man/heat-api-cfn.rst deleted file mode 100644 index 25778976..00000000 --- a/doc/source/man/heat-api-cfn.rst +++ /dev/null @@ -1,39 +0,0 @@ -============ -heat-api-cfn -============ - -.. program:: heat-api-cfn - -SYNOPSIS -======== -``heat-api-cfn [options]`` - -DESCRIPTION -=========== -heat-api-cfn is a CloudFormation compatible API service to the heat project. - -INVENTORY -========= -heat-api-cfn is a service that exposes an external REST based api to the -heat-engine service. The communication between the heat-api-cfn and -heat-engine uses message queue based RPC. - -OPTIONS -======= -.. cmdoption:: --config-file - - Path to a config file to use. Multiple config files can be specified, with - values in later files taking precedence. - - -.. cmdoption:: --config-dir - - Path to a config directory to pull .conf files from. This file set is - sorted, so as to provide a predictable parse order if individual options are - over-ridden. The set is parsed after the file(s), if any, specified via - --config-file, hence over-ridden options in the directory take precedence. - -FILES -======== - -* /etc/heat/heat.conf diff --git a/doc/source/man/heat-api-cloudwatch.rst b/doc/source/man/heat-api-cloudwatch.rst deleted file mode 100644 index 85aad6bb..00000000 --- a/doc/source/man/heat-api-cloudwatch.rst +++ /dev/null @@ -1,33 +0,0 @@ -=================== -heat-api-cloudwatch -=================== - -.. program:: heat-api-cloudwatch - -SYNOPSIS -======== -``heat-api-cloudwatch [options]`` - -DESCRIPTION -=========== -heat-api-cloudwatch is a CloudWatch alike API service to the heat project - -OPTIONS -======= -.. cmdoption:: --config-file - - Path to a config file to use. Multiple config files can be specified, with - values in later files taking precedence. - - -.. cmdoption:: --config-dir - - Path to a config directory to pull .conf files from. This file set is - sorted, so as to provide a predictable parse order if individual options are - over-ridden. The set is parsed after the file(s), if any, specified via - --config-file, hence over-ridden options in the directory take precedence. - -FILES -======== - -* /etc/heat/heat.conf diff --git a/doc/source/man/heat-api.rst b/doc/source/man/heat-api.rst deleted file mode 100644 index 708e9495..00000000 --- a/doc/source/man/heat-api.rst +++ /dev/null @@ -1,39 +0,0 @@ -======== -heat-api -======== - -.. program:: heat-api - -SYNOPSIS -======== -``heat-api [options]`` - -DESCRIPTION -=========== -heat-api provides an external REST API to the heat project. - -INVENTORY -========= -heat-api is a service that exposes an external REST based api to the -heat-engine service. The communication between the heat-api -heat-engine uses message queue based RPC. - -OPTIONS -======= -.. cmdoption:: --config-file - - Path to a config file to use. Multiple config files can be specified, with - values in later files taking precedence. - - -.. cmdoption:: --config-dir - - Path to a config directory to pull .conf files from. This file set is - sorted, so as to provide a predictable parse order if individual options are - over-ridden. The set is parsed after the file(s), if any, specified via - --config-file, hence over-ridden options in the directory take precedence. - -FILES -======== - -* /etc/heat/heat.conf diff --git a/doc/source/man/heat-db-setup.rst b/doc/source/man/heat-db-setup.rst deleted file mode 100644 index 68cc0ec1..00000000 --- a/doc/source/man/heat-db-setup.rst +++ /dev/null @@ -1,63 +0,0 @@ -============= -heat-db-setup -============= - -.. program:: heat-db-setup - - -SYNOPSIS -======== - -``heat-db-setup [COMMANDS] [OPTIONS]`` - - -DESCRIPTION -=========== -heat-db-setup is a tool which configures the local MySQL database for -heat. Typically distro-specific tools would provide this functionality -so please read the distro-specific documentation for configuring Heat. - - -COMMANDS -======== - -``rpm`` - - Indicate the distribution is a RPM packaging based distribution. - -``deb`` - - Indicate the distribution is a DEB packaging based distribution. - - -OPTIONS -======= - -.. cmdoption:: -h, --help - - Print usage information. - -.. cmdoption:: -p, --password - - Specify the password for the 'heat' MySQL user that will use to connect to the 'heat' MySQL database. By default, the password 'heat' will be used. - -.. cmdoption:: -r, --rootpw - - Specify the root MySQL password. If the script installs the MySQL server, it will set the root password to this value instead of prompting for a password. If the MySQL server is already installed, this password will be used to connect to the database instead of having to prompt for it. - -.. cmdoption:: -y, --yes - - In cases where the script would normally ask for confirmation before doing something, such as installing mysql-server, just assume yes. This is useful if you want to run the script non-interactively. - -EXAMPLES -======== - - heat-db-setup rpm -p heat_password -r mysql_pwd -y - - heat-db-setup deb -p heat_password -r mysql_pwd -y - - heat-db-setup rpm - -BUGS -==== -Heat bugs are managed through Launchpad diff --git a/doc/source/man/heat-engine.rst b/doc/source/man/heat-engine.rst deleted file mode 100644 index 1d9420ba..00000000 --- a/doc/source/man/heat-engine.rst +++ /dev/null @@ -1,38 +0,0 @@ -=========== -heat-engine -=========== - -.. program:: heat-api-engine - -SYNOPSIS -======== -``heat-engine [options]`` - -DESCRIPTION -=========== -Heat is the heat project server with an internal api called by the heat-api. - -INVENTORY -========= -The heat engine does all the orchestration work and is the layer in which -the resource integration is implemented. - -OPTIONS -======= -.. cmdoption:: --config-file - - Path to a config file to use. Multiple config files can be specified, with - values in later files taking precedence. - - -.. cmdoption:: --config-dir - - Path to a config directory to pull .conf files from. This file set is - sorted, so as to provide a predictable parse order if individual options are - over-ridden. The set is parsed after the file(s), if any, specified via - --config-file, hence over-ridden options in the directory take precedence. - -FILES -======== - -* /etc/heat/heat.conf diff --git a/doc/source/man/heat-keystone-setup.rst b/doc/source/man/heat-keystone-setup.rst deleted file mode 100644 index f3c05cee..00000000 --- a/doc/source/man/heat-keystone-setup.rst +++ /dev/null @@ -1,27 +0,0 @@ -=================== -heat-keystone-setup -=================== - -.. program:: heat-keystone-setup - - -SYNOPSIS -======== - -``heat-keystone-setup`` - - -DESCRIPTION -=========== -The heat-keystone-setup tool configures keystone for use with Heat. This script requires admin keystone credentials to be available in the shell environment and write access to /etc/keystone. - -Distributions may provide other tools to setup keystone for use with Heat, so check the distro documenation first. - -EXAMPLES -======== - - heat-keystone-setup - -BUGS -==== -Heat bugs are managed through Launchpad diff --git a/doc/source/man/index.rst b/doc/source/man/index.rst deleted file mode 100644 index 9de28013..00000000 --- a/doc/source/man/index.rst +++ /dev/null @@ -1,25 +0,0 @@ -==================================== -Man pages for services and utilities -==================================== - -------------- -Heat services -------------- - -.. toctree:: - :maxdepth: 2 - - heat-engine - heat-api - heat-api-cfn - heat-api-cloudwatch - --------------- -Heat utilities --------------- - -.. toctree:: - :maxdepth: 2 - - heat-db-setup - heat-keystone-setup diff --git a/doc/source/sourcecode/.gitignore b/doc/source/sourcecode/.gitignore deleted file mode 100644 index 30d85567..00000000 --- a/doc/source/sourcecode/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.rst diff --git a/doc/source/template_guide/cfn.rst b/doc/source/template_guide/cfn.rst deleted file mode 100644 index c7f3a213..00000000 --- a/doc/source/template_guide/cfn.rst +++ /dev/null @@ -1,16 +0,0 @@ -.. - Licensed under the Apache License, Version 2.0 (the "License"); you may - not use this file except in compliance with the License. You may obtain - a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - License for the specific language governing permissions and limitations - under the License. - -CloudFormation Compatible Resource Types ----------------------------------------- -.. resourcepages:: AWS:: \ No newline at end of file diff --git a/doc/source/template_guide/environment.rst b/doc/source/template_guide/environment.rst deleted file mode 100644 index 1d857d5b..00000000 --- a/doc/source/template_guide/environment.rst +++ /dev/null @@ -1,79 +0,0 @@ -.. - Licensed under the Apache License, Version 2.0 (the "License"); you may - not use this file except in compliance with the License. You may obtain - a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - License for the specific language governing permissions and limitations - under the License. - -============ -Environments -============ - -The environment is used to affect the runtime behaviour of the -template. It provides a way to override the default resource -implementation and the parameters passed to Heat. - ------- -Format ------- -It is a yaml text file with two main sections "resource_registry" and "parameters". - ------------------- -Command line usage ------------------- -:: - - heat stack-create -e my_env.yaml -P "some_parm=bla" -f my_tmpl.yaml - --------------- -Usage examples --------------- - -1) Pass parameters into Heat -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -:: - - parameters: - KeyName: heat_key - InstanceType: m1.micro - ImageId: F18-x86_64-cfntools - - -2) Deal with the renaming of Quantum to Neutron -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -:: - - resource_registry: - "OS::Quantum*": "OS::Neutron*" - - -3) Override a resource type with a custom TemplateResource -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -:: - - resource_registry: - "AWS::EC2::Instance": file:///home/mine/my_instance_with_better_defaults.yaml - - -4) Always map resource type X to Y -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -:: - - resource_registry: - "OS::Networking::FloatingIP": "OS::Nova::FloatingIP" - - -5) Use default resources except one for a particular resource in the template -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -:: - - resource_registry: - resources: - my_db_server: - "OS::DBInstance": file:///home/mine/all_my_cool_templates/db.yaml diff --git a/doc/source/template_guide/functions.rst b/doc/source/template_guide/functions.rst deleted file mode 100644 index f5a69500..00000000 --- a/doc/source/template_guide/functions.rst +++ /dev/null @@ -1,324 +0,0 @@ -.. - Licensed under the Apache License, Version 2.0 (the "License"); you may - not use this file except in compliance with the License. You may obtain - a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - License for the specific language governing permissions and limitations - under the License. - -================== -Built in functions -================== - -There are a number of functions that you can use to help you write templates. - -All of these functions (except *Ref*) start with *Fn::*. - ---- -Ref ---- -Return the value of the named parameter or Resource. - -Parameters -~~~~~~~~~~ -name : String - The name of the Resource or Parameter. - -Usage -~~~~~ -:: - - {Ref: my_server} - -Returns ``instance-0003`` - ----------- -Fn::Base64 ----------- -This returns the Base64 representation of the input string. - -Parameters -~~~~~~~~~~ -value : String - The string to convert. - -Usage -~~~~~ - -:: - - {Base64: "convert this string please."} - -Returns the Base64 of the input string. - -------------- -Fn::FindInMap -------------- -Returns the value corresponding to keys into a two-level map declared in the -Mappings section. - -Parameters -~~~~~~~~~~ -map_name : String - The logical name of a mapping declared in the Mappings section that - contains the keys and values. - -top_level_key : String - The top-level key name. It's value is a list of key-value pairs. - -second_level_key : String - The second-level key name, which is set to one of the keys from the list - assigned to top_level_key. - -Usage -~~~~~ - -:: - - Mapping: - MyContacts: - jone: {phone: 337, email: a@b.com} - jim: {phone: 908, email: g@b.com} - - {"Fn::FindInMap": ["MyContacts", "jim", "phone" ] } - -Returns ``908`` - ----------- -Fn::GetAtt ----------- -Returns an attribute of a Resource within the template. - -Parameters -~~~~~~~~~~ -resource : String - The name of the Resource. - -attribute : String - The name of the attribute. - -Usage -~~~~~ - -:: - - {Fn::GetAtt: [my_server, PublicIp]} - -Returns an IP address such as ``10.0.0.2`` - ----------- -Fn::GetAZs ----------- -Return the Availablity Zones within the given region. - -*Note: AZ's and regions are not fully implemented in Heat.* - -Parameters -~~~~~~~~~~ -region : String - The name of the region. - -Usage -~~~~~ -:: - - {Fn::GetAZs: ""} - -Returns the list provided by ``nova availability-zone-list`` - --------- -Fn::Join --------- -Like python join, it joins a list of strings with the given delimiter. - -Parameters -~~~~~~~~~~ -delimiter : String - The string to join the list with. - -list : list - The list to join. - -Usage -~~~~~ - -:: - - {Fn::Join: [",", ["beer", "wine", "more beer"]]} - -Returns ``beer, wine, more beer`` - ----------- -Fn::Select ----------- -Select an item from a list. - -*Heat extension: Select an item from a map* - -Parameters -~~~~~~~~~~ -selector : string or integer - The number of item in the list or the name of the item in the map. - -collection : map or list - The collection to select the item from. - -Usage -~~~~~ - -For a list lookup: -:: - - { "Fn::Select" : [ "2", [ "apples", "grapes", "mangoes" ] ] } - -Returns ``mangoes`` - -For a map lookup: -:: - - { "Fn::Select" : [ "red", {"red": "a", "flu": "b"} ] } - -Returns ``a`` - ---------- -Fn::Split ---------- -This is the reverse of Join. Convert a string into a list based on the -delimiter. - -Parameters -~~~~~~~~~~ -delimiter : string - Matching string to split on. - -string : String - The string to split. - -Usage -~~~~~ -:: - - { "Fn::Split" : [ ",", "str1,str2,str3,str4"]} - -Returns ``{["str1", "str2", "str3", "str4"]}`` - ------------ -Fn::Replace ------------ -Find an replace one string with another. - -Parameters -~~~~~~~~~~ -subsitutions : map - A map of subsitutions. -string: String - The string to do the substitutions in. - -Usage -~~~~~ -:: - - {"Fn::Replace": [ - {'$var1': 'foo', '%var2%': 'bar'}, - '$var1 is %var2%' - ]} - returns - "foo is bar" - ------------------- -Fn::ResourceFacade ------------------- -When writing a Template Resource: - - user writes a template that will fill in for a resource (the resource is the facade). - - when they are writing their template they need to access the metadata from - the facade. - - -Parameters -~~~~~~~~~~ -attribute_name : String - One of ``Metadata``, ``DeletionPolicy`` or ``UpdatePolicy``. - -Usage -~~~~~ - -:: - - {'Fn::ResourceFacade': 'Metadata'} - {'Fn::ResourceFacade': 'DeletionPolicy'} - {'Fn::ResourceFacade': 'UpdatePolicy'} - - -Example -~~~~~~~ -Here is a top level template ``top.yaml`` - -:: - - resources: - my_server: - type: OS::Compute::Server - metadata: - key: value - some: more stuff - - -Here is a resource template ``my_actual_server.yaml`` -:: - - resources: - _actual_server_: - type: OS::Compute::Server - metadata: {'Fn::ResourceFacade': Metadata} - -The environment file ``env.yaml`` -:: - - resource_registry: - resources: - my_server: - "OS::Compute::Server": my_actual_server.yaml - -To use it - -:: - - heat stack-create -f top.yaml -e env.yaml - - -What happened is the metadata in ``top.yaml`` (key: value, some: more -stuff) gets passed into the resource template via the `Fn::ResourceFacade`_ -function. - -------------------- -Fn::MemberListToMap -------------------- -Convert an AWS style member list into a map. - -Parameters -~~~~~~~~~~ -key name: string - The name of the key (normally "Name" or "Key") - -value name: string - The name of the value (normally "Value") - -list: A list of strings - The string to convert. - -Usage -~~~~~ -:: - - {'Fn::MemberListToMap': ['Name', 'Value', ['.member.0.Name=key', - '.member.0.Value=door', - '.member.1.Name=colour', - '.member.1.Value=green']]} - - returns - {'key': 'door', 'colour': 'green'} diff --git a/doc/source/template_guide/hot_guide.rst b/doc/source/template_guide/hot_guide.rst deleted file mode 100644 index a7115845..00000000 --- a/doc/source/template_guide/hot_guide.rst +++ /dev/null @@ -1,223 +0,0 @@ -.. - Licensed under the Apache License, Version 2.0 (the "License"); you may - not use this file except in compliance with the License. You may obtain - a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - License for the specific language governing permissions and limitations - under the License. - -.. _hot_guide: - -======================================= -Heat Orchestration Template (HOT) Guide -======================================= - -HOT is a new template format meant to replace the Heat CloudFormation-compatible -format (CFN) as the native format supported by the Heat over time. -This guide is targeted towards template authors and explains how to write -HOT templates based on examples. A detailed specification of HOT can be found -at :ref:`hot_spec`. - ------- -Status ------- - -HOT support is still under development and needs more work to provide access to -all functionality currently available via the CFN compatible template interface. -This guide will be updated periodically whenever new features get implemented -for HOT. - ----------------------------------- -Writing a hello world HOT template ----------------------------------- - -This section gives an introduction on how to write HOT templates, starting from -very basic steps and then going into more and more detail by means of examples. - -A most basic template ---------------------- -The most basic template you can think of may contain only a single resource -definition using only predefined properties (along with the mandatory Heat -template version tag). For example, the template below could be used to simply -deploy a single compute instance. - -:: - - heat_template_version: 2013-05-23 - - description: Simple template to deploy a single compute instance - - resources: - my_instance: - type: OS::Nova::Compute - properties: - KeyName: my_key - ImageId: F18-x86_64-cfntools - InstanceType: m1.small - -Each HOT template has to include the *heat_template_version* key with value -'2013-05-23' (the current version of HOT). While the *description* is optional, -it is good practice to include some useful text that describes what users can do -with the template. In case you want to provide a longer description that does -not fit on a single line, you can provide multi-line text in YAML, for example: - -:: - - description: > - This is how you can provide a longer description - of your template that goes over several lines. - -The *resources* section is required and must contain at least one resource -definition. In the example above, a compute instance is defined with fixed -values for the 'KeyName', 'ImageId' and 'InstanceType' parameters. - -Note that all those elements, i.e. a key-pair with the given name, the image and -the flavor have to exist in the OpenStack environment where the template is -used. Typically a template is made more easily reusable, though, by defining a -set of *input parameters* instead of hard-coding such values. - - -Template input parameters -------------------------- -Input parameters defined in the *parameters* section of a HOT template (see also -:ref:`hot_spec_parameters`) allow users to customize a template during -deployment. For example, this allows for providing custom key-pair names or -image IDs to be used for a deployment. -From a template author's perspective, this helps to make a template more easily -reusable by avoiding hardcoded assumptions. - -Sticking to the example used above, it makes sense to allow users to provide -their custom key-pairs, provide their own image, and to select a flavor for the -compute instance. This can be achieved by extending the initial template as -follows: - -:: - - heat_template_version: 2013-05-23 - - description: Simple template to deploy a single compute instance - - parameters: - key_name: - type: string - description: Name of key-pair to be used for compute instance - image_id: - type: string - description: Image to be used for compute instance - instance_type: - type: string - description: Type of instance (flavor) to be used - - resources: - my_instance: - type: OS::Nova::Compute - properties: - KeyName: { get_param: key_name } - ImageId: { get_param: image_id } - InstanceType: { get_param: instance_type } - -In the example above, three input parameters have been defined that have to be -provided by the user upon deployment. The fixed values for the respective -resource properties have been replaced by references to the corresponding -input parameters by means of the *get_param* function (see also -:ref:`hot_spec_intrinsic_functions`). - -You can also define default values for input parameters which will be used in -case the user does not provide the respective parameter during deployment. For -example, the following definition for the *instance_type* parameter would select -the 'm1.small' flavor unless specified otherwise be the user. - -:: - - parameters: - instance_type: - type: string - description: Type of instance (flavor) to be used - default: m1.small - -Another option that can be specified for a parameter is to hide its value when -users request information about a stack deployed from a template. This is -achieved by the *hidden* attribute and useful, for example when requesting -passwords as user input: - -:: - - parameters: - database_password: - type: string - description: Password to be used for database - hidden: true - - -Restricting user input -~~~~~~~~~~~~~~~~~~~~~~ -In some cases you might want to restrict the values of input parameters that -users can supply. For example, you might know that the software running in a -compute instance needs a certain amount of resources so you might want to -restrict the *instance_type* parameter introduced above. Parameters in HOT -templates can be restricted by adding a *constraints* section (see also -:ref:`hot_spec_parameters_constraints`). -For example, the following would allow only three values to be provided as input -for the *instance_type* parameter: - -:: - - parameters: - instance_type: - type: string - description: Type of instance (flavor) to be used - constraints: - - allow_values: [ m1.medium, m1.large, m1.xlarge ] - description: Value must be one of m1.medium, m1.large or m1.xlarge. - -The *constraints* section allows for defining a list of constraints that must -all be fulfilled by user input. For example, the following list of constraints -could be used to clearly specify format requirements on a password to be -provided by users: - -:: - - parameters: - database_password: - type: string - description: Password to be used for database - hidden: true - constraints: - - length: { min: 6, max: 8 } - description: Password length must be between 6 and 8 characters. - - allowed_pattern: "[a-zA-Z0-9]+" - description: Password must consist of characters and numbers only. - - allowed_pattern: "[A-Z]+[a-zA-Z0-9]*" - description: Password must start with an uppercase character. - -Note that you can define multiple constraints of the same type. Especially in -the case of allowed patterns this not only allows for keeping regular -expressions simple and maintainable, but also for keeping error messages to be -presented to users precise. - - -Providing template outputs --------------------------- -In addition to template customization through input parameters, you will -typically want to provide outputs to users, which can be done in the -*outputs* section of a template (see also :ref:`hot_spec_outputs`). -For example, the IP address by which the instance defined in the example -above can be accessed should be provided to users. Otherwise, users would have -to look it up themselves. The definition for providing the IP address of the -compute instance as an output is shown in the following snippet: - -:: - - outputs: - instance_ip: - description: The IP address of the deployed instance - value: { get_attr: [my_instance, PublicIp] } - -Output values are typically resolved using intrinsic function such as -the *get_attr* function in the example above (see also -:ref:`hot_spec_intrinsic_functions`). diff --git a/doc/source/template_guide/hot_spec.rst b/doc/source/template_guide/hot_spec.rst deleted file mode 100644 index a8fca8d0..00000000 --- a/doc/source/template_guide/hot_spec.rst +++ /dev/null @@ -1,536 +0,0 @@ -.. - Licensed under the Apache License, Version 2.0 (the "License"); you may - not use this file except in compliance with the License. You may obtain - a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - License for the specific language governing permissions and limitations - under the License. - -.. _hot_spec: - -=============================================== -Heat Orchestration Template (HOT) Specification -=============================================== - -HOT is a new template format meant to replace the Heat CloudFormation-compatible -format (CFN) as the native format supported by the Heat over time. -This specification explains in detail all elements of the HOT template format. -An example driven guide to writing HOT templates can be found -at :ref:`hot_guide`. - ------- -Status ------- - -HOT support is still under development and needs more work to provide access to -all functionality currently available via the CFN compatible template interface. -This specification will be updated periodically whenever new features get -implemented for HOT. - ------------------- -Template Structure ------------------- - -HOT templates are defined in YAML and follow the structure outlined below. - -:: - - heat_template_version: 2013-05-23 - - description: # a description of the template - - parameters: - # declaration of input parameters - - resources: - # declaration of template resources - - outputs: - # declaration of output parameters - -heat_template_version - This key with value *2013-05-23* (or a later date) indicates that the YAML - document is a HOT template of the specified version. - -description - This *optional* key allows for giving a description of the template, or the - workload that can be deployed using the template. - -parameters - This section allows for specifying input parameters that have to be provided - when instantiating the template. The section is *optional* and can be - omitted when no input is required. - -resources - This section contains the declaration of the single resources of the - template. This section is mandatory and at least one resource must be - defined in any HOT template. - -outputs - This section allows for specifying output parameters available to users once - the template has been instantiated. This section is *optional* and can be - omitted when no output values are required. - - -.. _hot_spec_parameters: - ------------------- -Parameters Section ------------------- - -The *parameters* section allows for specifying input parameters that have to be -provided when instantiating the template. Such parameters are typically used to -customize each deployment (e.g. by setting custom user names or passwords) or -for binding to environment-specifics like certain images. - -Each parameter is specified in a separated nested block with the name of the -parameters defined in the first line and additional attributes such as type or -default value defined as nested elements. - -:: - - parameters: - : - type: - description: - default: - hidden: - constraints: - - -param name - The name of the parameter is defined at the top of each parameter block. - -type - This attribute specifies the type of parameter. Currently supported types - are *string*, *number*, *comma_delimited_list* or *json*. - -description - This *optional* attribute allows for giving a human readable description of - the parameter. - -default - This *optional* attribute allows for defining a default value for the - parameters which will be used in case the parameter is not specified by the - user during deployment. - -hidden - This *optional* attribute allows for specifying whether the parameters - should be hidden when showing information about a stack created from the - template at runtime (e.g. for hiding passwords that were specified as - parameters). If not specified, the default value 'false' will be used. - -constraints - This *optional* block allows for specifying additional constraints on the - parameter, such as minimum or maximum values for numeric parameters. - -The following example shows a minimalistic definition of two parameters. Note -that the description is actually optional, but is good practice to provide a -useful description for each parameter. - -:: - - parameters: - user_name: - type: string - description: User name to be configured for the application - port_number: - type: number - description: Port number to be configured for the web server - - -.. _hot_spec_parameters_constraints: - -Parameter Constraints ---------------------- - -The *constraints* block of a parameter definition allows for defining additional -validation constraints that apply to the value of the parameter. At -instantiation time of the template, user provided parameter values are validated -against those constraints to make sure the provided values match expectations of -the template author. -Constraints are defined in the form of a bulleted list according to the -following syntax: - -:: - - constraints: - - : - description: - -constraint type - The constraint type specifies the kind of constraint defined in the current - bulleted list item. The set of currently supported constraints is given - below. - -constraint definition - This value defines the actual constraint, depending on the constraint type. - The concrete syntax for each constraint type is given below. - -description - This *optional* attribute allows for specifying a concrete description of - the current constraint. This text will be presented to the user, for - example, when the provided input value for a parameter violates the - constraint. If omitted, a default validation message will be presented to - the user. - -The following example show the definition of a string parameter with two -constraints. Note that while the descriptions for each constraint are optional, -it is good practice to provide concrete descriptions so useful messages can be -presented to the user at deployment time. - -:: - - parameters: - user_name: - type: string - description: User name to be configured for the application - constraints: - - length: { min: 6, max: 8 } - description: User name must be between 6 and 8 characters - - allowed_pattern: "[A-Z]+[a-zA-Z0-9]*" - description: User name must start with an uppercase character - -The following sections list the supported types of parameter constraints, along -with the concrete syntax for each type. - -length -~~~~~~ -The *length* constraint applies to parameters of type *string* and allows for -defining a lower and upper limit for the length of the string value. The syntax -for the length constraint is: - -:: - - length: { min: , max: } - -It is possible to define a length constraint with only a lower limit or an -upper limit. However, at least one of *min* or *max* must be specified. - -range -~~~~~ -The *range* constraint applies to parameters of type *number* and allows for -defining a lower and upper limit for the numeric value of the parameter. The -syntax of the range constraint is: - -:: - - range: { min: , max: } - -It is possible to define a range constraint with only a lower limit or an -upper limit. However, at least one of *min* or *max* must be specified. -The minimum or maximum boundaries are included in the range. For example, the -following range constraint would allow for all numeric values between 0 and 10. - -:: - - range: { min: 0, max: 10 } - - -allowed_values -~~~~~~~~~~~~~~ -The *allowed_values* constraint applies to parameters of type string or number -and allows for specifying a set of possible values for a parameter. At -deployment time, the user provided value for the respective parameter must -match one of the elements of the specified list. The syntax of the -allowed_values constraint is: - -:: - - allowed_values: [ , , ... ] - -Alternatively, the YAML bulleted list notation can be used: - -:: - - allowed_values: - - - - - - ... - -For example: - -:: - - parameters: - instance_type: - type: string - description: Instance type for compute instances - constraints: - allowed_values: - - m1.small - - m1.medium - - m1.large - -allowed_pattern -~~~~~~~~~~~~~~~ -The *allowed_pattern* constraint applies to parameters of type string and allows -for specifying a regular expression against which a user provided parameter -value must evaluate at deployment -The syntax of the allowed_pattern constraint is: - -:: - - allowed_pattern: - -For example: - -:: - - parameters: - user_name: - type: string - description: User name to be configured for the application - constraints: - - allowed_pattern: "[A-Z]+[a-zA-Z0-9]*" - description: User name must start with an uppercase character - - -.. _hot_spec_resources: - ------------------ -Resources Section ------------------ - -In the *resources* section, the templates for actual resources that will make up -a stack deployed from the HOT template (e.g. compute instances, networks, -storage volumes) are defined. -Each resource is defined as a separate block in the resources section according -to the syntax below. - -:: - - resources: - : - type: - properties: - : - # more resource specific metadata - -resource ID - A resource block is headed by the resource ID, which must be unique within - the resource section of a template. -type - This attribute specifies the type of resource, such as OS::Nova::Compute. -properties - This section contains a list of resource specific properties. The property - value can be provided in place, or can be provided via a function - (see :ref:`hot_spec_intrinsic_functions`). - -Depending on the type of resource, the resource block might include more -resource specific metadata. Basically all resource types that can be used in -CFN templates can also be used in HOT templates, adapted to the YAML structure -as outlined above. -Below is an example of a simple compute resource definition with some fixed -property values. - -:: - - resources: - my_instance: - type: OS::Nova::Compute - properties: - instance_type: m1.small - image_id: F18-x86_64-cfntools - - -.. _hot_spec_outputs: - ---------------- -Outputs Section ---------------- - -In the *outputs* section, any output parameters that should be available to the -user can be defined. Typically, this would be, for example, parameters such as -IP addresses of deployed instances, or URLs of web applications deployed as part -of a stack. - -Output parameters are defined according to the following syntax: - -:: - - outputs: - : - -parameter name - The name of the output parameter is defined as a key in the outputs section. -parameter value - This element specifies the value of the output parameter. Typically, this - will be resolved by means of a function, e.g. by getting an attribute value - of one of the stack's resources (see also - :ref:`hot_spec_intrinsic_functions`). - -The example below shows, how the public IP address of a compute resource can be -defined as an output parameter. - -:: - - outputs: - instance_ip: { get_attr: [my_instance, PublicIp] } - - -.. _hot_spec_intrinsic_functions: - -------------------- -Intrinsic Functions -------------------- -HOT provides a set of intrinsic functions that can be used inside HOT templates -to perform specific tasks, such as getting the value of a resource attribute at -runtime. A definition of all intrinsic functions available in HOT is given -below. - -get_param ---------- -The *get_param* function allows for referencing an input parameter of a template -from anywhere within a template. At runtime, it will be resolved to the value -provided for this input parameter. The syntax of the get_param function is as -follows: - -:: - - get_param: - -The *parameter name* of the input parameter to be resolved is given as single -parameter to this function. A sample use of this function in context of a -resource definition is shown below. - -:: - - parameters: - instance_type: - type: string - description: Instance type to be used. - - resources: - my_instance: - type: OS::Nova::Compute - properties: - instance_type: { get_param: instance_type} - - -get_attr --------- -The *get_attr* function allows for referencing an attribute of a resource. At -runtime, it will be resolved to the value of an attribute of a resource instance -created from the respective resource definition of the template. -The syntax of the get_attr function is as follows: - -:: - - get_attr: [ , ] - -resource ID - This parameter specifies the resource the attribute of which shall be - resolved. This resource must be defined within the *resources* section of - the template (see also :ref:`hot_spec_resources`). -attribute name - This parameter specifies the attribute to be resolved. - -An example of using the get_attr function is shown below: - -:: - - resources: - my_instance: - type: OS::Nova::Compute - # ... - - outputs: - instance_ip: { get_attr: [my_instance, PublicIp] } - - -get_resource ------------- -The *get_resource* function allows for referencing another resource within the -same template. At runtime, it will be resolved to reference ID of the resource, -which is resource type specific. For example, a reference to a floating IP -resource will return the respective IP address at runtime. -The syntax of the get_resource function is as follows: - -:: - - get_resource: - -The *resource ID* of the referenced resources as used in the current template is -given as single parameter to the get_resource function. - - -str_replace ------------ -The *str_replace* function allows for dynamically constructing strings by -providing a template string with placeholders and a list of mappings to assign -values to those placeholders at runtime. The functionality of this function is -similar to that of Python Template strings. -The syntax of the str_replace function is as follows: - -:: - - str_replace: - template: