aboutsummaryrefslogtreecommitdiff
path: root/bigtop-packages/src/charm/hadoop/layer-hadoop-plugin/actions/smoke-test
diff options
context:
space:
mode:
Diffstat (limited to 'bigtop-packages/src/charm/hadoop/layer-hadoop-plugin/actions/smoke-test')
-rwxr-xr-xbigtop-packages/src/charm/hadoop/layer-hadoop-plugin/actions/smoke-test62
1 files changed, 62 insertions, 0 deletions
diff --git a/bigtop-packages/src/charm/hadoop/layer-hadoop-plugin/actions/smoke-test b/bigtop-packages/src/charm/hadoop/layer-hadoop-plugin/actions/smoke-test
new file mode 100755
index 00000000..65ba07c6
--- /dev/null
+++ b/bigtop-packages/src/charm/hadoop/layer-hadoop-plugin/actions/smoke-test
@@ -0,0 +1,62 @@
+#!/usr/bin/env python3
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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 sys
+
+from charmhelpers.core import hookenv
+from jujubigdata.utils import run_as
+from charms.reactive import is_state
+
+if not is_state('apache-bigtop-plugin.hdfs.ready'):
+ hookenv.action_fail('Charm is not yet ready')
+
+
+# verify the hdfs-test directory does not already exist
+output = run_as('ubuntu', 'hdfs', 'dfs', '-ls', '/tmp', capture_output=True)
+if '/tmp/hdfs-test' in output:
+ run_as('ubuntu', 'hdfs', 'dfs', '-rm', '-R', '/tmp/hdfs-test')
+ output = run_as('ubuntu', 'hdfs', 'dfs', '-ls', '/tmp', capture_output=True)
+ if 'hdfs-test' in output:
+ hookenv.action_fail('Unable to remove existing hdfs-test directory')
+ sys.exit()
+
+# create the directory
+run_as('ubuntu', 'hdfs', 'dfs', '-mkdir', '-p', '/tmp/hdfs-test')
+run_as('ubuntu', 'hdfs', 'dfs', '-chmod', '-R', '777', '/tmp/hdfs-test')
+
+# verify the newly created hdfs-test subdirectory exists
+output = run_as('ubuntu', 'hdfs', 'dfs', '-ls', '/tmp', capture_output=True)
+for line in output.split('\n'):
+ if '/tmp/hdfs-test' in line:
+ if 'ubuntu' not in line or 'drwxrwxrwx' not in line:
+ hookenv.action_fail('Permissions incorrect for hdfs-test directory')
+ sys.exit()
+ break
+else:
+ hookenv.action_fail('Unable to create hdfs-test directory')
+ sys.exit()
+
+# remove the directory
+run_as('ubuntu', 'hdfs', 'dfs', '-rm', '-R', '/tmp/hdfs-test')
+
+# verify the hdfs-test subdirectory has been removed
+output = run_as('ubuntu', 'hdfs', 'dfs', '-ls', '/tmp', capture_output=True)
+if '/tmp/hdfs-test' in output:
+ hookenv.action_fail('Unable to remove hdfs-test directory')
+ sys.exit()
+
+hookenv.action_set({'outcome': 'success'})