chef-zero 4.2.3 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +201 -201
  3. data/README.md +155 -150
  4. data/Rakefile +31 -31
  5. data/bin/chef-zero +100 -100
  6. data/lib/chef_zero.rb +10 -7
  7. data/lib/chef_zero/chef_data/acl_path.rb +139 -139
  8. data/lib/chef_zero/chef_data/cookbook_data.rb +240 -240
  9. data/lib/chef_zero/chef_data/data_normalizer.rb +207 -207
  10. data/lib/chef_zero/chef_data/default_creator.rb +446 -446
  11. data/lib/chef_zero/data_store/data_already_exists_error.rb +29 -29
  12. data/lib/chef_zero/data_store/data_error.rb +31 -31
  13. data/lib/chef_zero/data_store/data_not_found_error.rb +28 -28
  14. data/lib/chef_zero/data_store/default_facade.rb +149 -149
  15. data/lib/chef_zero/data_store/interface_v1.rb +67 -67
  16. data/lib/chef_zero/data_store/interface_v2.rb +18 -18
  17. data/lib/chef_zero/data_store/memory_store.rb +33 -33
  18. data/lib/chef_zero/data_store/memory_store_v2.rb +155 -155
  19. data/lib/chef_zero/data_store/raw_file_store.rb +147 -147
  20. data/lib/chef_zero/data_store/v1_to_v2_adapter.rb +142 -142
  21. data/lib/chef_zero/data_store/v2_to_v1_adapter.rb +107 -107
  22. data/lib/chef_zero/endpoints/acl_endpoint.rb +38 -38
  23. data/lib/chef_zero/endpoints/acls_endpoint.rb +29 -29
  24. data/lib/chef_zero/endpoints/actor_endpoint.rb +94 -88
  25. data/lib/chef_zero/endpoints/actors_endpoint.rb +64 -64
  26. data/lib/chef_zero/endpoints/authenticate_user_endpoint.rb +31 -31
  27. data/lib/chef_zero/endpoints/container_endpoint.rb +22 -22
  28. data/lib/chef_zero/endpoints/containers_endpoint.rb +13 -13
  29. data/lib/chef_zero/endpoints/cookbook_endpoint.rb +39 -39
  30. data/lib/chef_zero/endpoints/cookbook_version_endpoint.rb +119 -119
  31. data/lib/chef_zero/endpoints/cookbooks_base.rb +65 -65
  32. data/lib/chef_zero/endpoints/cookbooks_endpoint.rb +19 -19
  33. data/lib/chef_zero/endpoints/data_bag_endpoint.rb +45 -45
  34. data/lib/chef_zero/endpoints/data_bag_item_endpoint.rb +25 -25
  35. data/lib/chef_zero/endpoints/data_bags_endpoint.rb +23 -23
  36. data/lib/chef_zero/endpoints/environment_cookbook_endpoint.rb +24 -24
  37. data/lib/chef_zero/endpoints/environment_cookbook_versions_endpoint.rb +123 -123
  38. data/lib/chef_zero/endpoints/environment_cookbooks_endpoint.rb +22 -22
  39. data/lib/chef_zero/endpoints/environment_endpoint.rb +33 -33
  40. data/lib/chef_zero/endpoints/environment_nodes_endpoint.rb +23 -23
  41. data/lib/chef_zero/endpoints/environment_recipes_endpoint.rb +22 -22
  42. data/lib/chef_zero/endpoints/environment_role_endpoint.rb +36 -36
  43. data/lib/chef_zero/endpoints/file_store_file_endpoint.rb +22 -22
  44. data/lib/chef_zero/endpoints/group_endpoint.rb +20 -20
  45. data/lib/chef_zero/endpoints/groups_endpoint.rb +13 -13
  46. data/lib/chef_zero/endpoints/license_endpoint.rb +25 -25
  47. data/lib/chef_zero/endpoints/node_endpoint.rb +17 -17
  48. data/lib/chef_zero/endpoints/node_identifiers_endpoint.rb +22 -0
  49. data/lib/chef_zero/endpoints/not_found_endpoint.rb +11 -11
  50. data/lib/chef_zero/endpoints/organization_association_request_endpoint.rb +22 -22
  51. data/lib/chef_zero/endpoints/organization_association_requests_endpoint.rb +30 -29
  52. data/lib/chef_zero/endpoints/organization_authenticate_user_endpoint.rb +26 -26
  53. data/lib/chef_zero/endpoints/organization_endpoint.rb +46 -41
  54. data/lib/chef_zero/endpoints/organization_user_base.rb +15 -0
  55. data/lib/chef_zero/endpoints/organization_user_endpoint.rb +26 -48
  56. data/lib/chef_zero/endpoints/organization_users_endpoint.rb +43 -14
  57. data/lib/chef_zero/endpoints/organization_validator_key_endpoint.rb +20 -20
  58. data/lib/chef_zero/endpoints/organizations_endpoint.rb +62 -55
  59. data/lib/chef_zero/endpoints/policies_endpoint.rb +151 -154
  60. data/lib/chef_zero/endpoints/principal_endpoint.rb +42 -42
  61. data/lib/chef_zero/endpoints/rest_list_endpoint.rb +42 -42
  62. data/lib/chef_zero/endpoints/rest_object_endpoint.rb +63 -63
  63. data/lib/chef_zero/endpoints/role_endpoint.rb +16 -16
  64. data/lib/chef_zero/endpoints/role_environments_endpoint.rb +14 -14
  65. data/lib/chef_zero/endpoints/sandbox_endpoint.rb +27 -27
  66. data/lib/chef_zero/endpoints/sandboxes_endpoint.rb +50 -50
  67. data/lib/chef_zero/endpoints/search_endpoint.rb +194 -192
  68. data/lib/chef_zero/endpoints/searches_endpoint.rb +18 -18
  69. data/lib/chef_zero/endpoints/server_api_version_endpoint.rb +14 -0
  70. data/lib/chef_zero/endpoints/system_recovery_endpoint.rb +30 -30
  71. data/lib/chef_zero/endpoints/user_association_request_endpoint.rb +40 -40
  72. data/lib/chef_zero/endpoints/user_association_requests_count_endpoint.rb +19 -19
  73. data/lib/chef_zero/endpoints/user_association_requests_endpoint.rb +19 -19
  74. data/lib/chef_zero/endpoints/user_organizations_endpoint.rb +22 -22
  75. data/lib/chef_zero/endpoints/version_endpoint.rb +12 -12
  76. data/lib/chef_zero/log.rb +7 -7
  77. data/lib/chef_zero/rest_base.rb +242 -214
  78. data/lib/chef_zero/rest_error_response.rb +11 -11
  79. data/lib/chef_zero/rest_request.rb +69 -65
  80. data/lib/chef_zero/rest_router.rb +45 -45
  81. data/lib/chef_zero/rspec.rb +308 -308
  82. data/lib/chef_zero/server.rb +642 -637
  83. data/lib/chef_zero/socketless_server_map.rb +92 -92
  84. data/lib/chef_zero/solr/query/binary_operator.rb +52 -52
  85. data/lib/chef_zero/solr/query/phrase.rb +23 -23
  86. data/lib/chef_zero/solr/query/range_query.rb +46 -46
  87. data/lib/chef_zero/solr/query/regexpable_query.rb +29 -29
  88. data/lib/chef_zero/solr/query/subquery.rb +37 -37
  89. data/lib/chef_zero/solr/query/term.rb +45 -45
  90. data/lib/chef_zero/solr/query/unary_operator.rb +43 -43
  91. data/lib/chef_zero/solr/solr_doc.rb +53 -53
  92. data/lib/chef_zero/solr/solr_parser.rb +203 -203
  93. data/lib/chef_zero/version.rb +3 -3
  94. data/spec/run_oc_pedant.rb +63 -56
  95. data/spec/search_spec.rb +32 -32
  96. data/spec/server_spec.rb +92 -91
  97. data/spec/socketless_server_map_spec.rb +76 -76
  98. data/spec/support/oc_pedant.rb +132 -134
  99. data/spec/support/stickywicket.pem +27 -27
  100. metadata +10 -15
  101. data/spec/run_pedant.rb +0 -103
  102. data/spec/support/pedant.rb +0 -129
