First commit syntax checker
This commit is contained in:
parent
5d1c2e0dfd
commit
051fea2c9b
17
README.md
17
README.md
@ -375,7 +375,7 @@ You can describe the UI way to add new slaves but better to explain how to do in
|
|||||||
</b></details>
|
</b></details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>How would you implement an option of a starting a build from a certain stage and not from the beginning?<summary><br><b>
|
<summary>How would you implement an option of a starting a build from a certain stage and not from the beginning?</summary><br><b>
|
||||||
</b></details>
|
</b></details>
|
||||||
|
|
||||||
##### Jenkins Dev
|
##### Jenkins Dev
|
||||||
@ -589,9 +589,11 @@ Stop the instance, the type of the instance to match the desired RAM and start t
|
|||||||
<summary>What is AWS WAF? Give an example of how it can used and describe what resources or services you can use it with</summary><br><b>
|
<summary>What is AWS WAF? Give an example of how it can used and describe what resources or services you can use it with</summary><br><b>
|
||||||
</b></details>
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
<summary>What AWS VPN is usef for?</summary><br><b>
|
<summary>What AWS VPN is usef for?</summary><br><b>
|
||||||
</b></details>
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
<summary>What is the difference between Site-to-Site VPN and Client VPN?</summary><br><b>
|
<summary>What is the difference between Site-to-Site VPN and Client VPN?</summary><br><b>
|
||||||
</b></details>
|
</b></details>
|
||||||
|
|
||||||
@ -927,7 +929,8 @@ As to fix it there are serveral options:
|
|||||||
3. You would look for your distro default $PATH variable, copy paste using method #1
|
3. You would look for your distro default $PATH variable, copy paste using method #1
|
||||||
|
|
||||||
Note: There are many ways of getting errors like this: if bash_profile or any configuration file of your interpreter was wrongly modified; causing erratics behaviours,
|
Note: There are many ways of getting errors like this: if bash_profile or any configuration file of your interpreter was wrongly modified; causing erratics behaviours,
|
||||||
permissions issues, bad compiled software (if you compiled it by yourself)... there is no answer that will be true 100% of the time.</b>
|
permissions issues, bad compiled software (if you compiled it by yourself)... there is no answer that will be true 100% of the time.
|
||||||
|
</b>
|
||||||
</p>
|
</p>
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
@ -1241,7 +1244,7 @@ execution or run forever
|
|||||||
</b></details>
|
</b></details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>What signal is used by default when you run 'kill <process id>'?</summary><br><b>
|
<summary>What signal is used by default when you run 'kill *process id*'?</summary><br><b>
|
||||||
<pre>
|
<pre>
|
||||||
The default signal is SIGTERM (15). This signal kills
|
The default signal is SIGTERM (15). This signal kills
|
||||||
process gracefully which means it allows it to save current
|
process gracefully which means it allows it to save current
|
||||||
@ -1310,7 +1313,7 @@ You can also try closing/terminating the parent process. This will make the zomb
|
|||||||
</b></details>
|
</b></details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Can you explain how network process/connection is established and how it's terminated?><br></b>
|
<summary>Can you explain how network process/connection is established and how it's terminated?></summary><br></b>
|
||||||
</b></details>
|
</b></details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
@ -2299,7 +2302,7 @@ Setting the replicas to 0 will shut down the process. Now start it with `kubectl
|
|||||||
</b></details>
|
</b></details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Explain recursion</summary<br><b>
|
<summary>Explain recursion</summary><br><b>
|
||||||
</b></details>
|
</b></details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
@ -3130,7 +3133,7 @@ a = f()
|
|||||||
</b></details>
|
</b></details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Can you implement Linked List in Python?<br><b>
|
<summary>Can you implement Linked List in Python?</summary><br><b>
|
||||||
</b></details>
|
</b></details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
@ -3962,7 +3965,7 @@ the pseudo table to retrieve the sum of the prices spent by each customer, then
|
|||||||
</b></details>
|
</b></details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summmary>Describe in detail how you bring up an instance with an IP you can reach from outside the cloud</summary><br><b>
|
<summary>Describe in detail how you bring up an instance with an IP you can reach from outside the cloud</summary><br><b>
|
||||||
</b></details>
|
</b></details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
@ -2,9 +2,10 @@
|
|||||||
|
|
||||||
import random
|
import random
|
||||||
|
|
||||||
rand_num_li = sorted([random.randint(1, 50) for iter in range(10)])
|
rand_num_li = sorted([random.randint(1, 50) for _ in range(10)])
|
||||||
target = random.randint(1, 50)
|
target = random.randint(1, 50)
|
||||||
|
|
||||||
|
|
||||||
def binary_search(li, le, ri, target):
|
def binary_search(li, le, ri, target):
|
||||||
if le <= ri:
|
if le <= ri:
|
||||||
mid = ri + le // 2
|
mid = ri + le // 2
|
||||||
|
91
scripts/main.py
Normal file
91
scripts/main.py
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
import pathlib
|
||||||
|
|
||||||
|
p = pathlib.Path(__file__).parent.parent.joinpath('README.md')
|
||||||
|
|
||||||
|
with open(p, 'rb') as f:
|
||||||
|
file_list = [line.rstrip() for line in f.readlines()]
|
||||||
|
|
||||||
|
details_final_count = 0
|
||||||
|
details_count = 0
|
||||||
|
print(len(file_list))
|
||||||
|
for q in file_list:
|
||||||
|
if b'<details>' in q:
|
||||||
|
details_count += 1
|
||||||
|
if b'</details>' in q:
|
||||||
|
details_final_count += 1
|
||||||
|
print(details_count, details_final_count)
|
||||||
|
|
||||||
|
# TODO Checkear que tenemos mismo numero de details tabs, aunque esto no asegura al 100% que esta bien formateado.
|
||||||
|
# Una vez que tenemos un número par, podemos más o menos estar seguros de que la cosa va bien, y hacer ya entonces
|
||||||
|
# el checkeo de las demás tags.
|
||||||
|
# Problema: No obtenemos el lugar de donde esta mal el details, entonces; hacerlo.
|
||||||
|
# IDEA: comprobar que despues de un detail va un /detail y mas o menos supongo que podremos acotar, hacer pruebas.
|
||||||
|
|
||||||
|
|
||||||
|
def get_question_list(f):
|
||||||
|
|
||||||
|
questions_list = []
|
||||||
|
temp = []
|
||||||
|
after_summary_tag = False
|
||||||
|
|
||||||
|
for line in f:
|
||||||
|
if line.startswith(b'<details>'):
|
||||||
|
temp.append(line)
|
||||||
|
after_summary_tag = True
|
||||||
|
|
||||||
|
elif after_summary_tag and line != b'' and b'</details>' not in line:
|
||||||
|
temp.append(line)
|
||||||
|
|
||||||
|
elif after_summary_tag and b'</details>' in line:
|
||||||
|
temp.append(line)
|
||||||
|
after_summary_tag = False
|
||||||
|
|
||||||
|
questions_list.append(temp)
|
||||||
|
temp = []
|
||||||
|
|
||||||
|
return questions_list
|
||||||
|
|
||||||
|
|
||||||
|
def get_answered_questions(question_list) -> int:
|
||||||
|
c = 0
|
||||||
|
for q in question_list:
|
||||||
|
index = 0
|
||||||
|
for i in q:
|
||||||
|
if b'</summary>' in i:
|
||||||
|
index = q.index(i)
|
||||||
|
if q[index+1: len(q) - 1]:
|
||||||
|
# print(q[2: len(q) - 1], '-->', q)
|
||||||
|
c += 1
|
||||||
|
return c
|
||||||
|
|
||||||
|
|
||||||
|
def check_even_tags(question_list):
|
||||||
|
summary_count = 0
|
||||||
|
details_count = 0
|
||||||
|
# details count not necessary cus we already have that checked beforehand
|
||||||
|
for q in question_list:
|
||||||
|
print(q)
|
||||||
|
for l in q:
|
||||||
|
print(l)
|
||||||
|
if b'<details>' in l:
|
||||||
|
details_count += 1
|
||||||
|
if b'<summary>' in l:
|
||||||
|
summary_count += 1
|
||||||
|
if b'</details>' in l:
|
||||||
|
details_count += 1
|
||||||
|
if b'</summary>' in l:
|
||||||
|
summary_count += 1
|
||||||
|
print(summary_count, details_count)
|
||||||
|
if summary_count != 2 or details_count != 2:
|
||||||
|
raise Exception(f'You are missing a tag in {q}')
|
||||||
|
details_count = 0
|
||||||
|
summary_count = 0
|
||||||
|
|
||||||
|
|
||||||
|
# check_even_tags(get_question_list(file_list))
|
||||||
|
|
||||||
|
|
||||||
|
# if __name__ == '__main__':
|
||||||
|
# q_list = get_question_list(file_list)
|
||||||
|
# print(len(q_list))
|
||||||
|
# print(get_answered_questions(q_list))
|
29
scripts/tests/test.py
Normal file
29
scripts/tests/test.py
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
import unittest
|
||||||
|
import pathlib
|
||||||
|
|
||||||
|
from scripts.main import get_answered_questions, get_question_list
|
||||||
|
|
||||||
|
|
||||||
|
def open_test_case_file(n: int):
|
||||||
|
p = pathlib.Path(rf'D:\PycharmProjects\devops-interview-questions\scripts\tests\testcase{n}.md')
|
||||||
|
|
||||||
|
with open(p, 'rb') as f:
|
||||||
|
file_list = [line.rstrip() for line in f.readlines()]
|
||||||
|
return file_list
|
||||||
|
|
||||||
|
|
||||||
|
class QuestionCount(unittest.TestCase):
|
||||||
|
solutions = (
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_count_case_1(self):
|
||||||
|
raw_list = open_test_case_file(1)
|
||||||
|
question_list = get_question_list(raw_list)
|
||||||
|
answers = get_answered_questions(question_list)
|
||||||
|
|
||||||
|
self.assertEqual(len(question_list), 21)
|
||||||
|
self.assertEqual(answers, 2)
|
||||||
|
|
||||||
|
def test_count_case_2(self):
|
||||||
|
pass
|
101
scripts/tests/testcase1.md
Normal file
101
scripts/tests/testcase1.md
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
<details>
|
||||||
|
<summary>What objects in S3 consists of?
|
||||||
|
* Another way to ask it: explain key, value, version id and meta data in context of objects</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Explain data consistency</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Can you host dynamic websites on S3?. What about static websites?</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>What security measures have you taken in context of S3?</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>What is a storage class? What storage classes are you familiar with?</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
##### EC2
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>What is EC2? What is it used for?</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>What EC2 pricing models are there?</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>How to increase RAM for a given EC2 instance?</summary><br><b>
|
||||||
|
|
||||||
|
Stop the instance, the type of the instance to match the desired RAM and start the instance.
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>What is an AMI?</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>How many storage options are there for EC2 Instances?</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>What happens when an EC2 instance is stopped or terminated?</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>What are Security Groups?</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>How to migrate an instance to another availability zone?</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>What are spot instances?</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
##### CloudFront
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Explain what is CloudFront and what is it used for</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Explain the following
|
||||||
|
* Origin
|
||||||
|
* Edge location
|
||||||
|
* Distribution</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>What delivery methods available for the user with CDN?</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>True or False?. Objects are cached for the life of TTL</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
##### Load Balancers
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>What types of load balancers are supported in EC2 and what are they used for?</summary><br><b>
|
||||||
|
|
||||||
|
* Application LB - layer 7 traffic
|
||||||
|
* Network LB - ultra-high performances or static IP address
|
||||||
|
* Classic LB - low costs, good for test or dev environments
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
##### AWS Security
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>What is the shared responsibility model? In other words, what AWS is responsible for and what the user is responsible for in regards to Security?</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>What is the AWS compliance program?</summary><br><b>
|
||||||
|
</b></details>
|
92
scripts/tests/testcase2.md
Normal file
92
scripts/tests/testcase2.md
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
<details>
|
||||||
|
<summary>Explain what each of the following services is used for
|
||||||
|
|
||||||
|
* AWS Inspector
|
||||||
|
* AWS Artifact
|
||||||
|
* AWS Shield</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>What is AWS WAF? Give an example of how it can used and describe what resources or services you can use it with</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>What AWS VPN is usef for?</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>What is the difference between Site-to-Site VPN and Client VPN?</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>True or False? AWS Inspector can perform both network and host assessments</summary><br><b>
|
||||||
|
|
||||||
|
True
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
#### AWS Databases
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>What is RDS?</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>What are some features or benefits of using RDS?</summary><br><b>
|
||||||
|
|
||||||
|
1. Multi AZ - great for Disaster Recovery
|
||||||
|
2. Read Replicas - for better performances
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>What is EBS?</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
#### AWS Networking
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>What is VPC?</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Explain Security Groups and Network ACLs</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
#### Misc
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Explain what are the following services and give an use case example for each one them:
|
||||||
|
|
||||||
|
* CloudTrail
|
||||||
|
* CloudWatch
|
||||||
|
* CloudSearch</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
|
||||||
|
## Network
|
||||||
|
|
||||||
|
<a name="network-beginner"></a>
|
||||||
|
#### :baby: Beginner
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>What is Ethernet?</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>What is a MAC address? What is it used for?</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>When is this MAC address used?: ff:ff:ff:ff:ff:ff</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>What is an IP address?</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Explain subnet mask and given an example</summary><br><b>
|
||||||
|
</b></details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>What is a private IP address? What do we need it for?</summary><br><b>
|
||||||
|
</b></details>
|
0
scripts/tests/testcase3.md
Normal file
0
scripts/tests/testcase3.md
Normal file
0
scripts/tests/testcase4.md
Normal file
0
scripts/tests/testcase4.md
Normal file
0
scripts/tests/testcase5.md
Normal file
0
scripts/tests/testcase5.md
Normal file
Loading…
Reference in New Issue
Block a user