@@ -1,129 +0,0 @@
1
- # Copyright: Copyright (c) 2012 Opscode, Inc.
2
- # License: Apache License, Version 2.0
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
-
16
- # This annotated Pedant configuration file details the various
17
- # configuration settings available to you. It is separate from the
18
- # actual Pedant::Config class because not all settings have sane
19
- # defaults, and not all settings are appropriate in all settings.
20
-
21
- ################################################################################
22
- # You MUST specify the address of the server the API requests will be
23
- # sent to. Only specify protocol, hostname, and port.
24
- if ENV['SINGLE_ORG'] || ENV['FILE_STORE']
25
- chef_server 'http://127.0.0.1:8889'
26
- else
27
- chef_server 'http://127.0.0.1:8889/organizations/pedant'
28
- end
29
-
30
- # If you are doing development testing, you can specify the address of
31
- # the Solr server. The presence of this parameter will enable tests
32
- # to force commits to Solr, greatly decreasing the amout of time
33
- # needed for testing the search endpoint. This is only an
34
- # optimization for development! If you are testing a "live" Chef
35
- # Server, or otherwise do not have access to the Solr server from your
36
- # testing location, you should not specify a value for this parameter.
37
- # The tests will still run, albeit slower, as they will now need to
38
- # poll for a period to ensure they are querying committed results.
39
- #search_server "http://localhost:8983"
40
-
41
- # Related to the 'search_server' parameter, this specifies the maximum
42
- # amout of time (in seconds) that search endpoint requests should be
43
- # retried before giving up. If not explicitly set, it will default to
44
- # 65 seconds; only set it if you know that your Solr commit interval
45
- # differs significantly from this.
46
- maximum_search_time 0
47
-
48
- # OSC sends erchef a host header with a port, so this option needs
49
- # # to be enabled for Pedant tests to work correctly
50
- explicit_port_url true
51
-
52
- # We're starting to break tests up into groups based on different
53
- # criteria. The proper API tests (the results of which are viewable
54
- # to OPC customers) should be the only ones run by Pedant embedded in
55
- # OPC installs. There are other specs that help us keep track of API
56
- # cruft that we want to come back and fix later; these shouldn't be
57
- # viewable to customers, but we should be able to run them in
58
- # development and CI environments. If this parameter is missing or
59
- # explicitly `false` only the customer-friendly tests will be run.
60
- #
61
- # This is mainly here for documentation purposes, since the
62
- # command-line `opscode-pedant` utility ultimately determines this
63
- # value.
64
- include_internal false
65
-
66
- # Test users. The five users specified below are required; their
67
- # names (:user, :non_org_user, etc.) are indicative of their role
68
- # within the tests. All users must have a ':name' key. If they have
69
- # a ':create_me' key, Pedant will create these users for you. If you
70
- # are using pre-existing users, you must supply a ':key_file' key,
71
- # which should be the fully-qualified path /on the machine Pedant is
72
- # running on/ to a private key for that user.
73
- key = 'spec/support/stickywicket.pem'
74
- superuser_name 'admin'
75
- superuser_key key
76
- webui_key key
77
-
78
- # The Policies endpoint is feature-flagged during development. Zero supports
79
- # the policies endpoint, so turn it on:
80
- policies? true
81
-
82
- # Set the platform_class
83
- platform_class Pedant::OpenSourcePlatform
84
-
85
- requestors({
86
- :clients => {
87
- # The the admin user, for the purposes of getting things rolling
88
- :admin => {
89
- :name => "pedant_admin_client",
90
- :create_me => true,
91
- :create_knife => true,
92
- :admin => true
93
- },
94
- :non_admin => {
95
- :name => 'pedant_client',
96
- :create_me => true,
97
- :create_knife => true
98
- },
99
- :bad => {
100
- :name => 'bad_client',
101
- :bogus => true
102
- }
103
- },
104
- :users => {
105
- :admin => {
106
- :name => "admin",
107
- :key_file => key,
108
- :create_me => false,
109
- :create_knife => false,
110
- :admin => true
111
- },
112
- :non_admin => {
113
- :name => "pedant_non_admin_user",
114
- :create_me => true,
115
- :create_knife => true,
116
- :admin => false
117
- },
118
- # A user for Knife tests. A knife.rb and key files will be set up
119
- # for this user
120
- :knife_user => {
121
- :name => "knifey",
122
- :create_me => true,
123
- :create_knife => true
124
- }
125
- }
126
- })
127
-
128
- self[:tags] = [:validation, :authentication, :authorization]
129
- verify_error_messages false